From 608fb6f9529ce51291ef682638a5efc7dd51ac63 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 18 十一月 2025 08:21:08 +0800
Subject: [PATCH] 1.完善找库位 2.新增erp订单删除后,wms订单跟着删除功能 3.新增订单完成后,上报erp,erp报错后显现在出货单中 4.新增一键查询到异常完成订单 5.对销售单据和其他单据进行区分出库 6.对中间表订单状态进行完善 7.新增锁单功能 8.新增任务查询维护加上订单号

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  253 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 188 insertions(+), 65 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 61a3c32..ff57b73 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -2,14 +2,21 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.MatServiceImpl;
+import com.zy.asrs.service.impl.OrderDetl1ServiceImpl;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.system.entity.User;
+import com.zy.system.service.impl.UserServiceImpl;
 import com.zy.third.entity.ExdInstockTarget;
+import com.zy.third.entity.ExdStock;
 import com.zy.third.entity.ExdvYanbu;
 import com.zy.third.mapper.ExdMaterialMapper;
 import com.zy.third.service.ExdInstockTargetService;
+import com.zy.third.service.ExdStockService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -45,6 +52,14 @@
 
     @Autowired
     private ExdMaterialMapper exdMaterialMapper;
+    @Autowired
+    private ExdStockService exdStockService;
+    @Autowired
+    private MatServiceImpl matServiceImpl;
+    @Autowired
+    private OrderDetl1ServiceImpl orderDetl1Service;
+    @Autowired
+    private UserServiceImpl userService;
 
     @Transactional
     public ReturnT<String> start(WrkMast wrkMast) {
@@ -143,6 +158,24 @@
                         } catch (Exception ignore) {
                         }
 
+                        // 鏇存柊瀛愯鍗曞畬鎴愭暟閲�
+                        OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        if (orderDetl1 == null) {
+                            orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+                        }
+                        try {
+                            if (!Cools.isEmpty(orderDetl)) {
+                                if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        orderDetl.getBatch(), wrkDetl.getAnfme())) {
+//                                    exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore) {
+                        }
+
                     }
                     // 鍐欏叆涓棿琛ㄦ暟鎹�
                     write(wrkMast, wrkDetls);
@@ -179,23 +212,63 @@
                             }
                         }
 
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
-                        if (orderDetl == null) {
-                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
-                        }
-                        try {
-                            if (!Cools.isEmpty(orderDetl)) {
-                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        orderDetl.getBatch(), wrkDetl.getAnfme())) {
-//                                    exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
+                        if(!Cools.isEmpty(wrkDetl.getOrderNo())){
+                            String orderNo = wrkDetl.getOrderNo().split("-")[0];
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch());
+                            if (orderDetl == null) {
+                                orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null);
                             }
-                        } catch (Exception ignore) {
+                            try {
+                                if (!Cools.isEmpty(orderDetl)) {
+                                    if (!orderDetlService.increaseQtyByOrderNo(orderNo, wrkDetl.getMatnr(),
+                                            orderDetl.getBatch(), wrkDetl.getAnfme())) {
+//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                    }
+                                }
+                            } catch (Exception ignore) {
+                            }
+
+                            //瀛愯〃鏁版嵁瀹屾垚
+                            String batch = null;
+                            if(!Cools.isEmpty(wrkDetl.getBatch())){
+                                batch = wrkDetl.getBatch();
+                            }
+                            OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), batch);
+                            try {
+                                if (!Cools.isEmpty(orderDetl1)) {
+                                    if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                            batch, wrkDetl.getAnfme())) {
+//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                    }
+                                }
+                            } catch (Exception ignore) {
+                            }
                         }
