From 595108c00257f238815ffc5c20fbfa82244c7740 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 29 三月 2022 10:52:05 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/OrderDetlMapper.xml                    |   16 ++++++++
 src/main/resources/mapper/WrkDetlMapper.xml                      |    4 ++
 src/main/java/com/zy/asrs/entity/OrderDetl.java                  |    3 +
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java              |    4 ++
 src/main/java/com/zy/asrs/service/OrderDetlService.java          |    2 +
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java            |    2 +
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |    6 +++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java      |   32 ++++++++--------
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java   |    5 ++
 src/main/java/com/zy/asrs/service/WrkDetlService.java            |    2 +
 10 files changed, 60 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index ebfe9c2..cef183b 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -53,6 +53,9 @@
 
     /**
      * 浣滀笟鏁伴噺
+     *
+     *  1. 鍏ュ簱 : qty 馃憜
+     *  1. 鍑哄簱 : qty 馃憜
      */
     @ApiModelProperty(value= "浣滀笟鏁伴噺")
     private Double qty;
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index b2c328a..800d20f 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -20,4 +20,6 @@
 
     int increase(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
 
+    int decrease(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
+
 }
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 6193859..e4c0ff5 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -5,8 +5,12 @@
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Mapper
 @Repository
 public interface WrkDetlMapper extends BaseMapper<WrkDetl> {
 
+    List<WrkDetl> selectByWrkNo(Integer wrkNo);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index 288c794..8080b2d 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -17,4 +17,6 @@
 
     boolean increase(Long orderId, String matnr, String batch, Double qty);
 
+    boolean decrease(String orderNo, String matnr, String batch, Double qty);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 8b3c512..7b92036 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -10,4 +10,6 @@
 
     void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId);
 
+    List<WrkDetl> selectByWrkNo(Integer wrkNo);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index 65e721f..99f70f4 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -48,4 +48,10 @@
     public boolean increase(Long orderId, String matnr, String batch, Double qty) {
         return this.baseMapper.increase(orderId, matnr, batch, qty) > 0;
     }
+
+    @Override
+    public boolean decrease(String orderNo, String matnr, String batch, Double qty) {
+        return this.baseMapper.decrease(orderNo, matnr, batch, qty) > 0;
+    }
+
 }
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 0ce118a..0359887 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -45,11 +45,11 @@
     @Autowired
     private WrkMastService wrkMastService;
     @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
     private BasDevpService basDevpService;
     @Autowired
     private CommonService commonService;
-    @Autowired
-    private WrkDetlService wrkDetlService;
     @Autowired
     private LocMastService locMastService;
     @Autowired
@@ -307,9 +307,7 @@
         // 鐢熸垚宸ヤ綔妗f槑缁�
         for (LocDto locDto : taskDto.getLocDtos()) {
             if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
-
             OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
-
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(workNo);
@@ -324,6 +322,9 @@
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
+            // todo:luxiaotao 淇敼璁㈠崟鏄庣粏鏁伴噺
+
+
         }
         // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
         locMast = locMastService.selectById(taskDto.getLocNo());
@@ -751,18 +752,6 @@
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
                 locSts = "F";
-                // 閿�鍞崟鍏宠仈锛屽垯鐢熸垚鏂扮殑鍑哄簱浠诲姟
-                if (wrkMast.getPdcType().equals("Y")) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
-                    for (WrkDetl wrkDetl : wrkDetls) {
-                        Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(wrkDetl.getMatnr())).orElse(0.0D);
-                        if (sumAnfme < wrkDetl.getAnfme()) {
-                            throw new CoolException("鍙栨秷澶辫触锛佸簱瀛樹笉瓒充互閲嶆柊鐢熸垚鍑哄簱浣滀笟");
-                        }
-                    }
-                    // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
-                    stockOutRe(wrkMast, wrkDetls);
-                }
             // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 110) {
                 locSts = "D";
@@ -782,6 +771,17 @@
         } else {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
+        // 璁㈠崟鍏宠仈
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        for (WrkDetl wrkDetl : wrkDetls) {
+            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+                    throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+                }
+                // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
+//                        stockOutRe(wrkMast, wrkDetls);
+            }
+        }
         // 鍙栨秷鎿嶄綔浜哄憳璁板綍
         wrkMast.setManuType("鎵嬪姩鍙栨秷");
         wrkMast.setModiUser(userId);
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 8e16a07..80546b5 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -50,4 +50,9 @@
             }
         }
     }
+
+    @Override
+    public List<WrkDetl> selectByWrkNo(Integer wrkNo) {
+        return this.baseMapper.selectByWrkNo(wrkNo);
+    }
 }
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 2875292..063098f 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -84,4 +84,20 @@
         </choose>
     </update>
 
+    <update id="decrease">
+        update man_order_detl
+        set qty = qty - #{qty}
+        where 1=1
+        and order_no = #{orderNo}
+        and matnr = #{matnr}
+        <choose>
+            <when test="batch != null and batch != ''">
+                and batch = #{batch}
+            </when>
+            <otherwise>
+                and (batch IS NULL OR batch = '')
+            </otherwise>
+        </choose>
+    </update>
+
 </mapper>
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index a8614d9..90249c9 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -27,4 +27,8 @@
         <result column="appe_time" property="appeTime" />
     </resultMap>
 
+    <select id="selectByWrkNo" resultMap="BaseResultMap">
+        select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
+    </select>
+
 </mapper>

--
Gitblit v1.9.1