From ac0aa960be6abbbc5122944d27323b8db4893ee7 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 20 七月 2025 20:39:55 +0800
Subject: [PATCH] 出库订单扣减出库完成数量

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   19 ++++++++++---------
 src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java |    5 +++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   12 +++++++++---
 src/main/resources/mapper/OrderDetlPakoutMapper.xml         |   15 +++++++++++++++
 4 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java
index 70e2f1c..b0a48a8 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java
@@ -22,6 +22,8 @@
                                         @Param("brand")String brand, @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1,
                                         @Param("boxType2")String boxType2,
                                         @Param("boxType3")String boxType3);
+    OrderDetlPakout selectItemByOrderNoNew(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch,
+                                        @Param("model")String model, @Param("volume")Double volume);
 
     List<OrderDetlPakout> selectWorkingDetls(Long orderId);
 
@@ -48,6 +50,9 @@
                              @Param("boxType2")String boxType2,
                              @Param("boxType3")String boxType3, @Param("qty")Double qty);
 
+    int increaseQtyByOrderNoNew(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch,
+                                @Param("model")String model, @Param("volume")Double volume, @Param("qty")Double qty);
+
     int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("brand")String brand,
                         @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1,
                         @Param("boxType2")String boxType2,
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index e948916..6925ad8 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -14,6 +14,7 @@
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.entity.result.FindLocNoAttributeVo;
+import com.zy.asrs.mapper.OrderDetlPakoutMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.asrs.utils.Utils;
@@ -93,6 +94,9 @@
 
     @Resource
     private OrderPakoutService orderPakOutService;
+
+    @Resource
+    private OrderDetlPakoutMapper orderDetlPakoutMapper;
 
     @Override
     @Transactional
@@ -1150,9 +1154,11 @@
 //                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
 //                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
 //                    }
-                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
-                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
-                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
+//                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
+//                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+//                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
+                    orderDetlPakoutMapper.increaseQtyByOrderNoNew(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                            wrkDetl.getBatch(),wrkDetl.getModel(),wrkDetl.getVolume(),wrkDetl.getAnfme());
 
                     //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
                     boolean flag = true;
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 8f19b75..82f06c9 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.OrderDetlPakoutMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
@@ -12,6 +13,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 
@@ -39,6 +41,9 @@
     private OrderDetlPakinService orderDetlPakinService;
     @Autowired
     private OrderDetlPakoutService orderDetlPakoutService;
+
+    @Resource
+    private OrderDetlPakoutMapper orderDetlPakoutMapper;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -447,17 +452,13 @@
                     }
                     for (WrkDetl wrkDetl : wrkDetls101) {
                         // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
-                                wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
-                        if (orderDetlPakout==null){
-                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
-                                    wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
-                        }
+//                        OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+//                                wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+                        OrderDetlPakout orderDetlPakout = orderDetlPakoutMapper.selectItemByOrderNoNew(wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getBatch(),wrkDetl.getModel(),wrkDetl.getVolume());
                         try {
                             if(!Cools.isEmpty(orderDetlPakout)){
-                                if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        orderDetlPakout.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
-                                        wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){
+                                if(orderDetlPakoutMapper.increaseQtyByOrderNoNew(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        wrkDetl.getBatch(),wrkDetl.getModel(),wrkDetl.getVolume(),wrkDetl.getAnfme())<= 0){
 //                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
 //                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
diff --git a/src/main/resources/mapper/OrderDetlPakoutMapper.xml b/src/main/resources/mapper/OrderDetlPakoutMapper.xml
index 7f70401..798de3d 100644
--- a/src/main/resources/mapper/OrderDetlPakoutMapper.xml
+++ b/src/main/resources/mapper/OrderDetlPakoutMapper.xml
@@ -137,6 +137,13 @@
         and mdt.pakout = 1
         <include refid="pakOutPageCondition"></include>
     </select>
+    <select id="selectItemByOrderNoNew" resultType="com.zy.asrs.entity.OrderDetlPakout">
+        select * from man_order_detl_pakout
+        where 1=1
+        and order_no = #{orderNo}
+        and matnr = #{matnr}
+        and batch = #{batch} and model = #{model} and  volume = #{volume}
+    </select>
 
     <update id="increase">
         update man_order_detl_pakout
@@ -184,5 +191,13 @@
         and matnr = #{matnr}
         <include refid="standbyAll"></include>
     </update>
+    <update id="increaseQtyByOrderNoNew">
+        update man_order_detl_pakout
+        set qty = qty + #{qty}
+        where 1=1
+        and order_no = #{orderNo}
+        and matnr = #{matnr}
+        and batch = #{batch} and model = #{model} and  volume = #{volume}
+    </update>
 
 </mapper>

--
Gitblit v1.9.1