From c2d6b1df9e1a2163a333b57a63b9593c69746da8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 07 七月 2020 10:27:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  262 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 228 insertions(+), 34 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 2d0591b..dfcc9da 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,14 +1,8 @@
 package com.zy.asrs.task.handler;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkDetlService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -32,6 +26,8 @@
     private LocMastService locMastService;
     @Autowired
     private LocDetlService locDetlService;
+    @Autowired
+    private WaitPakinService waitPakinService;
 
     public void start() {
         List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
@@ -51,12 +47,16 @@
 
     private void doIn(WrkMast wrkMast){
         Date now = new Date();
+        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+        if (null == locMast) {
+            exceptionHandle(""); // todo
+            return;
+        }
         switch (wrkMast.getIoType()) {
             // 绌烘澘鍏ュ簱
             case 10:
                 // 淇敼搴撲綅鐘舵��=D
-                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                if (null != locMast && (locMast.getLocType().equals("S") || locMast.getLocType().equals("Q"))) {
+                if (locMast.getLocType().equals("S") || locMast.getLocType().equals("Q")) {
                     locMast.setLocType("D");
                     locMast.setIoTime(now);
                     locMast.setModiTime(now);
@@ -65,25 +65,24 @@
                     }
                 }
                 break;
+            // 鍏ㄦ澘鍏ュ簱
             case 1:
-
+                // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
                 List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
                 if (!locDetls.isEmpty()) {
                     locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
                 }
-
+                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
                 List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                 if (wrkDetls.isEmpty()) {
                     exceptionHandle(""); // todo
                 }
-
+                // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
                 for (WrkDetl wrkDetl : wrkDetls) {
-
                     LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
                     if (null != locDetl) {
-                        locDetl.setAnfme(wrkDetl.getAnfme());
-                        locDetl.setModiTime(now);
-                        if (!locDetlService.updateById(locDetl)) {
+                        boolean res = locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr());
+                        if (!res) {
                             exceptionHandle(""); // todo
                         }
                     } else {
@@ -94,47 +93,242 @@
                                 null,    // 杞偍璇锋眰缂栧彿
                                 null,    // 琛岄」鐩�
                                 null,    // 鐗╂枡鏍囩ID
-                                null,    // 鐗╂枡鎻忚堪
+                                wrkDetl.getMaktx(),    // 鐗╂枡鎻忚堪
                                 null,    // 宸ュ巶
-                                null,    // 鏁伴噺
-                                null,    // 鍗曚綅
-                                null,    // 鎵樼洏鏉$爜
+                                wrkDetl.getAnfme(),    // 鏁伴噺
+                                wrkDetl.getAltme(),    // 鍗曚綅
+                                wrkDetl.getZpallet(),    // 鎵樼洏鏉$爜
                                 null,    // 鐢ㄦ埛ID
                                 null,    // 澶囨敞
                                 null,    // 淇敼浜哄憳
-                                null,    // 淇敼鏃堕棿
+                                now,    // 淇敼鏃堕棿
                                 null,    // 鍒涘缓鑰�
-                                null    // 娣诲姞鏃堕棿
+                                now    // 娣诲姞鏃堕棿
                         );
-                        // todo
-
+                        if (!locDetlService.insert(locDetl)) {
+                            exceptionHandle(""); // todo
+                        }
                     }
-
-
+                    // 鏇存柊鍏ュ簱閫氱煡妗� status ===>> Y
+                    WaitPakin setParam = new WaitPakin();
+                    setParam.setStatus("Y");
+                    boolean updateRes = waitPakinService.update(setParam
+                            , new EntityWrapper<WaitPakin>().eq("barcode", wrkDetl.getZpallet())
+                                    .eq("matnr", wrkDetl.getMatnr())
+                                    .eq("anfme", wrkDetl.getAnfme()));
+                    if (!updateRes) {
+                        exceptionHandle(""); // todo
+                    }
                 }
-
-
-
+                // 淇敼搴撲綅鐘舵�� S ====>> F
+                if (locMast.getLocType().equals("S")) {
+                    locMast.setLocType("F");
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
                 break;
+            // 鎷f枡鍏ュ簱
             case 53:
+                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                if (wrkDetls53.isEmpty()) {
+                    exceptionHandle(""); // todo
+                }
+                for (WrkDetl wrkDetl:wrkDetls53) {
+                    // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滃伐浣滄槑缁嗘暟閲忎负0鏃讹紝鍒犻櫎搴撳瓨鏄庣粏
+                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
+                    if (null != locDetl) {
+                        if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
+                            exceptionHandle(""); // todo
+                        }
+                        // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+                    }
+                }
+                // 淇敼搴撲綅鐘舵�� Q ====>> F
+                if (locMast.getLocType().equals("Q")) {
+                    locMast.setLocType("F");
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
                 break;
+            // 骞舵澘鍏ュ簱
             case 54:
+                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                if (wrkDetls54.isEmpty()) {
+                    exceptionHandle(""); // todo
+                }
+                // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+                for (WrkDetl wrkDetl:wrkDetls54) {
+                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
+                    if (null != locDetl) {
+                        if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
+                            exceptionHandle(""); // todo
+                        }
+                    } else {
+                        locDetl = new LocDetl(
+                                wrkMast.getLocNo(), // 搴撲綅鍙�
+                                wrkDetl.getMatnr(), // 鐗╂枡鍙�
+                                null,    // 浠撳簱鍙�
+                                null,    // 杞偍璇锋眰缂栧彿
+                                null,    // 琛岄」鐩�
+                                null,    // 鐗╂枡鏍囩ID
+                                wrkDetl.getMaktx(),    // 鐗╂枡鎻忚堪
+                                null,    // 宸ュ巶
+                                wrkDetl.getAnfme(),    // 鏁伴噺
+                                wrkDetl.getAltme(),    // 鍗曚綅
+                                wrkDetl.getZpallet(),    // 鎵樼洏鏉$爜
+                                null,    // 鐢ㄦ埛ID
+                                null,    // 澶囨敞
+                                null,    // 淇敼浜哄憳
+                                now,    // 淇敼鏃堕棿
+                                null,    // 鍒涘缓鑰�
+                                now    // 娣诲姞鏃堕棿
+                        );
+                        if (!locDetlService.insert(locDetl)) {
+                            exceptionHandle(""); // todo
+                        }
+                    }
+                    // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+                }
+                // 淇敼搴撲綅鐘舵�� Q ====>> F
+                if (locMast.getLocType().equals("Q")) {
+                    locMast.setLocType("F");
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
                 break;
+            // 鐩樼偣鍏ュ簱
             case 57:
+                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                if (wrkDetls57.isEmpty()) {
+                    exceptionHandle(""); // todo
+                }
+                // todo:luxiaotao 3)淇敼鐩樼偣閫氱煡妗� status ==> Y
+                // 淇敼搴撲綅鐘舵�� Q ====>> F
+                if (locMast.getLocType().equals("Q")) {
+                    locMast.setLocType("F");
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
                 break;
+            // 搴撲綅绉昏浆
             case 11:
+                // 榛樿鐩爣搴撲綅鏄┖鏉�
+                String locType = "D";
+                // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+                if (wrkMast.getEmptyMk().equals("N")) {
+                    locType = "F";
+                    // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+                    if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+                        exceptionHandle(""); // todo
+                    }
+                }
+                // todo:luxiaotao 3)淇敼鐩樼偣閫氱煡妗� status ==> Y
+                // 淇敼婧愬簱浣嶇姸鎬� ==> O
+                LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+                if (null != sourceLoc) {
+                    sourceLoc.setBarcode("");
+                    sourceLoc.setLocType("O");
+                    sourceLoc.setModiTime(now);
+                    sourceLoc.setIoTime(now);
+                    if (!locMastService.updateById(sourceLoc)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
+                // 淇敼鐩爣搴撲綅鐘舵�� ==> .locType
+                locMast.setLocType(locType);
+                locMast.setBarcode(wrkMast.getBarcode());
+                locMast.setIoTime(now);
+                locMast.setModiTime(now);
+                if (!locMastService.updateById(locMast)) {
+                    exceptionHandle(""); // todo
+                }
                 break;
             default:
                 break;
         }
+        // 淇敼宸ヤ綔涓绘。鐘舵��
+        wrkMast.setWrkSts(5L);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.updateById(wrkMast)) {
+            exceptionHandle(""); // todo
+        }
     }
 
     private void doOut(WrkMast wrkMast){
-
+        Date now = new Date();
+        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+        if (null == locMast) {
+            exceptionHandle(""); // todo
+            return;
+        }
+        switch (wrkMast.getIoType()) {
+            // 鍏ㄦ澘鍑哄簱
+            case 101:
+                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                if (wrkDetls101.isEmpty()) {
+                    exceptionHandle(""); // todo
+                }
+                for (WrkDetl wrkDetl : wrkDetls101) {
+                    // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+                }
+                // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
+                if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
+                    exceptionHandle(""); // todo
+                }
+                // 淇敼搴撲綅鐘舵�� R ===>> O
+                if (locMast.getLocType().equals("R")) {
+                    locMast.setLocType("O");
+                    locMast.setBarcode("");
+                    locMast.setModiTime(now);
+                    locMast.setIoTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
+                break;
+            // 绌烘澘鍑哄簱
+            case 110:
+                // 淇敼搴撲綅鐘舵�� R ===>> O
+                if (locMast.getLocType().equals("R")) {
+                    locMast.setLocType("O");
+                    locMast.setBarcode("");
+                    locMast.setModiTime(now);
+                    locMast.setIoTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        exceptionHandle(""); // todo
+                    }
+                }
+                break;
+            default:
+                break;
+        }
+        // 淇敼宸ヤ綔涓绘。鐘舵��
+        wrkMast.setWrkSts(15L);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.updateById(wrkMast)) {
+            exceptionHandle(""); // todo
+        }
     }
-
-
-
 
     public static void main(String[] args) {
         for (int i = 0;i<10;i++) {

--
Gitblit v1.9.1