From 4ee0ed8a725dc94d715eef5f29a7ad6b45113299 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Tue, 26 Dec 2023 18:35:15 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9Bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../win/module/wms/enums/ErrorCodeConstants.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 4bf3ceaa..3ec22bbf 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -1020,14 +1020,14 @@ public interface ErrorCodeConstants { //盘点申请ErrorCode ErrorCode COUNT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_153_000, "盘点申请主不存在"); ErrorCode COUNT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_153_001, "盘点申请子不存在"); - ErrorCode COUNT_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_073_003, "盘点不是新增状态"); - ErrorCode COUNT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_073_004, "盘点存在采购收货任务单"); - ErrorCode COUNT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_073_005, "盘点状态不支持关闭"); - ErrorCode COUNT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_073_006, "盘点状态不支持提交"); - ErrorCode COUNT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_073_007, "盘点状态不支持审批同意"); - ErrorCode COUNT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_073_008, "盘点状态不支持处理"); - ErrorCode COUNT_REQUEST_CANNOT_REFUSED = new ErrorCode(1_000_073_009, "盘点状态不支持审批拒绝"); - ErrorCode COUNT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_073_010, "盘点状态不支持重新添加"); + ErrorCode COUNT_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_073_003, "盘点申请不是新增状态"); + ErrorCode COUNT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_073_004, "盘点申请存在盘点任务单"); + ErrorCode COUNT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_073_005, "盘点申请状态不支持关闭"); + ErrorCode COUNT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_073_006, "盘点申请状态不支持提交"); + ErrorCode COUNT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_073_007, "盘点申请状态不支持审批同意"); + ErrorCode COUNT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_073_008, "盘点申请状态不支持处理"); + ErrorCode COUNT_REQUEST_CANNOT_REFUSED = new ErrorCode(1_000_073_009, "盘点申请状态不支持审批拒绝"); + ErrorCode COUNT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_073_010, "盘点申请状态不支持重新添加"); //盘点任务ErrorCode ErrorCode COUNT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_154_000, "盘点任务主不存在"); ErrorCode COUNT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_154_001, "盘点任务子不存在"); From dab24fdd66e9582ef0db3a1984d722abe157ebc2 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Wed, 27 Dec 2023 07:59:49 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9Bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/service/balance/BalanceService.java | 8 +-- .../service/balance/BalanceServiceImpl.java | 32 ++++----- .../service/expectout/ExpectoutService.java | 8 +-- .../expectout/ExpectoutServiceImpl.java | 32 ++++----- ...ProductionreturnRecordMainServiceImpl.java | 2 +- .../ProductreceiptJobMainServiceImpl.java | 4 +- .../PurchasereturnRequestMainServiceImpl.java | 8 +-- .../com/win/module/wms/util/JobUtils.java | 66 +++++++++---------- 8 files changed, 79 insertions(+), 81 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java index b74eb021..57b874f2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java @@ -50,7 +50,7 @@ public interface BalanceService { * @param locationCode 库位code * @return */ - List selectNumber(String itemCode, List inventoryStatus, String locationCode); + List selectByNumber(String itemCode, List inventoryStatus, String locationCode); /** * TB2----BY_BATCH * 跟据管理模式查询批次 @@ -61,7 +61,7 @@ public interface BalanceService { * @param locationCode 库位code * @return */ - List selectBatch(String itemCode, String batch, List inventoryStatus, String locationCode); + List selectByBatch(String itemCode, String batch, List inventoryStatus, String locationCode); /** * TB2----BY_PACKAGING * 跟据管理模式查询包装号 @@ -73,7 +73,7 @@ public interface BalanceService { * @param locationCode 库位code * @return */ - List selectPackaging(String itemCode, String packingNumber, String batch, List inventoryStatus, String locationCode); + List selectByPackaging(String itemCode, String packingNumber, String batch, List inventoryStatus, String locationCode); /** * TB2----BY_UNIQUE_ID * 跟据管理模式查询唯一码 @@ -83,7 +83,7 @@ public interface BalanceService { * @param locationCode 库位code * @return */ - List selectUniqueId(String packingNumber, String locationCode, List inventoryStatus); + List selectByUniqueId(String packingNumber, String locationCode, List inventoryStatus); void updateBalance(BalanceUpdateReqVO updateReqVO); /** diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java index 0ee96d90..1115482b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java @@ -92,16 +92,16 @@ public class BalanceServiceImpl implements BalanceService { * @return */ @Override - public List selectNumber(String itemCode, List inventoryStatus, String locationCode) { + public List selectByNumber(String itemCode, List inventoryStatus, String locationCode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemCode); queryWrapper.in("inventory_status", inventoryStatus); queryWrapper.eq("location_code", locationCode); queryWrapper.eq("packing_number",""); queryWrapper.eq("batch",""); - List balanceDO = balanceMapper.selectList(queryWrapper); - if (!balanceDO.isEmpty()) { - return balanceDO; + List balanceDOList = balanceMapper.selectList(queryWrapper); + if (!balanceDOList.isEmpty()) { + return balanceDOList; }else { return null; } @@ -118,7 +118,7 @@ public class BalanceServiceImpl implements BalanceService { * @return */ @Override - public List selectBatch(String itemCode, String batch, List inventoryStatus, String locationCode) { + public List selectByBatch(String itemCode, String batch, List inventoryStatus, String locationCode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemCode); if (batch == null || batch.isEmpty()) { @@ -126,9 +126,9 @@ public class BalanceServiceImpl implements BalanceService { } queryWrapper.in("inventory_status", inventoryStatus); queryWrapper.eq("location_code", locationCode); - List balanceDO = balanceMapper.selectList(queryWrapper); - if (!balanceDO.isEmpty()) { - return balanceDO; + List balanceDOList = balanceMapper.selectList(queryWrapper); + if (!balanceDOList.isEmpty()) { + return balanceDOList; }else { return null; } @@ -148,16 +148,16 @@ public class BalanceServiceImpl implements BalanceService { * @return */ @Override - public List selectPackaging(String itemCode, String packingNumber, String batch, List inventoryStatus, String locationCode) { + public List selectByPackaging(String itemCode, String packingNumber, String batch, List inventoryStatus, String locationCode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemCode); queryWrapper.eq("packing_number", packingNumber); queryWrapper.eq("batch", batch); queryWrapper.in("inventory_status", inventoryStatus); queryWrapper.eq("location_code", locationCode); - List balanceDO = balanceMapper.selectList(queryWrapper); - if (!balanceDO.isEmpty()) { - return balanceDO; + List balanceDOList = balanceMapper.selectList(queryWrapper); + if (!balanceDOList.isEmpty()) { + return balanceDOList; }else { return null; } @@ -173,14 +173,14 @@ public class BalanceServiceImpl implements BalanceService { * @return */ @Override - public List selectUniqueId(String packingnumber, String locationcode, List inventoryStatus) { + public List selectByUniqueId(String packingnumber, String locationcode, List inventoryStatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("packing_number", packingnumber); queryWrapper.in("inventory_status", inventoryStatus); queryWrapper.eq("location_code", locationcode); - List balanceDO = balanceMapper.selectList(queryWrapper); - if (!balanceDO.isEmpty()) { - return balanceDO; + List balanceDOList = balanceMapper.selectList(queryWrapper); + if (!balanceDOList.isEmpty()) { + return balanceDOList; }else { return null; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java index 0453b9ca..366d144f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java @@ -80,7 +80,7 @@ public interface ExpectoutService { * @param locationcode 库位code * @return */ - public List selectNumberNew(String itemcode, List inventorystatus, String locationcode); + public List selectByNumberNew(String itemcode, List inventorystatus, String locationcode); /** * TB2----BY_BATCH * 跟据管理模式查询批次 @@ -91,7 +91,7 @@ public interface ExpectoutService { * @param locationcode 库位code * @return */ - public List selectBatchNew(String itemcode, String batch, List inventorystatus, String locationcode); + public List selectByBatchNew(String itemcode, String batch, List inventorystatus, String locationcode); /** * TB2----BY_PACKAGING * 跟据管理模式查询包装号 @@ -103,7 +103,7 @@ public interface ExpectoutService { * @param locationcode 库位code * @return */ - public List selectPackingNew(String itemcode, String packingnumber, String batch, List inventorystatus, String locationcode); + public List selectByPackingNew(String itemcode, String packingnumber, String batch, List inventorystatus, String locationcode); /** * TB2----BY_UNIQUE_ID * 跟据管理模式查询唯一码 @@ -113,7 +113,7 @@ public interface ExpectoutService { * @param locationcode 库位code * @return */ - public List selectUniqeIdNew(String packingnumber, String locationcode, List inventorystatus); + public List selectByUniqeIdNew(String packingnumber, String locationcode, List inventorystatus); /** * 获得预计入库存列表, 用于 Excel 导出 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java index ecf541df..c6d58a4d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java @@ -88,14 +88,14 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按数量查找 BY_BATCH @Override - public List selectNumberNew(String itemcode, List inventorystatus, String locationcode) { + public List selectByNumberNew(String itemcode, List inventorystatus, String locationcode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemcode); queryWrapper.eq("inventory_status", inventorystatus); queryWrapper.eq("location_code", locationcode); - List expectoutDO = expectoutMapper.selectList(queryWrapper); - if (!expectoutDO.isEmpty()) { - return expectoutDO; + List expectoutDOList = expectoutMapper.selectList(queryWrapper); + if (!expectoutDOList.isEmpty()) { + return expectoutDOList; } else { return null; } @@ -103,15 +103,15 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按批次查询 BY_BATCH @Override - public List selectBatchNew(String itemcode, String batch, List inventorystatus, String locationcode) { + public List selectByBatchNew(String itemcode, String batch, List inventorystatus, String locationcode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemcode); queryWrapper.eq("batch", batch); queryWrapper.eq("inventory_status", inventorystatus); queryWrapper.eq("location_code", locationcode); - List expectoutDO = expectoutMapper.selectList(queryWrapper); - if (!expectoutDO.isEmpty()) { - return expectoutDO; + List expectoutDOList = expectoutMapper.selectList(queryWrapper); + if (!expectoutDOList.isEmpty()) { + return expectoutDOList; } else { return null; } @@ -119,16 +119,16 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按包裝 BY_PACKAGING @Override - public List selectPackingNew(String itemcode, String packingnumber, String batch, List inventorystatus, String locationcode) { + public List selectByPackingNew(String itemcode, String packingnumber, String batch, List inventorystatus, String locationcode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemcode); queryWrapper.eq("batch", batch); queryWrapper.eq("packing_number", packingnumber); queryWrapper.eq("inventory_status", inventorystatus); queryWrapper.eq("location_code", locationcode); - List expectoutDO = expectoutMapper.selectList(queryWrapper); - if (!expectoutDO.isEmpty()) { - return expectoutDO; + List expectoutDOList = expectoutMapper.selectList(queryWrapper); + if (!expectoutDOList.isEmpty()) { + return expectoutDOList; } else { return null; } @@ -136,14 +136,14 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按唯一码查询 BY_UNIQUE_ID @Override - public List selectUniqeIdNew(String packingnumber, String locationcode, List inventorystatus) { + public List selectByUniqeIdNew(String packingnumber, String locationcode, List inventorystatus) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("packing_number", packingnumber); queryWrapper.eq("inventory_status", inventorystatus); queryWrapper.eq("location_code", locationcode); - List expectoutDO = expectoutMapper.selectList(queryWrapper); - if (!expectoutDO.isEmpty()) { - return expectoutDO; + List expectoutDOList = expectoutMapper.selectList(queryWrapper); + if (!expectoutDOList.isEmpty()) { + return expectoutDOList; } else { return null; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java index e056f6c8..6c2aa054 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java @@ -155,7 +155,7 @@ public class ProductionreturnRecordMainServiceImpl implements ProductionreturnRe //查询库存余额 List status = new ArrayList<>(); status.add(detailDO.getInventoryStatus()); - List balanceDOList = balanceService.selectNumber(detailDO.getItemCode(),status,detailDO.getFromLocationCode()); + List balanceDOList = balanceService.selectByNumber(detailDO.getItemCode(),status,detailDO.getFromLocationCode()); if (balanceDOList == null || balanceDOList.isEmpty()) { throw exception(BALANCE_NOT_EXISTS); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java index ab4216d5..a1ebf613 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java @@ -463,9 +463,9 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode()); // 根据 from_location_code 查询库存余额 // TODO: 如果按批次 查询批次获取库存余额 排序批次 如果第一条批次不够数量 需要扣除第二条余额 库存事务出的动作要存2条 - List inventoryStatus = new ArrayList(); + List inventoryStatus = new ArrayList<>(); inventoryStatus.add("OK"); - List balanceDOList = balanceService.selectNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode()); + List balanceDOList = balanceService.selectByNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode()); backflushRecordDetailbDO.setPackingNumber(balanceDOList.get(0).getPackingNumber()); backflushRecordDetailbDO.setBatch(balanceDOList.get(0).getBatch()); backflushRecordDetailbDO.setInventoryStatus("OK"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java index 76d74978..976e7be6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java @@ -405,13 +405,11 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque List purchasereturnJobDetailDOList = new ArrayList<>(); for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : detailDOList) { PurchasereturnJobDetailDO purchasereturnJobDetailDO = PurchasereturnJobDetailConvert.INSTANCE.convert(purchasereturnRequestDetailDO); - purchasereturnJobDetailDO.setToLocationCode(purchasereturnRequestDetailDO.getToLocationCode()); purchasereturnJobDetailDO.setNumber(number); purchasereturnJobDetailDO.setId(null).setCreator(null).setCreateTime(null).setUpdater(null).setUpdateTime(null); purchasereturnJobDetailDO.setMasterId(purchasereturnJobMainDO.getId()); purchasereturnJobDetailDO.setFromLocationCode(purchasereturnRequestDetailDO.getFromLocationCode()); purchasereturnJobDetailDO.setToOwnerCode(purchasereturnRequestDetailDO.getToOwnerCode()); - purchasereturnJobDetailDO.setToLocationCode(purchasereturnRequestDetailDO.getToLocationCode()); purchasereturnJobDetailDOList.add(purchasereturnJobDetailDO); //预计出 ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); @@ -448,9 +446,9 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque private BigDecimal validatorBalance(PurchasereturnRequestDetailDO detailDO, PurchasereturnRequestMainDO mainDO, List inventoryStatusList) { BigDecimal bigDecimal = new BigDecimal(0); - List balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(), detailDO.getPackingNumber(), detailDO.getBatch(), detailDO.getFromLocationCode(), inventoryStatusList); - if (balance != null) { - for (BalanceDO balanceDO : balance) { + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(), detailDO.getPackingNumber(), detailDO.getBatch(), detailDO.getFromLocationCode(), inventoryStatusList); + if (balanceDOList != null) { + for (BalanceDO balanceDO : balanceDOList) { bigDecimal = bigDecimal.add(balanceDO.getQty()); mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode()); //detailDO.setInventoryStatus(balanceDO.getInventoryStatus()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java index e73018d1..fbd1f404 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java @@ -507,17 +507,17 @@ public class JobUtils { */ public List selectlocationReturnManagementAccuracyToBalance(String itemcode, String packingnumber, String batch, String locationcode, List inventoryStatus) { RuleRespVO managementtRule = ruleService.management(null, null, itemcode, locationcode, null, null); - List balanceDO = null; + List balanceDOList = null; if ("{\"ManagementPrecision\":\"BY_QUANTITY\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectNumber(itemcode, inventoryStatus, locationcode); + balanceDOList = balanceService.selectByNumber(itemcode, inventoryStatus, locationcode); } else if ("{\"ManagementPrecision\":\"BY_BATCH\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectBatch(itemcode, batch, inventoryStatus, locationcode); + balanceDOList = balanceService.selectByBatch(itemcode, batch, inventoryStatus, locationcode); } else if ("{\"ManagementPrecision\":\"BY_PACKAGING\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectPackaging(itemcode, packingnumber, batch, inventoryStatus, locationcode); + balanceDOList = balanceService.selectByPackaging(itemcode, packingnumber, batch, inventoryStatus, locationcode); } else if ("{\"ManagementPrecision\":\"BY_UNIQUE_ID\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectUniqueId(packingnumber, locationcode, inventoryStatus); + balanceDOList = balanceService.selectByUniqueId(packingnumber, locationcode, inventoryStatus); } - return balanceDO; + return balanceDOList; } /** @@ -535,37 +535,37 @@ public class JobUtils { */ public List selectlocationReturnManagementAccuracy(String itemcode, String packingnumber, String batch, String locationcode, List inventoryStatus) { RuleRespVO managementtRule = ruleService.management(null, null, itemcode, locationcode, null, null); - List balanceDO = null; + List balanceDOList = null; if ("{\"ManagementPrecision\":\"BY_QUANTITY\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectNumber(itemcode, inventoryStatus, locationcode); - if (balanceDO == null) { + balanceDOList = balanceService.selectByNumber(itemcode, inventoryStatus, locationcode); + if (balanceDOList == null) { throw exception(MANAGEMENTPRECISION_EXCEPTION, "物品代码" + itemcode + "库存状态" + inventoryStatus + "在" + locationcode + "库位中未查找到库存记录"); } else { - return balanceDO; + return balanceDOList; } } else if ("{\"ManagementPrecision\":\"BY_BATCH\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectBatch(itemcode, batch, inventoryStatus, locationcode); - if (balanceDO == null) { + balanceDOList = balanceService.selectByBatch(itemcode, batch, inventoryStatus, locationcode); + if (balanceDOList == null) { throw exception(MANAGEMENTPRECISION_EXCEPTION, "物品代码" + itemcode + "批次" + batch + "库存状态" + inventoryStatus + "在" + locationcode + "库位中未查找到库存记录"); } else { - return balanceDO; + return balanceDOList; } } else if ("{\"ManagementPrecision\":\"BY_PACKAGING\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectPackaging(itemcode, packingnumber, batch, inventoryStatus, locationcode); - if (balanceDO == null) { + balanceDOList = balanceService.selectByPackaging(itemcode, packingnumber, batch, inventoryStatus, locationcode); + if (balanceDOList == null) { throw exception(MANAGEMENTPRECISION_EXCEPTION, "物品代码" + itemcode + "箱码" + packingnumber + "批次" + batch + "库存状态" + inventoryStatus + "在" + locationcode + "库位中未查找到库存记录"); } else { - return balanceDO; + return balanceDOList; } } else if ("{\"ManagementPrecision\":\"BY_UNIQUE_ID\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectUniqueId(packingnumber, locationcode, inventoryStatus); - if (balanceDO == null) { + balanceDOList = balanceService.selectByUniqueId(packingnumber, locationcode, inventoryStatus); + if (balanceDOList == null) { throw exception(MANAGEMENTPRECISION_EXCEPTION, "唯一码" + packingnumber + "库存状态" + inventoryStatus + "在" + locationcode + "库位中未查找到库存记录"); } else { - return balanceDO; + return balanceDOList; } } - return balanceDO; + return balanceDOList; } @@ -585,18 +585,18 @@ public class JobUtils { */ public List selectLocatioNew(String itemcode, String packingnumber, String batch, String locationcode, List inventoryStatus) { RuleRespVO managementtRule = ruleService.management(null, null, itemcode, locationcode, null, null); - List expectoutDO = null; + List expectoutDOList = null; if ("{\"ManagementPrecision\":\"BY_QUANTITY\"}".equals(managementtRule.getConfiguration())) { - expectoutDO = expectoutService.selectNumberNew(itemcode, inventoryStatus, locationcode); + expectoutDOList = expectoutService.selectByNumberNew(itemcode, inventoryStatus, locationcode); } else if ("{\"ManagementPrecision\":\"BY_BATCH\"}".equals(managementtRule.getConfiguration())) { - expectoutDO = expectoutService.selectBatchNew(itemcode, batch, inventoryStatus, locationcode); + expectoutDOList = expectoutService.selectByBatchNew(itemcode, batch, inventoryStatus, locationcode); } else if ("{\"ManagementPrecision\":\"BY_PACKAGING\"}".equals(managementtRule.getConfiguration())) { - expectoutDO = expectoutService.selectPackingNew(itemcode, packingnumber, batch, inventoryStatus, locationcode); + expectoutDOList = expectoutService.selectByPackingNew(itemcode, packingnumber, batch, inventoryStatus, locationcode); } else if ("{\"ManagementPrecision\":\"BY_UNIQUE_ID\"}".equals(managementtRule.getConfiguration())) { - expectoutDO = expectoutService.selectUniqeIdNew(packingnumber, locationcode, inventoryStatus); + expectoutDOList = expectoutService.selectByUniqeIdNew(packingnumber, locationcode, inventoryStatus); } - return expectoutDO; + return expectoutDOList; } /** @@ -655,10 +655,10 @@ public class JobUtils { //库存不应该存在 public List warehouseStocknNotExist(String itemcode, String packingnumber, String locationcode, List inventoryStatus) { RuleRespVO managementtRule = ruleService.management(null, null, itemcode, locationcode, null, null); - List balanceDO = null; + List balanceDOList = null; if ("{\"ManagementPrecision\":\"BY_UNIQUE_ID\"}".equals(managementtRule.getConfiguration())) { - balanceDO = balanceService.selectUniqueId(packingnumber, locationcode, inventoryStatus); - return balanceDO; + balanceDOList = balanceService.selectByUniqueId(packingnumber, locationcode, inventoryStatus); + return balanceDOList; } else { return null; } @@ -695,13 +695,13 @@ public class JobUtils { String[] splits = management.getConfiguration().split("\""); for (String split : splits) { if ("{\"ManagementPrecision\":\"BY_QUANTITY\"}".equals(management.getConfiguration())) { - expectoutService.selectNumberNew(pitemcode, pinventoryStatus, plocationcode); + expectoutService.selectByNumberNew(pitemcode, pinventoryStatus, plocationcode); } else if ("{\"ManagementPrecision\":\"BY_BATCH\"}".equals(management.getConfiguration())) { - expectoutDO = expectoutService.selectBatchNew(pitemcode, pbatch, pinventoryStatus, plocationcode); + expectoutDO = expectoutService.selectByBatchNew(pitemcode, pbatch, pinventoryStatus, plocationcode); } else if ("{\"ManagementPrecision\":\"BY_PACKAGING\"}".equals(management.getConfiguration())) { - expectoutDO = expectoutService.selectPackingNew(pitemcode, ppackingnumber, pbatch, pinventoryStatus, plocationcode); + expectoutDO = expectoutService.selectByPackingNew(pitemcode, ppackingnumber, pbatch, pinventoryStatus, plocationcode); } else if ("{\"ManagementPrecision\":\"BY_UNIQUE_ID\"}".equals(management.getConfiguration())) { - expectoutDO = expectoutService.selectUniqeIdNew(ppackingnumber, plocationcode, pinventoryStatus); + expectoutDO = expectoutService.selectByUniqeIdNew(ppackingnumber, plocationcode, pinventoryStatus); } return expectoutDO; } From ca8af71bb528ee72e7940599baafa23531c88721 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 08:30:56 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=90=88=E5=8C=85=20=E6=8B=86=E5=8C=85=20?= =?UTF-8?q?=E7=BF=BB=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 2 + .../PackagemergeMainController.java | 2 +- .../vo/PackagemergeMainBaseVO.java | 3 + .../vo/PackagemergeMainCreateReqVO.java | 5 + .../vo/PackagemergeMainPageReqVO.java | 3 + .../PackageoverMainController.java | 2 +- .../vo/PackageoverMainBaseVO.java | 2 + .../vo/PackageoverMainCreateReqVO.java | 6 +- .../vo/PackageoverMainPageReqVO.java | 3 + .../PackagesplitMainController.java | 2 +- .../vo/PackagesplitMainBaseVO.java | 2 + .../vo/PackagesplitMainCreateReqVO.java | 6 +- .../vo/PackagesplitMainPageReqVO.java | 3 + .../vo/RepleinshRecordMainBaseVO.java | 3 +- .../packageMassage/PackageConvert.java | 2 + .../PackagemergeDetailConvert.java | 1 + .../PackageoverDetailConvert.java | 2 + .../PackagesplitDetailConvert.java | 1 + .../PackagemergeMainService.java | 2 +- .../PackagemergeMainServiceImpl.java | 189 +++++++++++++- .../PackageoverMainService.java | 2 +- .../PackageoverMainServiceImpl.java | 247 +++++++++++++++++- .../PackagesplitMainService.java | 2 +- .../PackagesplitMainServiceImpl.java | 193 +++++++++++++- ...roductdismantleRequestMainServiceImpl.java | 2 +- 25 files changed, 663 insertions(+), 24 deletions(-) diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 3ec22bbf..1a649a3a 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -1101,6 +1101,8 @@ public interface ErrorCodeConstants { // 翻包记录子 ErrorCode PACKAGEOVER_DETAIL_NOT_EXISTS = new ErrorCode(1_000_170_002, "翻包记录子不存在"); + ErrorCode PACKAGEOVER_DETAIL_PACKING_ERROR = new ErrorCode(1_000_170_002, "请先配置【基础包装信息】【替代包装数1】"); + // 拆包记录主 ErrorCode PACKAGESPLIT_MAIN_NOT_EXISTS = new ErrorCode(1_000_171_001, "拆包记录主不存在"); // 拆包记录子 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/PackagemergeMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/PackagemergeMainController.java index 5b8b4881..53afbdcc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/PackagemergeMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/PackagemergeMainController.java @@ -52,7 +52,7 @@ public class PackagemergeMainController { @PostMapping("/create") @Operation(summary = "创建合包记录主") @PreAuthorize("@ss.hasPermission('wms:packagemerge-main:create')") - public CommonResult createPackagemergeMain(@Valid @RequestBody PackagemergeMainCreateReqVO createReqVO) { + public CommonResult createPackagemergeMain(@Valid @RequestBody PackagemergeMainCreateReqVO createReqVO) { return success(packagemergeMainService.createPackagemergeMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainBaseVO.java index 27584141..db63f1b7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainBaseVO.java @@ -21,6 +21,9 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data public class PackagemergeMainBaseVO { + @Schema(description = "id", example = "id") + private Long id; + @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainCreateReqVO.java index d0da4b12..486cb843 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainCreateReqVO.java @@ -1,5 +1,7 @@ package com.win.module.wms.controller.packagemergemain.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.production.vo.ProductionDetailCreateReqVO; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -11,4 +13,7 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class PackagemergeMainCreateReqVO extends PackagemergeMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainPageReqVO.java index c72ac3b2..86a4dbff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagemergemain/vo/PackagemergeMainPageReqVO.java @@ -15,6 +15,9 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @ToString(callSuper = true) public class PackagemergeMainPageReqVO extends PageParam { + @Schema(description = "id", example = "id") + private Long id; + @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/PackageoverMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/PackageoverMainController.java index 49c4f293..091eb4bf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/PackageoverMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/PackageoverMainController.java @@ -52,7 +52,7 @@ public class PackageoverMainController { @PostMapping("/create") @Operation(summary = "创建翻包记录主") @PreAuthorize("@ss.hasPermission('wms:packageover-main:create')") - public CommonResult createPackageoverMain(@Valid @RequestBody PackageoverMainCreateReqVO createReqVO) { + public CommonResult createPackageoverMain(@Valid @RequestBody PackageoverMainCreateReqVO createReqVO) { return success(packageoverMainService.createPackageoverMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainBaseVO.java index f78c245f..ae794b93 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainBaseVO.java @@ -21,6 +21,8 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data public class PackageoverMainBaseVO { + @Schema(description = "id", example = "id") + private Long id; @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainCreateReqVO.java index 44323b81..e2876c01 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainCreateReqVO.java @@ -1,5 +1,7 @@ package com.win.module.wms.controller.packageovermain.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.packagemergemain.vo.PackagemergeDetailCreateReqVO; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -10,5 +12,7 @@ import javax.validation.constraints.*; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PackageoverMainCreateReqVO extends PackageoverMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainPageReqVO.java index 8a3d2ca2..4a9d443e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageovermain/vo/PackageoverMainPageReqVO.java @@ -15,6 +15,9 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @ToString(callSuper = true) public class PackageoverMainPageReqVO extends PageParam { + @Schema(description = "id", example = "id") + private Long id; + @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/PackagesplitMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/PackagesplitMainController.java index 425c4819..a0f04c8f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/PackagesplitMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/PackagesplitMainController.java @@ -52,7 +52,7 @@ public class PackagesplitMainController { @PostMapping("/create") @Operation(summary = "创建拆包记录主") @PreAuthorize("@ss.hasPermission('wms:packagesplit-main:create')") - public CommonResult createPackagesplitMain(@Valid @RequestBody PackagesplitMainCreateReqVO createReqVO) { + public CommonResult createPackagesplitMain(@Valid @RequestBody PackagesplitMainCreateReqVO createReqVO) { return success(packagesplitMainService.createPackagesplitMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainBaseVO.java index 57fd62ae..379dee7e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainBaseVO.java @@ -21,6 +21,8 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data public class PackagesplitMainBaseVO { + @Schema(description = "id", example = "id") + private Long id; @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainCreateReqVO.java index e9f02377..87cb119a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainCreateReqVO.java @@ -1,5 +1,7 @@ package com.win.module.wms.controller.packagesplitmain.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.packagemergemain.vo.PackagemergeDetailCreateReqVO; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -10,5 +12,7 @@ import javax.validation.constraints.*; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PackagesplitMainCreateReqVO extends PackagesplitMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainPageReqVO.java index 9a772dae..e374369b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packagesplitmain/vo/PackagesplitMainPageReqVO.java @@ -15,6 +15,9 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @ToString(callSuper = true) public class PackagesplitMainPageReqVO extends PageParam { + @Schema(description = "id", example = "id") + private Long id; + @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordMainBaseVO.java index e5dcc115..368e210b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordMainBaseVO.java @@ -22,8 +22,7 @@ public class RepleinshRecordMainBaseVO { @Schema(description = "id", example = "id") private Long id; - @Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "申请单号不能为空") + @Schema(description = "申请单号") private String requestNumber; @Schema(description = "任务单号") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageMassage/PackageConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageMassage/PackageConvert.java index 42d7e7ae..fc93bc57 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageMassage/PackageConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageMassage/PackageConvert.java @@ -34,4 +34,6 @@ public interface PackageConvert { PageResult convertPage(PageResult page); List convertList02(List list); + + PackageCreateReqVO convert01(PackageDO labelExist); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagemergemain/PackagemergeDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagemergemain/PackagemergeDetailConvert.java index a317b900..5a5370cf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagemergemain/PackagemergeDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagemergemain/PackagemergeDetailConvert.java @@ -31,4 +31,5 @@ public interface PackagemergeDetailConvert { List convertList02(List list); + List convertList03(List subList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageovermain/PackageoverDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageovermain/PackageoverDetailConvert.java index 7019ac1d..f2796624 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageovermain/PackageoverDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packageovermain/PackageoverDetailConvert.java @@ -4,6 +4,7 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.packagemergemain.vo.PackagemergeDetailCreateReqVO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.controller.packageovermain.vo.*; @@ -31,4 +32,5 @@ public interface PackageoverDetailConvert { List convertList02(List list); + List convertList03(List subList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagesplitmain/PackagesplitDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagesplitmain/PackagesplitDetailConvert.java index 92455f2d..1cb01687 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagesplitmain/PackagesplitDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/packagesplitmain/PackagesplitDetailConvert.java @@ -31,4 +31,5 @@ public interface PackagesplitDetailConvert { List convertList02(List list); + List convertList03(List subList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainService.java index b484f0b3..077caf5f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainService.java @@ -21,7 +21,7 @@ public interface PackagemergeMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createPackagemergeMain(@Valid PackagemergeMainCreateReqVO createReqVO); + String createPackagemergeMain(@Valid PackagemergeMainCreateReqVO createReqVO); /** * 更新合包记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainServiceImpl.java index 36e8f2dc..d2869973 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagemergemain/PackagemergeMainServiceImpl.java @@ -1,10 +1,42 @@ package com.win.module.wms.service.packagemergemain; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; +import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert; +import com.win.module.wms.convert.packagemergemain.PackagemergeDetailConvert; +import com.win.module.wms.convert.purchasereturnRecord.PurchasereturnRecordDetailConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; +import com.win.module.wms.dal.dataobject.packagemergemain.PackagemergeDetailDO; +import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordDetailDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; +import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeDetailMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.controller.packagemergemain.vo.*; import com.win.module.wms.dal.dataobject.packagemergemain.PackagemergeMainDO; @@ -14,6 +46,7 @@ import com.win.module.wms.convert.packagemergemain.PackagemergeMainConvert; import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeMainMapper; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -25,16 +58,164 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class PackagemergeMainServiceImpl implements PackagemergeMainService { + @Resource + private TransactionService transactionService; + @Resource + private PackagemergeDetailMapper packagemergeDetailMapper; + @Resource + private PackageMapper packageMapper; @Resource private PackagemergeMainMapper packagemergeMainMapper; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Resource + private RecordsettingService recordsettingService; + @Resource + private LocationService locationService; + @Resource + private ItembasicService itembasicService; @Override - public Long createPackagemergeMain(PackagemergeMainCreateReqVO createReqVO) { + @Transactional + public String createPackagemergeMain(PackagemergeMainCreateReqVO createReqVO) { // 插入 - PackagemergeMainDO packagemergeMain = PackagemergeMainConvert.INSTANCE.convert(createReqVO); - packagemergeMainMapper.insert(packagemergeMain); + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + PackagemergeMainDO mainDO = PackagemergeMainConvert.INSTANCE.convert(createReqVO); + List subDOList = PackagemergeDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.MERGE_PACKAGE_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + mainDO.setId(null); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MergePackageRecord"); + mainDO.setBusinessType(businesstypeDO.getCode()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("MergePackageRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + packagemergeMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + // 合并数量总和 + BigDecimal sumQty = BigDecimal.ZERO; + for (PackagemergeDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOFrom = locationService.selectLocation(detailDO.getLocationCode()); + if(locationDOFrom != null) { + detailDO.setAreaCode(locationDOFrom.getAreaCode()); + detailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + //查询库存余额 + List inventoryStatusList = new ArrayList<>(); + inventoryStatusList.add(detailDO.getFromInventoryStatus()); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),detailDO.getFromPackingNumber(),detailDO.getFromBatch(),detailDO.getLocationCode(), inventoryStatusList); + if (balanceDO == null || balanceDO.size() == 0) { + throw exception(BALANCE_NOT_EXISTS); + } + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(detailDO.getFromInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); + transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); + transactionCreateReqVOOut.setLocationCode(detailDO.getLocationCode()); + transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice()); + transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount()); + transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate()); + transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate()); + transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate()); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); + transactionCreateReqVOOut.setQty(detailDO.getFromQty()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + // 更新包装信息——来源包装 + updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty())); + sumQty = sumQty.add(detailDO.getFromQty()); + } + //查询库存余额 + List inventoryStatusList = new ArrayList<>(); + inventoryStatusList.add(subDOList.get(0).getToInventoryStatus()); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(subDOList.get(0).getItemCode(),subDOList.get(0).getToPackingNumber(),subDOList.get(0).getToBatch(),subDOList.get(0).getLocationCode(), inventoryStatusList); +// if (balanceDO == null || balanceDO.size() == 0) { +// throw exception(BALANCE_NOT_EXISTS); +// } + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(subDOList.get(0), 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(subDOList.get(0).getToBatch()); + transactionCreateReqVOIn.setPackingNumber(subDOList.get(0).getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(subDOList.get(0).getToInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(subDOList.get(0).getLocationCode()); + transactionCreateReqVOIn.setSinglePrice(balanceDO==null?BigDecimal.ZERO:balanceDO.get(0).getSinglePrice()); + transactionCreateReqVOIn.setAmount(balanceDO==null?BigDecimal.ZERO:balanceDO.get(0).getAmount()); + transactionCreateReqVOIn.setArriveDate(balanceDO==null?LocalDateTime.now():balanceDO.get(0).getArriveDate()); + transactionCreateReqVOIn.setProduceDate(balanceDO==null?LocalDateTime.now():balanceDO.get(0).getProduceDate()); + transactionCreateReqVOIn.setExpireDate(balanceDO==null?LocalDateTime.now():balanceDO.get(0).getExpireDate()); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setQty(sumQty); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + // 更新包装信息——目标包装 + updatePackageDO(subDOList.get(0).getToPackingNumber(),balanceDO==null?sumQty:balanceDO.get(0).getQty().add(sumQty)); + packagemergeDetailMapper.insertBatch(subDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "packagemergeMain", "增加了合包记录", TrendsTypeEnum.CREATE); // 返回 - return packagemergeMain.getId(); + return mainDO.getNumber(); + } + + /** + * 更新包装信息 + * @param number + * @param qty + */ + private void updatePackageDO(String number, BigDecimal qty) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", number); + PackageDO packageDO = packageMapper.selectOne(queryWrapper); + if (packageDO == null) { + throw exception(PACKAGE_NOT_EXISTS); + } + packageDO.setQty(qty); + packageMapper.updateById(packageDO); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainService.java index 3219f3fb..44a75b22 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainService.java @@ -21,7 +21,7 @@ public interface PackageoverMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createPackageoverMain(@Valid PackageoverMainCreateReqVO createReqVO); + String createPackageoverMain(@Valid PackageoverMainCreateReqVO createReqVO); /** * 更新翻包记录主 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 26e13201..da9207b6 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 @@ -1,10 +1,48 @@ package com.win.module.wms.service.packageovermain; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; +import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.packageMassage.vo.PackageCreateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.packageMassage.PackageConvert; +import com.win.module.wms.convert.packagemergemain.PackagemergeDetailConvert; +import com.win.module.wms.convert.packageovermain.PackageoverDetailConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; +import com.win.module.wms.dal.dataobject.packagemergemain.PackagemergeDetailDO; +import com.win.module.wms.dal.dataobject.packageovermain.PackageoverDetailDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; +import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeDetailMapper; +import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeMainMapper; +import com.win.module.wms.dal.mysql.packageovermain.PackageoverDetailMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.packageMassage.PackageService; +import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.controller.packageovermain.vo.*; import com.win.module.wms.dal.dataobject.packageovermain.PackageoverMainDO; @@ -14,6 +52,7 @@ import com.win.module.wms.convert.packageovermain.PackageoverMainConvert; import com.win.module.wms.dal.mysql.packageovermain.PackageoverMainMapper; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -25,16 +64,216 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class PackageoverMainServiceImpl implements PackageoverMainService { + @Resource + private PackageService packageService; + @Resource + private ItempackagingService itempackagingService; + @Resource + private TransactionService transactionService; + @Resource + private PackagemergeDetailMapper packagemergeDetailMapper; + @Resource + private PackageMapper packageMapper; + @Resource + private PackagemergeMainMapper packagemergeMainMapper; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Resource + private RecordsettingService recordsettingService; + @Resource + private LocationService locationService; + @Resource + private ItembasicService itembasicService; @Resource private PackageoverMainMapper packageoverMainMapper; + @Resource + private PackageoverDetailMapper packageoverDetailMapper; @Override - public Long createPackageoverMain(PackageoverMainCreateReqVO createReqVO) { + @Transactional + public String createPackageoverMain(PackageoverMainCreateReqVO createReqVO) { // 插入 - PackageoverMainDO packageoverMain = PackageoverMainConvert.INSTANCE.convert(createReqVO); - packageoverMainMapper.insert(packageoverMain); + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + PackageoverMainDO mainDO = PackageoverMainConvert.INSTANCE.convert(createReqVO); + List subDOList = PackageoverDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.OVER_PACKAGE_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + mainDO.setId(null); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OverPackageRecord"); + mainDO.setBusinessType(businesstypeDO.getCode()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("OverPackageRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + packageoverMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for (PackageoverDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOFrom = locationService.selectLocation(detailDO.getLocationCode()); + if(locationDOFrom != null) { + detailDO.setAreaCode(locationDOFrom.getAreaCode()); + detailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + //查询库存余额 + List inventoryStatusList = new ArrayList<>(); + inventoryStatusList.add(detailDO.getFromInventoryStatus()); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),detailDO.getFromPackingNumber(),detailDO.getFromBatch(),detailDO.getLocationCode(), inventoryStatusList); + if (balanceDO == null || balanceDO.size() == 0) { + throw exception(BALANCE_NOT_EXISTS); + } + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(detailDO.getFromInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); + transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); + transactionCreateReqVOOut.setLocationCode(detailDO.getLocationCode()); + transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice()); + transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount()); + transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate()); + transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate()); + transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate()); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); + transactionCreateReqVOOut.setQty(detailDO.getFromQty()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + // 更新包装信息——来源包装 + updatePackageDO(detailDO.getFromPackingNumber(),detailDO.getFromQty()); + // 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整 + // 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4 + // 例如:库存余额5 翻3包 每包10 那么第一包数量5 + // 查询基础包装信息 + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDO.getItemCode()); + if (itempackagingDO == null) { + throw exception(ITEMPACKAGING_NOT_EXISTS); + } + List packageoverDetailDOList = new ArrayList<>(); + // 判断替代标包数量不为空 并且 大于 0 并且 标包数大于等于替代标包数 + if (itempackagingDO.getAltPackQty1() != null && itempackagingDO.getAltPackQty1().compareTo(BigDecimal.ZERO) == 1 && itempackagingDO.getStdPackQty().compareTo(itempackagingDO.getAltPackQty1()) != -1 ) { + // 翻几包 overCount = 标包数量/替代标包数量 + BigDecimal overCount = itempackagingDO.getStdPackQty().divide(itempackagingDO.getAltPackQty1(),0, BigDecimal.ROUND_UP); + // 替代标包数量 + BigDecimal altPackQty = itempackagingDO.getAltPackQty1(); + // 库存余额数量 + BigDecimal balanceQty = balanceDO.get(0).getQty(); + for (int i =0; i< overCount.intValue();i++) { + // 创建 子表数据 + PackageoverDetailDO packageoverDetailDO = new PackageoverDetailDO(); + BeanUtils.copyProperties(detailDO,packageoverDetailDO); + packageoverDetailDO.setId(null).setCreator(null).setCreateTime(null).setUpdater(null).setUpdateTime(null); + packageoverDetailDO.setMasterId(mainDO.getId()); + packageoverDetailDO.setToBatch(packageoverDetailDO.getFromBatch()); + packageoverDetailDO.setToContainerNumber(packageoverDetailDO.getFromContainerNumber()); + packageoverDetailDO.setToOwnerCode(packageoverDetailDO.getFromOwnerCode()); + packageoverDetailDO.setToInventoryStatus(packageoverDetailDO.getFromInventoryStatus()); + // 创建 包装及标签 + PackageCreateReqVO packagecreateReqVO = PackageConvert.INSTANCE.convert01(packageService.LabelExist(detailDO.getFromPackingNumber())); + packagecreateReqVO.setId(null); + packagecreateReqVO.setCreator(null); + PackageDO packageDO; + // 替代标包数量 >= 库存余额数量 只能创建一个包装标签 结束循环 + if (itempackagingDO.getAltPackQty1().compareTo(balanceQty) != -1) { + packagecreateReqVO.setQty(balanceQty); + packageDO = packageService.createPackageLabel(packagecreateReqVO); + packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); + packageoverDetailDO.setToQty(balanceQty); + break; + } else { + //库存余额数量 < 替代标包数量 + packagecreateReqVO.setQty(altPackQty); + packageDO = packageService.createPackageLabel(packagecreateReqVO); + packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); + packageoverDetailDO.setToQty(altPackQty); + balanceQty = balanceQty.subtract(altPackQty); + } + packageoverDetailDOList.add(packageoverDetailDO); + // 库存事务——入 + 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); + } + // 更新旧包装信息 + updatePackageDO(detailDO.getFromPackingNumber(),BigDecimal.ZERO); + } else { + throw exception(PACKAGEOVER_DETAIL_PACKING_ERROR); + } + if (packageoverDetailDOList != null && packageoverDetailDOList.size() > 0) { + packageoverDetailMapper.insertBatch(packageoverDetailDOList); + } + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "packageoverMain", "增加了翻包记录", TrendsTypeEnum.CREATE); // 返回 - return packageoverMain.getId(); + return mainDO.getNumber(); + } + + /** + * 更新包装信息 + * @param number + * @param qty + */ + private void updatePackageDO(String number, BigDecimal qty) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", number); + PackageDO packageDO = packageMapper.selectOne(queryWrapper); + if (packageDO == null) { + throw exception(PACKAGE_NOT_EXISTS); + } + packageDO.setQty(qty); + packageMapper.updateById(packageDO); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainService.java index 8a5076ad..4d192145 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainService.java @@ -21,7 +21,7 @@ public interface PackagesplitMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createPackagesplitMain(@Valid PackagesplitMainCreateReqVO createReqVO); + String createPackagesplitMain(@Valid PackagesplitMainCreateReqVO createReqVO); /** * 更新拆包记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java index f232304a..c579d03f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java @@ -1,11 +1,44 @@ package com.win.module.wms.service.packagesplitmain; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; +import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.packagemergemain.PackagemergeDetailConvert; +import com.win.module.wms.convert.packagesplitmain.PackagesplitDetailConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; +import com.win.module.wms.dal.dataobject.packagemergemain.PackagemergeDetailDO; +import com.win.module.wms.dal.dataobject.packagesplitmain.PackagesplitDetailDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; +import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeDetailMapper; +import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeMainMapper; +import com.win.module.wms.dal.mysql.packagesplitmain.PackagesplitDetailMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.controller.packagesplitmain.vo.*; import com.win.module.wms.dal.dataobject.packagesplitmain.PackagesplitMainDO; @@ -15,6 +48,7 @@ import com.win.module.wms.convert.packagesplitmain.PackagesplitMainConvert; import com.win.module.wms.dal.mysql.packagesplitmain.PackagesplitMainMapper; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -25,17 +59,166 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Service @Validated public class PackagesplitMainServiceImpl implements PackagesplitMainService { - + @Resource + private TransactionService transactionService; + @Resource + private PackagemergeDetailMapper packagemergeDetailMapper; + @Resource + private PackageMapper packageMapper; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Resource + private RecordsettingService recordsettingService; + @Resource + private LocationService locationService; + @Resource + private ItembasicService itembasicService; @Resource private PackagesplitMainMapper packagesplitMainMapper; + @Resource + private PackagesplitDetailMapper packagesplitDetailMapper; @Override - public Long createPackagesplitMain(PackagesplitMainCreateReqVO createReqVO) { + @Transactional + public String createPackagesplitMain(PackagesplitMainCreateReqVO createReqVO) { // 插入 - PackagesplitMainDO packagesplitMain = PackagesplitMainConvert.INSTANCE.convert(createReqVO); - packagesplitMainMapper.insert(packagesplitMain); + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + PackagesplitMainDO mainDO = PackagesplitMainConvert.INSTANCE.convert(createReqVO); + List subDOList = PackagesplitDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.SPLIT_PACKAGE_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + mainDO.setId(null); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("SplitPackageRecord"); + mainDO.setBusinessType(businesstypeDO.getCode()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("SplitPackageRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + packagesplitMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + // 合并数量总和 + BigDecimal sumQty = BigDecimal.ZERO; + for (PackagesplitDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOFrom = locationService.selectLocation(detailDO.getLocationCode()); + if(locationDOFrom != null) { + detailDO.setAreaCode(locationDOFrom.getAreaCode()); + detailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + //查询库存余额 +// List inventoryStatusList = new ArrayList<>(); +// inventoryStatusList.add(detailDO.getToInventoryStatus()); +// List balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),detailDO.getToPackingNumber(),detailDO.getToBatch(),detailDO.getLocationCode(),inventoryStatusList); +// if (balanceDO == null || balanceDO.size() == 0) { +// throw exception(BALANCE_NOT_EXISTS); +// } + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, 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(detailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(detailDO.getToInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(detailDO.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(detailDO.getToQty()); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + // 更新包装信息 + updatePackageDO(detailDO.getToPackingNumber(),detailDO.getToQty()); + sumQty = sumQty.add(detailDO.getFromQty()); + } + //查询库存余额 + List inventoryStatusList = new ArrayList<>(); + inventoryStatusList.add(subDOList.get(0).getToInventoryStatus()); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(subDOList.get(0).getItemCode(),subDOList.get(0).getToPackingNumber(),subDOList.get(0).getToBatch(),subDOList.get(0).getLocationCode(), inventoryStatusList); + if (balanceDO == null || balanceDO.size() == 0) { + throw exception(BALANCE_NOT_EXISTS); + } + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(subDOList.get(0), transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(subDOList.get(0).getFromInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(subDOList.get(0).getFromBatch()); + transactionCreateReqVOOut.setPackingNumber(subDOList.get(0).getFromPackingNumber()); + transactionCreateReqVOOut.setLocationCode(subDOList.get(0).getLocationCode()); + transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice()); + transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount()); + transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate()); + transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate()); + transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate()); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); + transactionCreateReqVOOut.setQty(subDOList.get(0).getFromQty()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + // 更新包装信息——来源包装 库存余额数量-从包装数量 + updatePackageDO(subDOList.get(0).getFromPackingNumber(),balanceDO.get(0).getQty().subtract(subDOList.get(0).getFromQty())); + packagesplitDetailMapper.insertBatch(subDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "packagesplitMain", "增加了拆包记录", TrendsTypeEnum.CREATE); // 返回 - return packagesplitMain.getId(); + return mainDO.getNumber(); + } + + /** + * 更新包装信息 + * @param number + * @param qty + */ + private void updatePackageDO(String number, BigDecimal qty) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", number); + PackageDO packageDO = packageMapper.selectOne(queryWrapper); + if (packageDO == null) { + throw exception(PACKAGE_NOT_EXISTS); + } + packageDO.setQty(qty); + packageMapper.updateById(packageDO); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java index bca58704..8e7bb624 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java @@ -236,7 +236,7 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaCreateReqVO detailDo, BusinesstypeDO businesstypeDO) { // 校验--生产线基本信息 ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode()); - detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); +// detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); // 校验--物品基本信息 ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); // 赋值物品Item相关信息 From 1a50e50a3a851a5cf30257273aaf94ccd708d0a8 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Wed, 27 Dec 2023 09:31:20 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9Bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchasereturnJob/vo/PurchasereturnJobDetailBaseVO.java | 3 +-- .../vo/PurchasereturnRequestDetailBaseVO.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailBaseVO.java index 32e8f1b5..7460613a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailBaseVO.java @@ -54,8 +54,7 @@ public class PurchasereturnJobDetailBaseVO { @Schema(description = "订单行") private String poLine; - @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "原因不能为空") + @Schema(description = "原因") private String reason; @Schema(description = "物品代码") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestDetailBaseVO.java index 4313b5d6..edd9dd73 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestDetailBaseVO.java @@ -50,8 +50,7 @@ public class PurchasereturnRequestDetailBaseVO { @Schema(description = "订单行") private String poLine; - @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "原因不能为空") + @Schema(description = "原因") private String reason; @Schema(description = "单据号") From 0bc693cc3d44363f59a763314440c9d650bf9723 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 09:37:42 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=8B=86=E5=8C=85=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packagesplitmain/PackagesplitMainServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java index c579d03f..c2d389aa 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packagesplitmain/PackagesplitMainServiceImpl.java @@ -185,8 +185,8 @@ public class PackagesplitMainServiceImpl implements PackagesplitMainService { transactionCreateReqVOOut.setBatch(subDOList.get(0).getFromBatch()); transactionCreateReqVOOut.setPackingNumber(subDOList.get(0).getFromPackingNumber()); transactionCreateReqVOOut.setLocationCode(subDOList.get(0).getLocationCode()); - transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice()); - transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount()); + transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice().compareTo(BigDecimal.ZERO) == 1?balanceDO.get(0).getSinglePrice():BigDecimal.ZERO); + transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount().compareTo(BigDecimal.ZERO) == 1?balanceDO.get(0).getAmount():BigDecimal.ZERO); transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate()); transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate()); transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate()); @@ -195,7 +195,7 @@ public class PackagesplitMainServiceImpl implements PackagesplitMainService { transactionCreateReqVOOut.setId(null); transactionCreateReqVOList.add(transactionCreateReqVOOut); // 更新包装信息——来源包装 库存余额数量-从包装数量 - updatePackageDO(subDOList.get(0).getFromPackingNumber(),balanceDO.get(0).getQty().subtract(subDOList.get(0).getFromQty())); + updatePackageDO(subDOList.get(0).getFromPackingNumber(),balanceDO.get(0).getQty().subtract(sumQty)); packagesplitDetailMapper.insertBatch(subDOList); //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); From 913100941d95f235c87824037a47174d2ffd871d Mon Sep 17 00:00:00 2001 From: chenfang Date: Wed, 27 Dec 2023 09:49:46 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomerreturnRequestMainServiceImpl.java | 5 +- .../deliverJob/DeliverJobMainServiceImpl.java | 2 +- .../DeliverRequestMainServiceImpl.java | 1 - .../InventorymoveJobMainServiceImpl.java | 20 ++--- .../InventorymoveRecordMainServiceImpl.java | 78 ++++++++++--------- .../InventorymoveRequestMainServiceImpl.java | 32 ++++---- .../com/win/module/wms/util/JobUtils.java | 9 +++ 7 files changed, 83 insertions(+), 64 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java index d4a67973..7c6cc025 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java @@ -681,18 +681,19 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque //查询出已经退货完的记录主表下的子表数据 BigDecimal qty = BigDecimal.ZERO; for (CustomerreturnRecordDetailDO customerreturnRecordDetailDO : customerreturnRecordDetailDOS) { + //校验"当前客户退货记录子表"物品与"客户退货申请子表"物品是否一致 if (deliver.getItemCode().equals(detailDO.getItemCode()) && deliver.getBatch().equals(detailDO.getBatch()) && deliver.getPackingNumber().equals(detailDO.getPackingNumber())) { + //校验"当前客户退货记录子表"物品与"数据库里已退货的客户退货记录子表"物品是否一致 if (deliver.getItemCode().equals(customerreturnRecordDetailDO.getItemCode()) && deliver.getBatch().equals(customerreturnRecordDetailDO.getFromBatch()) && deliver.getPackingNumber().equals(customerreturnRecordDetailDO.getFromPackingNumber())) { hashMap.put(detailDO.getId(), qty = qty.add(customerreturnRecordDetailDO.getQty())); - } } } if (hashMap.get(detailDO.getId()) != null) { if (deliver.getQty().compareTo((hashMap.get(detailDO.getId())).add(detailDO.getQty())) == -1) { - throw exception(QTY_EXCEPTION, "当前客户退货申请单的" + detailDO.getId() + "的退货数量已超出当前发货记录的发货数量" + (hashMap.get(detailDO.getId())).add(detailDO.getQty()).subtract(deliver.getQty()) + "个"); + throw exception(QTY_EXCEPTION, "当前客户退货申请单【" + detailDO.getId() + "的该物品" + detailDO.getItemCode() + "】已全部退货,超出当前发货记录的发货数量" + (hashMap.get(detailDO.getId())).add(detailDO.getQty()).subtract(deliver.getQty()) + "个"); } } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java index 6b16fff3..4eafdefb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java @@ -272,7 +272,7 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { //创建客户收货记录主表 DeliverRecordMainDO deliverRecordMainDO = new DeliverRecordMainDO(); BeanUtils.copyProperties(deliverJobMainDO, deliverRecordMainDO); - String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_JOB.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_RECORD.getCode()); deliverRecordMainDO.setNumber(number); deliverRecordMainDO.setJobNumber(deliverJobMainDO.getNumber()); deliverRecordMainDO.setId(null); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java index 9ab360d9..336cfc32 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java @@ -48,7 +48,6 @@ import com.win.module.wms.service.customer.CustomerService; import com.win.module.wms.service.customerdock.CustomerdockService; import com.win.module.wms.service.deliverJob.DeliverJobMainService; import com.win.module.wms.service.deliverPlan.DeliverPlanDetailService; -import com.win.module.wms.service.deliverPlan.DeliverPlanMainService; import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.jobsetting.JobsettingService; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java index 291adaba..a0014933 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java @@ -260,32 +260,34 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ if ("HoldToOk".equals(inventorymoveRecordMainDO.getBusinessType())) { number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); } else if ("OkToHold".equals(inventorymoveRecordMainDO.getBusinessType())) { number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); } else if ("HoldToScrap".equals(inventorymoveRecordMainDO.getBusinessType())) { number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); } else if ("ScrapToHold".equals(inventorymoveRecordMainDO.getBusinessType())) { number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); } else if ("OkToScrap".equals(inventorymoveRecordMainDO.getBusinessType())) { number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); }else { number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("MoveRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord"); } inventorymoveRecordMainDO.setNumber(number); - inventorymoveRecordMainDO.setBusinessType(businesstypeDO.getCode()); - inventorymoveRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); - inventorymoveRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + if(businesstypeDO != null){ + inventorymoveRecordMainDO.setBusinessType(businesstypeDO.getCode()); + inventorymoveRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + inventorymoveRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + } inventorymoveRecordMainDO.setInterfaceType(recordsettingDO.getInterfaceType()); inventorymoveRecordMainMapper.insert(inventorymoveRecordMainDO); List inventorymoveJobDetailUpdateReqVOList = inventorymoveJobMainUpdateReqVO.getSubList(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java index 00dc6673..cc3db0ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java @@ -81,41 +81,43 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa // 插入 InventorymoveRecordMainDO mainDO = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO); List subDOList = InventorymoveRecordMainConvert.INSTANCE.convertList03(createReqVO.getSubList()); - if("HoldToOkRecord".equals(mainDO.getBusinessType())){ + if("HoldToOk".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); - } else if("OkToHoldRecord".equals(mainDO.getBusinessType())){ + } else if("OkToHold".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); - } else if("HoldToScrapRecord".equals(mainDO.getBusinessType())){ + } else if("HoldToScrap".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); - } else if("ScrapToHoldRecord".equals(mainDO.getBusinessType())){ + } else if("ScrapToHold".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); - } else if("OkToScrapRecord".equals(mainDO.getBusinessType())){ + } else if("OkToScrap".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); - }else if("InventoryMoveRecord".equals(mainDO.getBusinessType())){ + }else if("Move".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord"); - recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryMoveRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("MoveRecord"); } mainDO.setNumber(number); - mainDO.setBusinessType(businesstypeDO.getCode()); + if(businesstypeDO != null){ + mainDO.setBusinessType(businesstypeDO.getCode()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); mainDO.setCreator(createReqVO.getCreator()); - mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); - mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); - mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); AdminUserRespDTO user = userApi.getUser(Long.valueOf(createReqVO.getCreator())); mainDO.setDepartmentCode(user.getDeptId().toString()); mainDO.setExecuteTime(LocalDateTime.now()); @@ -145,10 +147,12 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); //增加业务出类型 - transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); - transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); - transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + if(businesstypeDO != null){ + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + } transactionCreateReqVOOut.setRecordNumber(number); transactionCreateReqVOOut.setInventoryStatus(detailDO.getFromInventoryStatus()); transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); @@ -159,24 +163,26 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); transactionCreateReqVOOut.setId(null); transactionCreateReqVOList.add(transactionCreateReqVOOut); - //判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务 - if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { - //增加业务入类型 - 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(detailDO.getToBatch()); - transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); - transactionCreateReqVOIn.setInventoryStatus(detailDO.getToInventoryStatus()); - transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); - transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode()); - transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); - transactionCreateReqVOIn.setRecordNumber(number); - transactionCreateReqVOIn.setId(null); - //待确定库存事务信息 - transactionCreateReqVOList.add(transactionCreateReqVOIn); + if(businesstypeDO != null){ + //判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务 + if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) { + //增加业务入类型 + 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(detailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(detailDO.getToInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode()); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } } } inventorymoveRecordDetailMapper.insertBatch(subDOList); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java index 8e9f9e7f..0bc033af 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java @@ -578,27 +578,27 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest if("HoldToOk".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); } else if("OkToHold".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); } else if("HoldToScrap".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); } else if("ScrapToHold".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); } else if("OkToScrap".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); }else { number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); recordsettingDO = recordsettingService.selectRecordsettingExist("MoveRecord"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord"); } inventorymoveRecordMainCreateReqVO.setNumber(number); inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); @@ -638,27 +638,27 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest if("HoldToOk".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_JOB.getCode()); jobsettingDO = jobsettingService.selectJobsettingExist("HoldToOkJob"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkJob"); } else if("OkToHold".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_JOB.getCode()); jobsettingDO = jobsettingService.selectJobsettingExist("OkToHoldJob"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldJob"); } else if("HoldToScrap".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_JOB.getCode()); jobsettingDO = jobsettingService.selectJobsettingExist("HoldToScrapJob"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapJob"); } else if("ScrapToHold".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_JOB.getCode()); jobsettingDO = jobsettingService.selectJobsettingExist("ScrapToHoldJob"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldJob"); } else if("OkToScrap".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_JOB.getCode()); jobsettingDO = jobsettingService.selectJobsettingExist("OkToScrapJob"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapJob"); }else { number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_JOB.getCode()); jobsettingDO = jobsettingService.selectJobsettingExist("MoveJob"); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveJob"); } inventorymoveJobMainDO.setNumber(number); inventorymoveJobMainDO.setRequestTime(mainDO.getRequestTime()); @@ -681,9 +681,11 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest inventorymoveJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); inventorymoveJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); //增加业务类型 - inventorymoveJobMainDO.setBusinessType(businesstypeDO.getCode()); - inventorymoveJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); - inventorymoveJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + if(businesstypeDO != null){ + inventorymoveJobMainDO.setBusinessType(businesstypeDO.getCode()); + inventorymoveJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); + inventorymoveJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + } inventorymoveJobMainMapper.insert(inventorymoveJobMainDO); List expectpoutCreateReqVOList = new ArrayList<>(); List expectpinCreateReqVOList = new ArrayList<>(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java index fbd1f404..30b40213 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java @@ -190,6 +190,15 @@ public class JobUtils { return result; } + public void demo(String pcode){ + BusinesstypeDO businesstypeDO = selectDocumentSettingFromBusinessType(pcode); + String inLocationTypes = businesstypeDO.getInLocationTypes(); + String[] split = inLocationTypes.split(","); + ArrayList balanceDOArrayList = new ArrayList<>(); + for (String s : split) { +// balanceService.getBalancePage() + } + } /** * 更新发货计划的已发货数量 From 2ea9fdfd068235d713343aa445b86db4d4b5257b Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Wed, 27 Dec 2023 10:18:07 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E9=AA=8C=E8=AF=81=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchasereturnRequestMainServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java index 976e7be6..b7cc8633 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java @@ -31,6 +31,7 @@ import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnReco import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.supplier.SupplierDO; import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper; import com.win.module.wms.dal.mysql.purchasereturnJob.PurchasereturnJobDetailMapper; import com.win.module.wms.dal.mysql.purchasereturnJob.PurchasereturnJobMainMapper; @@ -38,6 +39,7 @@ import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordDet import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordMainMapper; import com.win.module.wms.dal.mysql.purchasereturnRequest.PurchasereturnRequestDetailMapper; import com.win.module.wms.dal.mysql.purchasereturnRequest.PurchasereturnRequestMainMapper; +import com.win.module.wms.dal.mysql.supplier.SupplierMapper; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; @@ -113,6 +115,8 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque private TrendsApi trendsApi; @Resource private JobsettingService jobsettingService; + @Resource + private SupplierMapper supplierMapper; @Override @Transactional @@ -459,6 +463,10 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque // 新增校验 private void validatorToCreate(PurchasereturnRequestMainDO mainDO, List subDOList) { + SupplierDO supplierDO = supplierMapper.selectByCode(mainDO.getSupplierCode()); + if(supplierDO == null) { + throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); + } requestsettingAndBusinesstypeSet(mainDO); //子表校验 for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : subDOList) {