Browse Source

1.按钮盒在室外,经常会有人在室外触碰按钮
2.所以一般情况下,有人来卸货RFID开门的时候可以让按钮盒的按键十分钟之内有效果

k 2 years ago
parent
commit
fd373d4e5e

+ 13 - 2
warewms-ams/src/main/java/com/ruoyi/ams/agv/ndc/thread/AutoButtonBoxTask.java

@@ -6,6 +6,7 @@ import com.ruoyi.ams.config.domain.dto.AgvCallItemDTO;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.hard.modbus.tcp.AutoDoorClient;
 import com.ruoyi.hard.modbus.tcp.ButtonBoxClient;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +26,8 @@ public class AutoButtonBoxTask {
     private IBusinessService businessService;
     @Autowired
     private AutoDoorClient autoDoorClient;
+    @Autowired
+    private RedisCache redisCache;
 
 
     /**
@@ -36,9 +39,17 @@ public class AutoButtonBoxTask {
         Boolean readBtn01 = buttonBoxClient.readBtn01();
         Boolean readBtn02 = buttonBoxClient.readBtn02();
         if (readBtn01) {
+            if (redisCache.getCacheObject("BUTTON_BOX_VALID") == null) {
+                log.error("按钮盒不在有效时间段内!");
+                return;
+            }
             buttonTask01();
         }
         if (readBtn02) {
+            if (redisCache.getCacheObject("BUTTON_BOX_VALID") == null) {
+                log.error("按钮盒不在有效时间段内!");
+                return;
+            }
             buttonTask02();
         }
     }
@@ -76,7 +87,7 @@ public class AutoButtonBoxTask {
         buttonBoxClient.writeLamp01Death();
         log.info("按钮1已经灭灯");
         // 关闭墙外同时 打开墙里第二层自动门
-        autoDoorClient.sendOpen(AutoDoorClient.AUTO_DOOR_NO.C);
+//        autoDoorClient.sendOpen(AutoDoorClient.AUTO_DOOR_NO.C);
     }
 
     /**
@@ -112,6 +123,6 @@ public class AutoButtonBoxTask {
         buttonBoxClient.writeLamp02Death();
         log.info("按钮2已经灭灯");
         // 关闭墙外同时 打开墙里第二层自动门
-        autoDoorClient.sendOpen(AutoDoorClient.AUTO_DOOR_NO.C);
+//        autoDoorClient.sendOpen(AutoDoorClient.AUTO_DOOR_NO.C);
     }
 }

+ 6 - 0
warewms-ams/src/main/java/com/ruoyi/ams/agv/ndc/thread/AutoRfidReaderTask.java

@@ -1,5 +1,6 @@
 package com.ruoyi.ams.agv.ndc.thread;
 
+import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.hard.modbus.tcp.AutoDoorClient;
 import com.ruoyi.hard.modbus.tcp.WarningLightClient;
 import com.ruoyi.hard.rfid.RFIDReaderClient;
@@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 @Slf4j
 @Service
@@ -22,6 +24,8 @@ public class AutoRfidReaderTask {
     private WarningLightClient warningLightClient;
     @Autowired
     private ISysConfigService iSysConfigService;
+    @Autowired
+    private RedisCache redisCache;
 
     /**
      * redis-key(RFID标签ID,墙外)
@@ -103,6 +107,8 @@ public class AutoRfidReaderTask {
                 // 打开墙外同时 关闭墙里第二层自动门(应该大部分时间多是关闭的)
 //                autoDoorClient.sendClose(AutoDoorClient.AUTO_DOOR_NO.C);
                 closeOutDoorNum = 0;
+                // 设置按钮盒有效时间
+                redisCache.setCacheObject("BUTTON_BOX_VALID","",10, TimeUnit.MINUTES);
             } else {
                 closeInDoorNum = 0;
                 // 关闭警报灯