diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java index 7dc4c7cf9..c45c97a65 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java @@ -46,6 +46,7 @@ import com.glxp.api.service.inout.IoAddInoutService; import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.service.inv.impl.InvProductService; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.thrsys.ThrInvOrderService; import com.glxp.api.service.thrsys.ThrSystemBusApiService; @@ -61,6 +62,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -703,9 +705,10 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { //校验产品是否被供应商关联 CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(relId); - if (udiRlSupEntity != null) + if (udiRlSupEntity != null) { + item.setPrice(udiRlSupEntity.getPrice()); item.setSupId(udiRlSupEntity.getCustomerId()); - else + } else exmsg.append(thrCode + "供应商未关联"); } else { exmsg.append(thrCode + ","); @@ -870,7 +873,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { AtomicInteger fullGen = new AtomicInteger(); thrInvOrderDetails.forEach(item -> { Long relId = item.getRelId(); - if (ObjectUtil.isNull(relId)) { + if (ObjectUtil.isNull(relId)) { String thrCode = item.getThrCode(); Integer count = Integer.valueOf(item.getReCount()); List skProjectDetailEntityList = basicDestinyRelService.filterDestinyRelListByPId(thrCode); @@ -995,7 +998,9 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ioOrderEntity.setCorpOrderId(UUID.randomUUID() + "");//单据号 ioOrderEntity.setThrOrderIdFk(thrInvOrder.getBillNo());//单据号 ioOrderEntity.setUpdateTime(new Date()); - ioOrderEntity.setCreateTime(new Date()); + if (thrInvOrder.getStartDate() != null) { + ioOrderEntity.setCreateTime(new Date()); + } ioOrderEntity.setCustomerId("110"); Long userId = 1l; // try { @@ -1009,7 +1014,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { List newOrderDetailBiz = new ArrayList<>(); if (entry.getValue().size() > 0) { if (!copyOrderDetailBiz(entry.getValue(), newOrderDetailBiz, newBillNo)) { - continue; + continue; } } String toBillNo = (thrInvOrder.getToBillNo() == null ? "" : thrInvOrder.getToBillNo()) + ("," + newBillNo); @@ -1110,11 +1115,14 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { item.setRelId(relId); item.setHandleStatus(1); item.setToBillNo(newBillNo); + updateThrInvOrderDetails.add(item); //校验产品是否被供应商关联 CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(relId); - if (udiRlSupEntity != null) + if (udiRlSupEntity != null) { item.setSupId(udiRlSupEntity.getCustomerId()); + } + } else { } } @@ -1337,6 +1345,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); parameterPackag(basicProductsEntity, ioOrderDetailBizEntity, thrInvOrderDetail); ioOrderDetailBizEntity.setOrderIdFk(newBillNo); + ioOrderDetailBizEntity.setBatchNo("/"); newOrderDetailBiz.add(ioOrderDetailBizEntity); } } @@ -1451,6 +1460,10 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { } + + @Resource + InvProductService invProductService; + /** * 将三方的出入库明细列表 转换为 系统的出入库单据明细 * @@ -1487,15 +1500,31 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { thrInvOrderDetail.setRelId(relId); thrInvOrderDetail.setThrCode(thrCode); thrInvOrderDetail.setReCount(String.valueOf(count)); - thrInvOrderDetails.add(thrInvOrderDetail); if (ObjectUtil.isNull(relId)) { exmsg.append(thrCode + ","); } //校验产品是否被供应商关联 - CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(relId); - if (udiRlSupEntity != null) - thrInvOrderDetail.setSupId(udiRlSupEntity.getCustomerId()); - else + List udiRlSupEntitys = udiRlSupService.findByUdiRlId(relId); + if (CollUtil.isNotEmpty(udiRlSupEntitys)) { + for (UdiRlSupEntity udiRlSupEntity : udiRlSupEntitys) { + Integer count1 = invProductService.selectExitCount("1000000", Long.parseLong(udiRlSupEntity.getCustomerId()), Long.parseLong(udiRlSupEntity.getUdiRlIdFk())); + if (IntUtil.value(count1 > 0)) { + thrInvOrderDetail.setSupId(udiRlSupEntity.getCustomerId()); + if (udiRlSupEntity.getPrice() == null) + thrInvOrderDetail.setPrice(BigDecimal.ZERO); + else + thrInvOrderDetail.setPrice(udiRlSupEntity.getPrice()); + } + } + if (thrInvOrderDetail.getSupId() == null) { + thrInvOrderDetail.setSupId(udiRlSupEntitys.get(0).getCustomerId()); + if (udiRlSupEntitys.get(0).getPrice() == null) + thrInvOrderDetail.setPrice(BigDecimal.ZERO); + else + thrInvOrderDetail.setPrice(udiRlSupEntitys.get(0).getPrice()); + } + + } else exmsg.append(thrCode + "供应商未关联"); @@ -1518,7 +1547,6 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { } else {//走项目组套 - thrInvOrder.setSkProject(1); StringBuilder exmsg = new StringBuilder(""); list.forEach(item -> { @@ -1537,7 +1565,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { Integer finalCount = count; if (IntUtil.value(cpMutiFilter) > 0 && IntUtil.value(finalCount) > 1) { - log.error(item.getCpmctymc() + "," + item.getThrCode() + "项目关联多个耗材对照,已杯过滤!"); + log.error(item.getCpmctymc() + "," + item.getThrCode() + "项目关联多个耗材对照,已被过滤!"); } else { skProjectDetailEntityList.forEach(sk -> { @@ -1546,6 +1574,10 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { thrInvOrderDetail.setOrderIdFk(billNo); thrInvOrderDetail.setRelId(sk.getRelId()); thrInvOrderDetail.setSupId(sk.getSupId() + ""); + UdiRlSupEntity udiRlSupEntity = udiRlSupService.findByUdiRlIdUnitFk(thrInvOrderDetail.getRelId() + "", thrInvOrderDetail.getSupId()); + if (udiRlSupEntity != null && udiRlSupEntity.getPrice() != null) { + thrInvOrderDetail.setPrice(udiRlSupEntity.getPrice()); + } Integer skCount = sk.getCount(); if (skCount != null && skCount > 0) { thrInvOrderDetail.setReCount(String.valueOf(skCount * finalCount)); diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index 23eb5bc27..62f654516 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -110,59 +110,64 @@ public class SyncThirdSysTask implements SchedulingConfigurer { List list = thrSystemDetailDao.selectAutoExecuteList(); if (CollUtil.isNotEmpty(list)) { log.info("本次查询到的接口列表数量:{}", list.size()); - list.parallelStream().forEach(thrSystemDetailEntity -> { - switch (thrSystemDetailEntity.getKey()) { - case ThirdSysConstant.WAREHOUSE_QUERY_URL: - //下载第三方仓库信息 - downloadThrInv(thrSystemDetailEntity); - break; - case ThirdSysConstant.CORP_URL: - //下载往来单位信息 - downloadThrCorp(thrSystemDetailEntity); - break; - case ThirdSysConstant.PI_QUERY_URL: - //下载第三方产品信息 - downloadThrPi(thrSystemDetailEntity); - break; - case ThirdSysConstant.BUS_TYPE_QUERY_URL: - //下载第三方单据类型 - downloadThrBusType(thrSystemDetailEntity); - break; - case ThirdSysConstant.ORDER_SUBMIT_URL: - //提交单据 - submitOrder(thrSystemDetailEntity); - break; - case ThirdSysConstant.ORDER_QUERY_URL: - downloadThrOrder(thrSystemDetailEntity); - break; - case ThirdSysConstant.PI_SUBMIT_URL: - //提交产品信息 - postRelProduct(thrSystemDetailEntity); - break; - case ThirdSysConstant.SICKER_QUERY_URL: - //下载患者信息 - downloadSicker(thrSystemDetailEntity); - break; - case ThirdSysConstant.INV_SF_ORDER_QUERY_URL: - //下载出入库明细收费 - downloadInvSfOrder(thrSystemDetailEntity); - break; - case ThirdSysConstant.INV_PH_ORDER_QUERY_URL: - //下载出入库明细普耗 - downloadInvPhOrder(thrSystemDetailEntity); - break; - case ThirdSysConstant.INV_GH_ORDER_QUERY_URL: - //下载出入库明细高耗 - downloadInvGhOrder(thrSystemDetailEntity); - break; - case ThirdSysConstant.SF_PROJECT_DICT_URL: - //下载收费项目字典 - downloadSfProject(thrSystemDetailEntity); - break; - default: - //其他接口暂不处理 - break; + list.forEach(thrSystemDetailEntity -> { + try { + switch (thrSystemDetailEntity.getKey()) { + case ThirdSysConstant.WAREHOUSE_QUERY_URL: + //下载第三方仓库信息 + downloadThrInv(thrSystemDetailEntity); + break; + case ThirdSysConstant.CORP_URL: + //下载往来单位信息 + downloadThrCorp(thrSystemDetailEntity); + break; + case ThirdSysConstant.PI_QUERY_URL: + //下载第三方产品信息 + downloadThrPi(thrSystemDetailEntity); + break; + case ThirdSysConstant.BUS_TYPE_QUERY_URL: + //下载第三方单据类型 + downloadThrBusType(thrSystemDetailEntity); + break; + case ThirdSysConstant.ORDER_SUBMIT_URL: + //提交单据 + submitOrder(thrSystemDetailEntity); + break; + case ThirdSysConstant.ORDER_QUERY_URL: + downloadThrOrder(thrSystemDetailEntity); + break; + case ThirdSysConstant.PI_SUBMIT_URL: + //提交产品信息 + postRelProduct(thrSystemDetailEntity); + break; + case ThirdSysConstant.SICKER_QUERY_URL: + //下载患者信息 + downloadSicker(thrSystemDetailEntity); + break; + case ThirdSysConstant.INV_SF_ORDER_QUERY_URL: + //下载出入库明细收费 + downloadInvSfOrder(thrSystemDetailEntity); + break; + case ThirdSysConstant.INV_PH_ORDER_QUERY_URL: + //下载出入库明细普耗 + downloadInvPhOrder(thrSystemDetailEntity); + break; + case ThirdSysConstant.INV_GH_ORDER_QUERY_URL: + //下载出入库明细高耗 + downloadInvGhOrder(thrSystemDetailEntity); + break; + case ThirdSysConstant.SF_PROJECT_DICT_URL: + //下载收费项目字典 + downloadSfProject(thrSystemDetailEntity); + break; + default: + //其他接口暂不处理 + break; + } + } catch (Exception e) { + log.error("执行第三方接口异常:{}", ExceptionUtils.getStackTrace(e)); } + }); } else { log.info("未配置自动执行的第三方接口列表");