提交 a592ac80 authored 作者: 邓砥奕's avatar 邓砥奕

修改门禁bug

上级 72e3d193
...@@ -17,15 +17,25 @@ public class SystemVariableRun implements CommandLineRunner { ...@@ -17,15 +17,25 @@ public class SystemVariableRun implements CommandLineRunner {
@Override @Override
public void run(String... args) throws Exception { public void run(String... args) throws Exception {
if (systemVariableDao.findAll().size()==0){ if(systemVariableDao.findByName("selfCheckCycle")==null) {
SystemVariable systemVariable = new SystemVariable(); SystemVariable systemVariable = new SystemVariable();
systemVariable.setName("selfCheckCycle"); systemVariable.setName("selfCheckCycle");
systemVariable.setVaule("quarter"); systemVariable.setVaule("quarter");
systemVariableDao.save(systemVariable); systemVariableDao.save(systemVariable);
log.info("系统变量新建成功"); log.info("系统变量selfCheckCycle新建成功");
} }
else { else {
log.info("已有系统变量不新建"); log.info("已有系统变量selfCheckCycle不新建");
}
if(systemVariableDao.findByName("warningInterval")==null){
SystemVariable systemVariable2 = new SystemVariable();
systemVariable2.setName("warningInterval");
systemVariable2.setVaule("10000");
systemVariableDao.save(systemVariable2);
log.info("系统变量warningInterval新建成功");
}
else {
log.info("已有系统变量warningInterval不新建");
} }
} }
} }
package com.tykj.dev.rfid.controller; package com.tykj.dev.rfid.controller;
import com.tykj.dev.config.repository.SystemVariableDao;
import com.tykj.dev.config.service.SystemVariableService;
import com.tykj.dev.config.swagger.AutoDocument; import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.repository.DeviceLibraryDao; import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.service.DeviceLibraryService; import com.tykj.dev.device.library.service.DeviceLibraryService;
...@@ -75,6 +77,9 @@ public class AccessController { ...@@ -75,6 +77,9 @@ public class AccessController {
@Autowired @Autowired
private LibraryWarningLogDetailDao libraryWarningLogDetailDao; private LibraryWarningLogDetailDao libraryWarningLogDetailDao;
@Autowired
private SystemVariableService systemVariableService;
@PostMapping("/add") @PostMapping("/add")
public ResponseEntity addAccess(@RequestBody AccessControlName accessControlName){ public ResponseEntity addAccess(@RequestBody AccessControlName accessControlName){
return ResponseEntity.ok(accessControlNameDao.save(accessControlName)); return ResponseEntity.ok(accessControlNameDao.save(accessControlName));
...@@ -91,8 +96,10 @@ public class AccessController { ...@@ -91,8 +96,10 @@ public class AccessController {
sp.append(line); sp.append(line);
} }
String json = sp.toString(); String json = sp.toString();
String cmd = json.substring(10,15);
// System.out.println(json);
//数据提交 //数据提交
if (json.contains("20001")){ if ("20001".equals(cmd)){
//Json转对象 //Json转对象
AccessData accessData = JacksonUtil.readValue(sp.toString(),AccessData.class); AccessData accessData = JacksonUtil.readValue(sp.toString(),AccessData.class);
if (accessData != null) { if (accessData != null) {
...@@ -108,6 +115,10 @@ public class AccessController { ...@@ -108,6 +115,10 @@ public class AccessController {
List<String> outPutCardIds = accessData.getData().getEpcs().stream() List<String> outPutCardIds = accessData.getData().getEpcs().stream()
.filter(record -> record.getDirection()==1).map(Record::getEpc) .filter(record -> record.getDirection()==1).map(Record::getEpc)
.collect(Collectors.toList()); .collect(Collectors.toList());
//实际入库的装备卡号
List<String> inPutCardIds = accessData.getData().getEpcs().stream()
.filter(record -> record.getDirection()==0).map(Record::getEpc)
.collect(Collectors.toList());
// for (int i = 0;i<outPutCardIds.size();i++){ // for (int i = 0;i<outPutCardIds.size();i++){
// List<DeviceLibrary> deviceLibraries = deviceLibraryDao.getAllByRfidCardId(outPutCardIds.get(i)); // List<DeviceLibrary> deviceLibraries = deviceLibraryDao.getAllByRfidCardId(outPutCardIds.get(i));
// if (deviceLibraries.size()==0){ // if (deviceLibraries.size()==0){
...@@ -166,13 +177,17 @@ public class AccessController { ...@@ -166,13 +177,17 @@ public class AccessController {
} }
//不在系统的rfid不报警 //不在系统的rfid不报警
else { else {
log.info("出库装备EPC在出库白名单或不存在系统当中不报警"); log.info("出库"+outPutCardIds.size()+"件装备EPC在出库白名单或不存在系统当中不报警");
return DataResult.success(); return DataResult.success();
} }
} }
} }
else if(inPutCardIds.size()>0){
log.info("入库"+inPutCardIds.size()+"件装备不报警");
return DataResult.success();
}
else { else {
log.info("没有出库装备不报警"); log.info("未获取到出入库装备EPC不报警");
return DataResult.success(); return DataResult.success();
} }
} }
...@@ -181,7 +196,7 @@ public class AccessController { ...@@ -181,7 +196,7 @@ public class AccessController {
} }
} }
//时间同步 //时间同步
else if (json.contains("20002")){ else if ("20002".equals(cmd)){
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// TimeConfirm timeConfirm = new TimeConfirm(); // TimeConfirm timeConfirm = new TimeConfirm();
// timeConfirm.setCmd("20002"); // timeConfirm.setCmd("20002");
...@@ -189,7 +204,7 @@ public class AccessController { ...@@ -189,7 +204,7 @@ public class AccessController {
return null; return null;
} }
//心跳包 //心跳包
else if (json.contains("20003")){ else if ("20003".equals(cmd)){
return null; return null;
} }
else { else {
...@@ -201,9 +216,10 @@ public class AccessController { ...@@ -201,9 +216,10 @@ public class AccessController {
* 获取最近10s内出库异常的装备Id * 获取最近10s内出库异常的装备Id
*/ */
private List<Integer> getLatestWarningDeviceIds(){ private List<Integer> getLatestWarningDeviceIds(){
Long warningInterval = Long.valueOf(systemVariableService.getVaule("warningInterval"));
return libraryWarningLogDetailDao.findAll().stream().filter(libraryWarningLogDetail -> { return libraryWarningLogDetailDao.findAll().stream().filter(libraryWarningLogDetail -> {
Boolean isOutPut = "异常出库".equals(libraryWarningLogDetail.getInventoryResults()); Boolean isOutPut = "异常出库".equals(libraryWarningLogDetail.getInventoryResults());
Boolean isLatest = System.currentTimeMillis() - libraryWarningLogDetail.getUpdateTime().getTime()<10_000; Boolean isLatest = System.currentTimeMillis() - libraryWarningLogDetail.getUpdateTime().getTime()<warningInterval;
return isOutPut&&isLatest; return isOutPut&&isLatest;
}).map(LibraryWarningLogDetail::getDeviceId).collect(Collectors.toList()); }).map(LibraryWarningLogDetail::getDeviceId).collect(Collectors.toList());
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论