|
|
@ -789,7 +789,19 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { |
|
|
List<ResultAnalysis> resultAnalysisList = new ArrayList<>(); |
|
|
List<ResultAnalysis> resultAnalysisList = new ArrayList<>(); |
|
|
StringJoiner valueJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
StringJoiner valueJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
StringJoiner validJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
StringJoiner validJoiner = new StringJoiner(StringUtils.COMMA); |
|
|
for (AnalyseResPoint analyseResPoint : resItem.getResults()) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<AnalyseResPoint> analyseResPointList = resItem.getResults(); |
|
|
|
|
|
if(!resItem.getResults().isEmpty()) { |
|
|
|
|
|
AnalyseResPoint analyseResPoint = resItem.getResults().get(0); |
|
|
|
|
|
String algType = analyseResPoint.getType(); |
|
|
|
|
|
log.info("RESULT_MERGE algType: {}, analyseResPoint: {}", algType, analyseResPoint); |
|
|
|
|
|
if("switch".equals(algType)) { |
|
|
|
|
|
analyseResPointList = mergeAnalyseResItem(analyseResPointList); |
|
|
|
|
|
log.info("RESULT_MERGE algType: {}, analyseResPointList: {}", algType, analyseResPointList); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (AnalyseResPoint analyseResPoint : analyseResPointList) { |
|
|
ResultAnalysis resultAnalysis = combineAnalyse(analyseResult, |
|
|
ResultAnalysis resultAnalysis = combineAnalyse(analyseResult, |
|
|
String.valueOf(patrolResult.getLineId()), |
|
|
String.valueOf(patrolResult.getLineId()), |
|
|
resItem.getObjectId(), |
|
|
resItem.getObjectId(), |
|
|
@ -1008,4 +1020,101 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { |
|
|
|
|
|
|
|
|
return algValue; |
|
|
return algValue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static final String mergeString = "{\n" + |
|
|
|
|
|
"\t\"requestId\": \"b00f2fbd1fcc49c6a47ed2b3a77e5028\",\n" + |
|
|
|
|
|
"\t\"resultsList\": [{\n" + |
|
|
|
|
|
"\t\t\"objectId\": \"2079991\",\n" + |
|
|
|
|
|
"\t\t\"results\": [{\n" + |
|
|
|
|
|
"\t\t\t\"type\": \"switch\",\n" + |
|
|
|
|
|
"\t\t\t\"value\": \"和\",\n" + |
|
|
|
|
|
"\t\t\t\"code\": \"2000\",\n" + |
|
|
|
|
|
"\t\t\t\"resImageUrl\": \"2/2025/12/12/1531/CCD/3038_R100-001_20251212140756.jpg\",\n" + |
|
|
|
|
|
"\t\t\t\"pos\": [],\n" + |
|
|
|
|
|
"\t\t\t\"conf\": 0.99,\n" + |
|
|
|
|
|
"\t\t\t\"desc\": \"\",\n" + |
|
|
|
|
|
"\t\t\t\"imageNormalUrlPath\": \"1/2025/08/29/1584/CCD/3038_R100-001_20250829123953.jpg\"\n" + |
|
|
|
|
|
"\t\t}, {\n" + |
|
|
|
|
|
"\t\t\t\"type\": \"switch\",\n" + |
|
|
|
|
|
"\t\t\t\"value\": \"和\",\n" + |
|
|
|
|
|
"\t\t\t\"code\": \"2000\",\n" + |
|
|
|
|
|
"\t\t\t\"resImageUrl\": \"2/2025/12/12/1531/CCD/3038_R100-001_20251212140756.jpg\",\n" + |
|
|
|
|
|
"\t\t\t\"pos\": [],\n" + |
|
|
|
|
|
"\t\t\t\"conf\": 0.99,\n" + |
|
|
|
|
|
"\t\t\t\"desc\": \"\",\n" + |
|
|
|
|
|
"\t\t\t\"imageNormalUrlPath\": \"1/2025/08/29/1584/CCD/3038_R100-001_20250829123953.jpg\"\n" + |
|
|
|
|
|
"\t\t}, {\n" + |
|
|
|
|
|
"\t\t\t\"type\": \"switch\",\n" + |
|
|
|
|
|
"\t\t\t\"value\": \"分\",\n" + |
|
|
|
|
|
"\t\t\t\"code\": \"2000\",\n" + |
|
|
|
|
|
"\t\t\t\"resImageUrl\": \"2/2025/12/12/1531/CCD/3038_R100-001_20251212140756.jpg\",\n" + |
|
|
|
|
|
"\t\t\t\"pos\": [],\n" + |
|
|
|
|
|
"\t\t\t\"conf\": 0.99,\n" + |
|
|
|
|
|
"\t\t\t\"desc\": \"\",\n" + |
|
|
|
|
|
"\t\t\t\"imageNormalUrlPath\": \"1/2025/08/29/1584/CCD/3038_R100-001_20250829123953.jpg\"\n" + |
|
|
|
|
|
"\t\t}, {\n" + |
|
|
|
|
|
"\t\t\t\"type\": \"switch\",\n" + |
|
|
|
|
|
"\t\t\t\"value\": \"和\",\n" + |
|
|
|
|
|
"\t\t\t\"code\": \"2000\",\n" + |
|
|
|
|
|
"\t\t\t\"resImageUrl\": \"2/2025/12/12/1531/CCD/3038_R100-001_20251212140756.jpg\",\n" + |
|
|
|
|
|
"\t\t\t\"pos\": [],\n" + |
|
|
|
|
|
"\t\t\t\"conf\": 0.99,\n" + |
|
|
|
|
|
"\t\t\t\"desc\": \"\",\n" + |
|
|
|
|
|
"\t\t\t\"imageNormalUrlPath\": \"1/2025/08/29/1584/CCD/3038_R100-001_20250829123953.jpg\"\n" + |
|
|
|
|
|
"\t\t}, {\n" + |
|
|
|
|
|
"\t\t\t\"type\": \"switch\",\n" + |
|
|
|
|
|
"\t\t\t\"value\": \"分\",\n" + |
|
|
|
|
|
"\t\t\t\"code\": \"2000\",\n" + |
|
|
|
|
|
"\t\t\t\"resImageUrl\": \"2/2025/12/12/1531/CCD/3038_R100-001_20251212140756.jpg\",\n" + |
|
|
|
|
|
"\t\t\t\"pos\": [],\n" + |
|
|
|
|
|
"\t\t\t\"conf\": 0.99,\n" + |
|
|
|
|
|
"\t\t\t\"desc\": \"\",\n" + |
|
|
|
|
|
"\t\t\t\"imageNormalUrlPath\": \"1/2025/08/29/1584/CCD/3038_R100-001_20250829123953.jpg\"\n" + |
|
|
|
|
|
"\t\t}, {\n" + |
|
|
|
|
|
"\t\t\t\"type\": \"switch\",\n" + |
|
|
|
|
|
"\t\t\t\"value\": \"分\",\n" + |
|
|
|
|
|
"\t\t\t\"code\": \"2000\",\n" + |
|
|
|
|
|
"\t\t\t\"resImageUrl\": \"2/2025/12/12/1531/CCD/3038_R100-001_20251212140756.jpg\",\n" + |
|
|
|
|
|
"\t\t\t\"pos\": [],\n" + |
|
|
|
|
|
"\t\t\t\"conf\": 0.99,\n" + |
|
|
|
|
|
"\t\t\t\"desc\": \"\",\n" + |
|
|
|
|
|
"\t\t\t\"imageNormalUrlPath\": \"1/2025/08/29/1584/CCD/3038_R100-001_20250829123953.jpg\"\n" + |
|
|
|
|
|
"\t\t}],\n" + |
|
|
|
|
|
"\t\t\"algFactory\": \"yd\"\n" + |
|
|
|
|
|
"\t}]\n" + |
|
|
|
|
|
"}"; |
|
|
|
|
|
|
|
|
|
|
|
public static List<AnalyseResPoint> mergeAnalyseResItem(List<AnalyseResPoint> analyseResPointList) { |
|
|
|
|
|
String mergedValue = analyseResPointList.stream() |
|
|
|
|
|
.map(AnalyseResPoint::getValue) |
|
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
|
.collect(Collectors.joining(StringUtils.COMMA)); |
|
|
|
|
|
AnalyseResPoint first = analyseResPointList.get(0); |
|
|
|
|
|
|
|
|
|
|
|
AnalyseResPoint mergedPoint = new AnalyseResPoint(); |
|
|
|
|
|
mergedPoint.setType(first.getType()); |
|
|
|
|
|
mergedPoint.setCode(first.getCode()); |
|
|
|
|
|
mergedPoint.setResImageUrl(first.getResImageUrl()); |
|
|
|
|
|
mergedPoint.setImageNormalUrlPath(first.getImageNormalUrlPath()); |
|
|
|
|
|
mergedPoint.setConf(first.getConf()); |
|
|
|
|
|
mergedPoint.setDesc(first.getDesc()); |
|
|
|
|
|
mergedPoint.setPos(first.getPos()); |
|
|
|
|
|
mergedPoint.setValue(mergedValue); |
|
|
|
|
|
|
|
|
|
|
|
return Collections.singletonList(mergedPoint); |
|
|
|
|
|
} |
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper(); |
|
|
|
|
|
AnalyseResult analyseResult; |
|
|
|
|
|
try { |
|
|
|
|
|
analyseResult = mapper.readValue(mergeString, new TypeReference<AnalyseResult>() { |
|
|
|
|
|
}); |
|
|
|
|
|
log.info("mergeAnalyseResItem analyseResult: {}", analyseResult); |
|
|
|
|
|
List<AnalyseResPoint> result = mergeAnalyseResItem(analyseResult.getResultsList().get(0).getResults()); |
|
|
|
|
|
log.info("mergeAnalyseResItem result: {}", result); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("mergeAnalyseResItem exception", e); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |