From ae138915aea989f4ed98797c84f5c80ef4f77a01 Mon Sep 17 00:00:00 2001 From: zhaoqing <3160641494@qq.com> Date: Fri, 7 Aug 2026 18:51:04 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix(system):=20=E5=BA=93=E4=BD=8D=E5=BA=93?= =?UTF-8?q?=E5=8C=BA=E6=8E=92=E5=BA=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/basic/storageLocation/StorageLocationMapper.xml | 4 ++-- .../mapper/basic/storageSection/StorageSectionMapper.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml index e2915658e..e9aa41514 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/storageLocation/StorageLocationMapper.xml @@ -185,8 +185,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - order by a.create_time desc + order by a.storage_name asc, a.create_time desc \ No newline at end of file From 6b2adce82fc28321a1e85abd53ef3ce989079318 Mon Sep 17 00:00:00 2001 From: zhaoqing <3160641494@qq.com> Date: Sat, 8 Aug 2026 10:01:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix(system):=20=E5=A4=8D=E6=A0=B8=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReviewOrderApplicationService.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java index 0329feb68..7262f1440 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java @@ -792,11 +792,18 @@ public class ReviewOrderApplicationService { private void refreshReviewOrderStatus(Long reviewOrderId) { List rows = reviewOrderMapper.queryDetailByReviewOrderId(reviewOrderId); - // 业务口径:只有全部明细待复核=0 时,状态才置为 2;部分复核仍保持 1。 - // 状态 3 仅在 checkConfirm 中设置。 - boolean allReviewed = !CollectionUtils.isEmpty(rows) - && rows.stream().allMatch(r -> nz(r.getPendingReviewQty()).compareTo(BigDecimal.ZERO) == 0); - Integer targetStatus = allReviewed ? 2 : 1; + // ================== 旧口径:全部明细待复核=0 置 2,部分复核保持 1 ================== +// // 业务口径:只有全部明细待复核=0 时,状态才置为 2;部分复核仍保持 1。 +// // 状态 3 仅在 checkConfirm 中设置。 +// boolean allReviewed = !CollectionUtils.isEmpty(rows) +// && rows.stream().allMatch(r -> nz(r.getPendingReviewQty()).compareTo(BigDecimal.ZERO) == 0); +// Integer targetStatus = allReviewed ? 2 : 1; + // ================== 新口径:部分复核/全部复核完未确认均置 复核中(2),完全未复核保持 待复核(1) ================== + // 只要有任意明细已复核数量>0(部分复核 / 全部复核完未确认)即为复核中(2); + // 完全未复核(全部已复核=0)保持待复核(1)。状态 3 仅在 checkConfirm 中设置。 + boolean anyReviewed = !CollectionUtils.isEmpty(rows) + && rows.stream().anyMatch(r -> nz(r.getReviewedQty()).compareTo(BigDecimal.ZERO) > 0); + Integer targetStatus = anyReviewed ? 2 : 1; ReviewOrder order = reviewOrderMapper.selectById(reviewOrderId); if (order == null) { From 0f88ad75b9ae77471abaa9990789ff3db3c186cf Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Sat, 8 Aug 2026 10:07:39 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix(wms=20=E5=BA=93=E5=AD=98=E6=A8=A1?= =?UTF-8?q?=E5=9D=97):=20=E4=BF=AE=E5=A4=8D=E5=BA=93=E5=AD=98=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E5=88=86=E7=BB=84=E6=8B=86=E5=88=86bug=E5=B9=B6?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=BA=93=E5=AD=98=E8=B0=83=E6=95=B4=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E7=A9=BA=E5=80=BC=E6=A0=A1=E9=AA=8C=201.=20queryListB?= =?UTF-8?q?yHzWlUnit=E3=80=81queryListByWlExpiry=20=E7=9A=84=20GROUP=20BY?= =?UTF-8?q?=20=E7=A7=BB=E9=99=A4=20=20=20=20shipper=5Fcode/material=5Fcode?= =?UTF-8?q?=20=E7=AD=89=E6=8F=8F=E8=BF=B0=E5=88=97=EF=BC=8C=E5=8F=AA?= =?UTF-8?q?=E4=BF=9D=E7=95=99ID=E5=88=97=EF=BC=9B=E5=AF=B9=E5=BA=94SELECT?= =?UTF-8?q?=20=20=20=20=E6=8F=8F=E8=BF=B0=E5=88=97=E6=94=B9=E7=94=A8MAX()?= =?UTF-8?q?=E8=81=9A=E5=90=88=EF=BC=8C=E9=81=BF=E5=85=8D=E5=90=8CID?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=9B=A0=E6=8F=8F=E8=BF=B0=E5=88=97NULL/?= =?UTF-8?q?=E5=80=BC=E4=B8=8D=E4=B8=80=E8=87=B4=E8=A2=AB=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8B=86=E5=88=86=E3=80=82=202.=20=E5=BA=93=E5=AD=98=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E=20ObjectUtil.isNo?= =?UTF-8?q?tNull(warehousePO)=20=E7=A9=BA=E5=80=BC=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nventoryAdjustmentRecordDomainService.java | 2 +- .../MaterialInventoryMapper.xml | 75 +++++++++++-------- 2 files changed, 43 insertions(+), 34 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java index 2f0fe6053..51ad599be 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inventoryAdjustmentRecord/service/InventoryAdjustmentRecordDomainService.java @@ -292,7 +292,7 @@ public class InventoryAdjustmentRecordDomainService { //推送oms库存调整记录 try{ // 当仓库启用 oms 才进行推送 - if (warehousePO.getIsEnable() == 1) { + if (ObjectUtil.isNotNull(warehousePO) && warehousePO.getIsEnable() == 1) { Boolean pushSuccess = pushOms(materialInventory, inventoryAdjustmentRecordDO); if (!pushSuccess) { throw new ServiceException("库存调整推送OMS失败,请稍后重试"); diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 8656e711d..25a2173a3 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -458,8 +458,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -531,28 +531,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - a.shipper_id, a.shipper_code, a.shipper_name, - b.material_base_info_id, b.material_code, b.material_name, b.SPECIFICATION_MODEL, - a.warehouse_id, a.warehouse_code, a.warehouse_name, - a.organization_id, a.organization_name, a.top_organization_id, - MAX(b.material_type) AS material_type, - MAX(b.material_type_name) AS material_type_name, - MAX(b.bar_code) AS bar_code, - MAX(nvl(a.unit_name, b.unit_name)) AS unit_name, - MAX(b.pack_id) AS pack_id, - MAX(b.pack_code) AS pack_code, - MAX(b.pack_name) AS pack_name, - MAX(a.unit) AS unit, - IFNULL(SUM(a.freeze_quantity), 0) AS freeze_quantity, - IFNULL(SUM(a.inventory_quantity), 0) AS inventory_quantity, - IFNULL(SUM(a.allocation_quantity), 0) AS allocation_quantity, - IFNULL(SUM(a.area), 0) AS area, - IFNULL(SUM(a.NET_WEIGHT), 0) AS NET_WEIGHT, - IFNULL(SUM(a.GROSS_WEIGHT), 0) AS GROSS_WEIGHT, - IFNULL(SUM(a.VOLUME), 0) AS VOLUME, - MIN(a.create_time) AS create_time, -- 新增:首次入库时间 - MAX(a.update_time) AS update_time, - CASE WHEN IFNULL(SUM(a.inventory_quantity), 0) = 0 THEN 1 ELSE 0 END AS sort_order + a.shipper_id, + MAX(a.shipper_code) AS shipper_code, + MAX(a.shipper_name) AS shipper_name, + b.material_base_info_id, + MAX(b.material_code) AS material_code, + MAX(b.material_name) AS material_name, + MAX(b.SPECIFICATION_MODEL) AS SPECIFICATION_MODEL, + a.warehouse_id, + MAX(a.warehouse_code) AS warehouse_code, + MAX(a.warehouse_name) AS warehouse_name, + a.organization_id, + MAX(a.organization_name) AS organization_name, + a.top_organization_id, + MAX(b.material_type) AS material_type, + MAX(b.material_type_name) AS material_type_name, + MAX(b.bar_code) AS bar_code, + MAX(nvl(a.unit_name, b.unit_name)) AS unit_name, + MAX(b.pack_id) AS pack_id, + MAX(b.pack_code) AS pack_code, + MAX(b.pack_name) AS pack_name, + MAX(a.unit) AS unit, + IFNULL(SUM(a.freeze_quantity), 0) AS freeze_quantity, + IFNULL(SUM(a.inventory_quantity), 0) AS inventory_quantity, + IFNULL(SUM(a.allocation_quantity), 0) AS allocation_quantity, + IFNULL(SUM(a.area), 0) AS area, + IFNULL(SUM(a.NET_WEIGHT), 0) AS NET_WEIGHT, + IFNULL(SUM(a.GROSS_WEIGHT), 0) AS GROSS_WEIGHT, + IFNULL(SUM(a.VOLUME), 0) AS VOLUME, + MIN(a.create_time) AS create_time, + MAX(a.update_time) AS update_time, + CASE WHEN IFNULL(SUM(a.inventory_quantity), 0) = 0 THEN 1 ELSE 0 END AS sort_order From 02de8706e223b9a03923acf9aa5c4fdc4ebb018e Mon Sep 17 00:00:00 2001 From: zhaoqing <3160641494@qq.com> Date: Sat, 8 Aug 2026 11:46:55 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix(wms):=20=E5=A4=8D=E6=A0=B8=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReviewOrderApplicationService.java | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java index 7262f1440..8b805a8e7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java @@ -234,7 +234,7 @@ public class ReviewOrderApplicationService { } db.setPendingReviewQty(pending.subtract(qty)); db.setReviewedQty(reviewed.add(qty)); - // 同步页面传入的重量/体积/面积 + // 同步页面传入的重量/体积/面积/尺寸 if (i.getNetWeightKg() != null) { db.setNetWeightKg(i.getNetWeightKg()); } @@ -247,6 +247,9 @@ public class ReviewOrderApplicationService { if (i.getAreaSqm() != null) { db.setAreaSqm(i.getAreaSqm()); } + if (i.getSize() != null) { + db.setSize(i.getSize()); + } fillOperator(db); reviewMaterialDetailMapper.updateById(db); } @@ -288,7 +291,7 @@ public class ReviewOrderApplicationService { db.setReviewedQty(reviewed.subtract(qty)); db.setPendingReviewQty(pending.add(qty)); db.setCancelQty(cancel.add(qty)); - // 同步页面传入的重量/体积/面积 + // 同步页面传入的重量/体积/面积/尺寸 if (i.getNetWeightKg() != null) { db.setNetWeightKg(i.getNetWeightKg()); } @@ -301,6 +304,9 @@ public class ReviewOrderApplicationService { if (i.getAreaSqm() != null) { db.setAreaSqm(i.getAreaSqm()); } + if (i.getSize() != null) { + db.setSize(i.getSize()); + } fillOperator(db); reviewMaterialDetailMapper.updateById(db); } @@ -337,16 +343,16 @@ public class ReviewOrderApplicationService { // 与出库单「复核确认」一致:复核数量与拣货数量不一致时生成复核异常单(FHYC) genOutOrderAbnormalAfterReviewConfirm(reviewOrderId); // 校验:复核确认前,已复核数量必须等于计划数量 - List details = reviewOrderMapper.queryDetailByReviewOrderId(reviewOrderId); - if (!CollectionUtils.isEmpty(details)) { - for (ReviewMaterialDetailPO detail : details) { - BigDecimal reviewed = nz(detail.getReviewedQty()); - BigDecimal plan = nz(detail.getMaterialPlanQty()); - if (reviewed.compareTo(plan) != 0) { - throw new ServiceException("该物料已复核数量不等于计划数量"); - } - } - } +// List details = reviewOrderMapper.queryDetailByReviewOrderId(reviewOrderId); +// if (!CollectionUtils.isEmpty(details)) { +// for (ReviewMaterialDetailPO detail : details) { +// BigDecimal reviewed = nz(detail.getReviewedQty()); +// BigDecimal plan = nz(detail.getMaterialPlanQty()); +// if (reviewed.compareTo(plan) != 0) { +// throw new ServiceException("该物料已复核数量不等于计划数量"); +// } +// } +// } ReviewOrder order = reviewOrderMapper.selectById(reviewOrderId); if (order == null) { continue; @@ -751,8 +757,11 @@ public class ReviewOrderApplicationService { if (i.getAreaSqm() != null) { db.setAreaSqm(i.getAreaSqm()); } + if (i.getSize() != null) { + db.setSize(i.getSize()); + } if (qtyTouched || i.getNetWeightKg() != null || i.getGrossWeightKg() != null - || i.getVolumeCbm() != null || i.getAreaSqm() != null) { + || i.getVolumeCbm() != null || i.getAreaSqm() != null || i.getSize() != null) { fillOperator(db); reviewMaterialDetailMapper.updateById(db); }