From 39f457f05d61aebb204f6369a9ef153c30fdea35 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Wed, 12 Mar 2025 17:20:10 +0800 Subject: [PATCH] =?UTF-8?q?3/12=20=E4=B8=8A=E8=B4=A7=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E6=A7=BD=E4=BD=8Dbug=E4=BC=98=E5=8C=961.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 61 +++++++------- .../inout/IoSplitFifoInvController.java | 19 +++++ .../api/dao/inout/IoSplitFifoInvMapper.java | 2 + .../api/res/inout/IoSplitInvResponse.java | 12 +++ .../service/inout/IoSplitFifoInvService.java | 52 +++++++++++- .../mapper/inout/IoSplitFifoInvMapper.xml | 81 ++++++++++++++++++- 6 files changed, 193 insertions(+), 34 deletions(-) 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 b7d82c030..6b6e5675a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -16,6 +16,7 @@ import com.glxp.api.constant.*; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.collect.*; import com.glxp.api.entity.inout.*; @@ -1576,32 +1577,42 @@ public class IoCodeTempController extends BaseController { IoCollectSet collectSet = collectSetService.getSet(); // 判断货位里面是否有相同产品 if (orderEntity != null && StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode())) { - SysWorkplaceQueue workplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper() - .eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode())); - if (workplaceQueue != null) { - //判断槽位产品是否一样 - if (StrUtil.isNotBlank(workplaceQueue.getRelId())) { - if (!udiRelevanceResponse.getId().equals(Long.parseLong(workplaceQueue.getRelId()))) { + SysWorkplace sysWorkplace = sysWorkplaceService.getOne(new LambdaQueryWrapper().eq(SysWorkplace::getWorkplaceId, addOrderRequest.getWorkPlaceCode())); + if (sysWorkplace.getQueueStatus() == 1){ + SysWorkplaceQueue workplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper() + .eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode())); + if (workplaceQueue != null) { + //判断槽位产品是否一样 + if (StrUtil.isNotBlank(workplaceQueue.getRelId())) { + if (!udiRelevanceResponse.getId().equals(Long.parseLong(workplaceQueue.getRelId()))) { // orderService.deleteByBillNo(orderId); - UdiRelevanceResponse udiRelevanceResponse2 = udiRelevanceService.selectByRelId(workplaceQueue.getRelId()); - return ResultVOUtils.error(507, "上货产品不符!" + "当前取货槽已被" + udiRelevanceResponse2.getCpmctymc() + "使用"); - } - } else { - //判断产品是否已经绑定其他槽位 - SysWorkplaceQueue workplaceQueue1 = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getRelId, udiRelevanceResponse.getId())); - if (workplaceQueue1 != null) { - String freightCode = workplaceQueue1.getFreightCode(); - SysWorkplaceFreight one = sysWorkplaceFreightService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceFreight::getCode, freightCode)); - Integer isSingQueue = one.getIsSingQueue(); - if (workplaceQueue1 != null && isSingQueue == 1) { - if (!orderEntity.getWorkPlaceQueueCode().equals(workplaceQueue1.getCode())) { - return ResultVOUtils.error(507, "当前货架已启用单品种槽位且产品已绑定在" + workplaceQueue1.getCode() + "取货槽"); + UdiRelevanceResponse udiRelevanceResponse2 = udiRelevanceService.selectByRelId(workplaceQueue.getRelId()); + return ResultVOUtils.error(507, "上货产品不符!" + "当前取货槽已被" + udiRelevanceResponse2.getCpmctymc() + "使用"); + } + } else { + //判断产品是否已经绑定其他槽位 + SysWorkplaceQueue workplaceQueue1 = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getRelId, udiRelevanceResponse.getId())); + if (workplaceQueue1 != null) { + String freightCode = workplaceQueue1.getFreightCode(); + SysWorkplaceFreight one = sysWorkplaceFreightService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceFreight::getCode, freightCode)); + Integer isSingQueue = one.getIsSingQueue(); + if (workplaceQueue1 != null && isSingQueue == 1) { + if (!orderEntity.getWorkPlaceQueueCode().equals(workplaceQueue1.getCode())) { + return ResultVOUtils.error(507, "当前货架已启用单品种槽位且产品已绑定在" + workplaceQueue1.getCode() + "取货槽"); + } } } } + } else { + return ResultVOUtils.error(500, "取货槽位不存在!"); + } + //校验完成 获取当前槽位 绑定产品 + SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper() + .eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode())); + if (sysWorkplaceQueue.getRelId() == null) { + sysWorkplaceQueue.setRelId(udiRelevanceResponse.getId() + ""); + sysWorkplaceQueueService.updateById(sysWorkplaceQueue); } - } else { - return ResultVOUtils.error(500, "取货槽位不存在!"); } if (orderEntity != null && CollUtil.isNotEmpty(codeEnttitys)) { boolean isSame = false; @@ -1613,13 +1624,6 @@ public class IoCodeTempController extends BaseController { if (!isSame) return ResultVOUtils.error(507, "上货产品不符!"); } - //校验完成 获取当前槽位 绑定产品 - SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper() - .eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode())); - if (sysWorkplaceQueue.getRelId() == null) { - sysWorkplaceQueue.setRelId(udiRelevanceResponse.getId() + ""); - sysWorkplaceQueueService.updateById(sysWorkplaceQueue); - } } else if (orderEntity != null && CollUtil.isNotEmpty(codeEnttitys) && IntUtil.value(collectSet.getSplitOutOnlyProductSwitch())) { for (IoCodeTempEntity ioOrderDetailCodeEntity : codeEnttitys) { //开启了 只允许上货一个产品开关 @@ -1632,7 +1636,6 @@ public class IoCodeTempController extends BaseController { } - if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo()); diff --git a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java index ce899e418..5d272cb75 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java @@ -17,6 +17,7 @@ import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.IoSplitInvResponse; import com.glxp.api.res.inout.IoSplitInvViewResponse; import com.glxp.api.service.auth.SysWorkplaceService; +import com.glxp.api.service.inout.IoSplitCodeService; import com.glxp.api.service.inout.IoSplitFifoCodeService; import com.glxp.api.service.inout.IoSplitFifoInvService; import com.glxp.api.service.thrsys.SysWorkplacePutRelService; @@ -48,6 +49,10 @@ public class IoSplitFifoInvController extends BaseController { @Resource IoSplitFifoCodeService ioSplitFifoCodeService; + + + + /** * 库存查询 * 若开启了库存预警,需要在库存上有一个状态显示预警状态 1:正常;2:低库存;3:负库存 @@ -136,4 +141,18 @@ public class IoSplitFifoInvController extends BaseController { EasyExcel.write(response.getOutputStream(), IoSplitInvViewResponse.class).sheet().doWrite(splitCodeEntities); } + + @GetMapping("/udiwms/ioSplit/inv/getCount") + public BaseResponse filterGetCount(IoSplitFifoInvRequest ioSplitFifoInvRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List splitCodeEntities = splitFifoInvService.getStock(ioSplitFifoInvRequest); + PageInfo pageInfo = new PageInfo<>(splitCodeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(splitCodeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } } diff --git a/src/main/java/com/glxp/api/dao/inout/IoSplitFifoInvMapper.java b/src/main/java/com/glxp/api/dao/inout/IoSplitFifoInvMapper.java index d973710b9..29093a278 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoSplitFifoInvMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoSplitFifoInvMapper.java @@ -12,4 +12,6 @@ import java.util.List; public interface IoSplitFifoInvMapper extends BaseMapper { List filterList(IoSplitFifoInvRequest ioSplitFifoInvRequest); List filterKcyjList(IoSplitFifoInvRequest ioSplitFifoInvRequest); + + List getStockList(IoSplitFifoInvRequest ioSplitFifoInvRequest); } diff --git a/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java b/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java index 810aa559a..ef1de3e0f 100644 --- a/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoSplitInvResponse.java @@ -150,4 +150,16 @@ public class IoSplitInvResponse { private Integer suggestOutCount; + + /** + * 工位库存剩余数量 + */ + private Integer remCount; + + /** + * 拆零剩余数量 + */ + private Integer splitRemCount; + + } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java index 87fc0351f..394c33f5a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -12,12 +12,10 @@ import com.glxp.api.entity.basic.SysWorkplaceLayer; import com.glxp.api.entity.basic.SysWorkplacePutRel; import com.glxp.api.entity.basic.SysWorkplaceQueue; import com.glxp.api.entity.collect.IoSplitFifoInvRel; -import com.glxp.api.entity.inout.IoCodeEntity; -import com.glxp.api.entity.inout.IoOrderEntity; -import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; -import com.glxp.api.entity.inout.IoSplitFifoInv; +import com.glxp.api.entity.inout.*; import com.glxp.api.exception.JsonException; import com.glxp.api.req.basic.SysWorkplaceLayerRequest; +import com.glxp.api.req.inout.IoSplitCodeRequest; import com.glxp.api.req.inout.IoSplitFifoInvRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.inout.IoSplitInvResponse; @@ -177,10 +175,15 @@ public class IoSplitFifoInvService extends ServiceImpl 0){ return ioSplitFifoInvs.get(0).getWorkPlaceQueueCode(); } + + SysWorkplaceQueue workplaceQueue = queues.get(0); // 使用流来过滤掉匹配的元素 List filteredQueues = queues.stream() .filter(queue -> { + if (queue.getRelId() != null) { + return false; + } List list = list( new LambdaQueryWrapper() .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()) @@ -381,5 +384,46 @@ public class IoSplitFifoInvService extends ServiceImpl getStock(IoSplitFifoInvRequest ioSplitFifoInvRequest) { + if (ioSplitFifoInvRequest == null) { + return Collections.emptyList(); + } + if (ioSplitFifoInvRequest.getPage() != null) { + int offset = (ioSplitFifoInvRequest.getPage() - 1) * ioSplitFifoInvRequest.getLimit(); + PageHelper.offsetPage(offset, ioSplitFifoInvRequest.getLimit()); + } + List ioSplitInvResponses = this.baseMapper.getStockList(ioSplitFifoInvRequest); + for (IoSplitInvResponse ioSplitInvResponse : ioSplitInvResponses){ + IoSplitCodeRequest ioSplitCodeRequest = new IoSplitCodeRequest(); + ioSplitCodeRequest.setRelId(ioSplitInvResponse.getRelId()); + List ioSplitCodeEntities = ioSplitCodeService.filterList(ioSplitCodeRequest); + if (ioSplitCodeEntities.size() > 0) { + int totalRemainCount = ioSplitCodeEntities.stream() + .mapToInt(item -> item.getRemainCount()) + .sum(); + ioSplitInvResponse.setSplitRemCount(totalRemainCount); + } + } +// ioSplitInvResponses.forEach(t -> { +// if (IntUtil.value(t.getQueueEnableRemind())) { +// int count = IntUtil.value(t.getReCount()) - IntUtil.value(t.getQueueRemindCount()); +// if (count > 0) { +// t.setRemindState(1); +// } else { +// t.setRemindState(2); +// } +// } else { +// t.setRemindState(0); +// } +// Integer suggestOutCount = t.getSuggestOutCount(); +// if (suggestOutCount != null && suggestOutCount < 0) { +// t.setSuggestOutCount(0); +// } +// }); + return ioSplitInvResponses; + } } diff --git a/src/main/resources/mybatis/mapper/inout/IoSplitFifoInvMapper.xml b/src/main/resources/mybatis/mapper/inout/IoSplitFifoInvMapper.xml index a6426b00c..0f3808fab 100644 --- a/src/main/resources/mybatis/mapper/inout/IoSplitFifoInvMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoSplitFifoInvMapper.xml @@ -138,7 +138,7 @@ swf.freightRow, (ifnull(swq.maxDrugCount,0) - ifnull(isfi.reCount,0)) as suggestOutCount from - (select relId,sum(reCodeCount) as reCount,sum(availableCount) as availableCount,supId,workPlaceQueueCode,workPlaceCode,busType from io_split_fifo_inv + (select relId,sum(reCodeCount) as reCount,sum(availableCount) as availableCount,sum(reCount) as remCount,supId,workPlaceQueueCode,workPlaceCode,busType from io_split_fifo_inv group by relId,supId,workPlaceQueueCode,workPlaceCode,busType ) as isfi LEFT JOIN basic_udirel bu ON bu.id = isfi.relId @@ -214,4 +214,83 @@ GROUP BY isfi.workPlaceQueueCode order by swf.freightRow,isfi.workPlaceQueueCode + + +