|
|
|
@ -731,71 +731,93 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { |
|
|
|
return resMap; |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, PatrolResult> selectObj2PatrolResultMap(String filter, String patrolTaskId, String deviceId) { |
|
|
|
log.info("OBJ_TO_PATROL_RESULT_S taskPatrolId: {}, filter: {}, deviceId: {}", patrolTaskId, filter, deviceId); |
|
|
|
List<PatrolTaskResultMain> resultMainList = |
|
|
|
patrolTaskResultMainService.selectPatrolTaskResultMainList(new PatrolTaskResultMain(patrolTaskId)); |
|
|
|
assert resultMainList != null; |
|
|
|
assert !resultMainList.isEmpty(); |
|
|
|
PatrolTaskResultMain resultMain = resultMainList.get(0); |
|
|
|
PatrolResult patrolResult = new PatrolResult(); |
|
|
|
patrolResult.setMainId(String.valueOf(resultMain.getLineId())); |
|
|
|
patrolResult.setDeviceId(deviceId); |
|
|
|
List<PatrolResult> patrolResultList = |
|
|
|
patrolResultService.selectPatrolResultList(patrolResult); |
|
|
|
Map<String, PatrolResult> resultMap = new HashMap<>(); |
|
|
|
patrolResultList.forEach((item) -> resultMap.put(item.getDeviceId(), item)); |
|
|
|
log.info("OBJ_TO_PATROL_RESULT_E taskPatrolId: {}, deviceId: {}, resultMap: {}", patrolTaskId, deviceId, resultMap); |
|
|
|
return resultMap; |
|
|
|
} |
|
|
|
|
|
|
|
public void repositAnalyseAlgorithmResult(AnalyseResult analyseResult) { |
|
|
|
List<WebsocketData> websocketDataList = new ArrayList<>(); |
|
|
|
Map<String, PatrolResult> resMap = selectObj2PatrolResultMap(analyseResult.getTaskPatrolId()); |
|
|
|
//Map<String, PatrolResult> resultMap = selectObj2PatrolResultMap(analyseResult.getTaskPatrolId()); |
|
|
|
List<AnalyseResItem> resultList = analyseResult.getResultList(); |
|
|
|
|
|
|
|
PatrolResult patrolResult; |
|
|
|
for (Iterator<AnalyseResItem> iterator = resultList.iterator(); |
|
|
|
iterator.hasNext(); |
|
|
|
patrolResultService.updatePatrolResult(patrolResult)) { |
|
|
|
PatrolResult patrolResult = new PatrolResult(); |
|
|
|
for (Iterator<AnalyseResItem> iterator = resultList.iterator(); iterator.hasNext(); patrolResultService.updatePatrolResult(patrolResult)) { |
|
|
|
AnalyseResItem resItem = iterator.next(); |
|
|
|
patrolResult = resMap.get(resItem.getObjectId()); |
|
|
|
List<ResultAnalysis> resultAnalysisList = new ArrayList<>(); |
|
|
|
StringJoiner valueJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
|
StringJoiner validJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
|
for (AnalyseResPoint analyseResPoint : resItem.getResults()) { |
|
|
|
ResultAnalysis resultAnalysis = combineAnalyse(analyseResult, |
|
|
|
String.valueOf(resMap.get(resItem.getObjectId()).getLineId()), |
|
|
|
resItem.getObjectId(), |
|
|
|
patrolResult.getFilePath(), |
|
|
|
analyseResPoint); |
|
|
|
resultAnalysisList.add(resultAnalysis); |
|
|
|
valueJoiner.add(resultAnalysis.getResValue()); |
|
|
|
String pointStatus = resultAnalysis.getPointStatus(); |
|
|
|
String resultType = resultAnalysis.getResultType(); |
|
|
|
String resStatus = resultAnalysis.getResStatus(); |
|
|
|
// resultType:0-告警 1-正常 2-异常 |
|
|
|
if ("0".equals(resultType)) { |
|
|
|
// 判别异常 |
|
|
|
validJoiner.add("2"); |
|
|
|
} else if ("1".equals(resultType)) { |
|
|
|
// 成功 |
|
|
|
validJoiner.add("1"); |
|
|
|
} else if ("2".equals(resultType)) { |
|
|
|
// 失败 |
|
|
|
validJoiner.add("0"); |
|
|
|
} |
|
|
|
log.info(Color.GREEN + "[analysis] createTime: {}, insertResultAnalysis: {}" + Color.END, resultAnalysis.getCreateTime(), resultAnalysis); |
|
|
|
try { |
|
|
|
resultAnalysisService.insertResultAnalysis(resultAnalysis); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("error", e); |
|
|
|
Map<String, PatrolResult> resultMap = |
|
|
|
selectObj2PatrolResultMap(analyseResult.getFilter(), analyseResult.getTaskPatrolId(), resItem.getObjectId()); |
|
|
|
if (!resultMap.isEmpty()) { |
|
|
|
patrolResult = resultMap.get(resItem.getObjectId()); |
|
|
|
List<ResultAnalysis> resultAnalysisList = new ArrayList<>(); |
|
|
|
StringJoiner valueJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
|
StringJoiner validJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
|
for (AnalyseResPoint analyseResPoint : resItem.getResults()) { |
|
|
|
ResultAnalysis resultAnalysis = combineAnalyse(analyseResult, |
|
|
|
String.valueOf(patrolResult.getLineId()), |
|
|
|
resItem.getObjectId(), |
|
|
|
patrolResult.getFilePath(), |
|
|
|
analyseResPoint); |
|
|
|
resultAnalysisList.add(resultAnalysis); |
|
|
|
valueJoiner.add(resultAnalysis.getResValue()); |
|
|
|
String pointStatus = resultAnalysis.getPointStatus(); |
|
|
|
String resultType = resultAnalysis.getResultType(); |
|
|
|
String resStatus = resultAnalysis.getResStatus(); |
|
|
|
// resultType:0-告警 1-正常 2-异常 |
|
|
|
if ("0".equals(resultType)) { |
|
|
|
// 判别异常 |
|
|
|
validJoiner.add("2"); |
|
|
|
} else if ("1".equals(resultType)) { |
|
|
|
// 成功 |
|
|
|
validJoiner.add("1"); |
|
|
|
} else if ("2".equals(resultType)) { |
|
|
|
// 失败 |
|
|
|
validJoiner.add("0"); |
|
|
|
} |
|
|
|
log.info(Color.GREEN + "[analysis] createTime: {}, insertResultAnalysis: {}" + Color.END, resultAnalysis.getCreateTime(), resultAnalysis); |
|
|
|
try { |
|
|
|
resultAnalysisService.insertResultAnalysis(resultAnalysis); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("error", e); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
patrolResult.setValue(valueJoiner.toString()); |
|
|
|
patrolResult.setValid(validJoiner.toString()); |
|
|
|
List<SysDictData> algAliasList = DictUtils.getDictCache(Tags.DEFECT_TYPE); |
|
|
|
JSONObject algAliasMap = new JSONObject(); |
|
|
|
Objects.requireNonNull(algAliasList).stream().filter((item) -> { |
|
|
|
return !StringUtils.isEmpty(item.getRemark()); |
|
|
|
}).forEach((item) -> { |
|
|
|
algAliasMap.put(item.getDictValue(), item.getRemark()); |
|
|
|
}); |
|
|
|
String algType = resultAnalysisList.stream().map((item) -> { |
|
|
|
return algAliasMap.containsKey(item.getAlgType()) ? algAliasMap.getString(item.getAlgType()) : item.getAlgType(); |
|
|
|
}).collect(Collectors.joining(StringUtils.COMMA)); |
|
|
|
patrolResult.setRecognitionType(algType); |
|
|
|
long alarmCount = resultAnalysisList.stream().filter((item) -> { |
|
|
|
return "1".equals(item.getResultType()); |
|
|
|
}).count(); |
|
|
|
if (alarmCount > 0L) { |
|
|
|
patrolResult.setValueUnit(messageUtils.get("有缺陷")); |
|
|
|
websocketDataList.add(new WebsocketData(resItem.getObjectId(), patrolResult.getValueUnit())); |
|
|
|
patrolResult.setValue(valueJoiner.toString()); |
|
|
|
patrolResult.setValid(validJoiner.toString()); |
|
|
|
List<SysDictData> algAliasList = DictUtils.getDictCache(Tags.DEFECT_TYPE); |
|
|
|
JSONObject algAliasMap = new JSONObject(); |
|
|
|
Objects.requireNonNull(algAliasList).stream().filter((item) -> { |
|
|
|
return !StringUtils.isEmpty(item.getRemark()); |
|
|
|
}).forEach((item) -> { |
|
|
|
algAliasMap.put(item.getDictValue(), item.getRemark()); |
|
|
|
}); |
|
|
|
String algType = resultAnalysisList.stream().map((item) -> { |
|
|
|
return algAliasMap.containsKey(item.getAlgType()) ? algAliasMap.getString(item.getAlgType()) : item.getAlgType(); |
|
|
|
}).collect(Collectors.joining(StringUtils.COMMA)); |
|
|
|
patrolResult.setRecognitionType(algType); |
|
|
|
long alarmCount = resultAnalysisList.stream().filter((item) -> { |
|
|
|
return "1".equals(item.getResultType()); |
|
|
|
}).count(); |
|
|
|
if (alarmCount > 0L) { |
|
|
|
patrolResult.setValueUnit(messageUtils.get("有缺陷")); |
|
|
|
websocketDataList.add(new WebsocketData(resItem.getObjectId(), patrolResult.getValueUnit())); |
|
|
|
} else { |
|
|
|
patrolResult.setValueUnit(messageUtils.get("无缺陷")); |
|
|
|
} |
|
|
|
} else { |
|
|
|
patrolResult.setValueUnit(messageUtils.get("无缺陷")); |
|
|
|
log.info("OBJ_TO_PATROL_RESULT_ERROR taskPatrolId: {}, filter: {}, deviceId: {}", analyseResult.getTaskPatrolId(), analyseResult.getFilter(), resItem.getObjectId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -868,7 +890,7 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { |
|
|
|
patrolTaskStatus.setTaskEstimatedTime(algorithmProgress); |
|
|
|
if ("100.0".equals(algorithmProgress)) { |
|
|
|
patrolTaskStatus.setEndTime(DateUtil.formatDateTime(new Date())); |
|
|
|
log.info(Color.GREEN + "DONE CALC_REMOTE_ALGORITHM_PROGRESS: taskPatrolledId: {}, objectId: {}, curNumber: {}, totalNumer: {}, algorithmProgress: {}, db-taskProgress: {}" + Color.END, |
|
|
|
log.info(Color.GREEN + "DONE CALC_REMOTE_ALGORITHM_PROGRESS taskPatrolledId: {}, objectId: {}, curNumber: {}, totalNumer: {}, algorithmProgress: {}, db-taskProgress: {}" + Color.END, |
|
|
|
taskPatrolledId, |
|
|
|
objectId, |
|
|
|
resultAnalysisList.size(), |
|
|
|
|