From 28c1186f7e00f24c21a0abc79684e58ac1245ae4 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 14 十一月 2025 16:52:36 +0800
Subject: [PATCH] 时间调整

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   54 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 11 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 eaeb953..748e4a6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -24,6 +24,7 @@
 import com.zy.common.utils.News;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
+import com.zy.core.ThreadHandler;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.*;
@@ -453,9 +454,11 @@
                     WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
+                        log.info("鏃犳嫞鏂欐暟鎹�,鎵樼洏鐮侊細{}",barcode);
                         continue;
                     }
                     if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+                        log.info("宸ヤ綔妗e叆鍑哄簱绫诲瀷涓嶇鍚�,鍏ュ嚭搴撶被鍨嬶細{},宸ヤ綔妗g洰鏍囩珯{}锛屽伐浣滄。婧愮珯{}",wrkMast.getIoType(),wrkMast.getStaNo(),wrkMast.getSourceStaNo());
                         continue;
                     }
                     // 鑾峰彇鐩爣绔�
@@ -736,6 +739,12 @@
                     if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                         log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
 
+                        Date date = new Date();
+                        long diffInMillis = date.getTime() - wrkMast.getCrnStrTime().getTime();
+                        if (!(diffInMillis >= 30000)){
+                            continue;
+                        }
+
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                         // 涓嬪彂绔欑偣淇℃伅
@@ -834,6 +843,9 @@
     public synchronized void crnIoExecute(Integer mark) {
 
         for (CrnSlave crn : slaveProperties.getCrn()) {
+            //鑾峰彇鍫嗗灈鏈哄嚭搴撶珯鐨勪笅涓�绔欎俊鎭�
+            SiemensDevpThread devpThread =(SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crn.getId());
+            StaProtocol staProtocol = devpThread.getStation().get(1002);
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
             CrnProtocol crnProtocol = crnThread.getCrnProtocol();
@@ -855,7 +867,7 @@
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getForkPos() == 0 && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0) {
                 News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
                 if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 0) {
-                    News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏃犵墿");
+                    //News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏃犵墿");
                     //鍫嗗灈鏈烘病鏈夌墿鏂�
                     // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                     if (crnProtocol.getLastIo().equals("I")) {
@@ -881,7 +893,7 @@
                     }
 
                 } else if (crnProtocol.getLoaded() == 1 && crnProtocol.getLoadedTwo() == 1) {
-                    News.error("宸ヤ綅1鏈夌墿锛屽伐浣�2鏈夌墿");
+                    //News.error("宸ヤ綅1鏈夌墿锛屽伐浣�2鏈夌墿");
                     // 鍫嗗灈鏈烘湁鐗╂枡
                     WrkMast wrkMast = wrkMastMapper.selectByPltType(crn.getId(), 1);
                     if (wrkMast != null) {
@@ -894,7 +906,7 @@
                         log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗�  ===銆嬪紓甯�");
                     }
                 } else if (crnProtocol.getLoaded() == 1 && crnProtocol.getLoadedTwo() == 0) {
-                    News.error("宸ヤ綅1鏈夌墿锛屽伐浣�2鏃犵墿");
+                    //News.error("宸ヤ綅1鏈夌墿锛屽伐浣�2鏃犵墿");
                     // 鍫嗗灈鏈哄伐浣�1鏈夌墿鏂�
                     WrkMast wrkMast = wrkMastMapper.selectByPltType(crn.getId(), 1);
                     if (wrkMast != null) {
@@ -903,6 +915,10 @@
                         if (wrkMast.getIoType() >= 100) {
                             WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep1(crn.getId(), wrkMast.getSourceStaNo());
                             if (wrkMast1 != null) {
+                                if (Integer.parseInt(wrkMast1.getSourceLocNo().substring(2,5)) == 1 || (staProtocol.isAutoing()&&staProtocol.isLoading())){
+                                    this.outPut(crn, crnProtocol, mark);
+                                    continue;
+                                }
                                 this.outTake(crn, crnProtocol, 2, mark);
                             } else {
                                 this.outPut(crn, crnProtocol, mark);
@@ -919,7 +935,7 @@
                         log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗�  ===銆嬪紓甯�");
                     }
                 } else if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 1) {
-                    News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏈夌墿");
+                    //News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏈夌墿");
                     // 鍫嗗灈鏈哄伐浣�2鏈夌墿鏂�
                     WrkMast wrkMast = wrkMastMapper.selectByPltType(crn.getId(), 2);
                     if (wrkMast != null) {
@@ -928,6 +944,10 @@
                         if (wrkMast.getIoType() >= 100) {
                             WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep1(crn.getId(), wrkMast.getSourceStaNo());
                             if (wrkMast1 != null) {
+                                if (Integer.parseInt(wrkMast1.getSourceLocNo().substring(2,5)) == 29 || (staProtocol.isAutoing()&&staProtocol.isLoading())){
+                                    this.outPut(crn, crnProtocol, mark);
+                                    continue;
+                                }
                                 this.outTake(crn, crnProtocol, 1, mark);
                             } else {
                                 this.outPut(crn, crnProtocol, mark);
@@ -961,16 +981,17 @@
      * @return
      */
     private Integer getCrnStation(String locNo) {
-        String bay = locNo.substring(2, 5);
+        String bay = locNo.substring(2, 5);//0100203
         if (Integer.parseInt(bay) == 1) {
             return 1;
         } else if (Integer.parseInt(bay) == 29) {
             return 2;
         }
-        if (Integer.parseInt(locNo.substring(0, 2)) >= 14) {
-            return 1;
-        } else {
+//        if (Integer.parseInt(locNo.substring(0, 2)) >= 14) {
+        if (Integer.parseInt(bay) >= 14) {
             return 2;
+        } else {
+            return 1;
         }
     }
 
@@ -1189,6 +1210,8 @@
                 // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                 StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+                //鍫嗗灈鏈哄嚭搴撶珯鐐圭殑涓嬩竴绔�
+                StaProtocol staProtocol1 = devpThread.getStation().get(1002);
                 if (staProtocol == null) {
                     News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
                     break;
@@ -1204,7 +1227,7 @@
                     break;
                 }
                 // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()&&staProtocol1.isAutoing()&&!staProtocol1.isLoading()) {
                     // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -2043,6 +2066,7 @@
             // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
             Date now = new Date();
             wrkMast.setWrkSts(12L);
+            wrkMast.setPltType(crnStation);
             wrkMast.setCrnStrTime(now);
             wrkMast.setModiTime(now);
             if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -2078,6 +2102,11 @@
                 WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
                 if (wrkMast == null) {
                     News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+                    continue;
+                }
+                Date date = new Date();
+                long diffInMillis = date.getTime() - wrkMast.getCrnStrTime().getTime();
+                if (!(diffInMillis >= 30000)){
                     continue;
                 }
                 // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
@@ -3795,7 +3824,7 @@
             }
 
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getStatusTypeTwo()== CrnStatusType.IDLE) {
-                if (crnProtocol.getCrnNo() == 1 && crnProtocol.getBay() == 11 && crnProtocol.getLevel() == 1) {
+                if (crnProtocol.getBay() == 11 && crnProtocol.getLevel() == 1) {
                     continue;
                 }
                 Page<BasCrnOpt> basCrnOptPage = crnOptService.selectPage(new Page<>(1, 1), new EntityWrapper<BasCrnOpt>().eq("crn_no", crn.getId()).orderBy("send_time", false));
@@ -3852,7 +3881,10 @@
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
             List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep107(slave.getId(), crnStn.getStaNo());
             for (WrkMast wrkMast : wrkMasts) {
-                if (wrkMast == null || wrkMast.getPltType() == 2) {
+//                if (wrkMast == null || wrkMast.getPltType() == 2) {
+//                    continue;
+//                }
+                if (wrkMast == null){
                     continue;
                 }
                 // 宸ヤ綔妗g姸鎬佸垽鏂�

--
Gitblit v1.9.1