From ecd7f73e886e51fc179753b15d98d5f68f647f82 Mon Sep 17 00:00:00 2001 From: liuyuxin Date: Fri, 24 Apr 2026 11:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E4=BD=8D=E4=BF=AE=E6=94=B9=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5=20=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E9=87=8D=E5=A4=8D=E7=9A=84=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PcdeDetailServiceImpl.java | 12 +++++++--- .../zg/project/wisdom/mapper/GysJhMapper.java | 2 +- .../project/wisdom/mapper/RkInfoMapper.java | 4 ++++ .../service/impl/RkBillServiceImpl.java | 2 +- .../service/impl/RkRecordServiceImpl.java | 2 +- .../resources/mybatis/wisdom/GysJhMapper.xml | 22 +++++-------------- .../resources/mybatis/wisdom/RkInfoMapper.xml | 13 +++++++++++ 7 files changed, 35 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java b/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java index c3838c6..06efccf 100644 --- a/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java +++ b/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java @@ -126,11 +126,17 @@ public class PcdeDetailServiceImpl implements IPcdeDetailService // 获取库位编号 String locationCode = pcdeDetail.getPcode(); + String warehouseCode = pcdeDetail.getWarehouseCode(); + String scene = pcdeDetail.getScene(); + String pcode = pcdeDetail.getPcode(); - // 检查该库位是否仍有关联货物 - int count = rkInfoMapper.countRkInfoByLocationCode(locationCode); + // 按 仓库+场景+库位编码 校验是否有关联货物 + int count = rkInfoMapper.countRkInfoByPcdeDetail(warehouseCode, scene, pcode); + +// // 检查该库位是否仍有关联货物 +// int count = rkInfoMapper.countRkInfoByLocationCode(locationCode); if (count > 0) { - throw new ServiceException("库位 [" + locationCode + "] 上还有货物,无法批量删除"); + throw new ServiceException("库位 [" + pcode + "] 上还有货物,无法批量删除"); } } diff --git a/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java b/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java index 0cde3b7..3de328d 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java @@ -181,5 +181,5 @@ public interface GysJhMapper @Param("gysJhId") Long gysJhId); - int syncGysJhQty(GysJh gysJh); + int syncGysJhQty(@Param("gysJhId") Long gysJhId); } diff --git a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java index ab7219d..c05ac4e 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java @@ -195,4 +195,8 @@ public interface RkInfoMapper public int countRkInfoByLocationCode(String locationCode); + + int countRkInfoByPcdeDetail(@Param("warehouseCode") String warehouseCode, + @Param("scene") String scene, + @Param("pcode") String pcode); } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java index c43fdc3..124cc09 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java @@ -210,7 +210,7 @@ public class RkBillServiceImpl implements IRkBillService if (gysJh == null) { throw new RuntimeException("供应计划不存在,ID:" + gysJhId); } - int rows = gysJhMapper.syncGysJhQty(gysJh); + int rows = gysJhMapper.syncGysJhQty(gysJhId); // 重新查(必须) gysJh = gysJhMapper.selectGysJhById(gysJhId); BigDecimal planQty = gysJh.getJhQty(); diff --git a/src/main/java/com/zg/project/wisdom/service/impl/RkRecordServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/RkRecordServiceImpl.java index 312c545..a79d3be 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/RkRecordServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/RkRecordServiceImpl.java @@ -517,7 +517,7 @@ public class RkRecordServiceImpl implements IRkRecordService if (gysJh == null) { throw new ServiceException("供应计划不存在,ID:" + gysJhId); } - int rows = gysJhMapper.syncGysJhQty(gysJh); + int rows = gysJhMapper.syncGysJhQty(gysJhId); // 重新查(必须) gysJh = gysJhMapper.selectGysJhById(gysJhId); BigDecimal planQty = gysJh.getJhQty(); diff --git a/src/main/resources/mybatis/wisdom/GysJhMapper.xml b/src/main/resources/mybatis/wisdom/GysJhMapper.xml index 76f4d48..6cf35c0 100644 --- a/src/main/resources/mybatis/wisdom/GysJhMapper.xml +++ b/src/main/resources/mybatis/wisdom/GysJhMapper.xml @@ -317,29 +317,19 @@ WHERE id = #{gysJhId} AND IFNULL(real_qty, 0) >= #{rollbackQty} - + UPDATE gys_jh gj LEFT JOIN ( SELECT - sap_no, - wl_no, - xm_no, + gys_jh_id, IFNULL(SUM(real_qty), 0) AS total_real_qty FROM rk_info WHERE (is_delete = '0' OR is_delete IS NULL) AND exec_status = '1' - AND sap_no = #{sapNo} - AND wl_no = #{wlNo} - AND xm_no = #{xmNo} - GROUP BY sap_no, wl_no, xm_no - ) t - ON gj.sap_no = t.sap_no - AND gj.wl_no = t.wl_no - AND gj.xm_no = t.xm_no + AND gys_jh_id = #{gysJhId} + GROUP BY gys_jh_id + ) t ON gj.id = t.gys_jh_id SET gj.real_qty = IFNULL(t.total_real_qty, 0) - WHERE (gj.is_delete = '0' OR gj.is_delete IS NULL) - AND gj.sap_no = #{sapNo} - AND gj.wl_no = #{wlNo} - AND gj.xm_no = #{xmNo} + WHERE gj.id = #{gysJhId} diff --git a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml index aa72093..1c60016 100644 --- a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml +++ b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml @@ -731,4 +731,17 @@ AND is_chuku = 0 AND IFNULL(real_qty, 0) > 0 +