From 145083db280d170c71616d45e4d915299906db8d Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 02 三月 2024 12:52:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |   11 +++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/core/CrnThread.java                    |    2 +
 src/main/java/com/zy/core/MainProcess.java                  |    4 ++
 4 files changed, 120 insertions(+), 0 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 a286863..650ff5a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1364,6 +1364,67 @@
     }
 
     /**
+     * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
+     */
+    public synchronized void crnStnToOutStnTwo() {
+        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+            // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
+            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
+                // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+                StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+                    // 鏌ヨ宸ヤ綔妗�
+                    WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
+                    if (wrkMast == null) {
+                        continue;
+                    }
+                    // 鍒ゆ柇宸ヤ綔妗f潯浠�
+                    if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+                        continue;
+                    }
+                    // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+                    CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
+                    CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+                    if (crnProtocol.statusTypeTwo == CrnStatusType.FETCHING || crnProtocol.statusTypeTwo == CrnStatusType.PUTTING) {
+                        // 绉诲姩涓�
+                        continue;
+                    }
+
+                    //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+                    if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNoTwo().equals(wrkMast.getWrkNo().shortValue())
+                            && crnProtocol.statusTypeTwo == CrnStatusType.WAITING
+                            && crnProtocol.forkPosTypeTwo == CrnForkPosType.HOME) {
+
+                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                        // 涓嬪彂绔欑偣淇℃伅
+                        staProtocol.setWorkNo(wrkMast.getWrkNo());
+                        staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+                        if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+                            continue;
+                        }
+
+                        // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+                        wrkMast.setWrkSts(14L);
+                        wrkMast.setCrnEndTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) != 0) {
+                            // 澶嶄綅鍫嗗灈鏈�
+                            crnThread.setResetFlagTwo(true);
+                        } else {
+                            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
      * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
      */
     public synchronized void crnIoExecute() {
@@ -2827,6 +2888,48 @@
             }
         }
     }
+    /**
+     * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+     */
+    public synchronized void storeFinishedTwo() {
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
+            if (crnProtocol.statusTypeTwo == CrnStatusType.WAITING && crnProtocol.getTaskNoTwo() != 0) {
+                if (crnProtocol.getTaskNoTwo() == 32222) {
+                    // 鍫嗗灈鏈哄浣�
+                    crnThread.setResetFlagTwo(true);
+                } else {
+                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNoTwo().intValue());
+                    if (wrkMast == null) {
+                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNoTwo());
+                        continue;
+                    }
+                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
+                    if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+                        wrkMast.setWrkSts(4L);
+                    } else {
+                        continue;
+                    }
+                    Date now = new Date();
+                    wrkMast.setCrnEndTime(now);
+                    wrkMast.setModiTime(now);
+                    // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+                    if (wrkMastMapper.updateById(wrkMast) > 0) {
+                        // 鍫嗗灈鏈哄浣�
+                        crnThread.setResetFlagTwo(true);
+                    }
+                }
+
+            }
+        }
+    }
 
     /**
      * 寮傚父淇℃伅璁板綍
diff --git a/src/main/java/com/zy/core/CrnThread.java b/src/main/java/com/zy/core/CrnThread.java
index 7b4ded6..8ab3a68 100644
--- a/src/main/java/com/zy/core/CrnThread.java
+++ b/src/main/java/com/zy/core/CrnThread.java
@@ -8,6 +8,8 @@
 
     void setResetFlag(boolean flag);
 
+    void setResetFlagTwo(boolean flag);
+
     void setBackHpFlag(boolean flag);
 
     /**
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index d8046a1..0cea60c 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -68,6 +68,8 @@
 //                    mainService.stnToCrnStnPick3Auto(i);
                     // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
                     mainService.crnStnToOutStn();
+                    // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯  宸ヤ綅2
+                    mainService.crnStnToOutStnTwo();
                     // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
                     mainService.crnIoExecute();
                     // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂  鍙屽伐浣嶅爢鍨涙満
@@ -76,6 +78,8 @@
 //                    mainService.crnIoWrkMast();
                     // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
                     mainService.storeFinished();
+                    // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�  宸ヤ綅2
+                    mainService.storeFinishedTwo();
 
 //                    /////////////////////////////////////RGV璋冨害/////////////////////////////////////
 //                    i++;
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 3990184..e440a23 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -38,6 +38,7 @@
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
     private boolean resetFlag = false;
+    private boolean resetFlagTwo = false;
 
     public Long sign = System.currentTimeMillis();
 
@@ -227,6 +228,16 @@
                             resetFlag = false;
                         }
                     }
+                    if (resetFlagTwo) {
+                        if(crnProtocol.getTaskNo()==9999){
+                            backHpFlag = false;
+                        }
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setAckFinish((short)1);
+                        if (write5(crnCommand)) {
+                            resetFlag = false;
+                        }
+                    }
                 }
 
                 try {

--
Gitblit v1.9.1