From de960cdf172575137a04d88cbe65388ad2093b0a Mon Sep 17 00:00:00 2001 From: zhangzq Date: Tue, 4 Aug 2026 14:46:08 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E5=80=92=E6=89=A3,?= =?UTF-8?q?=E4=B8=BA=E8=B4=9F=E6=95=B0=E7=9A=84=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PdaIosOutServiceImpl.java | 22 +++++-------------- .../impl/StInventoryServiceImpl.java | 22 ++++++++++++++----- .../impl/ReceiveOutReturnServiceImpl.java | 13 ----------- 3 files changed, 22 insertions(+), 35 deletions(-) diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java index 28cebb0..bda2d02 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java @@ -64,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.util.*; import java.util.function.Function; @@ -278,8 +279,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { for (WorkOrderBomItem bomItem : workOrderBomItems) { final String materialCode = bomItem.getMaterialCode(); final BigDecimal bomQty = bomItem.getBomQty(); - final BigDecimal qty = bomQty.multiply(param.getReportedQty()); - final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode); + final BigDecimal qty = bomQty.multiply(param.getReportedQty()).setScale(0, RoundingMode.HALF_UP); + final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode).setScale(0, RoundingMode.HALF_UP); ReceiveOutRequest.Entrys entry = new ReceiveOutRequest.Entrys(); entry.setSeq(Integer.valueOf(bomItem.getItemNo())); entry.setMaterialno(materialCode); @@ -290,7 +291,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { entry.setSrcbillno(param.getSrcBillNo()); entry.setSrcbillid(param.getSrcBillId()); entry.setSrcbillentryid(bomItem.getItemId()); - if (bomQty.intValue() == 0 || qty.compareTo(actualQty) > 0) { + if (bomQty.intValue() == 0 || qty.subtract(actualQty).intValue() > 0) { status = StockReturnStatusEnum.FAIL.getCode(); if (bomQty.intValue() == 0 ){ entry.setRemark("bom数量为0"); @@ -301,6 +302,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { } entrys.add(entry); }else { + final BigDecimal subtract = groupInventoryMap.get(materialCode).subtract(qty); + groupInventoryMap.put(materialCode,subtract.setScale(0, RoundingMode.HALF_UP)); final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl(); ioStorInvDtl.setIostorinv_id(ioStorInv.getIostorinv_id()); ioStorInvDtl.setIostorinvdtl_id(IdUtil.getStringId()); @@ -345,19 +348,6 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { .structCode(struct.getStruct_code()) .materialCode(materialCode) .build()); - if (actualQty.subtract(qty).intValue() > 0 ){ - mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper() - .set(GroupPlate::getQty,actualQty.subtract(qty)) - .eq(GroupPlate::getMaterial_code,materialCode) - .eq(GroupPlate::getStoragevehicle_code, param.getStorageVehicleCode()) - .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) - ); - }else { - mdPbGroupplateMapper.delete(new LambdaUpdateWrapper() - .eq(GroupPlate::getMaterial_code,materialCode) - .eq(GroupPlate::getStoragevehicle_code, param.getStorageVehicleCode()) - .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))); - } entry.setRemark("等待回传EAS"); entry.setStatus(StockReturnStatusEnum.TODO.getCode()); entrys.add(entry); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java index e58a93f..37004f2 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java @@ -162,6 +162,9 @@ public class StInventoryServiceImpl implements IStInventoryService { queryWrapper.eq(GroupPlate::getPcsn, outFinishParam.getPcsn()); } GroupPlate groupPlate = iMdPbGroupplateService.getOne(queryWrapper); + if (groupPlate == null){ + throw new BadRequestException("当前仓库无库存"); + } final BigDecimal force_qty = groupPlate.getFrozen_qty().subtract(outFinishParam.getChangeQty()); if (groupPlate.getQty().subtract(outFinishParam.getChangeQty()).intValue() <= 0){ iMdPbGroupplateService.removeById(groupPlate.getGroup_id()); @@ -170,12 +173,19 @@ public class StInventoryServiceImpl implements IStInventoryService { if (force_qty.intValue()< 0 ){ log.error("冻结数量为附属"+groupPlate.getStoragevehicle_code()+"_"+ groupPlate.getMaterial_code()); } - groupPlate.setFrozen_qty(BigDecimal.ZERO.max(forceQty)); - groupPlate.setQty(groupPlate.getQty().subtract(outFinishParam.getChangeQty())); - groupPlate.setUpdate_id(SecurityUtils.getCurrentUserId()); - groupPlate.setUpdate_name(SecurityUtils.getCurrentNickName()); - groupPlate.setUpdate_time(DateUtil.now()); - iMdPbGroupplateService.updateById(groupPlate); + if (groupPlate.getQty().subtract(outFinishParam.getChangeQty()).intValue() > 0 ){ + groupPlate.setFrozen_qty(BigDecimal.ZERO.max(forceQty)); + groupPlate.setQty(groupPlate.getQty().subtract(outFinishParam.getChangeQty())); + groupPlate.setUpdate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setUpdate_name(SecurityUtils.getCurrentNickName()); + groupPlate.setUpdate_time(DateUtil.now()); + iMdPbGroupplateService.updateById(groupPlate); + }else { + iMdPbGroupplateService.remove(new LambdaUpdateWrapper() + .eq(GroupPlate::getMaterial_code,outFinishParam.getMaterialCode()) + .eq(GroupPlate::getStoragevehicle_code, outFinishParam.getStoragevehicleCode()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))); + } } StIvtStructivtflow stIvtStructivtflow = new StIvtStructivtflow(); stIvtStructivtflow.setId(IdUtil.getStringId()); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java index fb3b858..2d11fa9 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java @@ -443,19 +443,6 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl 0 ){ - mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper() - .set(GroupPlate::getQty,actualQty.subtract(qty)) - .eq(GroupPlate::getMaterial_code, materialCode) - .eq(GroupPlate::getStoragevehicle_code, "VTP0008") - .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) - ); - }else { - mdPbGroupplateMapper.delete(new LambdaUpdateWrapper() - .eq(GroupPlate::getMaterial_code, materialCode) - .eq(GroupPlate::getStoragevehicle_code, "VTP0008") - .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))); - } } if (!CollectionUtils.isEmpty(ioStorInvDtls)){ ioStorInvMapper.insert(ioStorInv);