From d9195fef7be51ac70e6c6a3b101d7b0de6c30654 Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 1 Apr 2025 13:39:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=81=E9=87=87=E8=B4=AD=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderController.java | 8 +- .../controller/inout/IoOrderController.java | 11 +- .../collect/IoCollectOrderBackupMapper.java | 6 +- .../service/inout/IoCheckInoutService.java | 15 ++- .../api/service/inout/IoSplitCodeService.java | 110 +++++++++++++++--- .../service/inout/IoSplitFifoCodeService.java | 1 - .../impl/IoOrderDetailBizServiceImpl.java | 13 ++- 7 files changed, 130 insertions(+), 34 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 f3f9924d0..c63a04933 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -416,21 +416,21 @@ public class IoCollectOrderController extends BaseController { List collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest); boolean isAllTag = true; String msg = ""; - if (CollUtil.isNotEmpty(collectOrderBizResponses)){ + if (CollUtil.isNotEmpty(collectOrderBizResponses)) { for (int i = 0; i < collectOrderBizResponses.size(); i++) { CollectOrderBizResponse collectOrderBizResponse = collectOrderBizResponses.get(i); - if ( !(StrUtil.isNotEmpty(collectOrderBizResponse.getFinishUdiCode()) || collectOrderBizResponse.getAutoTagStatus() == 2) ) { + if (!(StrUtil.isNotEmpty(collectOrderBizResponse.getFinishUdiCode()) || collectOrderBizResponse.getAutoTagStatus() == 2)) { isAllTag = false; String cpmctymc = collectOrderBizResponse.getCpmctymc(); Integer count = collectOrderBizResponse.getCount(); Integer autoResCount = IntUtil.value(collectOrderBizResponse.getAutoResCount()); - msg = msg +" "+ cpmctymc + ":未采集数量" + (count - autoResCount) + ";"; + msg = msg + " " + cpmctymc + ":未采集数量" + (count - autoResCount) + ";"; } } } if (!isAllTag) { - return ResultVOUtils.error(502, "该业务单据未全部赋码【" + msg.replaceAll(";$", "") + "】,是否强制完成单据?"); + return ResultVOUtils.error(502, "该业务单据未全部赋码【" + msg.replaceAll(";$", "") + "】,是否强制完成单据?"); } } collectOrderService.finishOrder(collectOrderRequest, getUser(), false); 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 2cc00b860..833010afb 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -155,8 +155,10 @@ public class IoOrderController extends BaseController { PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } + @Resource private IoOrderInvoiceMapper ioOrderInvoiceMapper; + @AuthRuleAnnotation("") @GetMapping("/udiwms/inout/order/filterList") public BaseResponse filterOrderList(FilterOrderRequest filterOrderRequest) { @@ -197,9 +199,9 @@ public class IoOrderController extends BaseController { ioOrderResponse.setCheckStatus(0 + ""); } long count = ioOrderInvoiceMapper.selectCount( - new QueryWrapper().eq("orderIdFk",ioOrderResponse.getBillNo()) + new QueryWrapper().eq("orderIdFk", ioOrderResponse.getBillNo()) ); - if(count>0){ + if (count > 0) { ioOrderResponse.setInvoiceStatus(2); } } @@ -465,7 +467,7 @@ public class IoOrderController extends BaseController { orderService.update(orderEntity); checkInoutService.check(addOrderRequest.getBillNo()); } else { - if (IntUtil.value(bussinessTypeEntity.getCheckWebNewType()) == 3) { + if ((IntUtil.value(bussinessTypeEntity.getCheckWebNew()) == 3 || IntUtil.value(bussinessTypeEntity.getCheckWebNew()) == 2) && IntUtil.value(bussinessTypeEntity.getCheckWebNewType()) == 3) { String errMsg = checkInoutService.bizOrderCheckPass(orderDetailBizEntities, orderDetailCodeEntities); if (StrUtil.isNotEmpty(errMsg)) { return ResultVOUtils.error(500, errMsg); @@ -605,6 +607,7 @@ public class IoOrderController extends BaseController { pageSimpleResponse.setList(codeEntities); return ResultVOUtils.success(pageSimpleResponse); } + @AuthRuleAnnotation("") @GetMapping("admin/warehouse/inout/findCheckCodeByBiz") public BaseResponse findCheckCodeByBiz(FilterCodeRequest filterCodeRequest) { @@ -1353,7 +1356,7 @@ public class IoOrderController extends BaseController { @GetMapping("/udiwms/inout/order/getProcessingOrder") public BaseResponse getProcessingOrder(AddOrderRequest addOrderRequest) { - IoOrderResponse order = orderService.findByWorkPlaceCode(addOrderRequest.getWorkPlaceCode() + "", addOrderRequest.getWorkPlaceQueueCode(), getUserId(),addOrderRequest.getAction(),addOrderRequest.getFifoSplitTag()); + IoOrderResponse order = orderService.findByWorkPlaceCode(addOrderRequest.getWorkPlaceCode() + "", addOrderRequest.getWorkPlaceQueueCode(), getUserId(), addOrderRequest.getAction(), addOrderRequest.getFifoSplitTag()); return ResultVOUtils.success(order); } diff --git a/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java b/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java index 533dae4e8..9c789fe83 100644 --- a/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java @@ -1,6 +1,9 @@ package com.glxp.api.dao.collect; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.dao.basic.BasicBussinessTypeDao; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.collect.IoCollectOrderBackup; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.CollectOrderUploadCountRequest; @@ -11,9 +14,10 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface IoCollectOrderBackupMapper extends BaseMapper { +public interface IoCollectOrderBackupMapper extends BaseMapperPlus { List filterList(CollectOrderRequest collectOrderRequest); + List getList(CollectOrderUploadCountRequest collectOrderUploadCountRequest); } 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 279b070f4..7cac5168b 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -146,7 +146,7 @@ public class IoCheckInoutService { int update = orderService.update(orderEntity); log.error("修改订单结果========:::::::" + update); } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } log.error("修改订单"); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); @@ -599,11 +599,10 @@ public class IoCheckInoutService { return; } - String errMsg = ""; BasicBussinessTypeEntity businessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); - if (IntUtil.value(businessTypeEntity.getCheckWebNew()) != 3 || IntUtil.value(businessTypeEntity.getCheckWebNewType()) != 3) { + if (IntUtil.value(businessTypeEntity.getCheckWebNew()) != 3 && IntUtil.value(businessTypeEntity.getCheckWebNewType()) != 3) { //正向校验 for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { String msg = ""; @@ -716,7 +715,7 @@ public class IoCheckInoutService { codeEntity.setCheckSuccess(false); } for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { - bizEntity.setCheckSuccess(false); + bizEntity.setCheckSuccess(true); } for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { String msg = ""; @@ -762,13 +761,13 @@ public class IoCheckInoutService { } for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { String msg = ""; - Integer count = orderDetailCodeService.findByRelIdCount(orderEntity.getBillNo(), bizEntity.getBindRlFk(), bizEntity.getBatchNo()); - if (IntUtil.value(bizEntity.getCount()) == IntUtil.value(count)) { + int count = IntUtil.value(orderDetailCodeService.findByRelIdCount(orderEntity.getBillNo(), bizEntity.getBindRlFk(), null)); + if (bizEntity.getCount() <= count) { bizEntity.setCheckSuccess(true); - bizEntity.setScanCount(count); + bizEntity.setScanCount(bizEntity.getCount()); } else { msg = "数量不匹配"; - bizEntity.setScanCount(count); + bizEntity.setScanCount(bizEntity.getScanCount() + count); bizEntity.setCheckSuccess(false); } bizEntity.setErrMsg(msg); diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index 6a9e309a9..f80dbfae3 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.Constant; +import com.glxp.api.dao.collect.IoCollectCodeBackMapper; +import com.glxp.api.dao.collect.IoCollectOrderBackupMapper; import com.glxp.api.dao.inout.IoCodeLostMapper; import com.glxp.api.dao.inout.IoSplitCodeMapper; import com.glxp.api.entity.basic.SysWorkplacePutRel; @@ -399,18 +401,48 @@ public class IoSplitCodeService extends ServiceImpl collectOrderCodeManList){ + public void replaceCode(List collectOrderCodeManList, IoCollectOrder collectOrder) { for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeManList) { // 1. 查找已完成成单据扫码是否已被分配 + List collectCodeBackups = collectCodeBackMapper.selectList(new LambdaQueryWrapper() + .eq(IoCollectCodeBackup::getBusType, collectOrder.getBusType()) + .eq(IoCollectCodeBackup::getCode, collectOrderCodeMan.getUdiCode()) + ); + + if (CollUtil.isNotEmpty(collectCodeBackups)) { + IoCollectCodeBackup collectCodeBackup = collectCodeBackups.get(0); + IoCollectOrderBackup collectOrderBackup = collectOrderBackupMapper.selectOne(new LambdaQueryWrapper().eq(IoCollectOrderBackup::getBillNo, collectCodeBackup.getBillNo())); + // 单据已被上传至医保 + if (IntUtil.value(collectOrderBackup.getUploadStatus()) == 2) { + + + } else { + //单据未上传医保,上传医保失败 + + } + } + + // 2. 查找已完成单据码是否已被上传 // 3. 查找已完成码,标记该码已被手动赋码 - // 4. 查找码库未被使用的码,赋码至已完成的码 + // 4. 查找码库未被使用的码,赋码至已完成的码,插入码表记录 + + // 5. 如果已被上传,则标记该码已被上传,从码库查出未被使用的码,插入码表记录,标记该码已被上传,替换成已码库的码 + // 5. 查找 @@ -418,6 +450,53 @@ public class IoSplitCodeService extends ServiceImpl splitFifoCodeEntitys = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderCodeMan.getRelId(), collectOrderCodeMan.getBatchNo(), null); + if (CollUtil.isNotEmpty(splitFifoCodeEntitys)) { + IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeEntitys.get(0); + collectOrderCodeMan.setRemoveFlag(true); + if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) { + splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); + IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); + if (splitFifoInv != null) { + splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount())); + splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(splitFifoCodeEntity.getScanCount())); + int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()); + splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0); + splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount())); + splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount())); + splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())); + splitFifoInvService.updateById(splitFifoInv); + } + + } else { + //队列码数量大于扫码数量更新数量(一般指无序列号) + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setId(collectOrderCodeMan.getRelId()); + filterUdiRelRequest.setPackLevel("1"); + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest); + int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl(); + splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder().id(splitFifoCodeEntity.getId()).scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount())).totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount).build()); + + IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); + if (splitFifoInv != null) { + splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount); + splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(collectOrderCodeMan.getScanCount())); + int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - removeCount; + splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0); + splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount())); + splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount())); + splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())); + splitFifoInvService.updateById(splitFifoInv); + } + } + } + } + /** * 完成销售出库自动扣工位库存 */ @@ -463,7 +542,8 @@ public class IoSplitCodeService extends ServiceImpl filterCode(List collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse udiRelevanceResponse) { + public List filterCode + (List collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse + udiRelevanceResponse) { int unTagCount = IntUtil.value(collectOrderBiz.getScanActCount()) - collectOrderBiz.getCount(); List newList = new ArrayList(); int count = 0; @@ -655,6 +737,7 @@ public class IoSplitCodeService extends ServiceImpl() - .eq("code",ioSplitFifoCodeEntity.getCode()) + .eq("code", ioSplitFifoCodeEntity.getCode()) .last("limit 1") ); - if(ioCodeLostEntity!=null && StringUtils.isNotEmpty(ioCodeLostEntity.getBatchNo())){ + if (ioCodeLostEntity != null && StringUtils.isNotEmpty(ioCodeLostEntity.getBatchNo())) { collectOrderBiz.setBatchNo(ioCodeLostEntity.getBatchNo()); collectOrderBiz.setProductDate(ioCodeLostEntity.getProduceDate()); collectOrderBiz.setExpireDate(ioCodeLostEntity.getExpireDate()); @@ -700,9 +783,9 @@ public class IoSplitCodeService extends ServiceImpl { - ioCollectLedGroupService.openLed(collectOrderBizs); - }); +// ThreadUtil.execAsync(() -> { +// ioCollectLedGroupService.openLed(collectOrderBizs); +// }); collectOrderBizService.updateBatchById(collectOrderBizs); } @@ -757,7 +840,8 @@ public class IoSplitCodeService extends ServiceImpl splitFifoCodeEntities; 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 d14d475e5..e7cf5e1c0 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java @@ -103,7 +103,6 @@ public class IoSplitFifoCodeService extends ServiceImpl orderDetailBizEntities = ioOrderDetailBizDao.selectList(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId)); if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - return orderDetailBizEntities.get(0); + + for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { + count = count + orderDetailBizEntity.getCount(); + } + IoOrderDetailBizEntity orderDetailBizEntity = orderDetailBizEntities.get(0); + orderDetailBizEntity.setCount(count); + + return orderDetailBizEntity; } return null; } @@ -578,6 +586,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { public List checkOrderList(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); List orderDetailBizEntities = findByOrderId(orderId); + List list = new ArrayList<>(orderDetailBizEntities.size()); BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderEntity.getAction()); if (bussinessTypeEntity.getCheckWebNew() == 2) { checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); @@ -585,8 +594,6 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { List codeEntities = orderDetailCodeService.findByOrderId(orderId); checkInoutService.bizOrderCheck(orderDetailBizEntities, codeEntities); } - - List list = new ArrayList<>(orderDetailBizEntities.size()); for (IoOrderDetailBizEntity ioOrderDetailBizEntity : orderDetailBizEntities) { IoOrderDetailBizEntity ioOrderDetailBizEntity1 = new IoOrderDetailBizEntity(); BeanUtils.copyProperties(ioOrderDetailBizEntity, ioOrderDetailBizEntity1);