From b5ec64abe008a48f4f7a34004b2526a0d5a5e8a7 Mon Sep 17 00:00:00 2001 From: yinhuaiwei Date: Tue, 15 Sep 2026 14:33:45 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E7=82=B9=E4=BD=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=86=E6=9E=90=E5=AE=8C=E6=88=90=E6=97=B6=E9=80=9A?= =?UTF-8?q?=E8=BF=87WS=E4=B8=8A=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nalysisTypeEnum.java => AnalysisType.java} | 4 +- .../inspect/base/core/enums/DefectLevel.java | 20 ++ .../inspect/api/service/AlarmConsumer.java | 2 +- .../controller/ResultAnalysisController.java | 84 ++++++ .../analysis/domain/AnalyseResPoint.java | 10 +- .../analysis/domain/ResultAnalysis.java | 60 +--- .../impl/AnalyseResponseServiceImpl.java | 163 +++++------ .../mapper/PatrolResultMapper.java | 2 + .../service/IPatrolResultService.java | 2 + .../service/impl/PatrolResultServiceImpl.java | 5 + .../com/inspect/task/domain/PatrolData.java | 273 ++---------------- .../mapper/task/PatrolResultMapper.xml | 88 ++++++ 12 files changed, 306 insertions(+), 407 deletions(-) rename inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/{AnalysisTypeEnum.java => AnalysisType.java} (80%) create mode 100644 inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/DefectLevel.java diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/AnalysisTypeEnum.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/AnalysisType.java similarity index 80% rename from inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/AnalysisTypeEnum.java rename to inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/AnalysisType.java index 67a4dcd..b2511a9 100644 --- a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/AnalysisTypeEnum.java +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/AnalysisType.java @@ -6,7 +6,7 @@ import lombok.Getter; * 分析模型种类 */ @Getter -public enum AnalysisTypeEnum { +public enum AnalysisType { LargeModel("0", "大模型"), Filter("1", "初筛模型"), Luminosity("2", "光明大模型"); @@ -14,7 +14,7 @@ public enum AnalysisTypeEnum { private final String code; private final String value; - AnalysisTypeEnum(String code, String value) { + AnalysisType(String code, String value) { this.code = code; this.value = value; } diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/DefectLevel.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/DefectLevel.java new file mode 100644 index 0000000..730bd45 --- /dev/null +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/DefectLevel.java @@ -0,0 +1,20 @@ +package com.inspect.base.core.enums; + +import lombok.Getter; + +@Getter +public enum DefectLevel { + // 0=无, 1=紧急, 2=严重, 3=一般 + NONE(0, "无"), + URGENT(1, ""), + SERIOUS(2, ""), + NORMAL(3, ""); + + private final Integer code; + private final String info; + + DefectLevel(Integer code, String info) { + this.code = code; + this.info = info; + } +} diff --git a/inspect-main/inspect-main-api/src/main/java/com/inspect/api/service/AlarmConsumer.java b/inspect-main/inspect-main-api/src/main/java/com/inspect/api/service/AlarmConsumer.java index 3839204..a4376af 100644 --- a/inspect-main/inspect-main-api/src/main/java/com/inspect/api/service/AlarmConsumer.java +++ b/inspect-main/inspect-main-api/src/main/java/com/inspect/api/service/AlarmConsumer.java @@ -40,7 +40,7 @@ public class AlarmConsumer { try { Map msg = objectMapper.readValue(message.getBody(), new TypeReference>() {}); - String staticCode = (String) redisService.redisTemplate.opsForValue().get("STATION_CODE"); + String staticCode = (String) redisService.redisTemplate.opsForValue().get("sys_config:STATION_CODE"); if (StringUtils.isNotEmpty(staticCode)) { msg.put("stationCode", staticCode); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java index 2a2b265..1f1b40e 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java @@ -2,10 +2,12 @@ package com.inspect.analysis.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageInfo; import com.inspect.analysis.domain.*; import com.inspect.analysis.service.IResultAnalysisService; import com.inspect.analysis.service.DefectListAggregator; +import com.inspect.api.service.AlarmPublisher; import com.inspect.base.core.constant.AlgConstants; import com.inspect.base.core.domain.Response; import com.inspect.base.core.enums.PointStatusEnum; @@ -1080,4 +1082,86 @@ public class ResultAnalysisController extends BaseController { return AjaxResult.success(total); } + @Resource + private AlarmPublisher alarmPublisher; + + @GetMapping("/test/test") + public AjaxResult testTest() { + String json = "{\n" + + " \"lineId\": 12880539,\n" + + " \"resultType\": \"1\",\n" + + " \"businessId\": \"2514487\",\n" + + " \"resultContent\": \"{\\\"code\\\":\\\"2000\\\",\\\"conf\\\":\\\"0.95\\\",\\\"defect\\\":true,\\\"pos\\\":[],\\\"resImageUrl\\\":\\\"/1/2026/09/09/1776/CCD/1776_20260909142246152_2093939_SVG1.jpg\\\",\\\"type\\\":\\\"meter\\\",\\\"value\\\":\\\"1\\\",\\\"extra\\\":{\\\"avgValue\\\":12.092737,\\\"minValue\\\":4.4596844,\\\"maxValue\\\":25.46292}}\",\n" + + " \"resStatus\": \"0\",\n" + + " \"pointStatus\": \"1\",\n" + + " \"pointStatusList\": null,\n" + + " \"beginTime\": null,\n" + + " \"endTime\": null,\n" + + " \"suggestion\": null,\n" + + " \"objectId\": \"2024070\",\n" + + " \"description\": \"正常\",\n" + + " \"requestId\": \"5403fc4309ee48658f01d8922a9fa83c\",\n" + + " \"areaId\": null,\n" + + " \"mainDevId\": null,\n" + + " \"resValue\": \"1\",\n" + + " \"algType\": \"meter\",\n" + + " \"filter\": \"0\",\n" + + " \"taskPatrolId\": \"1671_20260709170248562\",\n" + + " \"resCode\": \"2000\",\n" + + " \"resImgUrl\": \"/1/2026/09/09/1776/CCD/1776_20260909142246152_2093939_SVG1.jpg\",\n" + + " \"resConf\": \"0.95\",\n" + + " \"resDesc\": null,\n" + + " \"resPos\": \"[]\",\n" + + " \"result\": \"1\",\n" + + " \"algName\": null,\n" + + " \"originalValue\": null,\n" + + " \"imageNormalUrlPath\": null,\n" + + " \"taskPatrolledId\": null,\n" + + " \"posType\": null,\n" + + " \"csQxNum\": 0,\n" + + " \"csYcNum\": 0,\n" + + " \"aiQxNum\": 0,\n" + + " \"aiYcNum\": 0,\n" + + " \"pointName\": null,\n" + + " \"deviceName\": null,\n" + + " \"abnormal\": null,\n" + + " \"channelName\": null,\n" + + " \"deviceSource\": null,\n" + + " \"filterDesc\": null,\n" + + " \"desc\": null\n" + + "}"; + try { + ObjectMapper objectMapper = new ObjectMapper(); + ResultAnalysis resultAnalysis = objectMapper.readValue(json, ResultAnalysis.class); + PatrolData patrolData = patrolResultService.selectPatrolData(resultAnalysis); + if (patrolData != null) { + if (true || AlgConstants.ALG_INFRARED_LIST.contains(resultAnalysis.getAlgType())) { + JSONObject jsonObject = JSONObject.parseObject(resultAnalysis.getResultContent()); + JSONObject extraObject = jsonObject == null ? null : jsonObject.getJSONObject("extra"); + if (extraObject != null) { + Object maxTemp = extraObject.get("maxValue"); + if (maxTemp != null) { + patrolData.setMaxValue(String.valueOf(maxTemp)); + } + + Object minTemp = extraObject.get("minValue"); + if (minTemp != null) { + patrolData.setMinValue(String.valueOf(minTemp)); + } + + Object avgTemp = extraObject.get("avgValue"); + if (avgTemp != null) { + patrolData.setAvgValue(String.valueOf(avgTemp)); + patrolData.setResValue(String.valueOf(avgTemp)); + } + } + } + alarmPublisher.publish(patrolData); + return AjaxResult.success(); + } + } catch (Exception e) { + logger.error("testTest", e); + } + return AjaxResult.error(); + } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseResPoint.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseResPoint.java index cb137a3..e595eed 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseResPoint.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseResPoint.java @@ -1,11 +1,14 @@ package com.inspect.analysis.domain; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.annotation.JsonInclude; import com.inspect.analysis.constant.AnalyseConstants; import com.inspect.base.core.utils.StringUtils; import java.io.Serializable; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; public class AnalyseResPoint implements Serializable { @@ -20,7 +23,8 @@ public class AnalyseResPoint implements Serializable { private String conf; private String desc; private List pos; - + @JsonInclude(JsonInclude.Include.NON_NULL) + private Map extra = new HashMap<>(); // public boolean checkSuccess() { // return "2000".equals(this.code) && "1".equals(this.value); // } @@ -127,6 +131,10 @@ public class AnalyseResPoint implements Serializable { this.value2 = value2; } + public Map getExtra() { return extra; } + + public void setExtra(Map extra) { this.extra = extra; } + @Override public boolean equals(Object object) { if (this == object) return true; diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java index 9ea21c4..903ae14 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java @@ -3,19 +3,16 @@ package com.inspect.analysis.domain; import com.inspect.base.core.annotation.Excel; import com.inspect.base.core.utils.StringUtils; import com.inspect.base.core.web.domain.BaseEntity; -import lombok.Getter; -import lombok.Setter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Data; +import lombok.ToString; import java.util.Date; import java.util.List; -@Setter -@Getter +@Data +@ToString public class ResultAnalysis extends BaseEntity { private static final long serialVersionUID = 1L; - private final Logger log = LoggerFactory.getLogger(getClass()); private Long lineId; @Excel( @@ -69,6 +66,7 @@ public class ResultAnalysis extends BaseEntity { private String deviceName; private String abnormal; private String channelName; + private String channelCode; private String deviceSource; private String filterDesc; private String desc; @@ -439,52 +437,4 @@ public class ResultAnalysis extends BaseEntity { // this.setDescription(defaultDesc); // this.setCreateTime(new Date()); // } - - @Override - public String toString() { - return "ResultAnalysis{" + - "lineId=" + lineId + - ", resultType='" + resultType + '\'' + - ", businessId='" + businessId + '\'' + - ", resultContent='" + resultContent + '\'' + - ", resStatus='" + resStatus + '\'' + - ", pointStatus='" + pointStatus + '\'' + - ", pointStatusList='" + pointStatusList + '\'' + - ", beginTime='" + beginTime + '\'' + - ", endTime='" + endTime + '\'' + - ", createTime='" + super.getCreateTime() + '\'' + - ", suggestion='" + suggestion + '\'' + - ", objectId='" + objectId + '\'' + - ", description='" + description + '\'' + - ", requestId='" + requestId + '\'' + - ", areaId='" + areaId + '\'' + - ", mainDevId='" + mainDevId + '\'' + - ", resValue='" + resValue + '\'' + - ", algType='" + algType + '\'' + - ", filter='" + filter + '\'' + - ", taskPatrolId='" + taskPatrolId + '\'' + - ", resCode='" + resCode + '\'' + - ", resImgUrl='" + resImgUrl + '\'' + - ", resConf='" + resConf + '\'' + - ", resDesc='" + resDesc + '\'' + - ", resPos='" + resPos + '\'' + - ", result='" + result + '\'' + - ", algName='" + algName + '\'' + - ", originalValue='" + originalValue + '\'' + - ", imageNormalUrlPath='" + imageNormalUrlPath + '\'' + - ", taskPatrolledId='" + taskPatrolledId + '\'' + - ", posType='" + posType + '\'' + - ", csQxNum=" + csQxNum + - ", csYcNum=" + csYcNum + - ", aiQxNum=" + aiQxNum + - ", aiYcNum=" + aiYcNum + - ", pointName='" + pointName + '\'' + - ", deviceName='" + deviceName + '\'' + - ", abnormal='" + abnormal + '\'' + - ", channelName='" + channelName + '\'' + - ", deviceSource='" + deviceSource + '\'' + - ", filterDesc='" + filterDesc + '\'' + - ", desc='" + desc + '\'' + - '}'; - } } 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 11820c4..ec1fea3 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 @@ -12,10 +12,12 @@ import com.inspect.analysis.service.IAnalyseLogService; import com.inspect.analysis.service.IAnalyseResponseService; import com.inspect.analysis.service.IResultAnalysisService; import com.inspect.analysis.utils.ResultAnalysisUtils; +import com.inspect.api.service.AlarmPublisher; 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; +import com.inspect.base.core.enums.AnalysisType; import com.inspect.base.core.enums.TaskStatus; import com.inspect.base.core.utils.BigDecimalUtil; import com.inspect.base.core.utils.DateUtils; @@ -31,6 +33,7 @@ import com.inspect.partrolresult.service.IPatrolResultService; import com.inspect.resultmain.domain.PatrolTaskResultMain; import com.inspect.resultmain.service.IPatrolTaskResultMainService; import com.inspect.system.base.domain.SysDictData; +import com.inspect.task.domain.PatrolData; import com.inspect.taskinfo.domain.PatrolTaskInfo; import com.inspect.taskinfo.service.IPatrolTaskInfoService; import com.inspect.taskstatus.domain.PatrolTaskStatus; @@ -41,6 +44,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -81,6 +85,28 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { @Resource private DelayQueueService delayQueueService; + @Resource + private AlarmPublisher alarmPublisher; + + public static List mergeAnalyseResItem(List 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); + } @Override public void picAnalyseRetNotify(AnalyseResult analyseResult) { @@ -258,7 +284,6 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { requestId); } - public synchronized void doAlgorithmAnalysis(AnalyseResult analyseResult) { log.info("doAlgorithmAnalysis analyseResult: {}", analyseResult); int size = 0; @@ -829,6 +854,9 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { } catch (Exception e) { log.error("error", e); } + + // ws + uploadResultWS(resultAnalysis); } patrolResult.setValue(valueJoiner.toString()); @@ -871,6 +899,41 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { //this.senWebsocket(websocketDataList); } + private void uploadResultWS(ResultAnalysis resultAnalysis) { + String requestId = resultAnalysis.getRequestId(); + String redisKey = AnalyseConstants.ANALYSE_AI_REQUEST.concat(requestId); + boolean hasKey = redisService.hasKey(redisKey); + log.info("uploadResultWS requestId:{}, hasKey:{}", redisKey, hasKey); + if (AnalysisType.LargeModel.getCode().equals(resultAnalysis.getFilter())) { + PatrolData patrolData = patrolResultService.selectPatrolData(resultAnalysis); + if (patrolData != null) { + if (AlgConstants.ALG_INFRARED_LIST.contains(resultAnalysis.getAlgType())) { + JSONObject jsonObject = JSONObject.parseObject(resultAnalysis.getResultContent()); + JSONObject extraObject = jsonObject == null ? null : jsonObject.getJSONObject("extra"); + if (extraObject != null) { + BigDecimal maxValue = extraObject.getBigDecimal("maxValue"); + if (maxValue != null) { + patrolData.setMaxValue(maxValue.setScale(1, RoundingMode.HALF_UP).toPlainString()); + } + + BigDecimal minValue = extraObject.getBigDecimal("minValue"); + if (minValue != null) { + patrolData.setMinValue(minValue.setScale(1, RoundingMode.HALF_UP).toPlainString()); + } + + BigDecimal avgValue = extraObject.getBigDecimal("avgValue"); + if (avgValue != null) { + String formattedAvgValue = avgValue.setScale(1, RoundingMode.HALF_UP).toPlainString(); + patrolData.setAvgValue(formattedAvgValue); + patrolData.setResValue(formattedAvgValue); + } + } + } + alarmPublisher.publish(patrolData); + } + } + } + private ResultAnalysis combineAnalyse( AnalyseResult analyseResult, String patrolResultId, @@ -905,7 +968,7 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { // 处理正常结果、以及兼容处理无机人表计gis_meter2、纠偏correction的异常结果 if (resultAnalysisUtils.checkCode(analyseResPoint.getCode(), analyseResPoint.getDesc(), resultAnalysis) || (AlgConstants.GIS_METER_2.equals(analyseResPoint.getType())) - || (AlgConstants.CORRECTION.equals(analyseResPoint.getType()) && Arrays.asList("2001", "2002", "2003").contains(analyseResPoint.getCode()) )) { + || (AlgConstants.CORRECTION.equals(analyseResPoint.getType()) && Arrays.asList("2001", "2002", "2003").contains(analyseResPoint.getCode()))) { AlgValue algValue = selectAlgMap(objectId, analyseResPoint.getType()); resultAnalysisUtils.parseAlg(analyseResPoint.getType(), algValue, value, analyseResPoint.getDesc(), resultAnalysis); // 合并辅助值字段 @@ -1019,100 +1082,4 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { 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 mergeAnalyseResItem(List 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() { - }); - log.info("mergeAnalyseResItem analyseResult: {}", analyseResult); - List result = mergeAnalyseResItem(analyseResult.getResultsList().get(0).getResults()); - log.info("mergeAnalyseResItem result: {}", result); - } catch (Exception e) { - log.error("mergeAnalyseResItem exception", e); - } - } - } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java index 97e1f68..b19481e 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java @@ -130,4 +130,6 @@ public interface PatrolResultMapper { List selectPointAlgInfo(String patrolPointId); List selectAlgInfoByCode(String codes); + + PatrolData selectPatrolData(ResultAnalysis resultAnalysis); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java index 5b3a40c..ca6c14a 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java @@ -112,4 +112,6 @@ public interface IPatrolResultService { List selectAlgInfoByCode(String codes); List selectAlgList(String taskCode, String sendCode, String specifiedAlg); + + PatrolData selectPatrolData(ResultAnalysis resultAnalysis); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java index 3942975..144cd63 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java @@ -2276,6 +2276,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService { return algList; } + @Override + public PatrolData selectPatrolData(ResultAnalysis resultAnalysis) { + return patrolResultMapper.selectPatrolData(resultAnalysis); + } + private PatrolResultRef mergePatrolResultRef(PatrolResultRef filterResult, PatrolResultRef AIResult, String resultType) { PatrolResultRef merged = new PatrolResultRef(); merged.setDeviceId(filterResult.getDeviceId()); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java index d21583e..87b683c 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java @@ -1,10 +1,14 @@ package com.inspect.task.domain; +import com.fasterxml.jackson.annotation.JsonInclude; import com.inspect.base.core.annotation.Excel; +import com.inspect.base.core.enums.DefectLevel; +import lombok.Data; import lombok.ToString; import java.util.Objects; @ToString +@Data public class PatrolData implements Comparable { @Excel( name = "设备" @@ -14,6 +18,7 @@ public class PatrolData implements Comparable { name = "相机名" ) private String channelName; + private String channelCode; @Excel( name = "系统" ) @@ -86,7 +91,25 @@ public class PatrolData implements Comparable { private String originalValue; private String taskPatrolId; + // 缺陷等级 + private Integer defectLevel = DefectLevel.NONE.getCode(); + @JsonInclude(JsonInclude.Include.NON_NULL) + private String maxValue; + @JsonInclude(JsonInclude.Include.NON_NULL) + private String minValue; + @JsonInclude(JsonInclude.Include.NON_NULL) + private String avgValue; + public void setWarnStatus(String warnStatus) { + this.warnStatus = warnStatus; + if ("0".equals(warnStatus)) { + this.defectLevel = DefectLevel.SERIOUS.getCode(); + } else if ("2".equals(warnStatus)) { + this.defectLevel = DefectLevel.NORMAL.getCode(); + } else { + this.defectLevel = DefectLevel.NONE.getCode(); + } + } public String warnStatus(String ws) { byte var3 = -1; @@ -135,260 +158,10 @@ public class PatrolData implements Comparable { return this.requestId != null && this.algType != null && this.requestId.equals(pd.getRequestId()) && this.algType.equals(pd.algType); } - public String getDeviceName() { - return this.deviceName; - } - - public String getChannelName() { - return this.channelName; - } - - public String getDeviceSource() { - return this.deviceSource; - } - - public String getPointName() { - return this.pointName; - } - public String getPointId() { - return pointId; - } - public String getWarnStatus() { - return this.warnStatus; - } - - public String getAlgName() { - return this.algName; - } - - public String getResValue() { - return this.resValue; - } - - public String getImg() { - return this.img; - } - - public String getFilterDesc() { - return this.filterDesc; - } - - public String getBrightDesc() { - return this.brightDesc; - } - - public String getImgAnalyse() { - return this.imgAnalyse; - } - - public String getBrightImgAnalyse() { - return this.brightImgAnalyse; - } - - public String getDesc() { - return this.desc; - } - - public String getLineId() { - return this.lineId; - } - - public String getPatrolTime() { - return this.patrolTime; - } - - public String getPointStatus() { - return this.pointStatus; - } - - public String getImgType() { - return this.imgType; - } - - public String getDataType() { - return this.dataType; - } - - public String getFilter() { - return this.filter; - } - - public String getRequestId() { - return this.requestId; - } - - public String getResStatus() { - return this.resStatus; - } - public String getBrightResStatus() { - return this.brightResStatus; - } - - public String getAreaName() { - return this.areaName; - } - - public String getAlgType() { - return this.algType; - } - - public String getObjectId() { - return this.objectId; - } - - public String getImageNormalUrlPath() { - return this.imageNormalUrlPath; - } - - public String getFilePath() { - return this.filePath; - } - - public String getSuggestion() { - return this.suggestion; - } - - public String getOriginalValue() { - return originalValue; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public void setChannelName(String channelName) { - this.channelName = channelName; - } - - public void setDeviceSource(String deviceSource) { - this.deviceSource = deviceSource; - } - - public void setPointName(String pointName) { - this.pointName = pointName; - } - public void setPointId(String pointId) { - this.pointId = pointId; - } - public void setWarnStatus(String warnStatus) { - this.warnStatus = warnStatus; - } - - public void setAlgName(String algName) { - this.algName = algName; - } - - public void setResValue(String resValue) { - this.resValue = resValue; - } - - public void setImg(String img) { - this.img = img; - } - - public void setFilterDesc(String filterDesc) { - this.filterDesc = filterDesc; - } - - public void setBrightDesc(String brightDesc) { - this.brightDesc = brightDesc; - } - - public void setImgAnalyse(String imgAnalyse) { - this.imgAnalyse = imgAnalyse; - } - public void setBrightImgAnalyse(String brightImgAnalyse) { - this.brightImgAnalyse = brightImgAnalyse; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public void setLineId(String lineId) { - this.lineId = lineId; - } - - public void setPatrolTime(String patrolTime) { - this.patrolTime = patrolTime; - } - - public void setPointStatus(String pointStatus) { - this.pointStatus = pointStatus; - } - - public void setImgType(String imgType) { - this.imgType = imgType; - } - - public void setDataType(String dataType) { - this.dataType = dataType; - } - - public void setFilter(String filter) { - this.filter = filter; - } - - public void setRequestId(String requestId) { - this.requestId = requestId; - } - - public void setResStatus(String resStatus) { - this.resStatus = resStatus; - } - public void setBrightResStatus(String brightResStatus) { - this.brightResStatus = brightResStatus; - } - - public void setAreaName(String areaName) { - this.areaName = areaName; - } - - public void setAlgType(String algType) { - this.algType = algType; - } - - public void setObjectId(String objectId) { - this.objectId = objectId; - } - - public void setImageNormalUrlPath(String imageNormalUrlPath) { - this.imageNormalUrlPath = imageNormalUrlPath; - } - - public void setFilePath(String filePath) { - this.filePath = filePath; - } - - public void setSuggestion(String suggestion) { - this.suggestion = suggestion; - } - - public void setOriginalValue(String originalValue) { - this.originalValue = originalValue; - } - - public String getTaskPatrolId() { - return taskPatrolId; - } - - public void setTaskPatrolId(String taskPatrolId) { - this.taskPatrolId = taskPatrolId; - } - - public String getAreaId() { - return areaId; - } - - public void setAreaId(String areaId) { - this.areaId = areaId; - } - protected boolean canEqual(Object other) { return other instanceof PatrolData; } - @Override public boolean equals(Object object) { if (this == object) return true; diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml index 641be86..fc608e9 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml @@ -182,6 +182,7 @@ + @@ -1479,6 +1480,8 @@ ELSE h.patrol_device_name END AS channel_name, + IF(s.pos_type = '0', g.channel_code, NULL) AS channel_code, + CASE WHEN s.pos_type = '0' THEN g.device_source ELSE h.device_source @@ -1580,4 +1583,89 @@ LEFT JOIN basedata_alg a ON s.alg_id = a.alg_id WHERE FIND_IN_SET(s.alg_subtype_code, #{codes}) + + + From 40854cc240ec3bc2e26e7c47a148651fefd02fdb Mon Sep 17 00:00:00 2001 From: yinhuaiwei Date: Tue, 15 Sep 2026 16:03:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=97=B6=E4=BC=9A=E5=B0=86?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81=E5=90=8C=E6=AD=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspect/system/controller/SysProfileController.java | 3 ++- .../com/inspect/system/controller/SysUserController.java | 3 ++- .../java/com/inspect/system/mapper/SysUserMapper.java | 2 +- .../java/com/inspect/system/service/ISysUserService.java | 4 +--- .../inspect/system/service/impl/SysUserServiceImpl.java | 9 +++------ .../src/main/resources/mapper/system/SysUserMapper.xml | 3 +-- 6 files changed, 10 insertions(+), 14 deletions(-) diff --git a/inspect-management/src/main/java/com/inspect/system/controller/SysProfileController.java b/inspect-management/src/main/java/com/inspect/system/controller/SysProfileController.java index 56120ca..079d0de 100644 --- a/inspect-management/src/main/java/com/inspect/system/controller/SysProfileController.java +++ b/inspect-management/src/main/java/com/inspect/system/controller/SysProfileController.java @@ -88,13 +88,14 @@ public class SysProfileController extends BaseController { @PostMapping({"/updatePwd"}) public AjaxResult updatePwd(String oldPassword, String newPassword) { String username = SecurityUtils.getUsername(); + Long userId = SecurityUtils.getUserId(); SysUser user = this.userService.selectUserByUserName(username); String password = user.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { return AjaxResult.error("修改密码失败,旧密码错误"); } else if (SecurityUtils.matchesPassword(newPassword, password)) { return AjaxResult.error("新密码不能与旧密码相同"); - } else if (this.userService.resetUserPwd(username, SecurityUtils.encryptPassword(newPassword)) > 0) { + } else if (this.userService.resetUserPwd(userId, SecurityUtils.encryptPassword(newPassword)) > 0) { LoginUser loginUser = SecurityUtils.getLoginUser(); String userKey = this.tokenService.getTokenKey(loginUser.getToken()); this.redisService.deleteObject(userKey); diff --git a/inspect-management/src/main/java/com/inspect/system/controller/SysUserController.java b/inspect-management/src/main/java/com/inspect/system/controller/SysUserController.java index 4def5ea..9170725 100644 --- a/inspect-management/src/main/java/com/inspect/system/controller/SysUserController.java +++ b/inspect-management/src/main/java/com/inspect/system/controller/SysUserController.java @@ -216,7 +216,8 @@ public class SysUserController extends BaseController { this.userService.checkUserDataScope(user.getUserId()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(SecurityUtils.getUsername()); - return this.toAjax(this.userService.resetPwd(user)); + logger.info("user:{}", user); + return this.toAjax(this.userService.resetUserPwd(user.getUserId(), user.getPassword())); } @RequiresPermissions({"system:user:edit"}) diff --git a/inspect-management/src/main/java/com/inspect/system/mapper/SysUserMapper.java b/inspect-management/src/main/java/com/inspect/system/mapper/SysUserMapper.java index f12431c..a390c29 100644 --- a/inspect-management/src/main/java/com/inspect/system/mapper/SysUserMapper.java +++ b/inspect-management/src/main/java/com/inspect/system/mapper/SysUserMapper.java @@ -25,7 +25,7 @@ public interface SysUserMapper { int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar); - int resetUserPwd(@Param("userName") String userName, @Param("password") String password); + int resetUserPwd(@Param("userId") Long userId, @Param("password") String password); int deleteUserById(Long id); diff --git a/inspect-management/src/main/java/com/inspect/system/service/ISysUserService.java b/inspect-management/src/main/java/com/inspect/system/service/ISysUserService.java index abdb7cf..28363cc 100644 --- a/inspect-management/src/main/java/com/inspect/system/service/ISysUserService.java +++ b/inspect-management/src/main/java/com/inspect/system/service/ISysUserService.java @@ -44,9 +44,7 @@ public interface ISysUserService { boolean updateUserAvatar(String username, String url); - int resetPwd(SysUser sysUser); - - int resetUserPwd(String username, String password); + int resetUserPwd(Long userId, String password); int deleteUserById(Long userId); diff --git a/inspect-management/src/main/java/com/inspect/system/service/impl/SysUserServiceImpl.java b/inspect-management/src/main/java/com/inspect/system/service/impl/SysUserServiceImpl.java index e5719f5..136c921 100644 --- a/inspect-management/src/main/java/com/inspect/system/service/impl/SysUserServiceImpl.java +++ b/inspect-management/src/main/java/com/inspect/system/service/impl/SysUserServiceImpl.java @@ -183,12 +183,9 @@ public class SysUserServiceImpl implements ISysUserService { return this.userMapper.updateUserAvatar(userName, avatar) > 0; } - public int resetPwd(SysUser user) { - return this.userMapper.updateUser(user); - } - - public int resetUserPwd(String userName, String password) { - return this.userMapper.resetUserPwd(userName, password); + @Override + public int resetUserPwd(Long userId, String password) { + return this.userMapper.resetUserPwd(userId, password); } public void insertUserRole(SysUser user) { diff --git a/inspect-management/src/main/resources/mapper/system/SysUserMapper.xml b/inspect-management/src/main/resources/mapper/system/SysUserMapper.xml index 0e9269d..711e636 100644 --- a/inspect-management/src/main/resources/mapper/system/SysUserMapper.xml +++ b/inspect-management/src/main/resources/mapper/system/SysUserMapper.xml @@ -225,7 +225,6 @@ phonenumber = #{phonenumber}, sex = #{sex}, avatar = #{avatar}, - password = #{password}, status = #{status}, login_ip = #{loginIp}, login_date = #{loginDate}, @@ -252,7 +251,7 @@ update sys_user set password = #{password}, pass_update_time = now() - where user_name = #{userName} + where user_id = #{userId}