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 943a89d..dfdefd8 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 @@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import com.inspect.analysis.constant.AnalyseConstants; import com.inspect.analysis.domain.*; import com.inspect.analysis.service.IAnalyseLogService; @@ -101,6 +103,20 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { requestId, analyseResult); +// { +// String value = analyseResult.getResultList().get(0).getResults().get(0).getValue(); +// log.info("testing value: {}", value); +// ObjectMapper mapper = new ObjectMapper(); +// List> list; +// try { +// list = mapper.readValue(value, new TypeReference>>() { +// }); +// log.info("testing size: {}, list: {}", list.size(), list); +// } catch (Exception e) { +// log.info("testing list exception: {}", e.getMessage()); +// } +// } + String keyId = AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId); if (!redisService.hasKey(keyId)) { log.error("ALGO_RES_UUID: {}, picAnalyseRetNotify isTest: {}, NO keyId={}, REQUEST_ID={} in REDIS!", requestId, analyseResult.isTest(), keyId, requestId); 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 81db404..46a193e 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 @@ -74,6 +74,7 @@ public class ResultAnalysisUtils { value = ""; } + final String correctionValue = value; value = algValue.formatValue(value); // 这个不知道为什么加上 if ("1".equals(resultAnalysis.getFilter())) { @@ -254,16 +255,17 @@ public class ResultAnalysisUtils { defaultDesc = "未检测到刀闸"; } } else if (algType.equals("correction")) { - log.info("parseAlg algType correction resCode: {}", resultAnalysis.getResCode()); - if("2000".equals(resultAnalysis.getResCode()) || "2001".equals(resultAnalysis.getResCode())) { + log.info("parseAlg algType correction 2000 resCode: {}, correctionValue: {}", resultAnalysis.getResCode(), correctionValue); + if("2000".equals(resultAnalysis.getResCode())) { ObjectMapper mapper = new ObjectMapper(); List> list; try { - list = mapper.readValue(value, new TypeReference>>() { + log.info("parseAlg algType correction 2000 correctionValue: {}", correctionValue); + list = mapper.readValue(correctionValue, new TypeReference>>() { }); - log.info("parseAlg algType correction value: {}", list); + log.info("parseAlg algType correction 2000 correctionValue: {}", list); } catch (Exception e) { - log.info("parseAlg algType correction value exception"); + log.error("parseAlg algType correction 2000 correctionValue exception", e); list = new ArrayList<>(); } @@ -277,26 +279,69 @@ public class ResultAnalysisUtils { Math.abs(value1) < EPSILON && Math.abs(value2) < EPSILON && Math.abs(value3) < EPSILON) { - log.info("correction no need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); + log.info("2000 correction no need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); resultAnalysis.setPointStatus("1"); resultAnalysis.setResultType("1"); resultAnalysis.setResStatus("2"); defaultDesc = messageUtils.get("正常"); resultAnalysis.setResDesc(defaultDesc); } else { - log.info("correction need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); - resultAnalysis.setPointStatus("0"); - resultAnalysis.setResultType("0"); + log.info("2000 correction need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); + resultAnalysis.setPointStatus("1"); + resultAnalysis.setResultType("1"); resultAnalysis.setResStatus("3"); defaultDesc = "请进行纠偏"; } } else { - log.info("parseAlg algType correction value abnormal"); + log.info("parseAlg algType correction correctionValue abnormal"); resultAnalysis.setPointStatus("0"); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "纠偏结果异常"; } + } else if("2001".equals(resultAnalysis.getResCode())) { + ObjectMapper mapper = new ObjectMapper(); + List> list; + try { + log.info("parseAlg algType correction 2001 correctionValue: {}", correctionValue); + list = mapper.readValue(correctionValue, new TypeReference>>() { + }); + log.info("parseAlg algType correction 2001 correctionValue: {}", list); + } catch (Exception e) { + log.error("parseAlg algType correction 2001 correctionValue exception", e); + list = new ArrayList<>(); + } + + if(list.size() == 2 && list.get(0).size() == 2 && list.get(1).size() == 2) { + final double EPSILON = 1e-8; + double value0 = list.get(0).get(0); + double value1 = list.get(0).get(1); + double value2 = list.get(1).get(0); + double value3 = list.get(1).get(1); + if (Math.abs(value0) < EPSILON && + Math.abs(value1) < EPSILON && + Math.abs(value2) < EPSILON && + Math.abs(value3) < EPSILON) { + log.info("2001 correction no need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); + resultAnalysis.setPointStatus("1"); + resultAnalysis.setResultType("1"); + resultAnalysis.setResStatus("0"); + defaultDesc = messageUtils.get("纠偏码异常"); + resultAnalysis.setResDesc(defaultDesc); + } else { + log.info("2001 correction need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); + resultAnalysis.setPointStatus("0"); + resultAnalysis.setResultType("0"); + resultAnalysis.setResStatus("3"); + defaultDesc = "纠偏码异常请进行纠偏"; + } + } else { + log.info("2001 parseAlg algType correction correctionValue abnormal"); + resultAnalysis.setPointStatus("0"); + resultAnalysis.setResultType("0"); + resultAnalysis.setResStatus("0"); + defaultDesc = "纠偏码和值均异常"; + } } else { resultAnalysis.setPointStatus("0"); resultAnalysis.setResultType("0"); @@ -326,4 +371,23 @@ public class ResultAnalysisUtils { resultAnalysis.setCreateTime(new Date()); log.info("------------------parseAlg resultAnalysis: {}", resultAnalysis); } + + + public static void main(String[] args) { + String value = "[[121,108],[121,108]]"; + ObjectMapper mapper = new ObjectMapper(); + List> list; + try { + list = mapper.readValue(value, new TypeReference>>() { + }); + System.out.println("parseAlg algType correction value: " + list); + } catch (Exception e) { + System.out.println("parseAlg algType correction value exception"); + list = new ArrayList<>(); + } + + if(list.size() == 2 && list.get(0).size() == 2 && list.get(1).size() == 2) { + System.out.println("parseAlg algType correction value"); + } + } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java index c362ed7..bfa0598 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java @@ -47,7 +47,7 @@ public interface PatrolTaskMapper { List> selectTaskRationalGroupByType(); - String selectChannelCodeByPatrolPointId(String patrolPointId); + Map selectChannelCodeByPatrolPointId(String patrolPointId); List selectPatrolTaskListByTaskAreaName(String taskAreaName); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java index 81487b9..cf719c4 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java @@ -17,11 +17,13 @@ import com.inspect.task.domain.PatrolTask; import com.inspect.task.mapper.PatrolTaskMapper; import com.inspect.task.service.IPatrolTaskService; +import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; import com.inspect.taskstatus.domain.PatrolTaskStatus; import com.inspect.taskstatus.mapper.PatrolTaskStatusMapper; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; @@ -137,8 +139,43 @@ public class PatrolTaskServiceImpl implements IPatrolTaskService { log.info("controller correctionAlgorithm pointId: {}, resValue: {}", patrolData.getPointId(), patrolData.getResValue()); - final String channelCode = patrolTaskMapper.selectChannelCodeByPatrolPointId(patrolData.getPointId()); - log.info("controller correctionAlgorithm channelCode: {}", channelCode); + final Map result = patrolTaskMapper.selectChannelCodeByPatrolPointId(patrolData.getPointId()); + final String channelCode = (String)result.get("channel_code"); + final String presetPosCode = (String)result.get("preset_pos_code"); + final String presetPosName = (String)result.get("preset_pos_name"); + final Integer patrolPointId = (Integer) result.get("patrol_point_id"); + final String videoNvrCode = (String)result.get("video_nvr_code"); + log.info("controller correctionAlgorithm channelCode: {}, presetPosCode: {}, presetPosName: {}, patrolPointId: {}, videoNvrCode: {}", + channelCode, + presetPosCode, + presetPosName, + patrolPointId, + videoNvrCode); + // 转到预置位 + try { + final String url2 = "http://199.199.199.154:9906" + "/api/v1/control/preset"; + final String param2 = "serial=" + videoNvrCode + + "&command=goto&preset=" + presetPosCode + + "&code=" + channelCode + + "&name=" + URLEncoder.encode(presetPosName, ("UTF-8")) + + "&id=" + patrolPointId + + "&host=" + "null" + + "&port=" + "null" + + "&username=" + "null" + + "&password=" + "null" + + "&address=" + "null"; + log.info("controller correctionAlgorithm preset url2: {}, param2: {}", url2, param2); + HttpClientUtils.get(url2, param2); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + + try { + Thread.sleep(20000); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + ObjectMapper mapper = new ObjectMapper(); List> list; try { diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml index d734ee1..0fe2207 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml @@ -348,8 +348,8 @@ group by p.type; - + select d.* from patrol_preset_pos d where d.patrol_point_id = #{patrolPointId} limit 1