From 5123d513f21ac399e1b446327eda9757e7e59e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 27 Dec 2023 13:22:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=BA=BF=E7=89=A9=E5=93=81?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=20=E5=8E=BB=E6=8E=89=20=E6=88=90=E5=93=81?= =?UTF-8?q?=E5=BA=93=E5=8E=9F=E6=96=99=E5=BA=93=E5=BF=85=E5=A1=AB=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/ProductionlineitemBaseVO.java | 2 -- .../PackageoverMainServiceImpl.java | 34 +++++++++++++++++-- ...uctdismantleRequestDetailaServiceImpl.java | 12 +++---- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java index fbde721b..4ac4efe8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java @@ -20,11 +20,9 @@ public class ProductionlineitemBaseVO { private Long id; @Schema(description = "完工收货库位", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "完工收货库位不能为空") private String fgLocationCode; @Schema(description = "产线代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "产线代码不能为空") private String productionLineCode; @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java index da9207b6..823e578d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java @@ -171,7 +171,7 @@ public class PackageoverMainServiceImpl implements PackageoverMainService { transactionCreateReqVOOut.setId(null); transactionCreateReqVOList.add(transactionCreateReqVOOut); // 更新包装信息——来源包装 - updatePackageDO(detailDO.getFromPackingNumber(),detailDO.getFromQty()); + updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty())); // 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整 // 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4 // 例如:库存余额5 翻3包 每包10 那么第一包数量5 @@ -210,13 +210,43 @@ public class PackageoverMainServiceImpl implements PackageoverMainService { packageDO = packageService.createPackageLabel(packagecreateReqVO); packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); packageoverDetailDO.setToQty(balanceQty); + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(packageoverDetailDO, transactionCreateReqVOIn); + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOIn.setBatch(packageoverDetailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(packageoverDetailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(packageoverDetailDO.getToInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(packageoverDetailDO.getLocationCode()); + transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOIn.setArriveDate(LocalDateTime.now()); + transactionCreateReqVOIn.setProduceDate(LocalDateTime.now()); + transactionCreateReqVOIn.setExpireDate(LocalDateTime.now()); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setQty(packageoverDetailDO.getToQty()); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + packageoverDetailDOList.add(packageoverDetailDO); break; } else { - //库存余额数量 < 替代标包数量 + //替代标包数量 < 库存余额数量 packagecreateReqVO.setQty(altPackQty); packageDO = packageService.createPackageLabel(packagecreateReqVO); packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); packageoverDetailDO.setToQty(altPackQty); + // 当 循环最后一次 库存余额数 仍然 大于 替代标包数量 最后一包放入所有库存数量 + if (overCount.intValue()-1 == i) { + packagecreateReqVO.setQty(balanceQty); + packageDO = packageService.createPackageLabel(packagecreateReqVO); + packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); + packageoverDetailDO.setToQty(balanceQty); + } balanceQty = balanceQty.subtract(altPackQty); } packageoverDetailDOList.add(packageoverDetailDO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java index 2a5e9045..d184a15c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java @@ -101,7 +101,7 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDo, BusinesstypeDO businesstypeDO) { // 校验--生产线基本信息 ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode()); - detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); +// detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); // 校验--物品基本信息 ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); // 赋值物品Item相关信息 @@ -113,11 +113,11 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant // 提示:计量单位【uom】错误,应该是【item.uom】 throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom()); } - // 校验--工位基础信息 - if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ - WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); - detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); - } + // 校验--工位基础信息 以库存余额中的库位为准 此处无需赋值 +// if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ +// WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); +// detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); +// } // 校验--库存余额 TB——>TB1 validateBalance(detailDo,mainDO); // 校验--物品类型 DBT——>DBT2——>IT