|
|
@@ -1,6 +1,8 @@
|
|
|
package org.dromara.backstage.business.lock;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
@@ -169,7 +171,8 @@ public class LockBusiness {
|
|
|
if (CollectionUtil.isNotEmpty(roomVos)) {
|
|
|
roomVos.parallelStream().forEach(p -> {
|
|
|
String lockId = p.getLockId();
|
|
|
- openDoorRecord.updateAndGet(v -> v + this.queryOpenDoorRecord(lockId, p.getRoomCode(), p.getRoomName(),pageNo));
|
|
|
+ // 定时任务只查询最近1天的数据
|
|
|
+ openDoorRecord.updateAndGet(v -> v + this.queryOpenDoorRecord(lockId, p.getRoomCode(), p.getRoomName(),pageNo,true));
|
|
|
});
|
|
|
}
|
|
|
return openDoorRecord.get();
|
|
|
@@ -186,7 +189,7 @@ public class LockBusiness {
|
|
|
public Integer queryOpenDoorRecordByRoomCode(String RoomCode,int pageNo) {
|
|
|
PtRoomVo vo = roomService.selectHotelRoom(RoomCode);
|
|
|
if (ObjectUtil.isNotEmpty(vo)) {
|
|
|
- return queryOpenDoorRecord(vo.getLockId(), vo.getRoomCode(), vo.getRoomName(),pageNo);
|
|
|
+ return queryOpenDoorRecord(vo.getLockId(), vo.getRoomCode(), vo.getRoomName(),pageNo,false);
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -211,7 +214,7 @@ public class LockBusiness {
|
|
|
if (ObjectUtil.equals(flag, "0")) {
|
|
|
int totalPage = JSONUtil.parseObj(result).getInt("totalPage");
|
|
|
for (int i = 0; i < totalPage; i++) {
|
|
|
- syncCount += queryOpenDoorRecord(lockId, roomCode, roomName, i + 1);
|
|
|
+ syncCount += queryOpenDoorRecord(lockId, roomCode, roomName, i + 1, false);
|
|
|
}
|
|
|
}
|
|
|
return syncCount;
|
|
|
@@ -224,9 +227,10 @@ public class LockBusiness {
|
|
|
* @param roomCode
|
|
|
* @param roomName
|
|
|
* @param pageNo 页码
|
|
|
+ * @param isSchedule 是否定时任务
|
|
|
* @return 记录条数
|
|
|
*/
|
|
|
- private Integer queryOpenDoorRecord(String lockId, String roomCode, String roomName, int pageNo) {
|
|
|
+ private Integer queryOpenDoorRecord(String lockId, String roomCode, String roomName, int pageNo, boolean isSchedule) {
|
|
|
Map<String, Object> formMap = new HashMap<>();
|
|
|
formMap.put("KEYLOCKID", lockId);
|
|
|
formMap.put("CARDPSWBIT", "1");
|
|
|
@@ -238,16 +242,23 @@ public class LockBusiness {
|
|
|
String flag = JSONUtil.parseObj(result).getStr("result");
|
|
|
if (ObjectUtil.equals(flag, "0")) {
|
|
|
JSONArray pageData = JSONUtil.parseObj(result).getJSONArray("pageData");
|
|
|
- pageData.parallelStream().forEach(p -> {
|
|
|
- JSONObject record = JSONUtil.parseObj(p);
|
|
|
+ pageData.parallelStream().map(JSONUtil::parseObj).filter(p -> {
|
|
|
+ if(isSchedule){
|
|
|
+ // 当前时间与开门时间相差大于25小时,则continue
|
|
|
+ DateTime operateTime = DateUtil.parse(p.getStr("operateTime"), DefaultConstants.DATE_TIME_FORMAT);
|
|
|
+ return operateTime != null && DateUtil.between(DateUtil.date(), operateTime, DateUnit.HOUR) <= 25;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }).forEach(p -> {
|
|
|
+// JSONObject record = JSONUtil.parseObj(p);
|
|
|
RemoteDoorOpenBo remoteBo = new RemoteDoorOpenBo();
|
|
|
remoteBo.setRoomCode(roomCode);
|
|
|
remoteBo.setRoomName(roomName);
|
|
|
- remoteBo.setOpenDoorMode(record.getStr("openWay"));
|
|
|
- remoteBo.setOpenTime(DateUtil.parse(record.getStr("operateTime"), DefaultConstants.DATE_TIME_FORMAT));
|
|
|
- remoteBo.setOpenResult(record.getStr("openResult"));
|
|
|
- if (ObjectUtil.isNotEmpty(record.get("cardId"))) {
|
|
|
- remoteBo.setFactoryId(record.getStr("cardId"));
|
|
|
+ remoteBo.setOpenDoorMode(p.getStr("openWay"));
|
|
|
+ remoteBo.setOpenTime(DateUtil.parse(p.getStr("operateTime"), DefaultConstants.DATE_TIME_FORMAT));
|
|
|
+ remoteBo.setOpenResult(p.getStr("openResult"));
|
|
|
+ if (ObjectUtil.isNotEmpty(p.get("cardId"))) {
|
|
|
+ remoteBo.setFactoryId(p.getStr("cardId"));
|
|
|
} else {
|
|
|
remoteBo.setFactoryId("");
|
|
|
}
|
|
|
@@ -258,7 +269,7 @@ public class LockBusiness {
|
|
|
syncCount.getAndSet(syncCount.get() + 1);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
- log.error("[同步开门记录异常]-[{}]", record, e);
|
|
|
+ log.error("[同步开门记录异常]-[{}]", p, e);
|
|
|
}
|
|
|
});
|
|
|
}
|