Browse Source

/*算法结果解析改成调用analysis接口;*/

master
htjcAdmin 8 months ago
parent
commit
bc2a948fb7
2 changed files with 323 additions and 200 deletions
  1. +286
    -176
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java
  2. +37
    -24
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java

+ 286
- 176
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java View File

@ -76,15 +76,15 @@ public class ResultAnalysis extends BaseEntity {
}
public boolean checkCode(String code, String desc) {
if(AnalyseConstants.ANALYSE_OK.equals(code)) {
if (AnalyseConstants.ANALYSE_OK.equals(code)) {
return true;
}
if(AnalyseConstants.ANALYSE_FAIL_NO_FILE.equals(code)
if (AnalyseConstants.ANALYSE_FAIL_NO_FILE.equals(code)
|| AnalyseConstants.ANALYSE_FAIL_FILE_EXCEPT.equals(code)
|| AnalyseConstants.ANALYSE_FAIL_FILE_INCOMPATIBLE.equals(code)) {
setDescription(desc);
} else if(AnalyseConstants.ANALYSE_FAIL_ALG_EXCEPT.equals(code)) {
} else if (AnalyseConstants.ANALYSE_FAIL_ALG_EXCEPT.equals(code)) {
setDescription("算法内部异常");
} else {
setDescription("未知错误");
@ -102,7 +102,7 @@ public class ResultAnalysis extends BaseEntity {
ResultAnalysis resultAnalysis = new ResultAnalysis();
resultAnalysis.setBusinessId(businessId);
resultAnalysis.setResultContent("{\"requestId\": \"123\", \"resultList\": [{\"objectId\": \"" + deviceId + "\", \"results\": [{\"type\": \"infrared\", \"value\": \"0\", \"code\": \"2000\", \"resImageUrl\": \"\", \"pos\": [], \"conf\": 0.8, \"desc\": \"\"}]}]}");
if(StringUtils.isNotEmpty(deviceId)) {
if (StringUtils.isNotEmpty(deviceId)) {
resultAnalysis.setObjectId(deviceId);
}
@ -114,193 +114,303 @@ public class ResultAnalysis extends BaseEntity {
return resultAnalysis;
}
// public void parseAlg(String algType, AlgValue algValue, String value, String defaultDesc) {
// if(value == null) {
// value = "";
// }
//
// value = algValue.formatValue(value);
// if("1".equals(this.filter)) {
// algType = "";
// }
//
// byte var6 = -1;
// switch(value.hashCode()) {
// case 0:
// if(value.isEmpty()) {
// var6 = 0;
// }
// break;
// case 1444:
// if(value.equals("-1")) {
// var6 = 1;
// }
// }
//
// switch(var6) {
// case 0:
// case 1:
// this.setPointStatus("0");
// this.setResultType("2");
// this.setResStatus("0");
// if("meter".equals(algType)) {
// defaultDesc = "与样本有差异";
// } else {
// defaultDesc = "算法内部异常";
// }
//
// this.setDescription(defaultDesc);
// this.setCreateTime(new Date());
// return;
// default:
// var6 = -1;
// switch(algType.hashCode()) {
// case -951532658:
// if(algType.equals("qrcode")) {
// var6 = 2;
// }
// break;
// case -889473228:
// if(algType.equals("switch")) {
// var6 = 1;
// }
// break;
// case 102970646:
// if(algType.equals("light")) {
// var6 = 3;
// }
// break;
// case 103787401:
// if(algType.equals("meter")) {
// var6 = 4;
// }
// break;
// case 109627663:
// if(algType.equals("sound")) {
// var6 = 6;
// }
// break;
// case 181105857:
// if(algType.equals("infrared")) {
// var6 = 5;
// }
// break;
// case 575780445:
// if(algType.equals("isolator")) {
// var6 = 0;
// }
// }
//
// byte var8;
// label83:
// switch(var6) {
// case 0:
// var8 = -1;
// switch(value.hashCode()) {
// case 51:
// if(value.equals("3")) {
// var8 = 0;
// }
// break;
// case 52:
// if(value.equals("4")) {
// var8 = 1;
// }
// }
//
// switch(var8) {
// case 0:
// case 1:
// this.setPointStatus("1");
// this.setResultType("1");
// this.setResStatus("0");
// break label83;
// default:
// this.setPointStatus("0");
// this.setResultType("2");
// this.setResStatus("0");
// break label83;
// }
// case 1:
// case 2:
// case 3:
// this.setResStatus("1");
// this.setPointStatus("1");
// this.setResultType("1");
// break;
// case 4:
// if(!algValue.isAlarm(value)) {
// this.setResStatus("0");
// this.setPointStatus("1");
// this.setResultType("1");
// defaultDesc = "正常";
// } else {
// this.setResStatus("0");
// this.setPointStatus("0");
// this.setResultType("0");
// defaultDesc = "表计超限";
// }
// break;
// case 5:
// if(algValue.isAlarm(value)) {
// this.setResStatus("1");
// this.setPointStatus("1");
// this.setResultType("1");
// defaultDesc = "正常";
// } else {
// this.setResStatus("0");
// this.setPointStatus("2");
// this.setResultType("0");
// defaultDesc = "温度告警";
// }
// break;
// case 6:
// if(value.equals("1")) {
// this.setResStatus("1");
// this.setPointStatus("1");
// this.setResultType("1");
// defaultDesc = "正常";
// } else {
// this.setResStatus("0");
// this.setPointStatus("0");
// this.setResultType("0");
// defaultDesc = "异常";
// }
// break;
// default:
// var8 = -1;
// switch(value.hashCode()) {
// case 48:
// if(value.equals("0")) {
// var8 = 0;
// }
// break;
// case 49:
// if(value.equals("1")) {
// var8 = 1;
// }
// }
//
// switch(var8) {
// case 0:
// this.setPointStatus("1");
// this.setResultType("1");
// this.setResStatus("2");
// defaultDesc = "正常";
// this.setResDesc(defaultDesc);
// this.setSuggestion("系统审核");
// break;
// case 1:
// this.setPointStatus("0");
// this.setResultType("0");
// this.setResStatus("0");
// }
// }
//
// this.setDescription(defaultDesc);
// this.setCreateTime(new Date());
// }
// }
public void parseAlg(String algType, AlgValue algValue, String value, String defaultDesc) {
if(value == null) {
log.warn("parseAlg algType: {}, algValue: {}, value: {}, defaultDesc: {}", algType, algValue, value, defaultDesc);
if (value == null) {
value = "";
}
value = algValue.formatValue(value);
if("1".equals(this.filter)) {
if ("1".equals(this.filter)) {
algType = "";
}
byte var6 = -1;
switch(value.hashCode()) {
case 0:
if(value.isEmpty()) {
var6 = 0;
}
break;
case 1444:
if(value.equals("-1")) {
var6 = 1;
}
if(StringUtils.isNull(algType)) {
log.warn("parseAlg algType is null!");
return;
}
switch(var6) {
case 0:
case 1:
if (value.isEmpty() || value.equals("-1")) {
this.setPointStatus("0");
this.setResultType("2");
this.setResStatus("0");
if ("meter".equals(algType)) {
defaultDesc = "与样本有差异";
} else {
defaultDesc = "算法内部异常";
}
this.setDescription(defaultDesc);
this.setCreateTime(new Date());
return;
}
if (algType.equals("qrcode")) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
} else if (algType.equals("switch")) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
} else if (algType.equals("light")) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
} else if (algType.equals("meter")) {
if (!algValue.isAlarm(value)) {
this.setResStatus("0");
this.setPointStatus("1");
this.setResultType("1");
defaultDesc = "正常";
} else {
this.setResStatus("0");
this.setPointStatus("0");
this.setResultType("0");
defaultDesc = "表计超限";
}
} else if (algType.equals("sound")) {
if (value.equals("1")) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
defaultDesc = "正常";
} else {
this.setResStatus("0");
this.setPointStatus("0");
this.setResultType("0");
defaultDesc = "异常";
}
} else if (algType.equals("infrared")) {
if (algValue.isAlarm(value)) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
defaultDesc = "正常";
} else {
this.setResStatus("0");
this.setPointStatus("2");
this.setResultType("0");
defaultDesc = "温度告警";
}
} else if (algType.equals("isolator")) {
if (value.equals("3")) {
this.setPointStatus("1");
this.setResultType("1");
this.setResStatus("0");
} else if (value.equals("4")) {
this.setPointStatus("1");
this.setResultType("1");
this.setResStatus("0");
} else {
this.setPointStatus("0");
this.setResultType("2");
this.setResStatus("0");
if("meter".equals(algType)) {
defaultDesc = "与样本有差异";
} else {
defaultDesc = "算法内部异常";
}
this.setDescription(defaultDesc);
this.setCreateTime(new Date());
return;
default:
var6 = -1;
switch(algType.hashCode()) {
case -951532658:
if(algType.equals("qrcode")) {
var6 = 2;
}
break;
case -889473228:
if(algType.equals("switch")) {
var6 = 1;
}
break;
case 102970646:
if(algType.equals("light")) {
var6 = 3;
}
break;
case 103787401:
if(algType.equals("meter")) {
var6 = 4;
}
break;
case 109627663:
if(algType.equals("sound")) {
var6 = 6;
}
break;
case 181105857:
if(algType.equals("infrared")) {
var6 = 5;
}
break;
case 575780445:
if(algType.equals("isolator")) {
var6 = 0;
}
}
byte var8;
label83:
switch(var6) {
case 0:
var8 = -1;
switch(value.hashCode()) {
case 51:
if(value.equals("3")) {
var8 = 0;
}
break;
case 52:
if(value.equals("4")) {
var8 = 1;
}
}
switch(var8) {
case 0:
case 1:
this.setPointStatus("1");
this.setResultType("1");
this.setResStatus("0");
break label83;
default:
this.setPointStatus("0");
this.setResultType("2");
this.setResStatus("0");
break label83;
}
case 1:
case 2:
case 3:
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
break;
case 4:
if(!algValue.isAlarm(value)) {
this.setResStatus("0");
this.setPointStatus("1");
this.setResultType("1");
defaultDesc = "正常";
} else {
this.setResStatus("0");
this.setPointStatus("0");
this.setResultType("0");
defaultDesc = "表计超限";
}
break;
case 5:
if(algValue.isAlarm(value)) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
defaultDesc = "正常";
} else {
this.setResStatus("0");
this.setPointStatus("2");
this.setResultType("0");
defaultDesc = "温度告警";
}
break;
case 6:
if(value.equals("1")) {
this.setResStatus("1");
this.setPointStatus("1");
this.setResultType("1");
defaultDesc = "正常";
} else {
this.setResStatus("0");
this.setPointStatus("0");
this.setResultType("0");
defaultDesc = "异常";
}
break;
default:
var8 = -1;
switch(value.hashCode()) {
case 48:
if(value.equals("0")) {
var8 = 0;
}
break;
case 49:
if(value.equals("1")) {
var8 = 1;
}
}
switch(var8) {
case 0:
this.setPointStatus("1");
this.setResultType("1");
this.setResStatus("2");
defaultDesc = "正常";
this.setResDesc(defaultDesc);
this.setSuggestion("系统审核");
break;
case 1:
this.setPointStatus("0");
this.setResultType("0");
this.setResStatus("0");
}
}
this.setDescription(defaultDesc);
this.setCreateTime(new Date());
}
} else {
if (value.equals("0")) {
this.setPointStatus("1");
this.setResultType("1");
this.setResStatus("2");
defaultDesc = "正常";
this.setResDesc(defaultDesc);
this.setSuggestion("系统审核");
} else if (value.equals("1")) {
this.setPointStatus("0");
this.setResultType("0");
this.setResStatus("0");
}
}
this.setDescription(defaultDesc);
this.setCreateTime(new Date());
}
@Override


+ 37
- 24
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java View File

@ -119,8 +119,12 @@ public class AnalysisServiceImpl implements IAnalysisService {
//qinyl
analysisLogService.log(new AnalyseLog(analyseResult.toString(), "1", analyseResult.getTaskPatrolId(), analyseResult.getFilter(), requestId));
//analysis(analyseResult);
doAlgorithmAnalysis(analyseResult);
try {
analysis(analyseResult);
} catch (Exception e) {
e.printStackTrace();
}
//doAlgorithmAnalysis(analyseResult);
//calculateProcess(analyseResult);
log.info(Color.CYAN + "###### 分析算法模块返回的表计识别结果 end ######" + Color.END);
@ -628,21 +632,24 @@ public class AnalysisServiceImpl implements IAnalysisService {
List<AnalyseResItem> resultList = analyseResult.getResultList();
PatrolResult patrolResult;
for (Iterator<AnalyseResItem> iterator = resultList.iterator(); iterator.hasNext(); patrolResultService.updatePatrolResult(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);
for (AnalyseResPoint resPoint : resItem.getResults()) {
for (AnalyseResPoint analyseResPoint : resItem.getResults()) {
ResultAnalysis resultAnalysis =
combineAnalyse(analyseResult,
String.valueOf(resMap.get(resItem.getObjectId()).getLineId()),
resItem.getObjectId(),
patrolResult.getFilePath(),
resPoint);
analyseResPoint);
resultAnalysisList.add(resultAnalysis);
valueJoiner.add(resultAnalysis.getResValue());
log.info(Color.MAGENTA + "[analysis] insertResultAnalysis: {}" + Color.END, resultAnalysis);
resultAnalysisService.insertResultAnalysis(resultAnalysis);
}
@ -672,35 +679,40 @@ public class AnalysisServiceImpl implements IAnalysisService {
//this.senWebsocket(websocketDataList);
}
private ResultAnalysis combineAnalyse(AnalyseResult analyseResult, String patrolResultId, String objectId, String filePath, AnalyseResPoint resPoint) {
private ResultAnalysis combineAnalyse(
AnalyseResult analyseResult,
String patrolResultId,
String objectId,
String filePath,
AnalyseResPoint analyseResPoint) {
ResultAnalysis resultAnalysis = new ResultAnalysis();
resultAnalysis.setTaskPatrolId(analyseResult.getTaskPatrolId());
resultAnalysis.setRequestId(analyseResult.getRequestId());
resultAnalysis.setBusinessId(patrolResultId);
resultAnalysis.setResultContent(resPoint.toString());
resultAnalysis.setResultContent(analyseResPoint.toString());
resultAnalysis.setObjectId(objectId);
resultAnalysis.setAlgType(resPoint.getType());
resultAnalysis.setResValue(resPoint.getValue());
resultAnalysis.setResCode(resPoint.getCode());
resultAnalysis.setResConf(resPoint.getConf());
resultAnalysis.setResDesc(resPoint.getDesc());
resultAnalysis.setAlgType(analyseResPoint.getType());
resultAnalysis.setResValue(analyseResPoint.getValue());
resultAnalysis.setResCode(analyseResPoint.getCode());
resultAnalysis.setResConf(analyseResPoint.getConf());
resultAnalysis.setResDesc(analyseResPoint.getDesc());
resultAnalysis.setResult(analyseResult.getResult());
if (StringUtils.isEmpty(resPoint.getResImageUrl())) {
resPoint.setResImageUrl(filePath);
if (StringUtils.isEmpty(analyseResPoint.getResImageUrl())) {
analyseResPoint.setResImageUrl(filePath);
}
if (StringUtils.isEmpty(resPoint.getImageNormalUrlPath())) {
resPoint.setImageNormalUrlPath(resPoint.getImageNormalUrlPath());
if (StringUtils.isEmpty(analyseResPoint.getImageNormalUrlPath())) {
analyseResPoint.setImageNormalUrlPath(analyseResPoint.getImageNormalUrlPath());
}
resultAnalysis.setResImgUrl(resPoint.getResImageUrl());
resultAnalysis.setImageNormalUrlPath(resPoint.getImageNormalUrlPath());
resultAnalysis.setResPos(resPoint.getPos() == null ? StringUtils.EMPTY : JSONObject.toJSONString(resPoint.getPos()));
String value = resPoint.getValue();
resultAnalysis.setResImgUrl(analyseResPoint.getResImageUrl());
resultAnalysis.setImageNormalUrlPath(analyseResPoint.getImageNormalUrlPath());
resultAnalysis.setResPos(analyseResPoint.getPos() == null ? StringUtils.EMPTY : JSONObject.toJSONString(analyseResPoint.getPos()));
String value = analyseResPoint.getValue();
resultAnalysis.setFilter(analyseResult.getFilter());
if (resultAnalysis.checkCode(resPoint.getCode(), resPoint.getDesc())) {
AlgValue algValue = selectAlgMap(objectId, resPoint.getType());
resultAnalysis.parseAlg(resPoint.getType(), algValue, value, resPoint.getDesc());
if (resultAnalysis.checkCode(analyseResPoint.getCode(), analyseResPoint.getDesc())) {
AlgValue algValue = selectAlgMap(objectId, analyseResPoint.getType());
resultAnalysis.parseAlg(analyseResPoint.getType(), algValue, value, analyseResPoint.getDesc());
}
return resultAnalysis;
@ -713,7 +725,8 @@ public class AnalysisServiceImpl implements IAnalysisService {
JSONArray thresholdList = JSONArray.parseArray(alarmThreshold);
for (int i = 0; i < thresholdList.size(); ++i) {
JSONObject threshold = thresholdList.getJSONObject(i);
if (type.equals(threshold.getString(AnalyseConstants.ANALYSE_CODE))) {
log.info("selectAlgMap type: {}, threshold: {}", type, threshold);
if (StringUtils.isNotEmpty(type) && type.equals(threshold.getString(AnalyseConstants.ANALYSE_CODE))) {
return new AlgValue(threshold.getString(AnalyseConstants.ANALYSE_UPPER_VALUE), threshold.getString(AnalyseConstants.ANALYSE_LOWER_VALUE));
}
}


Loading…
Cancel
Save