diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/PointStatusEnum.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/PointStatusEnum.java new file mode 100644 index 0000000..f95cc9a --- /dev/null +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/PointStatusEnum.java @@ -0,0 +1,32 @@ +package com.inspect.base.core.enums; + +/** + * @author WGY + * 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销(忽略) 4-跟踪(告警) 5-确认(告警) 6-缺陷 + * @create 2026-03-27 15:47 + **/ +public enum PointStatusEnum { + ABNORMAL("0", "异常"), + NORMAL("1", "正常"), + WAIT_MANUAL_CONFIRMATION("2", "待人工确认"), + REVOKED("3", "已撤销(忽略)"), + TRACKING("4", "跟踪(告警)"), + CONFIRMED("5", "确认(告警)"), + DEFECT("6", "缺陷"); + + private final String code; + private final String info; + + PointStatusEnum(String code, String info) { + this.code = code; + this.info = info; + } + + public String getCode() { + return this.code; + } + + public String getInfo() { + return this.info; + } +} diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/ResStatusEnum.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/ResStatusEnum.java new file mode 100644 index 0000000..6068cb1 --- /dev/null +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/ResStatusEnum.java @@ -0,0 +1,29 @@ +package com.inspect.base.core.enums; + +/** + * @author WGY + * resStatus告警确认状态: 0-未确认 1-已确认 2-已撤销 + * @create 2026-03-27 15:53 + **/ +public enum ResStatusEnum { + + UNCONFIRM("0", "未确认"), + CONFIRM("1", "已确认"), + CANCEL("2", "已撤销"); + + private final String code; + private final String info; + + ResStatusEnum(String code, String info) { + this.code = code; + this.info = info; + } + + public String getCode() { + return this.code; + } + + public String getInfo() { + return this.info; + } +} diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/ResultTypeEnum.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/ResultTypeEnum.java new file mode 100644 index 0000000..e72cd3e --- /dev/null +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/enums/ResultTypeEnum.java @@ -0,0 +1,28 @@ +package com.inspect.base.core.enums; + +/** + * @author WGY + * resultType分析结果: 0-缺陷 1-正常 2-异常 + * @create 2026-03-27 15:51 + **/ +public enum ResultTypeEnum { + DEFECT("0", "缺陷"), + NORMAL("1", "正常"), + ABNORMAL("2", "异常"); + + private final String code; + private final String info; + + ResultTypeEnum(String code, String info) { + this.code = code; + this.info = info; + } + + public String getCode() { + return this.code; + } + + public String getInfo() { + return this.info; + } +} 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 a00c831..a51e325 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 @@ -32,7 +32,7 @@ public class ResultAnalysis extends BaseEntity { private String resultContent; private String resStatus; /** - * 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销(忽略) 4-跟踪(告警) 5-确认(告警) + * 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销(忽略) 4-跟踪(告警) 5-确认(告警) 6-缺陷 */ private String pointStatus; private String beginTime; 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 47b730b..3c67d0e 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 @@ -7,6 +7,7 @@ import com.inspect.analysis.domain.AlgValue; import com.inspect.analysis.domain.AnalyseResPoint; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.base.core.constant.AlgConstants; +import com.inspect.base.core.enums.PointStatusEnum; import com.inspect.base.core.utils.StringUtils; import com.inspect.message.MessageUtils; import lombok.extern.slf4j.Slf4j; @@ -57,7 +58,7 @@ public class ResultAnalysisUtils { /** * 解析算法结果 - * pointStatus点位状态: 0-异常 1-正常 2-待人工确认 + * pointStatus点位状态: 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销(忽略) 4-跟踪(告警) 5-确认(告警) 6-缺陷 * resultType分析结果: 0-缺陷 1-正常 2-异常 * resStatus告警确认状态: 0-未确认 1-已确认 2-已撤销 */ @@ -104,6 +105,7 @@ public class ResultAnalysisUtils { resultAnalysis.setResStatus("0"); if ("meter".equals(algType)) { resultAnalysis.setResultType("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); defaultDesc = messageUtils.get("读数失败"); } else if ("infrared".equals(algType)) { defaultDesc = messageUtils.get("读数失败"); @@ -181,7 +183,7 @@ public class ResultAnalysisUtils { Double.parseDouble(valueArr[0]); log.info("PARSE_ALG_METER_ALARM_VALUE_PARSE value: {}", valueArr[0]); resultAnalysis.setResStatus("0"); - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); defaultDesc = messageUtils.get("表计超限"); } catch (Exception e) { @@ -225,7 +227,7 @@ public class ResultAnalysisUtils { } String descStr = mapper.writeValueAsString(descList); if (hasDefect) { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResStatus("0"); resultAnalysis.setResultType("0"); defaultDesc = descStr; @@ -254,7 +256,7 @@ public class ResultAnalysisUtils { defaultDesc = messageUtils.get("正常"); } else { resultAnalysis.setResStatus("0"); - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); defaultDesc = messageUtils.get("异常"); } @@ -287,7 +289,7 @@ public class ResultAnalysisUtils { log.info("infrared alarm value: {}, algValue: {}", value, algValue); resultAnalysis.setResStatus("0"); //resultAnalysis.setPointStatus("2"); - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); //defaultDesc = device + messageUtils.get("告警"); defaultDesc = messageUtils.get("温度异常告警"); @@ -304,17 +306,17 @@ public class ResultAnalysisUtils { } else if (value.equals("2")) { defaultDesc = "合"; } else if (value.equals("3")) { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "分位异常"; } else if (value.equals("4")) { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "合位异常"; } else { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "未检测到刀闸"; @@ -362,7 +364,7 @@ public class ResultAnalysisUtils { } } else { log.info("parseAlg algType correction correctionValue abnormal"); - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "纠偏结果异常"; @@ -398,31 +400,31 @@ public class ResultAnalysisUtils { resultAnalysis.setResDesc(defaultDesc); } else { log.info("2001 correction need value0: {}, value1: {}, value2: {}, value3: {}", value0, value1, value2, value3); - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("3"); defaultDesc = "纠偏码异常请进行纠偏"; } } else { log.info("2001 parseAlg algType correction correctionValue abnormal"); - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "纠偏码和值均异常"; } } else if ("2002".equals(resultAnalysis.getResCode())) { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "超出比对范围"; } else if ("2003".equals(resultAnalysis.getResCode())) { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = "图像数据错误"; } else { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); defaultDesc = messageUtils.get("未知异常"); @@ -438,7 +440,7 @@ public class ResultAnalysisUtils { resultAnalysis.setResDesc(defaultDesc); resultAnalysis.setSuggestion(messageUtils.get("系统审核")); } else if (value.equals("1")) { - resultAnalysis.setPointStatus("0"); + resultAnalysis.setPointStatus(PointStatusEnum.DEFECT.getCode()); resultAnalysis.setResultType("0"); resultAnalysis.setResStatus("0"); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java index ff3d09e1..fad4f11 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java @@ -1,5 +1,6 @@ package com.inspect.insreport.controller; +import com.github.pagehelper.PageInfo; import com.inspect.base.core.sftp.SftpClient; import com.inspect.base.core.sftp.SftpUploadEntity; import com.inspect.base.core.sftp.ftpClient; @@ -7,7 +8,9 @@ import com.inspect.base.core.utils.DateUtils; import com.inspect.base.core.utils.StringUtils; import com.inspect.base.core.web.controller.BaseController; import com.inspect.base.core.web.domain.AjaxResult; +import com.inspect.base.core.web.page.PageDomain; import com.inspect.base.core.web.page.TableDataInfo; +import com.inspect.base.core.web.page.TableSupport; import com.inspect.common.log.annotation.Log; import com.inspect.common.log.enums.BizType; import com.inspect.img.domain.InspectionReportImg; @@ -19,51 +22,29 @@ import com.inspect.insreportdata.service.IInspectionReportDataService; import com.inspect.message.MessageUtils; import com.inspect.taskftp.domain.PatrolTaskFtp; import com.inspect.taskftp.service.IPatrolTaskFtpService; +import com.inspect.taskstatus.domain.PatrolTaskStatus; +import com.inspect.taskstatus.service.IPatrolTaskStatusService; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.util.CellRangeAddress; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.zip.Adler32; import java.util.zip.CheckedOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.inspect.taskstatus.domain.PatrolTaskStatus; -import com.inspect.taskstatus.service.IPatrolTaskStatusService; -import org.apache.poi.hssf.usermodel.HSSFCell; -import org.apache.poi.hssf.usermodel.HSSFCellStyle; -import org.apache.poi.hssf.usermodel.HSSFClientAnchor; -import org.apache.poi.hssf.usermodel.HSSFFont; -import org.apache.poi.hssf.usermodel.HSSFPatriarch; -import org.apache.poi.hssf.usermodel.HSSFRow; -import org.apache.poi.hssf.usermodel.HSSFSheet; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.BorderStyle; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.VerticalAlignment; -import org.apache.poi.ss.util.CellRangeAddress; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping({"/insreport"}) @@ -90,11 +71,36 @@ public class InspectionReportController extends BaseController { @GetMapping({"/list"}) public TableDataInfo list(InspectionReport inspectionReport) { - startPage(); +// startPage(); List inspectionReportList = inspectionReportService.selectByAllList(inspectionReport); - logger.info("[REPORT] inspectionReportList size: {}", inspectionReportList.size()); - return getDataTable(inspectionReportList); + logger.info("[REPORT] inspectionReportList size: {}", inspectionReportList.size()); + // 根据 inspectionTaskName 和 inspectionDate 组合去重 + List distinctList = inspectionReportList.stream() + .collect(Collectors.collectingAndThen( + Collectors.toMap( + report -> report.getInspectionTaskName() + "_" + + (report.getInspectionDate() != null ? DateUtils.format("yyyy-MM-dd",report.getInspectionDate()) : "null"), + Function.identity(), + (existing, replacement) -> existing + ), + map -> map.values().stream() + .sorted(Comparator.comparing(InspectionReport::getInspectionDate, + Comparator.nullsLast(Comparator.reverseOrder()))) + .collect(Collectors.toList()) + )); + + PageDomain pageDomain = TableSupport.buildPageRequest(); + int pageNum = pageDomain.getPageNum(); + int pageSize = pageDomain.getPageSize(); + int toNum = Math.min(distinctList.size(), pageNum * pageSize); + List pageList = distinctList.subList((pageNum - 1) * pageSize, toNum); + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(200); + rspData.setRows(pageList); + rspData.setMsg("查询成功"); + rspData.setTotal((new PageInfo<>(distinctList)).getTotal()); + return rspData; } public Map getImgMap() { @@ -245,6 +251,12 @@ public class InspectionReportController extends BaseController { if (StringUtils.isNotBlank(imgUrls)) { reportData.setInspectionImg(imgUrls); } + if (StringUtils.isEmpty(reportData.getTaskName())) { + reportData.setTaskName(inspectionReport.getInspectionTaskName()); + } + if (StringUtils.isEmpty(reportData.getTaskPatrolledId())) { + reportData.setTaskPatrolledId(inspectionReport.getTaskPatrolledId()); + } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java index 81cf5a5..ac7a50c 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java @@ -9,6 +9,7 @@ import com.inspect.analysis.service.IResultAnalysisService; import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.domain.DataMsg; +import com.inspect.base.core.enums.PointStatusEnum; import com.inspect.base.core.enums.TaskStatus; import com.inspect.base.core.service.SyncDataToUpstreamService; import com.inspect.base.core.sftp.SftpClient; @@ -379,6 +380,7 @@ public class PatrolTaskController extends BaseController { } } } + item.setImgAnalyse(null); item.setFilterDesc(item.getDesc()); item.setDesc(""); } @@ -507,6 +509,12 @@ public class PatrolTaskController extends BaseController { util.exportExcel(response, list, "巡视任务(任务模型文件数据)数据"); } + /** + * 信息 + * + * @param object + * @return + */ @GetMapping({"/{taskId}"}) public AjaxResult getInfo(@PathVariable("taskId") Object object) { long taskId; @@ -3285,7 +3293,7 @@ public class PatrolTaskController extends BaseController { Map map1 = new HashMap<>(); if (!listPointStatus.contains(item.getPointStatus())) { - // 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销(忽略) 4-跟踪(告警) 5-确认(告警) + // 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销(忽略) 4-跟踪(告警) 5-确认(告警) 6-缺陷 if (StringUtils.isNotEmpty(item.getPointStatus())) { if (item.getPointStatus().equals("1")) { map1.put("value", "1"); @@ -3317,6 +3325,11 @@ public class PatrolTaskController extends BaseController { map1.put("label", MessageUtils.get("确认")); } + if (item.getPointStatus().equals(PointStatusEnum.DEFECT.getCode())) { + map1.put("value", "6"); + map1.put("label", MessageUtils.get("缺陷")); + } + listPointStatus.add(item.getPointStatus()); mapList.add(map1); } else {