From ebf0db91e09be33fcbfe97ed5b91965dc2e61dfd Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 01 八月 2024 10:54:26 +0800
Subject: [PATCH] 1. 托盘管理 2. 入库通知档导入功能 3. 工作档明细 新增来源单据类型及单据编号 4. 库存明细统计表 增加一栏ERP数量(需跟ERP确认接口实现方式)。 5. 存货档案、单据管理、库存管理可以支持模糊搜索(各个单据界面)。

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java |  130 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 110 insertions(+), 20 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java
index 64b2fe6..35e5835 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.wms.task.handler;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.common.wms.entity.*;
 import com.zy.asrs.common.wms.service.*;
@@ -12,6 +13,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -35,6 +37,8 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private OrderDetlService orderDetlService;
+    @Autowired
+    private BasZpalletService basZpalletService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 99.鍏ュ簱瀹屾垚
@@ -106,21 +110,21 @@
                             }
                         }
 
-                        // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+                        if (orderDetl==null){
+                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, hostId);
+                        }
                         try {
-//                            Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
-//                                    .eq("zpallet", wrkDetl.getZpallet())
-//                                    .eq("matnr", wrkDetl.getMatnr())
-//                                    .eq("anfme", wrkDetl.getAnfme());
-//                            if (Cools.isEmpty(wrkDetl.getBatch())) {
-//                                wrapper.eq("batch", wrkDetl.getBatch());
-//                            } else {
-//                                wrapper.isNull("batch").or().eq("batch", "");
-//                            }
-//                            WaitPakin setParam = new WaitPakin();
-//                            setParam.setIoStatus("Y");
-//                            setParam.setModiTime(now);
-//                            waitPakinService.update(setParam, wrapper);
+                            if(!Cools.isEmpty(orderDetl)){
+                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) {
+//                                    exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
                         } catch (Exception ignore){}
 
                     }
@@ -131,6 +135,7 @@
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
                         locMast.setPic(wrkMast.getPic());
+                        locMast.setFullPlt(wrkMast.getFullPlt());
                         if (!locMastService.updateById(locMast)) {
                             exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                         }
@@ -151,6 +156,24 @@
                                 exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             }
                         }
+
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+                        if (orderDetl==null){
+                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, hostId);
+                        }
+                        try {
+                            if(!Cools.isEmpty(orderDetl)){
+                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) {
+//                                    exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore){}
+
                     }
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
                     if (locMast.getLocSts().equals("Q")) {
@@ -176,7 +199,7 @@
 
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
                         if (null != locDetl) {
-                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) {
+                            if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) {
                                 exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                             }
                         } else {
@@ -193,14 +216,14 @@
                         }
 
                         // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
                         if (orderDetl == null) {
-                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
                         }
                         try {
                             if(!Cools.isEmpty(orderDetl)){
-                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) {
                                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                     return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                                 }
@@ -315,7 +338,22 @@
                         exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
                     for (WrkDetl wrkDetl : wrkDetls101) {
-                        // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+                        if (orderDetl==null){
+                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, hostId);
+                        }
+                        try {
+                            if(!Cools.isEmpty(orderDetl)){
+                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) {
+//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore){}
                     }
                     // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
                     if (!locDetlService.remove(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, wrkMast.getSourceLocNo()).eq(LocDetl::getHostId, hostId))) {
@@ -353,6 +391,7 @@
             // 淇敼宸ヤ綔涓绘。鐘舵��
             wrkMast.setWrkSts(200L);//200.搴撳瓨鏇存柊瀹屾垚
             wrkMast.setModiTime(now);
+            savePicInZpallet(wrkMast.getBarcode(),wrkMast.getPic(),wrkMast.getHostId());
             if (!wrkMastService.updateById(wrkMast)) {
                 exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
             }
@@ -365,4 +404,55 @@
         return SUCCESS;
     }
 
+    /*
+    淇濆瓨鍥剧墖鍒版墭鐩樼鐞嗛〉闈�
+     */
+    private void savePicInZpallet(String barcode, String pic, Long hostId){
+
+        if(Cools.isEmpty(pic)){
+            return;
+        }
+
+        BasZpallet basZpallet = basZpalletService.getOne(new LambdaQueryWrapper<BasZpallet>().eq(BasZpallet::getZpallet, barcode));
+        List<String> list = null;
+        if(Cools.isEmpty(basZpallet)){
+            basZpallet = new BasZpallet();
+            basZpallet.setHostId(hostId);
+            basZpallet.setCreateTime(new Date());
+            basZpallet.setModifyTime(new Date());
+
+            list = new ArrayList<>();
+            list.add(pic);
+            basZpallet.setPicture(JSON.toJSONString(list));
+
+            basZpalletService.save(basZpallet);
+
+        }else {
+            basZpallet.setHostId(hostId);
+            basZpallet.setModifyTime(new Date());
+
+            String picture = basZpallet.getPicture();
+            list = JSON.parseArray(picture, String.class);
+            if(list.size() >= 5){
+                list.remove(0);
+            }
+            list.add(pic);
+
+            basZpallet.setPicture(JSON.toJSONString(list));
+
+            basZpalletService.updateById(basZpallet);
+        }
+
+    }
+
+    public static void main(String[] args) {
+        String str = "['abc','bcd','cdg']";
+        List<String> list = JSON.parseArray(str, String.class);
+        System.out.println(list);
+        list.remove(0);
+        System.out.println(list);
+        list.add("aaa");
+        System.out.println(list);
+    }
+
 }

--
Gitblit v1.9.1