+
+//                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (orderDetl == null) {
+//                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+//                        }
+//                        try {
+//                            if (!Cools.isEmpty(orderDetl)) {
+//                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+//                                        orderDetl.getBatch(), wrkDetl.getAnfme())) {
+////                                    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
@@ -363,23 +436,46 @@
                         return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                     }
                     for (WrkDetl wrkDetl : wrkDetls101) {
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
-                        if (orderDetl == null) {
-                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
-                        }
-                        try {
-                            if (!Cools.isEmpty(orderDetl)) {
-                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        orderDetl.getBatch(), wrkDetl.getAnfme())) {
+                        if(!Cools.isEmpty(wrkDetl.getOrderNo())){
+                            String orderNo = wrkDetl.getOrderNo().split("-")[0];
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch());
+                            if (orderDetl == null) {
+                                orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null);
+                            }
+                            try {
+                                if (!Cools.isEmpty(orderDetl)) {
+                                    if (!orderDetlService.increaseQtyByOrderNo(orderNo, wrkDetl.getMatnr(),
+                                            orderDetl.getBatch(), wrkDetl.getAnfme())) {
 //                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
 //                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                    }
                                 }
+                            } catch (Exception ignore) {
                             }
-                        } catch (Exception ignore) {
+
+                            //瀛愯〃鏁版嵁瀹屾垚
+                            String batch = null;
+                            if(!Cools.isEmpty(wrkDetl.getBatch())){
+                                batch = wrkDetl.getBatch();
+                            }
+                            OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), batch);
+                            try {
+                                if (!Cools.isEmpty(orderDetl1)) {
+                                    if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                            orderDetl1.getBatch(), wrkDetl.getAnfme())) {
+//                                    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.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
@@ -443,47 +539,74 @@
 
     private void write(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
         ExdInstockTarget exdInstockTarge;
-        int i = -1;
+        int i = 1;
         for (WrkDetl wrkDetl : wrkDetls) {
             if (Cools.isEmpty(wrkDetl.getOrderNo()) && !Cools.isEmpty(wrkDetl.getInspect()) && wrkDetl.getInspect() == 1) {
-                continue;
+                ExdvYanbu bacode = exdMaterialMapper.getBacode(wrkDetl.getThreeCode());
+                if (bacode == null) {
+                    log.info("楠屽竷鏁版嵁娌℃湁锛寋}", wrkDetl.getThreeCode());
+                    return;
+                }
+                exdInstockTarge = new ExdInstockTarget();
+                exdInstockTarge.setFtrantype(2);
+                exdInstockTarge.setFdate(new Date());
+                exdInstockTarge.setFrob(1);
+                exdInstockTarge.setFdeptid(7502);
+                //渚涘簲鍟�/瀹㈡埛ID
+                exdInstockTarge.setFsupplyid(0);
+                //wms鎿嶄綔鍛�
+                User id = userService.selectOne(new EntityWrapper<User>().eq("id", wrkDetl.getColor()));
+                exdInstockTarge.setFbillerid(Integer.valueOf(id.getEmail()));
+                exdInstockTarge.setFfmanagerid(17938);
+                exdInstockTarge.setFsmanagerid(17938);
+                exdInstockTarge.setFentryid(i);
+                //鐗╂枡ID
+                Mat mat = matServiceImpl.selectByMatnr(wrkDetl.getMatnr());
+                exdInstockTarge.setFitemid(Integer.valueOf(mat.getUuid()));
+                exdInstockTarge.setFqty(wrkDetl.getAnfme());
+                //鍗曚环
+                exdInstockTarge.setFprice(0.0);
+                exdInstockTarge.setFbatchno(bacode.getBatchno());
+                //鍗曚环ID
+                exdInstockTarge.setFunitid(0);
+                //婧愬崟鍙�
+                exdInstockTarge.setFsourcebillno(bacode.getIcmono());
+                //婧愬崟缁嗚〃ID
+                exdInstockTarge.setFsourceentryid(1);
+                //婧愬崟鍗曟嵁绫诲瀷
+                exdInstockTarge.setFsourcetrantype(85);
+                //搴撲綅ID
+                exdInstockTarge.setFdcspid(0);
+                //浠撳簱ID
+                Integer Fdcstockid = 19382;
+                if(!Cools.isEmpty(wrkDetl.getBrand())){
+                    ExdStock fname = exdStockService.selectOne(new EntityWrapper<ExdStock>().eq("Fname", wrkDetl.getBrand()));
+                    Fdcstockid = Integer.valueOf(fname.getId());
+                }
+
+                exdInstockTarge.setFdcstockid(Integer.valueOf(Fdcstockid));
+
+                //exdInstockTarge.setFdcspid(wrkMast.getLocNo());
+
+
+                exdInstockTarge.setBarcode(wrkDetl.getBatch());
+                exdInstockTarge.setGross(bacode.getGross());
+                exdInstockTarge.setWidth(bacode.getWidth());
+                exdInstockTarge.setDefects(bacode.getDefects());
+                exdInstockTarge.setBackcode(bacode.getBackcode());
+                exdInstockTarge.setWritetime(new Date());
+                exdInstockTarge.setWritor("WMS");
+                exdInstockTarge.setStatus(0);
+                //浠撳簱
+                exdInstockTarge.setProdinkind(bacode.getProdinkind());
+                //鐢熶骇鍏ュ簱瀵逛竴鍧ㄧ墿鏂欒繘琛岀粦瀹氥�傚敮涓�鍊�
+                exdInstockTarge.setFbillno(wrkDetl.getOrigin());
+                //exdInstockTarge.setProdInKind("鐗归噰搴�");
+                if(!exdInstockTargetService.insert(exdInstockTarge)){
+                    throw new CoolException("楠屽竷鍏ュ簱瀹屾垚鎻掑叆鍏ュ簱琛ㄥけ璐�");
+                }
+                i++;
             }
-            ExdvYanbu bacode = exdMaterialMapper.getBacode(wrkDetl.getBatch());
-            if (bacode == null) {
-                return;
-            }
-            exdInstockTarge = new ExdInstockTarget();
-            exdInstockTarge.setFtrantype(21);
-            exdInstockTarge.setFdate(new Date());
-            exdInstockTarge.setFrob(1);
-
-            exdInstockTarge.setFqty(wrkDetl.getAnfme());
-            exdInstockTarge.setFbatchno(bacode.getBatchno());
-            exdInstockTarge.setFsourcebillno(bacode.getIcmono());
-            exdInstockTarge.setFsourcetrantype(85);
-
-            exdInstockTarge.setFentryid(i);
-            exdInstockTarge.setFsmanagerid(Integer.valueOf(wrkDetl.getColor()));
-            exdInstockTarge.setFfmanagerid(Integer.valueOf(wrkDetl.getColor()));
-            exdInstockTarge.setFbillerid(Integer.valueOf(wrkDetl.getColor()));
-            exdInstockTarge.setFitemid(Integer.parseInt(wrkDetl.getSku()));
-
-            exdInstockTarge.setFsourceentryid(i);
-            //exdInstockTarge.setFdcspid(wrkMast.getLocNo());
-            //exdInstockTarge.setFdcstockid(wrkDetl.getBrand());
-
-            exdInstockTarge.setBarcode(wrkDetl.getBatch());
-            exdInstockTarge.setGross(bacode.getGross());
-            exdInstockTarge.setWidth(bacode.getWidth());
-            exdInstockTarge.setDefects(bacode.getDefects());
-            exdInstockTarge.setBackcode(bacode.getBackcode());
-            exdInstockTarge.setWritetime(new Date());
-            exdInstockTarge.setWritor("WMS");
-            exdInstockTarge.setStatus(0);
-            exdInstockTarge.setProdInKind("鎴愬搧搴�");
-            //exdInstockTarge.setProdInKind("鐗归噰搴�");
-            exdInstockTargetService.insert(exdInstockTarge);
-            i++;
         }
     }
 

--
Gitblit v1.9.1