|
@@ -72,7 +72,7 @@ public class AutoRfidReaderTask {
|
|
|
/**
|
|
|
* 执行任务
|
|
|
*
|
|
|
- * @param tagIds 需要校验的标签ID
|
|
|
+ * @param tagIds 需要校验的标签ID
|
|
|
* @param tagList RFID读取到的tagId
|
|
|
* @param doorNo 门编号
|
|
|
* @param isOutdoor 是否墙外的自动门
|
|
@@ -85,7 +85,7 @@ public class AutoRfidReaderTask {
|
|
|
log.error("自动门打开之后的20秒钟之内不可以关门!");
|
|
|
return;
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
if (redisCache.getCacheObject("IN_DOOR_OPEN") != null) {
|
|
|
log.error("自动门打开之后的20秒钟之内不可以关门!");
|
|
|
return;
|
|
@@ -94,7 +94,7 @@ public class AutoRfidReaderTask {
|
|
|
// 如果没有读到标签 关闭自动门
|
|
|
// 因为大部分时间都是读不到标签的 所以关门的指令不能一直重复下发
|
|
|
// 记录关门的次数 超过5次 就不再重复关门
|
|
|
- if (isOutdoor ? closeOutDoorNum < closeDoorMax : closeInDoorNum < closeDoorMax) {
|
|
|
+ if (isOutdoor ? closeOutDoorNum <= closeDoorMax : closeInDoorNum <= closeDoorMax) {
|
|
|
autoDoorClient.sendClose(doorNo);
|
|
|
// log.info("发送关门指令!{},{}", isOutdoor, isOutdoor ? closeOutDoorNum : closeInDoorNum);
|
|
|
if (isOutdoor) {
|
|
@@ -109,7 +109,7 @@ public class AutoRfidReaderTask {
|
|
|
}
|
|
|
if (isOutdoor) {
|
|
|
log.info("墙外RFID读取到标签:" + JSON.toJSONString(tagList));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
log.info("墙内RFID读取到标签:" + JSON.toJSONString(tagList));
|
|
|
}
|
|
|
boolean contains = false;
|
|
@@ -126,21 +126,33 @@ public class AutoRfidReaderTask {
|
|
|
// autoDoorClient.sendClose(AutoDoorClient.AUTO_DOOR_NO.C);
|
|
|
closeOutDoorNum = 0;
|
|
|
// 设置按钮盒有效时间
|
|
|
- redisCache.setCacheObject("BUTTON_BOX_VALID","",10, TimeUnit.MINUTES);
|
|
|
+ redisCache.setCacheObject("BUTTON_BOX_VALID", "", 10, TimeUnit.MINUTES);
|
|
|
// 设定开门有效时间 这个时间内就算RFID没有扫描到标签,门也不可以关上
|
|
|
- redisCache.setCacheObject("OUT_DOOR_OPEN","",20, TimeUnit.SECONDS);
|
|
|
+ redisCache.setCacheObject("OUT_DOOR_OPEN", "", 20, TimeUnit.SECONDS);
|
|
|
} else {
|
|
|
closeInDoorNum = 0;
|
|
|
// 关闭警报灯
|
|
|
warningLightClient.closeWarningLight();
|
|
|
// 设定开门有效时间 这个时间内就算RFID没有扫描到标签,门也不可以关上
|
|
|
- redisCache.setCacheObject("IN_DOOR_OPEN","",20, TimeUnit.SECONDS);
|
|
|
+ redisCache.setCacheObject("IN_DOOR_OPEN", "", 20, TimeUnit.SECONDS);
|
|
|
}
|
|
|
} else {
|
|
|
+ // 自动门打开之后的五秒钟之内不可以关门
|
|
|
+ if (isOutdoor) {
|
|
|
+ if (redisCache.getCacheObject("OUT_DOOR_OPEN") != null) {
|
|
|
+ log.error("自动门打开之后的20秒钟之内不可以关门!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (redisCache.getCacheObject("IN_DOOR_OPEN") != null) {
|
|
|
+ log.error("自动门打开之后的20秒钟之内不可以关门!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
// 如果没有读到标签 关闭自动门
|
|
|
// 因为大部分时间都是读不到标签的 所以关门的指令不能一直重复下发
|
|
|
// 记录关门的次数 超过10次 就不再重复关门
|
|
|
- if (isOutdoor ? closeOutDoorNum < 10 : closeInDoorNum < 10) {
|
|
|
+ if (isOutdoor ? closeOutDoorNum <= closeDoorMax : closeInDoorNum <= closeDoorMax) {
|
|
|
autoDoorClient.sendClose(doorNo);
|
|
|
// log.info("发送关门指令!{},{}", isOutdoor, isOutdoor ? closeOutDoorNum : closeInDoorNum);
|
|
|
if (isOutdoor) {
|