From a5de20d0041431b7f5e92a49315082ff2140d447 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 13 七月 2025 10:48:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   86 +++++++++++++++++++++++++++++++++----------
 1 files changed, 66 insertions(+), 20 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 596b72d..ed6c164 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;
@@ -77,6 +78,8 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+    @Autowired
+    private ReportToThirdService reportToThirdService;
 
     @Autowired
     private InventoryCheckOrderService inventoryCheckOrderService;
@@ -600,6 +603,7 @@
                     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);
                 }
@@ -629,9 +633,7 @@
                 waitPakin.setStandby1(detlDto.getStandby1());
                 waitPakin.setStandby2(detlDto.getStandby2());
                 waitPakin.setStandby3(detlDto.getStandby3());
-                if ("Y".equals(param.getTkFlag())) {
-                    waitPakin.setTkFlag(detlDto.getTkFlag());
-                }
+                waitPakin.setTkFlag(param.getTkFlag());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
@@ -672,6 +674,7 @@
                     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);
                 }
@@ -785,7 +788,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<>();
 
@@ -840,29 +843,31 @@
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
             }
-            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");
-                }
-            }
         }
         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)
+                    .eq("area", wrkDetl.getWrkNo())
+            );
+            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.setFullPlt("Y");
         wrkMast.setModiTime(now);
         wrkMast.setModiUser(userId);
         if (!wrkMastService.updateById(wrkMast)) {
@@ -1182,4 +1187,45 @@
             throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
         }
     }
+
+    @Override
+    public void checkOutSubmit(Integer orderId, Long userId) {
+        InventoryCheckOrder inventoryCheckOrder = inventoryCheckOrderService.selectOne(new EntityWrapper<InventoryCheckOrder>()
+                .eq("id", orderId));
+        if (inventoryCheckOrder == null) {
+            throw new CoolException("鐩樼偣鍗曚笉瀛樺湪");
+        }
+
+        if (!inventoryCheckOrder.getStatus().equals("1")) {
+            throw new CoolException("鐩樼偣鍗曠姸鎬佸凡涓婃姤");
+        }
+
+        List<InventoryCheckOrderDetl> checkOrderDetlList = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+                .eq("order_no", inventoryCheckOrder.getOrderNo())
+        );
+        if (checkOrderDetlList.isEmpty()) {
+            throw new CoolException("鐩樼偣鍗曟棤鐗╂枡鏄庣粏");
+        }
+        InventoryCheckOrderDetl orderDetl = checkOrderDetlList.get(0);
+
+        List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+                .eq("matnr", orderDetl.getMatnr())
+                .eq("batch", orderDetl.getBatch())
+        );
+
+        boolean complete = true;
+        for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+            if (!checkOrderDetl.getStatus().equals("2")) {
+                complete = false;
+            }
+        }
+        if (complete) {
+            boolean result = reportToThirdService.reportCheckOrder(orderDetl.getMatnr(), orderDetl.getBatch());
+            if (!result) {
+                throw new CoolException("鐩樼偣鍗曚笂鎶ュけ璐�");
+            }
+        }else {
+            throw new CoolException("鐩樼偣鏈畬鎴愭棤娉曚笂鎶�");
+        }
+    }
 }

--
Gitblit v1.9.1