From 2fddfc8a998c5861ef1c2084f4081d580dbc27d2 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 28 十一月 2023 09:33:14 +0800
Subject: [PATCH] #任务管理运行修改起点-终点数据

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 104 insertions(+), 4 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 0cf7216..0cff627 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -16,14 +16,18 @@
 import com.zy.common.utils.HttpHandler;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
+import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.*;
 import com.zy.core.model.CrnSlave;
+import com.zy.core.model.DevpSlave;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.LedThread;
 import com.zy.core.thread.SiemensDevpThread;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
@@ -76,6 +80,86 @@
     @Value("${wms.movePath}")
     private String movePath;
 
+
+    public void generateStoreWrkFile() {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍏ュ簱鍙�
+            for (DevpSlave.Sta inSta : devp.getInSta()) {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                Short workNo = staProtocol.getWorkNo();
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (staProtocol.isAutoing() && staProtocol.isLoading()
+                        && !staProtocol.isInEnable()
+                        && !staProtocol.isEmptyMk() && (workNo >= 0)
+                        && staProtocol.isPakMk()) {
+
+                    // 灏哄妫�娴嬪紓甯�
+                    boolean back = false;
+                    String errMsg = "";
+                    if (staProtocol.isFrontErr()) {
+                        errMsg = "鍓嶈秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBackErr()) {
+                        errMsg = "鍚庤秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isHighErr()) {
+                        errMsg = "楂樿秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isLeftErr()) {
+                        errMsg = "宸﹁秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isRightErr()) {
+                        errMsg = "鍙宠秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isWeightErr()) {
+                        errMsg = "瓒呴噸";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBarcodeErr()) {
+                        errMsg = "鎵爜澶辫触";
+                        back = true;
+                    }
+                    // 閫�鍥�
+                    if (back) {
+//                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+                        staProtocol.setWorkNo(workNo);
+                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+
+                        continue;
+                    }
+                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+                    if (barcodeThread == null) {
+                        continue;
+                    }
+                    String barcode = barcodeThread.getBarcode();
+                    if(!Cools.isEmpty(barcode)) {
+
+                    }
+                }
+
+
+            }
+        }
+    }
+
+
     /**
      * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
      */
@@ -110,7 +194,7 @@
                                 continue;
                             }
                             //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
-                            if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue())
+                            if (crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue())
                                     && crnProtocol.getTaskFinish() == 0
                                     && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
@@ -124,11 +208,19 @@
                                     continue;
                                 }
 
-                                // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+                                // 鏇存柊宸ヤ綔妗g姸鎬佷负14
                                 taskWrk.setWrkSts(14);
                                 if (taskWrkMapper.updateById(taskWrk) != 0) {
                                     // 澶嶄綅鍫嗗灈鏈�
                                     crnThread.setResetFlag(true);
+
+                                    //鏇存柊搴撲綅鐘舵��
+                                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                                    locMast.setLocSts("O");//O.绌哄簱浣�
+                                    locMast.setBarcode("");//鎵樼洏鐮�
+                                    locMast.setModiTime(new Date());
+                                    locMast.setModiUser(9999L);
+                                    locMastService.updateById(locMast);
                                 } else {
                                     log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo());
                                 }
@@ -456,12 +548,12 @@
             if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
                 // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
                 TaskWrk taskWrk = taskWrkMapper.selectCrnNoWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
-                if (taskWrk == null) {
+                if (Cools.isEmpty(taskWrk)) {
                     log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
                     continue;
                 }
                 // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                if (taskWrk.getWrkSts() == 3 || (taskWrk.getWrkSts() == 12 && taskWrk.getIoType() == 3)) {
+                if ((taskWrk.getWrkSts() == 3 && taskWrk.getIoType() == 1) || (taskWrk.getWrkSts() == 12 && taskWrk.getIoType() == 3)) {
                     taskWrk.setWrkSts(4);
                 } else {
                     continue;
@@ -473,6 +565,14 @@
                 if (integerTaskWrk > 0) {
                     // 鍫嗗灈鏈哄浣�
                     crnThread.setResetFlag(true);
+
+                    //鏇存柊搴撲綅鐘舵��
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                    locMast.setLocSts("F");//F.鍦ㄥ簱
+                    locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
+                    locMast.setModiTime(now);
+                    locMast.setModiUser(9999L);
+                    locMastService.updateById(locMast);
                 }
             }
         }

--
Gitblit v1.9.1