diff --git a/src/main/java/com/glxp/api/service/collect/DownloadFactory.java b/src/main/java/com/glxp/api/service/collect/DownloadFactory.java index 2ecadb04d..bb920c1c4 100644 --- a/src/main/java/com/glxp/api/service/collect/DownloadFactory.java +++ b/src/main/java/com/glxp/api/service/collect/DownloadFactory.java @@ -19,13 +19,7 @@ public class DownloadFactory { private YPCF002Download ypcf002Download; @Resource - private CGJH001Download cgjh001Download; - @Resource - private LYRKDownload lyrkDownload; - @Resource - private GMRKDownload gmrkDownload; - @Resource - private LYCKDownload lyckDownload; + private ThrOrderDownload thrOrderDownload; /** * 第三方单据类型 @@ -40,13 +34,13 @@ public class DownloadFactory { if(busType.equals(BusTypeConstant.YPCF002.getBusType())){ return ypcf002Download.downloadOrder(collectOrderRequest); } else if(busType.equals(BusTypeConstant.CGJH001.getBusType())){ - return cgjh001Download.downloadOrder(collectOrderRequest); + return thrOrderDownload.downloadOrder(collectOrderRequest); } else if(busType.equals(BusTypeConstant.LYRK.getBusType())){ - return lyrkDownload.downloadOrder(collectOrderRequest); + return thrOrderDownload.downloadOrder(collectOrderRequest); } else if(busType.equals(BusTypeConstant.GMRK.getBusType())){ - return gmrkDownload.downloadOrder(collectOrderRequest); + return thrOrderDownload.downloadOrder(collectOrderRequest); } else if(busType.equals(BusTypeConstant.LYCK.getBusType())){ - return lyckDownload.downloadOrder(collectOrderRequest); + return thrOrderDownload.downloadOrder(collectOrderRequest); } return ResultVOUtils.error("下载失败,未配置业务类型"); } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java index daf0994b8..ec2bef7ba 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java @@ -92,6 +92,7 @@ public class IoCollectOriginService { } public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) { + //条件 return downloadFactory.downloadOrder(collectOrderRequest); } diff --git a/src/main/java/com/glxp/api/service/collect/down/CGJH001Download.java b/src/main/java/com/glxp/api/service/collect/down/CGJH001Download.java deleted file mode 100644 index ac624a0aa..000000000 --- a/src/main/java/com/glxp/api/service/collect/down/CGJH001Download.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.glxp.api.service.collect.down; - -import com.glxp.api.common.res.BaseResponse; -import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.http.ErpBasicClient; -import com.glxp.api.req.collect.CollectOrderRequest; -import com.glxp.api.req.thrsys.FilterThrOrderRequest; -import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.thrsys.ThrOrderResponse; -import com.glxp.api.service.collect.IoCollectOrderService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - - -@Service -public class CGJH001Download implements IDownload{ - @Resource - private ErpBasicClient erpBasicClient; - @Resource - private IoCollectOrderService collectOrderService; - - @Override - public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { - FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); - filterThrOrderRequest.setPage(1); - filterThrOrderRequest.setLimit(100); - filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); - filterThrOrderRequest.setThirdSys("thirdId"); - filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); - filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); - BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); - if (baseResponse.getCode() == 20000) { - List list = baseResponse.getData().getList(); -// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); - return ResultVOUtils.success("下载成功"); - } - return ResultVOUtils.error("下载失败"); - } -} diff --git a/src/main/java/com/glxp/api/service/collect/down/GMRKDownload.java b/src/main/java/com/glxp/api/service/collect/down/GMRKDownload.java deleted file mode 100644 index 9800cf5a3..000000000 --- a/src/main/java/com/glxp/api/service/collect/down/GMRKDownload.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.glxp.api.service.collect.down; - -import com.glxp.api.common.res.BaseResponse; -import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.http.ErpBasicClient; -import com.glxp.api.req.collect.CollectOrderRequest; -import com.glxp.api.req.thrsys.FilterThrOrderRequest; -import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.thrsys.ThrOrderResponse; -import com.glxp.api.service.collect.IoCollectOrderService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -@Service -public class GMRKDownload implements IDownload{ - @Resource - private ErpBasicClient erpBasicClient; - @Resource - private IoCollectOrderService collectOrderService; - @Override - public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { - FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); - filterThrOrderRequest.setPage(1); - filterThrOrderRequest.setLimit(100); - filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); - filterThrOrderRequest.setThirdSys("thirdId"); - filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); - filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); - BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); - if (baseResponse.getCode() == 20000) { - List list = baseResponse.getData().getList(); -// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); - return ResultVOUtils.success("下载成功"); - } - return ResultVOUtils.error("下载失败"); - } -} diff --git a/src/main/java/com/glxp/api/service/collect/down/LYCKDownload.java b/src/main/java/com/glxp/api/service/collect/down/LYCKDownload.java deleted file mode 100644 index b4e4898e8..000000000 --- a/src/main/java/com/glxp/api/service/collect/down/LYCKDownload.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.glxp.api.service.collect.down; - -import com.glxp.api.common.res.BaseResponse; -import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.entity.collect.IoCollectOrder; -import com.glxp.api.http.ErpBasicClient; -import com.glxp.api.req.basic.GetSickPrescribeRequest; -import com.glxp.api.req.collect.CollectOrderRequest; -import com.glxp.api.req.thrsys.FilterThrOrderRequest; -import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.thrsys.ThrOrderResponse; -import com.glxp.api.service.collect.IoCollectOrderService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -@Service -public class LYCKDownload implements IDownload{ - @Resource - private ErpBasicClient erpBasicClient; - @Resource - private IoCollectOrderService collectOrderService; - - @Override - public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { - FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); - filterThrOrderRequest.setPage(1); - filterThrOrderRequest.setLimit(100); - filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); - filterThrOrderRequest.setThirdSys("thirdId"); - filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); - filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); - BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); - if (baseResponse.getCode() == 20000) { - List list = baseResponse.getData().getList(); -// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); - return ResultVOUtils.success("下载成功"); - } - return ResultVOUtils.error("下载失败"); - } -} diff --git a/src/main/java/com/glxp/api/service/collect/down/LYRKDownload.java b/src/main/java/com/glxp/api/service/collect/down/LYRKDownload.java deleted file mode 100644 index c10942dad..000000000 --- a/src/main/java/com/glxp/api/service/collect/down/LYRKDownload.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.glxp.api.service.collect.down; - -import com.glxp.api.common.res.BaseResponse; -import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.http.ErpBasicClient; -import com.glxp.api.req.collect.CollectOrderRequest; -import com.glxp.api.req.thrsys.FilterThrOrderRequest; -import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.thrsys.ThrOrderResponse; -import com.glxp.api.service.collect.IoCollectOrderService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -@Service -public class LYRKDownload implements IDownload { - @Resource - private ErpBasicClient erpBasicClient; - @Resource - private IoCollectOrderService collectOrderService; - @Override - public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { - FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); - filterThrOrderRequest.setPage(1); - filterThrOrderRequest.setLimit(100); - filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); - filterThrOrderRequest.setThirdSys("thirdId"); - filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); - filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); - BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); - if (baseResponse.getCode() == 20000) { - List list = baseResponse.getData().getList(); -// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); - return ResultVOUtils.success("下载成功"); - } - return ResultVOUtils.error("下载失败"); - } -} diff --git a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java new file mode 100644 index 000000000..2e04f8307 --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java @@ -0,0 +1,147 @@ +package com.glxp.api.service.collect.down; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.thrsys.ThrOrderDao; +import com.glxp.api.dao.thrsys.ThrOrderDetailDao; +import com.glxp.api.entity.collect.IoCollectOrder; +import com.glxp.api.entity.collect.IoCollectOrderBiz; +import com.glxp.api.entity.thrsys.ThrOrderDetailEntity; +import com.glxp.api.entity.thrsys.ThrOrderEntity; +import com.glxp.api.http.ErpBasicClient; +import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.req.thrsys.FilterThrOrderRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.thrsys.ThrOrderResponse; +import com.glxp.api.service.collect.IoCollectOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +/** + * 采购计划 CGJH001 + * 出入信息 LYRK GMRK LYCK + */ +@Service +public class ThrOrderDownload implements IDownload{ + @Resource + private ErpBasicClient erpBasicClient; + @Resource + private IoCollectOrderService collectOrderService; + @Resource + private ThrOrderDao thrOrderDao; + @Resource + private ThrOrderDetailDao thrOrderDetailDao; + + @Override + public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(StrUtil.isNotBlank(collectOrderRequest.getBillNo()),ThrOrderEntity::getBillNo,collectOrderRequest.getBillNo()); + List thrOrderEntities = thrOrderDao.selectList(w); + if(CollUtil.isNotEmpty(thrOrderEntities)){ + return this.importThrOrder(thrOrderEntities,collectOrderRequest); + }else{ + //三方拉取 + FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); + filterThrOrderRequest.setPage(1); + filterThrOrderRequest.setLimit(100); + filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); + filterThrOrderRequest.setThirdSys("thirdId"); + filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); + filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); + BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + if(CollUtil.isNotEmpty(list)){ + list.forEach(item -> { + ThrOrderEntity thrOrderEntity = new ThrOrderEntity(); + BeanUtil.copyProperties(item, thrOrderEntity); + thrOrderEntity.setCreateTime(new Date()); + thrOrderEntity.setUpdateTime(new Date()); + List detailList = item.getDetailList(); + if (CollUtil.isNotEmpty(detailList)) { + thrOrderDetailDao.delete(new LambdaQueryWrapper().eq(ThrOrderDetailEntity::getOrderIdFk, item.getBillNo())); + for (ThrOrderDetailEntity detail : detailList) { + detail.setCreateTime(thrOrderEntity.getCreateTime()); + detail.setUpdateTime(thrOrderEntity.getUpdateTime()); + thrOrderDetailDao.insert(detail); + } + } + thrOrderDao.insertOrUpdate(thrOrderEntity); + }); + //再次获取 + thrOrderEntities = thrOrderDao.selectList(w); + return this.importThrOrder(thrOrderEntities,collectOrderRequest); + } + } + } + return ResultVOUtils.error("下载失败"); + } + + + /** + * 下载至单据 + * @param thrOrderEntities + * @param collectOrderRequest + */ + private BaseResponse importThrOrder(List thrOrderEntities,CollectOrderRequest collectOrderRequest){ + List ioCollectOrderList = new ArrayList<>(); + if(CollUtil.isNotEmpty(thrOrderEntities)){ + for(ThrOrderEntity thrOrder: thrOrderEntities){ + IoCollectOrder ioCollectOrder = new IoCollectOrder(); + StringBuilder errorMsg = new StringBuilder(); + ioCollectOrder.setBillNo(thrOrder.getBillNo()); + ioCollectOrder.setFromType("HIS系统"); + ioCollectOrder.setFromCorp(null); + ioCollectOrder.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); + ioCollectOrder.setFromCorpName(""); + ioCollectOrder.setBillTime(DateUtil.parseTime(thrOrder.getBilldate())); + ioCollectOrder.setCreateTime(new Date()); + ioCollectOrder.setCreateUser(collectOrderRequest.getCreateUser()); + ioCollectOrder.setBackupOrderRemark1(null); + ioCollectOrder.setUpdateTime(new Date()); + ioCollectOrder.setSplitStatus(0); + ioCollectOrder.setTagStatus(0); + List thrOrderDetailEntities = thrOrderDetailDao.selectList(new LambdaQueryWrapper().eq(ThrOrderDetailEntity::getOrderIdFk,thrOrder.getBillNo())); + List bizList = new ArrayList<>(); + for(ThrOrderDetailEntity entity : thrOrderDetailEntities){ + IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz(); +// BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE())); +// if (basicUdirelEntity != null) { +// collectOrderBiz.setRelId(basicUdirelEntity.getId()); +// } else { +// errorMsg.append(entity.getPHYSIC_NAME()).append("字典未对照").append(";"); +// } + collectOrderBiz.setThrCode(null); + collectOrderBiz.setCpmctymc(null); + collectOrderBiz.setGgxh(null); + collectOrderBiz.setBatchNo(entity.getBatchNo()); + collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo()); + collectOrderBiz.setCount(entity.getCount()); + collectOrderBiz.setMeasureUnit(null); + collectOrderBiz.setTagStatus(1); + collectOrderBiz.setUnTagCount(0); + bizList.add(collectOrderBiz); + } + if (StrUtil.isNotBlank(errorMsg)) { + ioCollectOrder.setErrorMsg(errorMsg.toString()); + ioCollectOrder.setTagStatus(4); + } + ioCollectOrder.setBizList(bizList); + ioCollectOrderList.add(ioCollectOrder); + } + collectOrderService.importPrescribe(ioCollectOrderList,collectOrderRequest.getBusType()); + return ResultVOUtils.success("下载成功"); + } + return ResultVOUtils.error("下载失败"); + } +}