From 1e1672da9f26247bd81076f96eeac004c72e7460 Mon Sep 17 00:00:00 2001 From: yewj Date: Wed, 27 Nov 2024 14:27:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B5=8B=E7=A0=81=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=AE=8C=E6=88=90=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E5=85=BC=E5=AE=B9=E8=87=AA=E5=8A=A8=E8=B5=8B=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderController.java | 3 +-- .../inout/IoCodeTempController.java | 16 ++++++++++--- .../collect/IoCollectOrderService.java | 8 +++---- .../api/service/inout/IoSplitCodeService.java | 24 +++++++++++-------- .../task/AsyncIoCollectOrderFinishTask.java | 24 +++++++++++++++---- src/main/resources/application-dev.yml | 4 ++-- 6 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 69e3facb8..7d56b762f 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -404,7 +404,7 @@ public class IoCollectOrderController extends BaseController { } } collectOrderRequest.setUpdateUser(getUserId()); - collectOrderService.finishOrder(collectOrderRequest, getUser()); + collectOrderService.finishOrder(collectOrderRequest, getUser(), false); return ResultVOUtils.success(); } @@ -451,7 +451,6 @@ public class IoCollectOrderController extends BaseController { /** - * * @param collectOrderRequest * @return */ diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 3be7c342b..46828ba4f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1814,7 +1814,8 @@ public class IoCodeTempController extends BaseController { } else codeTempService.insert(codeEnttity); // 查询是否存在药品关联信息 后将结果更新至 temp表 - relCodeBatchService.threadUpdateIoCodeTempEntity(code); + updateRelCode(bussinessTypeEntity,code); +// relCodeBatchService.threadUpdateIoCodeTempEntity(code); // } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { } else if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity); @@ -1823,12 +1824,15 @@ public class IoCodeTempController extends BaseController { } else codeTempService.insert(codeEnttity); // 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 - relCodeBatchService.threadUpdateIoCodeTempEntity(code); + updateRelCode(bussinessTypeEntity,code); +// relCodeBatchService.threadUpdateIoCodeTempEntity(code); } else { checkPrice(codeEnttity, bussinessTypeEntity, inBatch, codeEnttitys); codeTempService.insert(codeEnttity); + updateRelCode(bussinessTypeEntity,code); + // 查询是否存在药品关联信息 后将结果更新至 temp表 - relCodeBatchService.threadUpdateIoCodeTempEntity(code); +// relCodeBatchService.threadUpdateIoCodeTempEntity(code); } } addCodeResult.setOrderId(orderId); @@ -1836,6 +1840,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.success(addCodeResult); } + + public void updateRelCode(BasicBussinessTypeEntity bussinessTypeEntity, String code) { + if (!(bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN))) + relCodeBatchService.threadUpdateIoCodeTempEntity(code); + } + @Resource RelCodeDetailService relCodeDetailService; diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 9cf36fdbe..1cd1b0782 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -706,12 +706,12 @@ public class IoCollectOrderService extends ServiceImpl ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode); @@ -146,8 +146,10 @@ public class IoSplitCodeService extends ServiceImpl 0) { collectOrderBiz.setTagStatus(2); collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!"); - return; -// throw new JsonException(500, "提交失败,工位库存数量不足!"); + if (isAuto) + throw new JsonException(500, "提交失败,工位库存数量不足!"); + else return; } else { collectOrderBiz.setTagStatus(3); collectOrderBiz.setTagMsg("赋码完成!"); @@ -210,7 +213,7 @@ public class IoSplitCodeService extends ServiceImpl 0) { List ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo()); if (ioSplitFifoCodeEntities.size() < quotient) { - return; -// throw new JsonException(500, "提交失败,工位库存数量不足!"); + if (isAuto) + throw new JsonException(500, "提交失败,工位库存数量不足!"); + else return; } for (int i = 0; i < quotient; i++) { IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i); @@ -368,7 +372,7 @@ public class IoSplitCodeService extends ServiceImpl 0) { - splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode); + splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode, isAuto); } } ArrayList ioCollectOrderBizBackups = new ArrayList<>(); @@ -441,7 +445,7 @@ public class IoSplitCodeService extends ServiceImpl 0) { - splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode); + splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode, false); } if (collectOrderBiz.getTagStatus() == 2) { throw new JsonException(500, "确认失败,工位库存数量不足!"); diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java index f874c7142..3c8d1f42c 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; import com.glxp.api.dao.schedule.ScheduledDao; import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.basic.SysWorkplaceBus; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectSet; @@ -15,6 +16,7 @@ import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; +import com.glxp.api.service.basic.SysWorkplaceBusService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; import com.glxp.api.service.collect.IoCollectOrderService; import com.glxp.api.service.collect.IoCollectOriginService; @@ -24,6 +26,7 @@ import com.glxp.api.util.MsDateUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; @@ -47,6 +50,9 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer { SysWorkplaceDocumentService sysWorkplaceDocumentService; @Resource IoCollectOrderService collectOrderService; + @Resource + SysWorkplaceBusService sysWorkplaceBusService; + @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { scheduledTaskRegistrar.addTriggerTask(() -> process(), @@ -64,17 +70,27 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer { private void process() { List list = collectOrderService.list(new LambdaQueryWrapper().eq(IoCollectOrder::getTagStatus, 1)); + + if (CollUtil.isNotEmpty(list)) { for (IoCollectOrder collectOrder : list) { SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(collectOrder.getBusType()); - if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) { - if ( sysWorkplaceDocumentEntity.getAutoHandle()){ + if (sysWorkplaceDocumentEntity != null && IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) { + CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); + BeanUtils.copyProperties(collectOrderRequest, collectOrder); + //获取当前业务类型对应的采集工位 + SysWorkplaceBus sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getWorkplaceCode()).last("limit 1")); + if (sysWorkplaceBus == null) + break; + collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode()); + collectOrderRequest.setBusType(sysWorkplaceBus.getBusTypeCode()); + collectOrderRequest.setBillNo(collectOrder.getBillNo()); + if (sysWorkplaceDocumentEntity.getAutoHandle()) { //单据是否自动完成 是 调用 完成 AuthAdmin authAdmin = new AuthAdmin(); authAdmin.setId(1l); - CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); collectOrderRequest.setUpdateUser(1l); - collectOrderService.finishOrder(collectOrderRequest, authAdmin); + collectOrderService.finishOrder(collectOrderRequest, authAdmin, true); } } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 79850c005..550f24925 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://192.168.0.206:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: Glxp@6066 + password: 123456 hikari: connection-timeout: 60000 maximum-pool-size: 20