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 2a0279e..0cde3b7 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java @@ -179,4 +179,7 @@ public interface GysJhMapper */ int decreaseRealQtyById(@Param("rollbackQty") BigDecimal rollbackQty, @Param("gysJhId") Long gysJhId); + + + int syncGysJhQty(GysJh gysJh); } 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 fc06f89..c43fdc3 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 @@ -206,10 +206,13 @@ public class RkBillServiceImpl implements IRkBillService BigDecimal currentInQty = entry.getValue(); GysJh gysJh = gysJhMapper.selectGysJhById(gysJhId); + if (gysJh == null) { throw new RuntimeException("供应计划不存在,ID:" + gysJhId); } - + int rows = gysJhMapper.syncGysJhQty(gysJh); + // 重新查(必须) + gysJh = gysJhMapper.selectGysJhById(gysJhId); BigDecimal planQty = gysJh.getJhQty(); if (planQty == null) { continue; diff --git a/src/main/resources/mybatis/wisdom/GysJhMapper.xml b/src/main/resources/mybatis/wisdom/GysJhMapper.xml index 2dea022..5cbf4ee 100644 --- a/src/main/resources/mybatis/wisdom/GysJhMapper.xml +++ b/src/main/resources/mybatis/wisdom/GysJhMapper.xml @@ -317,5 +317,18 @@ WHERE id = #{gysJhId} AND IFNULL(real_qty, 0) >= #{rollbackQty} - + + UPDATE gys_jh gj + JOIN rk_info ri + ON gj.sap_no = ri.sap_no + AND gj.wl_no = ri.wl_no + AND gj.xm_no = ri.xm_no + SET + gj.real_qty = ri.real_qty + WHERE (gj.is_delete = '0' OR gj.is_delete IS NULL) + AND (ri.is_delete = '0' OR ri.is_delete IS NULL) + AND ri.sap_no = #{sapNo} + AND ri.wl_no = #{wlNo} + AND ri.xm_no = #{xmNo} +