diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java index fd0ed07..20146fc 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java @@ -171,6 +171,7 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { || AlgConstants.INFRARED2.equals(algType) || "isolator".equals(algType) || "gis_meter".equals(algType) + || "correction".equals(algType) ) ) { /* diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java index 393f824..11bb180 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java @@ -1,5 +1,7 @@ package com.inspect.analysis.utils; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import com.inspect.analysis.constant.AnalyseConstants; import com.inspect.analysis.domain.AlgValue; import com.inspect.analysis.domain.ResultAnalysis; @@ -11,7 +13,9 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Slf4j @Component @@ -112,7 +116,7 @@ public class ResultAnalysisUtils { resultAnalysis.setResultType("1"); } else if (algType.equals("meter") || algType.equals("gis_meter")) { log.info("------------------parseAlg : meter|gis_meter value: {}", value); - if("open".equalsIgnoreCase(value) + if ("open".equalsIgnoreCase(value) || "closed".equalsIgnoreCase(value) || "Off".equalsIgnoreCase(value) || "On".equalsIgnoreCase(value)) { resultAnalysis.setResStatus("0"); resultAnalysis.setPointStatus("1"); @@ -121,7 +125,7 @@ public class ResultAnalysisUtils { } else { if (!algValue.isAlarm(value)) { log.info("PARSE_ALG_METER_NO_ALARM value: {}, defaultDesc: {}", value, defaultDesc); - if(StringUtils.isNotEmpty(defaultDesc) && defaultDesc.contains("失败")) { + if (StringUtils.isNotEmpty(defaultDesc) && defaultDesc.contains("失败")) { resultAnalysis.setResStatus("0"); resultAnalysis.setPointStatus("0"); resultAnalysis.setResultType("2"); @@ -135,7 +139,7 @@ public class ResultAnalysisUtils { } else { log.info("PARSE_ALG_METER_ALARM value: {}", value); String[] valueArr = value.split(StringUtils.COMMA); - if(valueArr.length > 1) { + if (valueArr.length > 1) { log.info("PARSE_ALG_METER_ALARM_VALUE_COMPOSITE value: {}", value); resultAnalysis.setResStatus("0"); resultAnalysis.setPointStatus("1"); @@ -144,7 +148,7 @@ public class ResultAnalysisUtils { defaultDesc = messageUtils.get("正常"); } else { log.info("PARSE_ALG_METER_ALARM_VALUE_SINGLE value: {}", value); - if(value.contains("分OFF") || value.contains("分") || value.contains("合")) { + if (value.contains("分OFF") || value.contains("分") || value.contains("合")) { resultAnalysis.setResStatus("0"); resultAnalysis.setPointStatus("1"); // resultAnalysis.setResultType("0"); @@ -249,6 +253,39 @@ public class ResultAnalysisUtils { resultAnalysis.setResStatus("0"); defaultDesc = "未检测到刀闸"; } + } else if (algType.equals("correction")) { + log.info("parseAlg algType correction"); + if("2001".equals(resultAnalysis.getResCode())) { + ObjectMapper mapper = new ObjectMapper(); + List> list; + try { + list = mapper.readValue(value, new TypeReference>>() { + }); + log.info("parseAlg algType correction value: {}", list); + } catch (Exception e) { + log.info("parseAlg algType correction value exception"); + list = new ArrayList<>(); + } + + if(list.size() == 2 && list.get(0).size() == 2 && list.get(1).size() == 2) { + resultAnalysis.setPointStatus("0"); + resultAnalysis.setResultType("0"); + resultAnalysis.setResStatus("3"); + defaultDesc = "请进行纠偏"; + } else { + log.info("parseAlg algType correction value abnormal"); + resultAnalysis.setPointStatus("0"); + resultAnalysis.setResultType("0"); + resultAnalysis.setResStatus("0"); + defaultDesc = "纠偏结果异常"; + } + } else { + resultAnalysis.setPointStatus("1"); + resultAnalysis.setResultType("1"); + resultAnalysis.setResStatus("2"); + defaultDesc = messageUtils.get("正常"); + resultAnalysis.setResDesc(defaultDesc); + } } else { log.info("parseAlg algType: {}", algType); if (value.equals("0")) {