From de4f2b6569689626176abfef75be69e72eba8ed8 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期一, 30 六月 2025 10:38:16 +0800
Subject: [PATCH] #改造

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 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 386ba0c..2884f0d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.controller.CrnController;
 import com.zy.asrs.domain.enums.TaskStatusType;
@@ -106,6 +107,7 @@
     private TaskWrkLogServiceImpl taskWrkLogService;
     @Autowired
     private BasPlcerrorLogServiceImpl basPlcerrorLogService;
+    public Long currentTimeMilliConnectCrnAuto= 0L;
 
     public void generateStoreWrkFile() {
         try {
@@ -721,26 +723,61 @@
                     log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
                     continue;
                 }
-
-                if (crnProtocol.getLaneNo()!=0 && (crnProtocol.getBay()!=1 || crnProtocol.getLevel()!=1)){
-                    if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.statusType == CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0) {
+                if (System.currentTimeMillis()-currentTimeMilliConnectCrnAuto<1000*60*10){
+                    continue;
+                }
+                if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.statusType == CrnStatusType.IDLE && crnProtocol.getLoaded().equals((short)0) && crnProtocol.getLaneNo()!=0 && crnProtocol.getTaskNo() == 0 ) {
+                    if (crnProtocol.getBay()!=1 || crnProtocol.getLevel()!=1){
                         //鑾峰彇宸ヤ綔妗�
                         List<TaskWrk> taskWrks = taskWrkMapper.selectByLaneNo(crnProtocol.getLaneNo());
                         if (!taskWrks.isEmpty()) {
                             continue;
                         }
                         List<TaskWrkLog> taskWrkLogs = taskWrkLogService.selectList(new EntityWrapper<TaskWrkLog>().eq("CRN_NO",crnProtocol.getLaneNo()).orderBy("COMPLETE_TIME",true));
-                        if (taskWrkLogs.isEmpty()) {
-                            CrnCommand command = new CrnCommand();
-                            if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(4, command))) {
-                                log.error("鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触锛屽爢鍨涙満鍙�={}", crnProtocol.getCrnNo());
+                        if (!taskWrkLogs.isEmpty()) {
+                            TaskWrkLog taskWrkLog = taskWrkLogs.get(0);
+                            Date completeTime = taskWrkLog.getCompleteTime();
+                            if (completeTime==null){
+                                completeTime = taskWrkLog.getCancelTime();
+                                if (completeTime==null){
+                                    completeTime = taskWrkLog.getModiTime();
+                                }
+                            }
+                            long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(completeTime, new Date());
+                            if (differenceInSeconds <= 60*10*1000) {
+                                return;
                             }
                         }
-//                        long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(taskWrkLogs.get(0).getCompleteTime(), new Date());
-//                        if (differenceInSeconds <= 1000) {
-//                            return;
-//                        }
+                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+                        crnCommand.setCrnNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙�
+                        crnCommand.setTaskNo((short)999); // 宸ヤ綔鍙�
+                        crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                        crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                        crnCommand.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+                        crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+                        crnCommand.setSourcePosZ((short) 0);   // 婧愬簱浣嶅眰
+                        int row = crnProtocol.getLaneNo() * 2;
+                        crnCommand.setDestinationPosX((short) row);     // 鐩爣搴撲綅鎺�
+                        crnCommand.setDestinationPosY((short) 1);     // 鐩爣搴撲綅灞�
+                        crnCommand.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅鍒�
+                        if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+                            log.error("鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触锛屽爢鍨涙満鍙�={}", crnProtocol.getCrnNo());
 
+                            if (System.currentTimeMillis()-currentTimeMilliConnectCrnAuto>1000*60*10){
+                                try{
+                                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+                                    deviceErrorService.addDeviceError("CrnErr", crnProtocol.getCrnNo(), "鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触");
+                                } catch (Exception e2){
+                                }
+                                if (currentTimeMilliConnectCrnAuto == 0){
+                                    currentTimeMilliConnectCrnAuto = System.currentTimeMillis()-1000*60*10-1;
+                                } else {
+                                    currentTimeMilliConnectCrnAuto = System.currentTimeMillis();
+                                }
+                            }
+                        }
                     }
                 }
             } catch (Exception e){

--
Gitblit v1.9.1