Browse Source

/*

1. 修改调用初筛和大模型的逻辑,增加四种红外类型和一种形变。
2. 修改无人机红外联调过程中的bug。
*/
master
htjcAdmin 8 months ago
parent
commit
79a9721ac1
6 changed files with 184 additions and 167 deletions
  1. +10
    -0
      inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java
  2. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java
  3. +23
    -5
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java
  4. +122
    -117
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  5. +11
    -11
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java
  6. +16
    -34
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java

+ 10
- 0
inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java View File

@ -0,0 +1,10 @@
package com.inspect.base.core.constant;
public class AlgConstants {
public static final String METER = "meter";
public static final String INFRA_1800 = "infra_1800";
public static final String INFRA_YU3 = "infra_yu3";
public static final String INFRA_CAMERA = "infra_camera";
public static final String INFRA_CAMERA_REVERSE = "infra_camera_reverse";
public static final String XB = "xb";
}

+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java View File

@ -11,6 +11,8 @@ public class AnalyseConstants {
public static final String ANALYSE_FAIL_FILE_EXCEPT = "2003";
public static final String ANALYSE_FAIL_FILE_INCOMPATIBLE = "2004";
public static final String ANALYSE_CODE = "code";
public static final String ANALYSE_URI = "/picAnalyse";
public static final String ANALYSE_RET_URI = "/picAnalyseRetNotify";
public static final String ANALYSE_UPPER_VALUE = "upperValue";
public static final String ANALYSE_LOWER_VALUE = "lowerValue";
public static final String ANALYSE_ALARM_THRESHOLD = "alarm_threshold";


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

@ -9,6 +9,7 @@ import com.inspect.analysis.domain.*;
import com.inspect.analysis.service.IAnalysisLogService;
import com.inspect.analysis.service.IAnalysisService;
import com.inspect.analysis.service.IResultAnalysisService;
import com.inspect.base.core.constant.AlgConstants;
import com.inspect.base.core.constant.Color;
import com.inspect.base.core.constant.RedisConst;
import com.inspect.base.core.constant.Tags;
@ -18,6 +19,7 @@ import com.inspect.base.redis.service.RedisService;
import com.inspect.common.security.utils.DictUtils;
import com.inspect.partrolresult.domain.AnalyseRequest;
import com.inspect.partrolresult.domain.PatrolResult;
import com.inspect.partrolresult.service.AnalyseRemoteService;
import com.inspect.partrolresult.service.IPatrolResultService;
import com.inspect.resultmain.domain.PatrolTaskResultMain;
import com.inspect.resultmain.service.IPatrolTaskResultMainService;
@ -44,6 +46,9 @@ public class AnalysisServiceImpl implements IAnalysisService {
@Resource
private IspAlgorithmRequestService ispAlgorithmRequestService;
@Resource
private AnalyseRemoteService analyseRemoteService;
@Resource
private IAnalysisLogService analysisLogService;
@ -80,13 +85,18 @@ public class AnalysisServiceImpl implements IAnalysisService {
analyseResult.setTaskPatrolId(patrolTaskIdObj);
String keyFilterRequest = AnalyseConstants.ANALYSE_FILTER_REQUEST + requestId;
log.info("picAnalyseRetNotify keyFilterRequest={}", keyFilterRequest);
boolean flag = false;
boolean bBigModelExecFlag = false;
String[] algTypeList = {};
AnalyseRequest analyseRequest = null;
if (redisService.hasKey(keyFilterRequest)) { // 初筛结果
analyseResult.setFilter("1"); // 设置初筛标志
analyseRequest = (AnalyseRequest) redisService.redisTemplate.opsForValue().getAndDelete(keyFilterRequest);
log.info("picAnalyseRetNotify analyseRequest IN REDIS: {}", analyseRequest);
AnalyseResPoint analyseResPoint = analyseResult.getResultList().get(0).getResults().get(0);
if (analyseRequest != null && analyseRequest.getObjectList() != null && !analyseRequest.getObjectList().isEmpty()) {
algTypeList = analyseRequest.getObjectList().get(0).getTypeList();
}
boolean bDefect = analyseResPoint.isDefect(); // code=2000代表初筛结果返回正常value=1代表有缺陷
log.info("picAnalyseRetNotify FILTER bDefect={}, algorithmType={}", bDefect, analyseResPoint.getType());
analyseResult.reloadReq(analyseRequest);
@ -98,13 +108,20 @@ public class AnalysisServiceImpl implements IAnalysisService {
* 2. 算法是表计(meter)
* 不论初筛结果有没有缺陷都要继续调用大模型因为大模型调用了表计(meter)识别算法
*/
if (bDefect || "meter".equals(analyseResPoint.getType())) {
final String algType = analyseResPoint.getType();
if (bDefect || (AlgConstants.METER.equals(algType)
|| AlgConstants.XB.equals(algType)
|| AlgConstants.INFRA_1800.equals(algType)
|| AlgConstants.INFRA_YU3.equals(algType)
|| AlgConstants.INFRA_CAMERA.equals(algType)
|| AlgConstants.INFRA_CAMERA_REVERSE.equals(algType))
) {
/*
* 先检查结果有缺无缺陷如果有缺陷不用判断算法直接调用大模型*
* 如果无缺陷再去判断算法如果算法是meter就继续调用大模型*
*/
analyseResult.setResult("0");
flag = true;
bBigModelExecFlag = true;
// log.info("picAnalyseRetNotify CALL BIG_MODEL REQUEST_ID={}", requestId);
// ispAlgorithmRequestService.sendRequest(analyseRequest);
} else {
@ -128,9 +145,10 @@ public class AnalysisServiceImpl implements IAnalysisService {
//calculateProcess(analyseResult);
log.info(Color.CYAN + "###### 分析算法模块返回的表计识别结果 end ######" + Color.END);
if (flag) {
if (bBigModelExecFlag) {
log.info("picAnalyseRetNotify CALL BIG_MODEL REQUEST_ID={}", requestId);
ispAlgorithmRequestService.sendRequest(analyseRequest);
// ispAlgorithmRequestService.sendRequest(analyseRequest);
analyseRemoteService.sendRequest(analyseRequest, algTypeList, false);
}
}


+ 122
- 117
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -2,10 +2,12 @@ package com.inspect.partrolresult.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.analysis.domain.resultList;
import com.inspect.analysis.domain.results;
import com.inspect.analysis.service.IResultAnalysisService;
import com.inspect.base.core.constant.AlgConstants;
import com.inspect.base.core.constant.Color;
import com.inspect.base.core.constant.RedisConst;
import com.inspect.base.core.domain.DataMsg;
@ -709,9 +711,9 @@ public class PatrolResultController extends BaseController {
String ids = "";
for (PatrolResult patrolResult : patrolResultList) {
List<AnalyseReqItem> filterList = new ArrayList<>(); //初筛算法列表
List<AnalyseReqItem> bigModelList = new ArrayList<>(); //大模型算法列表
List<AnalyseReqItem> infraredList = new ArrayList<>();//红外摄像机算法列表 根据最新做法红外要归到大模型里面由大模型来调用需要调整如下逻辑-20250423
List<AnalyseReqItem> filterList = new ArrayList<>(); //初筛
List<AnalyseReqItem> bigModelList = new ArrayList<>(); //大模型
List<AnalyseReqItem> infraredList = new ArrayList<>();//古老的红外逻辑 最新的红外逻辑另辟蹊径增加新的算法类型并且归入初筛逻辑-20250423
String image = patrolResult.getFilePath().replace(ftp.getFtpPath() + "/", StringUtils.EMPTY);
String imageType = patrolResult.getFileType();
AnalyseReqItem analyseReqItem = new AnalyseReqItem();
@ -753,12 +755,9 @@ public class PatrolResultController extends BaseController {
String[] strings = new String[1];
String type;
if (!algInfoList.isEmpty()) {
// 处理红外请求目前讨论的结果以及方案要归到大模型逻辑本接口这部分处理后续要废掉
List<AlgInfo> infraredAlgInfoList = algInfoList.stream().filter((item) -> {
return "infrared".equals(item.getAlgSubtypeCode());
}).collect(Collectors.toList());
// 最古老处理红外请求暂且保留
List<AlgInfo> infraredAlgInfoList = algInfoList.stream().filter((item) -> "infrared".equals(item.getAlgSubtypeCode())).collect(Collectors.toList());
logger.info("callRemoteAlgorithm infraredList: {}", infraredAlgInfoList);
String[] typeArr;
if (!infraredAlgInfoList.isEmpty() && "true".equals(pictureFrame)) {
Map<String, Object> device = resultAnalysisService.selectEqInfoByCode(patrolResult.getPatrolDeviceCode());
if (device != null && device.get("type") != null) {
@ -770,15 +769,15 @@ public class PatrolResultController extends BaseController {
}
}
typeArr = new String[1];
String[] imageUrlArr = new String[1];
if (image.contains(StringUtils.COMMA)) {
typeArr[0] = image.split(StringUtils.COMMA)[0];
imageUrlArr[0] = image.split(StringUtils.COMMA)[0];
} else {
typeArr[0] = image;
imageUrlArr[0] = image;
}
ids = patrolResult.getLineId() + "";
analyseReqItem.setImageUrlList(typeArr);
analyseReqItem.setImageUrlList(imageUrlArr);
analyseReqItem.setTypeList(strings);
infraredList.add(analyseReqItem.clone());
}
@ -786,10 +785,10 @@ public class PatrolResultController extends BaseController {
algInfoList.removeAll(infraredAlgInfoList);
List<String> imagelist = new ArrayList<>();
if (image.contains(StringUtils.COMMA)) {
typeArr = imageType.split(StringUtils.COMMA);
String[] imageTypeArr = imageType.split(StringUtils.COMMA);
String[] imageArr = image.split(StringUtils.COMMA);
for (int i = 0; i < typeArr.length; ++i) {
if ("2".equals(typeArr[i]) || "4".equals(typeArr[i])) {
for (int i = 0; i < imageTypeArr.length; ++i) {
if ("2".equals(imageTypeArr[i]) || "4".equals(imageTypeArr[i])) {
imagelist.add(imageArr[i]);
}
}
@ -806,10 +805,11 @@ public class PatrolResultController extends BaseController {
filePanpath = judgeMap.get("dis_ref_picture_path");
}
analyseReqItem.setImageNormalUrlPath(filePanpath);//总是为空
List<AlgInfo> judgeList = algInfoList.stream().filter((item) -> {
return item.getAlgName().contains("判别");
}).collect(Collectors.toList());
analyseReqItem.setImageNormalUrlPath(filePanpath);
List<AlgInfo> judgeList = algInfoList.stream().filter(
(item) -> item.getAlgName().contains("判别")
).collect(Collectors.toList());
if (!judgeList.isEmpty()) {
analyseReqItem.setTypeList(judgeList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new));
String[] images;
@ -824,19 +824,23 @@ public class PatrolResultController extends BaseController {
bigModelList.add(analyseReqItem.clone());
}
algInfoList.removeAll(judgeList);
List<AlgInfo> meterList = (algInfoList).stream().filter((item) -> {
return "meter".equals(item.getAlgSubtypeCode());
}).collect(Collectors.toList());
algInfoList.removeAll(judgeList);//将已经加入bigModelList中的记录删除(算法名称为缺陷判别)
List<AlgInfo> meterList =
(algInfoList).stream().filter((item) ->
AlgConstants.METER.equals(item.getAlgSubtypeCode())
|| AlgConstants.XB.equals(item.getAlgSubtypeCode())
|| AlgConstants.INFRA_1800.equals(item.getAlgSubtypeCode())
|| AlgConstants.INFRA_YU3.equals(item.getAlgSubtypeCode())
|| AlgConstants.INFRA_CAMERA.equals(item.getAlgSubtypeCode())
|| AlgConstants.INFRA_CAMERA_REVERSE.equals(item.getAlgSubtypeCode())
).collect(Collectors.toList());
if (!meterList.isEmpty()) {
analyseReqItem.setTypeList(meterList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new));
filterList.add(analyseReqItem.clone());
}
algInfoList.removeAll(meterList);
List<AlgInfo> defectList = algInfoList.stream().filter((item) -> {
return "缺陷识别".equals(item.getAlgName());
}).collect(Collectors.toList());
algInfoList.removeAll(meterList);//将已经加入filterList中的记录删除(算法编码为meter的记录)
List<AlgInfo> defectList = algInfoList.stream().filter((item) -> "缺陷识别".equals(item.getAlgName())).collect(Collectors.toList());
if (!defectList.isEmpty()) {
analyseReqItem.setTypeList(defectList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new));
bigModelList.add(analyseReqItem.clone());
@ -847,103 +851,104 @@ public class PatrolResultController extends BaseController {
analyseReqItem.setTypeList(algInfoList.stream().map(AlgInfo::getAlgSubtypeCode).toArray(String[]::new));
bigModelList.add(analyseReqItem.clone());
}
}
logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());//永远为true
if (!infraredList.isEmpty() && "true".equals(pictureFrame)) {
String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS);
AnalyseRequest sendData = new AnalyseRequest();
sendData.setObjectList(infraredList);
sendData.setRequestHostIp(MAJOR_URL);
sendData.setRequestHostPort(TASK_PORT);
sendData.setRequestId(uuid);
type = JSONObject.toJSONString(sendData);
// 古老的红外逻辑处理
logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());
if (!infraredList.isEmpty() && "true".equals(pictureFrame)) {
String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS);
AnalyseRequest sendData = new AnalyseRequest();
sendData.setObjectList(infraredList);
sendData.setRequestHostIp(MAJOR_URL);
sendData.setRequestHostPort(TASK_PORT);
sendData.setRequestId(uuid);
type = JSONObject.toJSONString(sendData);
try {
logger.info("callRemoteAlgorithm infraredRequest: {}", type);
InfraredRequestParam infraredRequestParam = JSONObject.parseObject(type, InfraredRequestParam.class);
InfraredResponse infraredResponse = infraredImageParser.parse(infraredRequestParam);
logger.info("callRemoteAlgorithm infraredResponse: {}", infraredResponse);
if (infraredResponse != null) {
ResultAnalysis resultAnalysis = new ResultAnalysis();
if (infraredResponse.getResultList() != null && !infraredResponse.getResultList().isEmpty()) {
if (infraredResponse.getResultList().get(0).getResults() != null && !infraredResponse.getResultList().get(0).getResults().isEmpty()) {
String ww;
if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getResults().get(0).getValue()) && infraredResponse.getResultList().get(0).getResults().get(0).getValue().equals("1")) {
resultAnalysis.setBusinessId(ids);
ww = JSONObject.toJSONString(infraredResponse);
resultAnalysis.setResultContent(ww);
if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) {
resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId());
}
try {
logger.info("callRemoteAlgorithm infraredRequest: {}", type);
InfraredRequestParam infraredRequestParam = JSONObject.parseObject(type, InfraredRequestParam.class);
InfraredResponse infraredResponse = infraredImageParser.parse(infraredRequestParam);
logger.info("callRemoteAlgorithm infraredResponse: {}", infraredResponse);
if (infraredResponse != null) {
ResultAnalysis resultAnalysis = new ResultAnalysis();
if (infraredResponse.getResultList() != null && !infraredResponse.getResultList().isEmpty()) {
if (infraredResponse.getResultList().get(0).getResults() != null && !infraredResponse.getResultList().get(0).getResults().isEmpty()) {
String ww;
if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getResults().get(0).getValue()) && infraredResponse.getResultList().get(0).getResults().get(0).getValue().equals("1")) {
resultAnalysis.setBusinessId(ids);
ww = JSONObject.toJSONString(infraredResponse);
resultAnalysis.setResultContent(ww);
if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) {
resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId());
}
resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc());
resultAnalysis.setCreateTime(new Date());
resultAnalysis.setResStatus("0");
resultAnalysis.setPointStatus("0");
resultAnalysis.setResultType("0");
resultAnalysisService.insertResultAnalysis(resultAnalysis);
JSONObject websocketParam = new JSONObject();
websocketParam.put("event", "task_statistics_notify");
websocketParam.put("data", (new JSONObject()).fluentPut("taskName", "红外任务").fluentPut("msg", "高温告警"));
//websocketService.parseMessage(websocketParam.toString());
} else {
resultAnalysis.setBusinessId(ids);
ww = JSONObject.toJSONString(infraredResponse);
resultAnalysis.setResultContent(ww);
resultAnalysis.setResultType("1");
if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) {
resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId());
}
resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc());
resultAnalysis.setCreateTime(new Date());
resultAnalysis.setResStatus("0");
resultAnalysis.setPointStatus("0");
resultAnalysis.setResultType("0");
resultAnalysisService.insertResultAnalysis(resultAnalysis);
JSONObject websocketParam = new JSONObject();
websocketParam.put("event", "task_statistics_notify");
websocketParam.put("data", (new JSONObject()).fluentPut("taskName", "红外任务").fluentPut("msg", "高温告警"));
//websocketService.parseMessage(websocketParam.toString());
} else {
resultAnalysis.setBusinessId(ids);
ww = JSONObject.toJSONString(infraredResponse);
resultAnalysis.setResultContent(ww);
resultAnalysis.setResultType("1");
if (StringUtils.isNotEmpty(infraredResponse.getResultList().get(0).getObjectId())) {
resultAnalysis.setObjectId(infraredResponse.getResultList().get(0).getObjectId());
}
resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc());
resultAnalysis.setCreateTime(new Date());
resultAnalysis.setResStatus("1");
resultAnalysis.setPointStatus("1");
resultAnalysis.setResultType("1");
resultAnalysisService.insertResultAnalysis(resultAnalysis);
resultAnalysis.setDescription(infraredResponse.getResultList().get(0).getResults().get(0).getDesc());
resultAnalysis.setCreateTime(new Date());
resultAnalysis.setResStatus("1");
resultAnalysis.setPointStatus("1");
resultAnalysis.setResultType("1");
resultAnalysisService.insertResultAnalysis(resultAnalysis);
}
}
}
double maxT = infraredResponse.getResultList().get(0).getResults().get(0).getInfraredT().getMaxT();
PatrolResult patrolResultAsd = patrolResultService.selectPatrolResultByLineId(Long.valueOf(ids));
patrolResultAsd.setValue(maxT + "");
patrolResultAsd.setRecognitionType("4");
patrolResultService.updatePatrolResult(patrolResultAsd);
double maxT = infraredResponse.getResultList().get(0).getResults().get(0).getInfraredT().getMaxT();
PatrolResult patrolResultAsd = patrolResultService.selectPatrolResultByLineId(Long.valueOf(ids));
patrolResultAsd.setValue(maxT + "");
patrolResultAsd.setRecognitionType("4");
patrolResultService.updatePatrolResult(patrolResultAsd);
}
}
} catch (Exception exception) {
exception.printStackTrace();
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
logger.info("callRemoteAlgorithm algInfoList2: {}", algInfoList);
logger.info("callRemoteAlgorithm filterList: {}", filterList);
logger.info("callRemoteAlgorithm bigModelList: {}", bigModelList);
AnalyseRequest analyseReq;
//qinyl 初筛
if (!filterList.isEmpty()) {
analyseReq = new AnalyseRequest();
analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId());
analyseReq.setObjectList(filterList);
analyseReq.setRequestHostIp(MAJOR_URL);
analyseReq.setRequestHostPort(TASK_PORT);
if (filterList.get(0).getImageUrlList() != null && filterList.get(0).getImageUrlList().length > 0) {
String meterFilter = patrolTaskService.selectConfigByKey("ANALYSE_IS_METER_FILTER");
analyseRemoteService.sendRequest(analyseReq, filterList.get(0).getTypeList(), "1".equals(meterFilter));
logger.info("callRemoteAlgorithm algInfoList2: {}", algInfoList);
logger.info("callRemoteAlgorithm filterList: {}", filterList);
logger.info("callRemoteAlgorithm bigModelList: {}", bigModelList);
//qinyl 初筛逻辑处理
if (!filterList.isEmpty()) {
AnalyseRequest analyseReq = new AnalyseRequest();
analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId());
analyseReq.setObjectList(filterList);
analyseReq.setRequestHostIp(MAJOR_URL);
analyseReq.setRequestHostPort(TASK_PORT);
if (filterList.get(0).getImageUrlList() != null && filterList.get(0).getImageUrlList().length > 0) {
String meterFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_METER_FILTER);
analyseRemoteService.sendRequest(analyseReq, filterList.get(0).getTypeList(), "1".equals(meterFilter));
}
}
}
//qinyl 大模型
if (!bigModelList.isEmpty()) {
analyseReq = new AnalyseRequest();
analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId());
analyseReq.setObjectList(bigModelList);
analyseReq.setRequestHostIp(MAJOR_URL);
analyseReq.setRequestHostPort(TASK_PORT);
if (bigModelList.get(0).getImageUrlList() != null && bigModelList.get(0).getImageUrlList().length > 0) {
analyseRemoteService.sendRequest(analyseReq, bigModelList.get(0).getTypeList(), true);
//qinyl 大模型
if (!bigModelList.isEmpty()) {
AnalyseRequest analyseReq = new AnalyseRequest();
analyseReq.setTaskPatrolId(patrolResultList.get(0).getTaskPatrolledId());
analyseReq.setObjectList(bigModelList);
analyseReq.setRequestHostIp(MAJOR_URL);
analyseReq.setRequestHostPort(TASK_PORT);
if (bigModelList.get(0).getImageUrlList() != null && bigModelList.get(0).getImageUrlList().length > 0) {
analyseRemoteService.sendRequest(analyseReq, bigModelList.get(0).getTypeList(), true);
}
}
}
}
@ -1058,7 +1063,7 @@ public class PatrolResultController extends BaseController {
logger.info(Color.CYAN + "###### RECEIVE DATA TO ANALYSIS [41] start ######" + Color.END);
try {
JSONObject parseObject = JSONObject.parseObject(messageBody);
String sendCode = (String)parseObject.get("SendCode");
String sendCode = (String) parseObject.get("SendCode");
Object jsonArray = parseObject.get("taskStateList");
if (jsonArray == null) {
@ -1107,7 +1112,7 @@ public class PatrolResultController extends BaseController {
if (!listEqpBook.isEmpty()) {
item.setLineId(((PatrolTaskStatus) listEqpBook.get(0)).getLineId());
if(item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) {
if (item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) {
item.setTaskName(sendCode + "-" + item.getTaskName());
}
i = iPatrolTaskStatusService.updatePatrolTaskStatus(item);
@ -1120,7 +1125,7 @@ public class PatrolResultController extends BaseController {
item.setPosType(str);
item.setCreateTime(new Date());
item.setStartTime(new Date());
if(item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) {
if (item.getTaskName().contains("联合") && !item.getTaskName().startsWith(sendCode)) {
item.setTaskName(sendCode + "-" + item.getTaskName());
}
i = iPatrolTaskStatusService.insertPatrolTaskStatus(item);
@ -1233,12 +1238,12 @@ public class PatrolResultController extends BaseController {
patrolTaskResultMain.setFileStatus("0");
patrolTaskResultMain.setTaskPatrolledId(patrolResultList.get(0).getTaskPatrolledId());
int devCount = tasks.get(0).getDevNo().split(StringUtils.COMMA).length;
if(devCount > 1) {
if (devCount > 1) {
PatrolTaskResultMain resultMainQuery = new PatrolTaskResultMain();
resultMainQuery.setTaskId(String.valueOf(tasks.get(0).getTaskId()));
//select unified_task_patrolled_id from patrol_task_result_main where task_id = #{taskId} and file_status = 0 and (now() - create_time) &lt;= 120 ORDER BY line_id desc limit 1
String unifiedTaskPatrolledId = iPatrolTaskResultMainService.selectUnifiedTaskPatrolledId(resultMainQuery);
if(unifiedTaskPatrolledId != null) {
if (unifiedTaskPatrolledId != null) {
patrolTaskResultMain.setUnifiedTaskPatrolledId(unifiedTaskPatrolledId);
} else {
patrolTaskResultMain.setUnifiedTaskPatrolledId(taskResultMain.getTaskId() + "_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));


+ 11
- 11
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java View File

@ -42,21 +42,21 @@ public class AnalyseRemoteService {
redisService.setCacheObject(RedisConst.REQUEST_UUID + requestId, taskPatrolId, 1L, TimeUnit.DAYS);
log.info("[CALL REMOTE ANALYZE] requestId: {}, taskPatrolId: {}", requestId, taskPatrolId);
analyseReq.setRequestId(requestId);
String taskSetKey = "ANALYSE_TASK_REQUEST:" + taskPatrolId;
String requestSetKey = "ANALYSE_REQUEST_ALG:" + requestId;
redisService.setCacheObject("ANALYSE_REQUEST_ID:" + requestId, taskPatrolId, 20L, TimeUnit.MINUTES);
String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST + taskPatrolId;
String requestSetKey = AnalyseConstants.ANALYSE_REQUEST_ALG + requestId;
redisService.setCacheObject(AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId), taskPatrolId, 20L, TimeUnit.MINUTES);
redisService.redisTemplate.opsForSet().add(taskSetKey, requestId);
redisService.expire(taskSetKey, 20L, TimeUnit.MINUTES);
String analyseFilter = patrolTaskService.selectConfigByKey("ANALYSE_IS_FILTER");
String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER);
String requestUrl;
if ("1".equals(analyseFilter) && isFilter) {
final String analyzeFilterRequestIdRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(requestId);
log.info("[ALG] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq);
log.info("[FILTER] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq);
this.redisService.setCacheObject(analyzeFilterRequestIdRedisKey, analyseReq.clone(), 1L, TimeUnit.HOURS);
AnalyseReqItem analyseReqItem = analyseReq.getObjectList().get(0);
analyseReqItem.setTypeList(typeList);
analyseReq.setObjectList(Collections.singletonList(analyseReqItem));
requestUrl = patrolTaskService.selectConfigByKey("ANALYSE_FILTER_URL");
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_FILTER_URL);
} else {
analyseReq.getObjectList().forEach((item) -> {
String[] itemTypeList = item.getTypeList();
@ -64,7 +64,7 @@ public class AnalyseRemoteService {
redisService.redisTemplate.opsForSet().add(requestSetKey, item.toResultValue(type));
}
});
requestUrl = patrolTaskService.selectConfigByKey("ANALYSIS_BIG_URL");
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL);
}
if(StringUtil.isEmpty(requestUrl)) {
@ -75,15 +75,15 @@ public class AnalyseRemoteService {
try {
log.info("[CALL REMOTE ANALYZE] ===========> URL={} \n PARAMS={}", requestUrl, analyseReq);
String result = HttpClientUtils.sendPostAgain(requestUrl + "/picAnalyse", analyseReq.toString());
String result = HttpClientUtils.sendPostAgain(requestUrl.concat(AnalyseConstants.ANALYSE_URI), analyseReq.toString());
log.info("[CALL REMOTE ANALYZE] <=========== result={}", result);
log.info("[CALL REMOTE ANALYZE] <=========== CODE={} \n PARAMS={}", JSONObject.parseObject(result).getString("code"), result);
if (!"200".equals(JSONObject.parseObject(result).getString("code"))) {
log.info("[CALL REMOTE ANALYZE] <=========== CODE={} \n PARAMS={}", JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE), result);
if (!"200".equals(JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE))) {
log.error("[CALL REMOTE ANALYZE] <=========== CALL FAIL: {}", result);
}
} catch (Exception e) {
log.error("error", e);
HttpClientUtils.sendPostAgain("http://localhost:" + this.port + "/picAnalyseRetNotify", analyseReq.toErrorResultStr());
HttpClientUtils.sendPostAgain("http://localhost:" + this.port + AnalyseConstants.ANALYSE_RET_URI, analyseReq.toErrorResultStr());
}
}


+ 16
- 34
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java View File

@ -2,6 +2,7 @@ package com.inspect.partrolresult.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.inspect.analysis.domain.AnalyseResPoint;
import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.analysis.domain.resultList;
import com.inspect.analysis.mapper.ResultAnalysisMapper;
@ -436,7 +437,7 @@ public class PatrolResultServiceImpl implements IPatrolResultService {
}
String pointStatus = patrolResultRef.getPointStatus();
log.info("[RESULT] pointStatus: {}", pointStatus);
log.info("[RESULT] pointStatus: {}, patrolResultRef: {}", pointStatus, patrolResultRef);
if(pointStatus == null) {
continue;
} else if (pointStatus.equals("0")) {
@ -458,8 +459,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService {
reportDatas.add(reportData);
log.info("batchInsertReportData reportData:" + reportData);
String resultContent = patrolResultRef.getResultContent();
List<resultList> results = JSONObject.parseObject(resultContent).getJSONArray("resultList").toJavaList(resultList.class);
String imgUrl = results.get(0).getResults().get(0).getResImageUrl();
//List<resultList> results = JSONObject.parseObject(resultContent).getJSONArray("resultList").toJavaList(resultList.class);
//String imgUrl = results.get(0).getResults().get(0).getResImageUrl();
AnalyseResPoint analyseResPoint = JSONObject.parseObject(resultContent, AnalyseResPoint.class);
String imgUrl = analyseResPoint.getResImageUrl();
if (StringUtils.isEmpty(imgUrl)) {
imgUrl = patrolResultRef.getFilePath().split(StringUtils.COMMA)[0];
}
@ -500,37 +504,15 @@ public class PatrolResultServiceImpl implements IPatrolResultService {
List<ResultAnalysis> analyses = resultAnalysisMapper.selectResultAnalysisListByMainIds(lineIds);
log.info("lineIds:{},statisticsAnalyseNum analyses:{}", lineIds, analyses);
for (ResultAnalysis analyse : analyses) {
String var9 = analyse.getPointStatus();
byte var10 = -1;
switch (var9.hashCode()) {
case 48:
if (var9.equals("0")) {
var10 = 0;
}
break;
case 49:
if (var9.equals("1")) {
var10 = 1;
}
break;
case 50:
if (var9.equals("2")) {
var10 = 2;
}
}
switch (var10) {
case 0:
++failNum;
break;
case 1:
++okNum;
break;
case 2:
++confirmNum;
break;
default:
log.error("【归档-统计分析数量】异常分析类型:{}", analyse.getPointStatus());
String pointStatus = analyse.getPointStatus();
if (pointStatus.equals("0")) {
++failNum;
} else if (pointStatus.equals("1")) {
++okNum;
} else if (pointStatus.equals("2")) {
++confirmNum;
} else {
log.error("【归档-统计分析数量】异常分析类型:{}", analyse.getPointStatus());
}
}


Loading…
Cancel
Save