Browse Source

/*1. 纠偏算法结果对接完成;2. 点击纠偏算法按钮,转到预置位操作成功。*/

master
htjcAdmin 5 days ago
parent
commit
8a3faf9f1f
5 changed files with 132 additions and 15 deletions
  1. +16
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java
  2. +74
    -10
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java
  3. +1
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java
  4. +39
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java
  5. +2
    -2
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml

+ 16
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java View File

@ -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<Double>> list;
// try {
// list = mapper.readValue(value, new TypeReference<List<List<Double>>>() {
// });
// 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);


+ 74
- 10
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java View File

@ -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<Double>> list;
try {
list = mapper.readValue(value, new TypeReference<List<List<Double>>>() {
log.info("parseAlg algType correction 2000 correctionValue: {}", correctionValue);
list = mapper.readValue(correctionValue, new TypeReference<List<List<Double>>>() {
});
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<Double>> list;
try {
log.info("parseAlg algType correction 2001 correctionValue: {}", correctionValue);
list = mapper.readValue(correctionValue, new TypeReference<List<List<Double>>>() {
});
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<Double>> list;
try {
list = mapper.readValue(value, new TypeReference<List<List<Double>>>() {
});
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");
}
}
}

+ 1
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java View File

@ -47,7 +47,7 @@ public interface PatrolTaskMapper {
List<Map<String, Long>> selectTaskRationalGroupByType();
String selectChannelCodeByPatrolPointId(String patrolPointId);
Map<String, Object> selectChannelCodeByPatrolPointId(String patrolPointId);
List<PatrolTask> selectPatrolTaskListByTaskAreaName(String taskAreaName);


+ 39
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java View File

@ -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<String, Object> 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<Double>> list;
try {


+ 2
- 2
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml View File

@ -348,8 +348,8 @@
group by p.type;
</select>
<select id="selectChannelCodeByPatrolPointId" resultType="java.lang.String" parameterType="java.lang.String">
select d.channel_code from patrol_preset_pos d where d.patrol_point_id = #{patrolPointId} limit 1
<select id="selectChannelCodeByPatrolPointId" resultType="java.util.Map" parameterType="java.lang.String">
select d.* from patrol_preset_pos d where d.patrol_point_id = #{patrolPointId} limit 1
</select>
<select id="selectPatrolTaskListByTaskAreaName" resultMap="PatrolTaskResult">


Loading…
Cancel
Save