分页循环问题bug解决和优化
This commit is contained in:
parent
3607292880
commit
35580c78f4
@ -74,6 +74,7 @@ import java.util.concurrent.CompletableFuture;
|
||||
@RequestMapping("/xmgl/hikvision")
|
||||
public class HikvisionCall {
|
||||
private static final String FIXED_CAR_GROUP_NAME = "业主车辆";
|
||||
static String pageNo = "pageNo";
|
||||
@Autowired
|
||||
XzHikvisionSyncServiceImpl xzHikvisionSyncService;
|
||||
@Lazy
|
||||
@ -320,8 +321,17 @@ public class HikvisionCall {
|
||||
@Async("saveEventCallbackAiAsync")
|
||||
public void saveEventCallbackAiAsync(JSONObject dataEvent, String srcName, String eventType, String imageUrl, String deviceID, AiAnalyseHardWareRecord dev) {
|
||||
String happenTime = dataEvent.getString("happenTime");
|
||||
String createTime = DateUtil.formatDateTime(DateUtil.parse(happenTime));
|
||||
Integer count = aiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<AiAnalyseHardWareAlarmRecord>()
|
||||
.eq(AiAnalyseHardWareAlarmRecord::getCreateTime, createTime)
|
||||
.eq(AiAnalyseHardWareAlarmRecord::getHardwareId, deviceID)
|
||||
);
|
||||
if (count > 0) {
|
||||
log.info("重复的ai预警数据不保存,deviceID:{},createTime:{}", deviceID, createTime);
|
||||
return;
|
||||
}
|
||||
AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord = new AiAnalyseHardWareAlarmRecord();
|
||||
aiAnalyseHardWareAlarmRecord.setCreateTime(DateUtil.formatDateTime(DateUtil.parse(happenTime)));
|
||||
aiAnalyseHardWareAlarmRecord.setCreateTime(createTime);
|
||||
aiAnalyseHardWareAlarmRecord.setAlarmType(Integer.valueOf(eventType));
|
||||
aiAnalyseHardWareAlarmRecord.setHardwareId(deviceID);
|
||||
aiAnalyseHardWareAlarmRecord.setHardwareName(dev.getHardwareName());
|
||||
@ -340,6 +350,14 @@ public class HikvisionCall {
|
||||
carPassRecord.setCarNumber(plateNo);
|
||||
carPassRecord.setType(getPassType(carCamera.getPassType()));
|
||||
carPassRecord.setPassTime(time);
|
||||
LambdaQueryWrapper<CarPassRecord> queryWrapper = new LambdaQueryWrapper<CarPassRecord>()
|
||||
.eq(CarPassRecord::getCarNumber, plateNo)
|
||||
.eq(CarPassRecord::getPassTime, time);
|
||||
Integer count = carPassRecordMapper.selectCount(queryWrapper);
|
||||
if (count != 0) {
|
||||
log.info("重复的车辆通行的数据不保存,plateNo:{},time:{}", plateNo, time);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
//车牌
|
||||
JSONObject picUrlJo = dataJo.getJSONObject("picUrl");
|
||||
@ -371,15 +389,7 @@ public class HikvisionCall {
|
||||
} else {
|
||||
carPassRecord.setIsOpen(0);
|
||||
}
|
||||
LambdaQueryWrapper<CarPassRecord> queryWrapper = new LambdaQueryWrapper<CarPassRecord>()
|
||||
.eq(CarPassRecord::getCarNumber, plateNo)
|
||||
.eq(CarPassRecord::getPassTime, time);
|
||||
Integer count = carPassRecordMapper.selectCount(queryWrapper);
|
||||
if (count != 0) {
|
||||
carPassRecordMapper.update(carPassRecord, queryWrapper);
|
||||
} else {
|
||||
carPassRecordMapper.insert(carPassRecord);
|
||||
}
|
||||
carPassRecordMapper.insert(carPassRecord);
|
||||
//车进场后,意味着绑定的司机走过了人脸机,统计为在场人员。车辆出场后,在场人员随之减少
|
||||
if (carInfos.size() != 0 && carInfos.get(0) != null && StringUtils.isNotEmpty(carInfos.get(0).getDriverWorkerId())) {
|
||||
log.info("保存车辆绑定的司机的通行数据,车牌号:{}", carInfos.get(0).getCarNumber());
|
||||
@ -397,6 +407,14 @@ public class HikvisionCall {
|
||||
map.put("passType", 2);
|
||||
map.put("projectCode", workerInfo.getProjectSn());
|
||||
map.put("devCode", srcIndex);
|
||||
Integer count = workerAttendanceMapper.selectCount(new LambdaQueryWrapper<WorkerAttendance>()
|
||||
.eq(WorkerAttendance::getCreateTime, time)
|
||||
.eq(WorkerAttendance::getPersonSn, workerInfo.getPersonSn())
|
||||
);
|
||||
if (count != 0) {
|
||||
log.info("重复的人员通行的数据不保存,idCard:{},time:{}", idCard, time);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String extEventPictureURL = dataJo.getString("ExtEventPictureURL");
|
||||
String svrIndexCode = dataJo.getString("svrIndexCode");
|
||||
@ -457,12 +475,13 @@ public class HikvisionCall {
|
||||
.eq(UfaceDev::getProjectSn, project.getProjectSn()));
|
||||
for (UfaceDev ufaceDev : ufaceDevs) {
|
||||
param.put("doorIndexCodes", Collections.singletonList(ufaceDev.getDevSn()));
|
||||
param.put("pageNo", 1);
|
||||
param.put(pageNo, 0);
|
||||
param.put("pageSize", 1000);
|
||||
Integer total = 0;
|
||||
JSONArray listJa = new JSONArray();
|
||||
do {
|
||||
String rs = null;
|
||||
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
||||
try {
|
||||
rs = getDoorEventsForHttp(project, param);
|
||||
} catch (Exception e) {
|
||||
@ -497,7 +516,14 @@ public class HikvisionCall {
|
||||
map.put("passType", 2);
|
||||
map.put("projectCode", workerInfo.getProjectSn());
|
||||
map.put("devCode", doorIndexCode);
|
||||
|
||||
Integer count = workerAttendanceMapper.selectCount(new LambdaQueryWrapper<WorkerAttendance>()
|
||||
.eq(WorkerAttendance::getCreateTime, time)
|
||||
.eq(WorkerAttendance::getPersonSn, workerInfo.getPersonSn())
|
||||
);
|
||||
if (count != 0) {
|
||||
log.info("重复的人员通行的数据不保存,idCard:{},time:{}", workerInfo.getIdCard(), time);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
HikvisionEventsPictureRq rq = new HikvisionEventsPictureRq();
|
||||
rq.setPicUri(picUri);
|
||||
@ -506,27 +532,11 @@ public class HikvisionCall {
|
||||
} catch (Exception e) {
|
||||
log.error("主动获取人脸图片失败>", e);
|
||||
}
|
||||
try {
|
||||
List<WorkerAttendance> workerAttendanceList = workerAttendanceMapper.selectList(new LambdaQueryWrapper<WorkerAttendance>()
|
||||
.eq(WorkerAttendance::getPersonSn, workerInfo.getPersonSn())
|
||||
.eq(WorkerAttendance::getCreateTime, time)
|
||||
);
|
||||
if (CollUtil.isNotEmpty(workerAttendanceList)) {
|
||||
for (WorkerAttendance workerAttendance : workerAttendanceList) {
|
||||
workerAttendance.setImageUrl(MapUtils.getString(map, "faceUrl"));
|
||||
workerAttendanceMapper.updateById(workerAttendance);
|
||||
}
|
||||
} else {
|
||||
workerAttendanceService.saveExternalPassRecord(map);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("主动保存人员失败,time:{},>", time, e);
|
||||
}
|
||||
workerAttendanceService.saveExternalPassRecord(map);
|
||||
}
|
||||
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
||||
}
|
||||
}
|
||||
} while (total > 0 && listJa.size() > 0);
|
||||
} while (total > param.getInteger(pageNo) * 1000);
|
||||
}
|
||||
try {
|
||||
workerAttendancePresenceService.addNowAllWorkerAttendancePresence(projectSn);
|
||||
@ -570,7 +580,6 @@ public class HikvisionCall {
|
||||
@Async("getCrossRecords")
|
||||
public void getCrossRecordsAsync(String startTime, String endTime, JSONObject param, List<Project> projects) {
|
||||
for (Project project : projects) {
|
||||
param.put("pageNo", 1);
|
||||
String projectParkCode = null;
|
||||
try {
|
||||
projectParkCode = getProjectParkCode(project);
|
||||
@ -584,8 +593,10 @@ public class HikvisionCall {
|
||||
param.put("parkSyscode", projectParkCode);
|
||||
Integer total = 0;
|
||||
JSONArray listJa = new JSONArray();
|
||||
param.put(pageNo, 0);
|
||||
do {
|
||||
String rs = null;
|
||||
param.put(pageNo, param.getIntValue(pageNo) + 1);
|
||||
try {
|
||||
rs = getCrossRecordsForHttp(project, param);
|
||||
} catch (Exception e) {
|
||||
@ -616,7 +627,14 @@ public class HikvisionCall {
|
||||
entity.setCarNumber(plateNo);
|
||||
entity.setType(getPassType(carCamera.getPassType()));
|
||||
entity.setPassTime(time);
|
||||
|
||||
LambdaQueryWrapper<CarPassRecord> queryWrapper = new LambdaQueryWrapper<CarPassRecord>()
|
||||
.eq(CarPassRecord::getCarNumber, plateNo)
|
||||
.eq(CarPassRecord::getPassTime, time);
|
||||
Integer count = carPassRecordMapper.selectCount(queryWrapper);
|
||||
if (count != 0) {
|
||||
log.info("重复的车辆通行的数据不保存,plateNo:{},time:{}", plateNo, time);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
//车牌
|
||||
entity.setImageUrl(saveToLocal(getHikvisionEventsPicture(new HikvisionEventsPictureRq(aswSyscode, plateNoPicUri), project.getArtemisConfigHost(), project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())));
|
||||
@ -640,22 +658,11 @@ public class HikvisionCall {
|
||||
} else {
|
||||
entity.setIsOpen(0);
|
||||
}
|
||||
Integer count1 = carPassRecordMapper.selectCount(new LambdaQueryWrapper<CarPassRecord>()
|
||||
.eq(CarPassRecord::getCarNumber, plateNo)
|
||||
.eq(CarPassRecord::getPassTime, time)
|
||||
);
|
||||
if (count1 != 0) {
|
||||
carPassRecordMapper.update(entity, new LambdaQueryWrapper<CarPassRecord>()
|
||||
.eq(CarPassRecord::getCarNumber, plateNo)
|
||||
.eq(CarPassRecord::getPassTime, time));
|
||||
} else {
|
||||
carPassRecordMapper.insert(entity);
|
||||
}
|
||||
carPassRecordMapper.insert(entity);
|
||||
}
|
||||
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
||||
}
|
||||
}
|
||||
} while (total > 0 && listJa.size() > 0);
|
||||
} while (total > param.getInteger(pageNo) * 1000);
|
||||
}
|
||||
log.info("服务挂了主动获取车辆事件的车辆通行记录执行完成,startTime:{},endTime:{}", startTime, endTime);
|
||||
}
|
||||
|
||||
@ -133,7 +133,10 @@ public class SafetyHatWSClient {
|
||||
try {
|
||||
Project project = SpringContextUtils.getBean(ProjectMapper.class).selectOne(new LambdaQueryWrapper<Project>().eq(Project::getHelmetUser, id));
|
||||
if (project != null) {
|
||||
List<SafetyHatDev> devList = SpringContextUtils.getBean(SafetyHatDevMapper.class).selectList(new LambdaQueryWrapper<SafetyHatDev>().eq(SafetyHatDev::getProjectSn, project.getProjectSn()));
|
||||
List<SafetyHatDev> devList = SpringContextUtils.getBean(SafetyHatDevMapper.class).selectList(new LambdaQueryWrapper<SafetyHatDev>()
|
||||
.eq(SafetyHatDev::getProjectSn, project.getProjectSn())
|
||||
.eq(SafetyHatDev::getOnline, 1)
|
||||
);
|
||||
if (CollUtil.isNotEmpty(devList)) {
|
||||
for (SafetyHatDev dev : devList) {
|
||||
dev.setOnline(0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user