ai修改
This commit is contained in:
parent
5272425cad
commit
8f20420f9e
@ -374,14 +374,14 @@ public class HikvisionCall {
|
||||
String eventType = eventDetail.getString("eventType");//422000003
|
||||
JSONObject data = eventDetail.getJSONObject("data");
|
||||
String imageUrl = data.getString("url"); //海康AI图片地址
|
||||
String deviceID = data.getString("deviceID"); //海康AI图片地址
|
||||
String srcIndex = eventDetail.getString("srcIndex"); //海康AI图片地址
|
||||
AiAnalyseHardWareRecord dev = aiAnalyseHardWareRecordMapper.selectOne(new LambdaQueryWrapper<AiAnalyseHardWareRecord>()
|
||||
.eq(AiAnalyseHardWareRecord::getHardwareId, deviceID));
|
||||
.eq(AiAnalyseHardWareRecord::getHardwareId, srcIndex));
|
||||
if (dev == null) {
|
||||
log.info("未查到AI识别告警设备,设备id:{}", deviceID);
|
||||
log.error("未查到AI识别告警设备,设备id:{}", srcIndex);
|
||||
return null;
|
||||
}
|
||||
hikvisionCall.saveEventCallbackAiAsync(dataEvent, srcName, eventType, imageUrl, deviceID, dev);
|
||||
hikvisionCall.saveEventCallbackAiAsync(dataEvent, srcName, eventType, imageUrl, srcIndex, dev);
|
||||
} else if (Objects.equals(ability, "event_ias")) {
|
||||
log.info("临边防护告警=======" + paramsJo);
|
||||
String srcName = eventDetail.getString("srcName");//srcName
|
||||
@ -445,19 +445,24 @@ public class HikvisionCall {
|
||||
return;
|
||||
}
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(dev.getProjectSn());
|
||||
AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord = new AiAnalyseHardWareAlarmRecord();
|
||||
aiAnalyseHardWareAlarmRecord.setCreateTime(createTime);
|
||||
aiAnalyseHardWareAlarmRecord.setAlarmType(Integer.valueOf(eventType));
|
||||
aiAnalyseHardWareAlarmRecord.setHardwareId(deviceID);
|
||||
aiAnalyseHardWareAlarmRecord.setHardwareName(dev.getHardwareName());
|
||||
aiAnalyseHardWareAlarmRecord.setLocation(srcName);
|
||||
aiAnalyseHardWareAlarmRecord.setProjectSn(dev.getProjectSn());
|
||||
aiAnalyseHardWareAlarmRecord.setStatus(1);
|
||||
AiAnalyseHardWareAlarmRecord record = new AiAnalyseHardWareAlarmRecord();
|
||||
record.setCreateTime(createTime);
|
||||
record.setAlarmType(Integer.valueOf(eventType));
|
||||
record.setHardwareId(deviceID);
|
||||
record.setHardwareName(dev.getHardwareName());
|
||||
record.setLocation(srcName);
|
||||
record.setAlarmDesc(record.getLocation());
|
||||
record.setProjectSn(dev.getProjectSn());
|
||||
record.setStatus(1);
|
||||
String relativePath = projectInfoBySn.getProjectName() + "/" + DateUtil.today();
|
||||
aiAnalyseHardWareAlarmRecord.setImageUrl(uploadFileService.uploadUrlReturnFileName(imageUrl, relativePath));
|
||||
aiAnalyseHardWareAlarmRecordMapper.insert(aiAnalyseHardWareAlarmRecord);
|
||||
try {
|
||||
record.setImageUrl(uploadFileService.uploadUrlReturnFileName(imageUrl, relativePath));
|
||||
} catch (Exception e) {
|
||||
log.error("ai预警图片保存失败:", e);
|
||||
}
|
||||
aiAnalyseHardWareAlarmRecordMapper.insert(record);
|
||||
//将数据通过MQTT转发到前台
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
asyncAiAnalyse.sendAiAnalyse(record, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
}
|
||||
|
||||
@Async("saveEventCallbackCarPassRecord")
|
||||
|
||||
@ -144,7 +144,7 @@ public class XzRiskPredictionController {
|
||||
resultMap.put("total", list.size());
|
||||
// 高龄人员
|
||||
long ageCount = list.stream().filter(l -> StringUtils.isNotBlank(l.getBirthday()) && DateUtil.ageOfNow(l.getBirthday()) >= 50).count();
|
||||
resultMap.put("age", new BigDecimal(ageCount).divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
resultMap.put("age", list.size() == 0 ? null : new BigDecimal(ageCount).divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
// 特殊工种人数
|
||||
WorkerType workerType = workerTypeService.getOne(Wrappers.<WorkerType>lambdaQuery()
|
||||
.eq(WorkerType::getProjectSn, projectSn)
|
||||
@ -154,7 +154,7 @@ public class XzRiskPredictionController {
|
||||
.eq(TeamInfo::getWorkerTypeId, workerType.getId()));
|
||||
if (teamInfoList.size() > 0) {
|
||||
long workerTypeCount = list.stream().filter(l -> teamInfoList.stream().map(t -> t.getId()).collect(Collectors.toList()).contains(l.getTeamId())).count();
|
||||
resultMap.put("workerType", new BigDecimal(workerTypeCount).divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
resultMap.put("workerType", list.size() == 0 ? null : new BigDecimal(workerTypeCount).divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
} else {
|
||||
resultMap.put("workerType", 0);
|
||||
}
|
||||
@ -171,7 +171,7 @@ public class XzRiskPredictionController {
|
||||
List<ExamTrainRecord> trainRecordList = examTrainRecordList.stream().filter(e -> e.getTrainId().toString().equals(record.getId().toString())).collect(Collectors.toList());
|
||||
if (trainRecordList.size() > 0) {
|
||||
int pass = trainRecordList.stream().filter(t -> t.getIsPass() == 1).collect(Collectors.toList()).size();
|
||||
record.setPassRadio(new BigDecimal(pass).divide(new BigDecimal(trainRecordList.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
record.setPassRadio(trainRecordList.size() == 0 ? null : new BigDecimal(pass).divide(new BigDecimal(trainRecordList.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
} else {
|
||||
record.setPassRadio(new BigDecimal(0));
|
||||
}
|
||||
@ -179,14 +179,14 @@ public class XzRiskPredictionController {
|
||||
}
|
||||
// 教育培训
|
||||
BigDecimal passRadio = examTrainList.stream().map(e -> e.getPassRadio()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
resultMap.put("exam", new BigDecimal(1).subtract(passRadio.divide(new BigDecimal(examTrainList.size()), 2, BigDecimal.ROUND_HALF_UP)));
|
||||
resultMap.put("exam", examTrainList.size() == 0 ? null : new BigDecimal(1).subtract(passRadio.divide(new BigDecimal(examTrainList.size()), 2, BigDecimal.ROUND_HALF_UP)));
|
||||
} else {
|
||||
resultMap.put("exam", 0);
|
||||
}
|
||||
// 安全评分
|
||||
Double safeScore = list.stream().mapToDouble(e -> e.getSafeScore()).sum();
|
||||
BigDecimal subtract = new BigDecimal(1).subtract(new BigDecimal(safeScore).divide(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
resultMap.put("safe", subtract.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
BigDecimal subtract = list.size() == 0 ? null : new BigDecimal(1).subtract(new BigDecimal(safeScore).divide(new BigDecimal(100)).divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP));
|
||||
resultMap.put("safe", subtract == null ? null : subtract.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
// 安全检查隐患
|
||||
List<XzSecurityQualityInspectionRecord> xzSecurityQualityInspectionRecords = xzSecurityQualityInspectionRecordService.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery()
|
||||
.eq(XzSecurityQualityInspectionRecord::getRecordType, 1)
|
||||
@ -199,13 +199,8 @@ public class XzRiskPredictionController {
|
||||
resultMap.put("security", 0);
|
||||
}
|
||||
// 计算面积
|
||||
BigDecimal age = new BigDecimal(resultMap.get("age").toString());
|
||||
BigDecimal exam = new BigDecimal(resultMap.get("exam").toString());
|
||||
BigDecimal safe = new BigDecimal(resultMap.get("age").toString());
|
||||
BigDecimal workerType1 = new BigDecimal(resultMap.get("age").toString());
|
||||
BigDecimal security = new BigDecimal(resultMap.get("age").toString());
|
||||
resultMap.put("area", NumberUtils.percent(PolygonUtil.calRadioArea(1.0, 6, Double.valueOf(1), age.doubleValue(),
|
||||
exam.doubleValue(), safe.doubleValue(), workerType1.doubleValue(), security.doubleValue()), 2));
|
||||
resultMap.put("area", NumberUtils.percent(PolygonUtil.calRadioArea(1.0, 6, Double.valueOf(1), MapUtils.getDouble(resultMap, "age"),
|
||||
MapUtils.getDouble(resultMap, "exam"), MapUtils.getDouble(resultMap, "safe"), MapUtils.getDouble(resultMap, "age"), MapUtils.getDouble(resultMap, "security")), 2));
|
||||
return Result.success(resultMap);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user