From b27b4df7fac1fdb12d742c55595f1d5ef7009894 Mon Sep 17 00:00:00 2001 From: yewj Date: Mon, 26 Aug 2024 18:25:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoOrderController.java | 3 +- .../collect/IoCollectOrderService.java | 35 ++++++++++++++++--- .../service/inout/IoCheckInoutService.java | 8 +++++ .../service/inout/IoSplitFifoCodeService.java | 34 +++++++++--------- 4 files changed, 56 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index a03d4c7b1..c91160fd6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -332,7 +332,7 @@ public class IoOrderController extends BaseController { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); //要是特殊往来信息没有就创建 - if (addOrderRequest.getOrderType() != null){ + if (addOrderRequest.getOrderType() != null) { orderEntity.setOrderType(addOrderRequest.getOrderType()); } orderEntity.setFromCorp(ioAddInoutService.updateCorp(bussinessTypeEntity, addOrderRequest.getFromCorp(), addOrderRequest.getSickerAdNum())); @@ -400,7 +400,6 @@ public class IoOrderController extends BaseController { resultList = ioAddInoutService.checkPrice(codeTempEntity, bussinessTypeEntity, resultList); } } - if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { if (CollUtil.isNotEmpty(orderDetailBizEntities)) { 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 05960f780..3d3b578a0 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -34,6 +34,7 @@ import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.IoCodeTempService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.service.inout.IoSplitFifoCodeService; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.util.IntUtil; import com.glxp.api.util.MsDateUtil; @@ -43,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; @Service public class IoCollectOrderService extends ServiceImpl { @@ -73,6 +75,8 @@ public class IoCollectOrderService extends ServiceImpl().eq(IoCollectOrder::getBillNo, billNo).last("limit 1")); @@ -192,6 +196,7 @@ public class IoCollectOrderService extends ServiceImpl list = orderService.filterList(filterOrderRequest); List collectOrderList = new ArrayList<>(); + List allWorksList = new ArrayList<>(); for (IoOrderResponse ioOrderEntity : list) { if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { @@ -276,20 +281,30 @@ public class IoCollectOrderService extends ServiceImpl sysWorkplaceMap = new HashMap<>(); + for (SysWorkplaceResponse sysWorkplace : allWorksList) { + sysWorkplaceMap.put(sysWorkplace.getId(), sysWorkplace); + } + for (SysWorkplaceResponse value : sysWorkplaceMap.values()) { + splitFifoCodeService.preAllotInv(value.getWorkplaceId()); + } } + public void importPrescribe() { //下载处方 List basicSkPrescribeEntities = basicSkPrescribeService.list(); - + List allWorksList = new ArrayList<>(); List collectOrderList = new ArrayList<>(); for (BasicSkPrescribeEntity basicSkPrescribeEntity : basicSkPrescribeEntities) { // BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByFromCode(String.valueOf(basicSkPrescribeEntity.getAddr())); @@ -374,10 +389,19 @@ public class IoCollectOrderService extends ServiceImpl sysWorkplaceMap = new HashMap<>(); + for (SysWorkplaceResponse sysWorkplace : allWorksList) { + sysWorkplaceMap.put(sysWorkplace.getId(), sysWorkplace); + } + for (SysWorkplaceResponse value : sysWorkplaceMap.values()) { + splitFifoCodeService.preAllotInv(value.getWorkplaceId()); + } + } @Transactional(rollbackFor = Exception.class) @@ -430,16 +454,17 @@ public class IoCollectOrderService extends ServiceImpl { + splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode()); + }); } else if (orderEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { //拆零预出库退回 List codeList = codeService.findByOrderId(orderEntity.getBillNo()); @@ -1283,6 +1288,9 @@ public class IoCheckInoutService { } } splitFifoCodeService.removeBatchByIds(splitCodeEntities); + ThreadUtil.execAsync(() -> { + splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode()); + }); } } } else { diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java index e343a1574..41df48b31 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java @@ -120,8 +120,7 @@ public class IoSplitFifoCodeService extends ServiceImpl bizList = collectOrderBizMapper.filterList(bizRequest); - if (CollUtil.isNotEmpty(bizList)){ + if (CollUtil.isNotEmpty(bizList)) { //自动分配 工位存量、更新splitMap、更新 bizList上的 缺少存量数 Integer invAlert = autoAllocationWorkPace(splitMap, bizList); - collectOrderMapper.updateInvAlert(order.getId(),invAlert); + collectOrderMapper.updateInvAlert(order.getId(), invAlert); } } } /** - * 自动分配 工位存量、更新splitMap、更新 bizList上的 缺少存量数 + * 自动分配 工位存量、更新splitMap、更新 bizList上的 缺少存量数 + * * @param splitMap * @param bizList */ @@ -174,16 +174,16 @@ public class IoSplitFifoCodeService extends ServiceImpl ioSplitCodeResponses = splitMap.get(relId); List newioSplitCodeResponses = new ArrayList<>(ioSplitCodeResponses.size()); - if (CollUtil.isNotEmpty(ioSplitCodeResponses)){ - for (int j = 0; j < ioSplitCodeResponses.size() ; j++) { + if (CollUtil.isNotEmpty(ioSplitCodeResponses)) { + for (int j = 0; j < ioSplitCodeResponses.size(); j++) { IoSplitCodeResponse ioSplit = ioSplitCodeResponses.get(j); Integer totalCount = ioSplit.getTotalCount(); - if ((StrUtil.isBlank(batchNo) || batchNo.equals(ioSplit.getBatchNo())) && count > 0 && totalCount >0){ + if ((StrUtil.isBlank(batchNo) || batchNo.equals(ioSplit.getBatchNo())) && count > 0 && totalCount > 0) { Integer resCount = totalCount - count;//预分配后剩余 工位存量 - if(resCount >= 0){//足够分配 + if (resCount >= 0) {//足够分配 count = 0; ioSplit.setTotalCount(resCount); - }else {//不够分配 + } else {//不够分配 count = -resCount; ioSplit.setTotalCount(0); } @@ -191,14 +191,14 @@ public class IoSplitFifoCodeService extends ServiceImpl 0){//不够分配 - collectOrderBizMapper.updateAutoResCount(bizId,-count); - invAlert = 2; - }else { - collectOrderBizMapper.updateAutoResCount(bizId,collectOrderBizResponse.getCount()); + if (count > 0) {//不够分配 + collectOrderBizMapper.updateAutoResCount(bizId, -count); + invAlert = 2; + } else { + collectOrderBizMapper.updateAutoResCount(bizId, collectOrderBizResponse.getCount()); } }