From 035cf4214c257ed917b07ba9412a4af5a5f11134 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 10 十月 2022 15:06:48 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |    4 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  147 +++++++++++++++++++++++-------------------------
 2 files changed, 74 insertions(+), 77 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 0ffb2d7..d57809e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2469,100 +2469,93 @@
                 continue;
             }   // 蹇呴』涓烘紨绀虹姸鎬�
 
-//            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-//            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-//            if (crnProtocol == null) {
-//                continue;
-//            }
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
 
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-//            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
 
-                String locNo = null;
-                Iterator<String> iterator = crn1DemoLocs.iterator();
-                if (crn.getId() == 1) {
-                    iterator = crn1DemoLocs.iterator();
-                } else if (crn.getId() == 2) {
-                    iterator = crn2DemoLocs.iterator();
-                } else if (crn.getId() == 3) {
-                    iterator = crn3DemoLocs.iterator();
+                // filter
+                if (wrkChargeService.selectCount(new EntityWrapper<WrkCharge>()
+                        .eq("crn_no", crn.getId()).lt("wrk_sts", 35)) > 0) {
+                    continue;
                 }
-                while (iterator.hasNext()) {
-                    String next = iterator.next();
-                    String lastLoc = "";
+
+                int steNo = crn.getId();
+                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+                SteProtocol steProtocol = steThread.getSteProtocol();
+                BasSte basSte = basSteService.selectById(steNo);
+                if (Cools.isEmpty(steProtocol, basSte)) { continue; }
+
+                // 鍙湁褰撶┛姊溅绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+                if (steProtocol.isIdle()) {
+
+                    String locNo = null;
+                    Iterator<String> iterator = crn1DemoLocs.iterator();
                     if (crn.getId() == 1) {
-                        lastLoc = crn1LastLoc;
+                        iterator = crn1DemoLocs.iterator();
                     } else if (crn.getId() == 2) {
-                        lastLoc = crn2LastLoc;
+                        iterator = crn2DemoLocs.iterator();
                     } else if (crn.getId() == 3) {
-                        lastLoc = crn3LastLoc;
+                        iterator = crn3DemoLocs.iterator();
                     }
-                    if (!Cools.isEmpty(lastLoc)) {
-                        if (!lastLoc.substring(2, 7).equals(next.substring(2, 7)) || !Utils.getGroupRow(lastLoc).equals(Utils.getGroupRow(next))) {
+                    while (iterator.hasNext()) {
+                        String next = iterator.next();
+                        String lastLoc = "";
+                        if (crn.getId() == 1) {
+                            lastLoc = crn1LastLoc;
+                        } else if (crn.getId() == 2) {
+                            lastLoc = crn2LastLoc;
+                        } else if (crn.getId() == 3) {
+                            lastLoc = crn3LastLoc;
+                        }
+                        if (!Cools.isEmpty(lastLoc)) {
+                            if (!lastLoc.substring(2, 7).equals(next.substring(2, 7)) || !Utils.getGroupRow(lastLoc).equals(Utils.getGroupRow(next))) {
+                                locNo = next;
+                                iterator.remove();
+                                break;
+                            } else {
+                                iterator.remove();
+                            }
+                        } else {
                             locNo = next;
                             iterator.remove();
                             break;
-                        } else {
-                            iterator.remove();
                         }
-                    } else {
-                        locNo = next;
-                        iterator.remove();
-                        break;
+
+                    }
+                    if (!Cools.isEmpty(locNo)) {
+                        if (crn.getId() == 1) {
+                            crn1LastLoc = locNo;
+                        } else if (crn.getId() == 2) {
+                            crn2LastLoc = locNo;
+                        } else if (crn.getId() == 3) {
+                            crn3LastLoc = locNo;
+                        }
                     }
 
-                }
-                if (!Cools.isEmpty(locNo)) {
-                    if (crn.getId() == 1) {
-                        crn1LastLoc = locNo;
-                    } else if (crn.getId() == 2) {
-                        crn2LastLoc = locNo;
-                    } else if (crn.getId() == 3) {
-                        crn3LastLoc = locNo;
+                    log.info("{}鍙峰爢鍨涙満瀵箋}搴撲綅杩涜婕旂ず", crn.getId(), locNo);
+
+                    String sourceLocNo = Utils.getLocNo(steProtocol.getRow(), steProtocol.getBay(), steProtocol.getLev());
+
+                    WrkCharge wrkCharge = new WrkCharge();
+                    wrkCharge.setCrnNo(crn.getId());
+                    wrkCharge.setSteNo(steNo);
+                    wrkCharge.setWrkNo(commonService.getChargeWorkNo(5));
+                    wrkCharge.setWrkSts(31L);   // 31.鐢熸垚婕旂ずID
+                    wrkCharge.setIoPri((double) 10);
+                    wrkCharge.setSourceLocNo(sourceLocNo);
+                    wrkCharge.setLocNo(locNo);
+                    if (!wrkChargeService.insert(wrkCharge)) {
+                        log.error("鐢熸垚婕旂ず浠诲姟澶辫触锛屽爢鍨涙満鍙凤細{}锛屽皬杞︼細{}锛屾簮搴撲綅锛歿}锛岀洰鏍囧簱浣嶏細{}", crn.getId(), steNo, sourceLocNo, locNo);
+                        continue;
                     }
                 }
-
-//                log.info("{}鍙峰爢鍨涙満瀵箋}搴撲綅杩涜婕旂ず", crn.getId(), locNo);
-
-            // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭�
-//                WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId());
-//                if (null != wrkMast) { continue; }
-//
-//                LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
-//                LocMast loc = locMastService.queryDemoLoc(crn.getId());
-//                if (null == sourceLoc || null == loc) { continue; }
-//
-//                String sourceLocNo = sourceLoc.getLocNo();
-//                String locNo = loc.getLocNo();
-//
-//                // 鑾峰彇宸ヤ綔鍙�
-//                int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
-//                // 淇濆瓨宸ヤ綔妗�
-//                wrkMast = new WrkMast();
-//                wrkMast.setWrkNo(workNo);
-//                wrkMast.setIoTime(new Date());
-//                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-//                wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
-//                wrkMast.setIoPri(13D);
-//                wrkMast.setCrnNo(crn.getId());
-//                wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
-//                wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
-//                wrkMast.setFullPlt("N"); // 婊℃澘锛歒
-//                wrkMast.setPicking("N"); // 鎷f枡
-//                wrkMast.setExitMk("N"); // 閫�鍑�
-//                wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
-//                wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
-//                wrkMast.setLinkMis("N");
-//                wrkMast.setAppeTime(new Date());
-//                wrkMast.setModiTime(new Date());
-//                int res = wrkMastMapper.insert(wrkMast);
-//                if (res == 0) {
-//                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-//                }
-
             }
-
-//        }
+        }
     }
 
     /**
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index df6f92d..f463cff 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -241,6 +241,10 @@
 
     }
 
+    public static String getLocNo(Number row, Number bay, Number lev) {
+        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
+    }
+
     public static void main(String[] args) {
         SlaveProperties slaveProperties = new SlaveProperties();
         slaveProperties.setDoubleDeep(true);

--
Gitblit v1.9.1