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