From 6c8a21903e81177987778fe2ca5809f87a418182 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期六, 14 六月 2025 10:20:01 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/asrs/WrkDetlMapper.xml               |   10 ++++++++++
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java            |    2 ++
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |   21 ++++++++++++++++++++-
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    3 +++
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java  |   19 +++++++------------
 5 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index e10e894..6199670 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -18,6 +18,8 @@
 
     int updateAnfme(@Param("anfme")Double anfme, @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
 
+    int updateWeight(@Param("weight")Double weight, @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
+
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
 
     int updateInspect( @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 95627ac..456e2b5 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -77,6 +77,9 @@
 
             //杞崲鍏崇郴
             String origin = mat.getOrigin();
+            if (Cools.isEmpty(origin)) {
+                return true;
+            }
             String[] split = origin.split("/");
             //杈呭崟浣�
             Double weight = (anfme / Double.parseDouble(split[1])) / Double.parseDouble(split[0]);
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index d251b85..8449098 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -838,26 +838,21 @@
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
             }
+        }
+        List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        for (WrkDetl wrkDetl : wrkDetls1) {
+            LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme());
+            locDetlAdjusts.add(locDetlAdjust);
+
             String locNo = Cools.isEmpty(wrkMast.getLocNo()) ? wrkMast.getSourceLocNo() : wrkMast.getLocNo();
             List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no", locNo));
             for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
                 if (wrkDetl.getMatnr().equals(checkOrderDetl.getMatnr()) && Cools.eq(wrkDetl.getBatch(), checkOrderDetl.getBatch())) {
                     checkOrderDetl.setCheckAnfme(wrkDetl.getAnfme());
                     checkOrderDetl.setStatus("2");
-                } else {
-                    InventoryCheckOrderDetl newDetl = new InventoryCheckOrderDetl();
-                    Synchro.Copy(wrkDetl, newDetl);
-                    newDetl.setAnfme(0D);
-                    newDetl.setCheckAnfme(wrkDetl.getAnfme());
-                    newDetl.setOrderNo(checkOrderDetl.getOrderNo());
-                    newDetl.setStatus("2");
+                    inventoryCheckOrderDetlService.updateById(checkOrderDetl);
                 }
             }
-        }
-        List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-        for (WrkDetl wrkDetl : wrkDetls1) {
-            LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme());
-            locDetlAdjusts.add(locDetlAdjust);
         }
         // 淇敼鐩樼偣浠诲姟涓绘。鐘舵��
         wrkMast.setFullPlt(wrkDetls1.size() != 0 ? "Y" : "N");
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 3eaaa7a..e18a416 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -61,7 +61,26 @@
         if (anfme <= 0) {
             return this.baseMapper.deleteItem(wrkNo, matnr, batch) > 0;
         } else {
-            return baseMapper.updateAnfme(anfme, wrkNo, matnr, batch) > 0;
+            boolean result = baseMapper.updateAnfme(anfme, wrkNo, matnr, batch) > 0;
+            if (!result) {
+                return false;
+            }
+
+            //鏇存柊杈呮枡
+            Mat mat = matService.selectByMatnr(matnr);
+            if (mat == null) {
+                return false;
+            }
+
+            //杞崲鍏崇郴
+            String origin = mat.getOrigin();
+            if (Cools.isEmpty(origin)) {
+                return true;
+            }
+            String[] split = origin.split("/");
+            //杈呭崟浣�
+            Double weight = (anfme / Double.parseDouble(split[1])) / Double.parseDouble(split[0]);
+            return baseMapper.updateWeight(weight, wrkNo, matnr, batch) > 0;
         }
     }
 
diff --git a/src/main/resources/mapper/asrs/WrkDetlMapper.xml b/src/main/resources/mapper/asrs/WrkDetlMapper.xml
index feb11ec..219f91b 100644
--- a/src/main/resources/mapper/asrs/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/asrs/WrkDetlMapper.xml
@@ -87,6 +87,16 @@
         <include refid="batchSeq"></include>
     </update>
 
+    <update id="updateWeight">
+        update asr_wrk_detl
+        set weight = #{weight}
+        , modi_time = getdate()
+        where 1=1
+        and wrk_no = #{wrkNo}
+        and matnr = #{matnr}
+        <include refid="batchSeq"></include>
+    </update>
+
     <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
         select awd.*
         from asr_wrk_detl awd

--
Gitblit v1.9.1