From 2dac51421b0a90277a05188234f6ea954a4e204b Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期四, 13 十一月 2025 17:34:52 +0800
Subject: [PATCH] 出库调整

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   43 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 32 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..23ee297 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;
                     }
                     // 鑾峰彇鐩爣绔�
@@ -834,6 +837,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 +861,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 +887,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 +900,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 +909,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 +929,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 +938,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 +975,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 +1204,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 +1221,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 +2060,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) {
@@ -3795,7 +3813,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 +3870,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