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 b55687569..d52a36a7b 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -1,5 +1,7 @@ package com.glxp.api.controller.collect; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageInfo; @@ -26,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -48,6 +51,28 @@ public class IoCollectOrderController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + /** + * 获取下一单据 + * + * @param collectOrderRequest + * @return + */ + @GetMapping("/udiwms/basic/collect/order/next") + public BaseResponse getNextOrder(CollectOrderRequest collectOrderRequest) { + if (StrUtil.isEmpty(collectOrderRequest.getWorkPlaceCode())) { + return ResultVOUtils.error(500, "工位不能为空!"); + } + CollectOrderRequest request = new CollectOrderRequest(); + request.setLimit(1); + request.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); + request.setTagStatusList(List.of(1)); + List orderResponses = collectOrderService.filterList(request); + if (CollUtil.isNotEmpty(orderResponses)) + return ResultVOUtils.success(orderResponses.get(0)); + + return ResultVOUtils.error(500, "未查到待处理单据"); + } + @GetMapping("/udiwms/basic/collect/order/detail") public BaseResponse detail(CollectOrderBizRequest collectOrderBizRequest) { if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoSplitController.java b/src/main/java/com/glxp/api/controller/inout/IoSplitController.java index 3b31213da..fe9e851e9 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoSplitController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoSplitController.java @@ -137,7 +137,7 @@ public class IoSplitController extends BaseController { } //未拆零 - if (IntUtil.value(collectOrder.getSplitStatus()) != 0) { + if (IntUtil.value(collectOrder.getSplitStatus()) != 2) { splitCodeService.orderAutoTagCode(collectOrder); } diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 4b703fa61..ffe78be8b 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -1245,7 +1245,7 @@ public class IoCheckInoutService { } if (ioSplitFifoCodeEntity != null) { ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) + IntUtil.value(codeEntity.getCount())); - ioSplitFifoCodeEntity.setTotalCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()) + IntUtil.value(codeEntity.getReCount())); + ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getScanCount() * udiCalCountUtil.getSplitActCount(codeEntity.getRelId())); ioSplitFifoCodeEntity.setUpdateTime(new Date()); splitFifoCodeService.updateById(ioSplitFifoCodeEntity); } else { @@ -1253,7 +1253,7 @@ public class IoCheckInoutService { BeanUtils.copyProperties(codeEntity, splitCodeEntity); splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo()); splitCodeEntity.setScanCount(codeEntity.getCount()); - splitCodeEntity.setTotalCount(codeEntity.getReCount()); + ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getScanCount() * udiCalCountUtil.getSplitActCount(codeEntity.getRelId())); splitCodeEntity.setSupId(Long.parseLong(codeEntity.getSupId())); splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode()); splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit()); @@ -1273,7 +1273,7 @@ public class IoCheckInoutService { if (StrUtil.isEmpty(codeEntity.getSerialNo())) { if (ioSplitFifoCodeEntity != null) { ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount())); - ioSplitFifoCodeEntity.setTotalCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()) - IntUtil.value(codeEntity.getReCount())); + ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getScanCount() * udiCalCountUtil.getSplitActCount(codeEntity.getRelId())); ioSplitFifoCodeEntity.setUpdateTime(new Date()); splitFifoCodeService.updateById(ioSplitFifoCodeEntity); } diff --git a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java index a34ad5500..e11c6139d 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java @@ -53,6 +53,57 @@ public class UdiCalCountUtil { } } + public int getSplitActCount(UdiRelevanceResponse udiRelevanceResponse) { + //启用使用单元 + if (udiRelevanceResponse.getUseDy()) { + if (udiRelevanceResponse.getDiType() == 1) { + if (udiRelevanceResponse.getZxxsbzbhsydysl() == null || udiRelevanceResponse.getZxxsbzbhsydysl() == 0) { + udiRelevanceResponse.setZxxsbzbhsydysl(1); + } + return udiRelevanceResponse.getZxxsbzbhsydysl(); + } else if (udiRelevanceResponse.getDiType() == 4) { + if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { + udiRelevanceResponse.setBhzxxsbzsl(1); + } + if (udiRelevanceResponse.getZxxsbzbhsydysl() == null || udiRelevanceResponse.getZxxsbzbhsydysl() == 0) { + udiRelevanceResponse.setZxxsbzbhsydysl(1); + } + return udiRelevanceResponse.getBhzxxsbzsl() * udiRelevanceResponse.getZxxsbzbhsydysl(); + } else { + return udiRelevanceResponse.getBhzxxsbzsl(); + } + } else {//不启用使用单元 + Integer count = 1; + if (udiRelevanceResponse.getDiType() == 1) { + count = 1; + } else if (udiRelevanceResponse.getDiType() == 4) { + if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { + udiRelevanceResponse.setBhzxxsbzsl(1); + } + count = udiRelevanceResponse.getBhzxxsbzsl(); + } else { + count = udiRelevanceResponse.getBhzxxsbzsl(); + } + if (udiRelevanceResponse.getProductType() == 1) { + //耗材 + if (IntUtil.value(udiRelevanceResponse.getUseNum()) > 0) { + count = count * IntUtil.value(udiRelevanceResponse.getUseNum()); + } + } else { + //药品 + if (IntUtil.value(udiRelevanceResponse.getUseLeverCount()) > 0) { + count = count * IntUtil.value(udiRelevanceResponse.getUseLeverCount()); + } + } + return count; + } + } + + public int getSplitActCount(Long relId) { + return getSplitActCount(udiRelevanceService.selectGroupById(relId)); + } + + public int getActCount(IoCodeTempEntity codeTempEntity) { if (codeTempEntity.getRelId() != null) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId());