From 6f01b51fc0770fda7787076caf0314be7a7f6656 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 27 六月 2025 10:58:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 42 insertions(+), 5 deletions(-)

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 4a14836..5761b2b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -13,10 +14,12 @@
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.MathUtils;
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
+import com.zy.common.utils.Synchro;
 import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +28,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 绉诲姩绔湇鍔℃牳蹇冪被
@@ -74,6 +78,12 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+
+    @Autowired
+    private InventoryCheckOrderService inventoryCheckOrderService;
+
+    @Autowired
+    private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
 
     @Autowired
     private AdjDetlService adjDetlService;
@@ -524,7 +534,7 @@
         ArrayList<PickMatParam> maps = new ArrayList<>();
         for (OrderDetl orderDetl : list) {
             //鍓╀綑鍙敤鏁伴噺
-            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            double count = MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty());
             if (count <= 0) {
                 continue;
             }
@@ -547,9 +557,15 @@
         if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
             throw new CoolException(BaseRes.PARAM);
         }
-//        if (param.getCombMats().size() > 1) {
+        List<String> codes = param.getCombMats().stream().map(CombParam.CombMat::getTiaoma).collect(Collectors.toList());
+        Set<String> sets = new HashSet<>();
+        if (codes.stream().anyMatch(item -> !sets.add(item))) {
+            throw new CoolException("鏉$爜閲嶅鎵爜浜�");
+        }
+        //        if (param.getCombMats().size() > 1) {
 //            throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒");
 //        }
+
         // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
         if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                 eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
@@ -580,10 +596,12 @@
             param.getCombMats().forEach(elem -> {
                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
                         elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+                detlDto.setWeight(elem.getWeight());
                 if (DetlDto.has(detlDtos, detlDto)) {
                     DetlDto one = DetlDto.findDto(detlDtos, detlDto);
                     assert one != null;
                     one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+                    one.setWeight(one.getWeight() + detlDto.getWeight());
                 } else {
                     detlDtos.add(detlDto);
                 }
@@ -597,6 +615,7 @@
                 }
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.sync(mat);
+                waitPakin.setWeight(detlDto.getWeight());
                 waitPakin.setBatch(detlDto.getBatch());
                 waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
@@ -612,6 +631,7 @@
                 waitPakin.setStandby1(detlDto.getStandby1());
                 waitPakin.setStandby2(detlDto.getStandby2());
                 waitPakin.setStandby3(detlDto.getStandby3());
+                waitPakin.setTkFlag(param.getTkFlag());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
@@ -647,10 +667,12 @@
                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
                         elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
                 detlDto.setOrderNo(elem.getOrderNo());
+                detlDto.setWeight(elem.getWeight());
                 if (DetlDto.has(detlDtos, detlDto)) {
                     DetlDto one = DetlDto.findDto(detlDtos, detlDto);
                     assert one != null;
                     one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+                    one.setWeight(one.getWeight() + detlDto.getWeight());
                 } else {
                     detlDtos.add(detlDto);
                 }
@@ -680,6 +702,7 @@
                 waitPakin.setStandby1(detlDto.getStandby1());
                 waitPakin.setStandby2(detlDto.getStandby2());
                 waitPakin.setStandby3(detlDto.getStandby3());
+                waitPakin.setWeight(detlDto.getWeight());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
@@ -763,7 +786,7 @@
         Date now = new Date();
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
 
-        List<WrkDetl> list = param.getWrkDetls();
+        List<WrkDetl> list = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
         LocDetlAdjustParam adjustParam = new LocDetlAdjustParam();
         List<LocDetlAdjustParam.LocDetlAdjust> locDetlAdjusts = new ArrayList<>();
 
@@ -786,6 +809,7 @@
                             throw new CoolException(wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
                         }
                     }
+                    //濡傛灉宸茬粡鎷f枡鍥炲簱锛屽氨闇�瑕佸彇locNo瀛楁
                     iterator.remove();
                     iterator1.remove();
                 }
@@ -817,13 +841,26 @@
             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);
         }
+
+        List<WrkDetl> paramWrkDetls = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
+        for (WrkDetl wrkDetl : paramWrkDetls) {
+            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");
+                    inventoryCheckOrderDetlService.updateById(checkOrderDetl);
+                }
+            }
+        }
+
         // 淇敼鐩樼偣浠诲姟涓绘。鐘舵��
         wrkMast.setFullPlt(wrkDetls1.size() != 0 ? "Y" : "N");
         wrkMast.setModiTime(now);
@@ -1040,7 +1077,7 @@
                 }
 
                 //鍙嚭搴撴暟閲� = 璁㈠崟鏁伴噺 - 浣滀笟涓暟閲�
-                Double outQty = orderDetl.getAnfme() - orderDetl.getWorkQty();
+                Double outQty = MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty());
                 if (outQty <= 0) {
                     break;
                 }

--
Gitblit v1.9.1