Browse Source

feat:缺陷记录卡片接口

master
wangguangyuan 1 month ago
parent
commit
d2c50dcf06
5 changed files with 147 additions and 10 deletions
  1. +114
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java
  2. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java
  3. +12
    -9
      inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java
  4. +11
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java
  5. +8
    -1
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml

+ 114
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java View File

@ -639,6 +639,120 @@ public class ResultAnalysisController extends BaseController {
// } // }
} }
/**
* 缺陷记录将确认缺陷的数据展示在这
* @return
*/
@GetMapping({"/defect/list"})
public TableDataInfo defectList() {
ResultAnalysis resultAnalysis = new ResultAnalysis();
resultAnalysis.setPointStatusList(Arrays.asList(PointStatusEnum.CONFIRMED.getCode(), PointStatusEnum.TRACKING.getCode()));
// 查出全部数据
List<PatrolData> allList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis);
Map<String, String> imageNormalMap = allList.parallelStream()
.filter(patrolData -> StringUtils.isNotEmpty(patrolData.getImageNormalUrlPath()))
.collect(Collectors.toMap(
patrolData -> patrolData.getTaskPatrolId() + "_" + patrolData.getObjectId() + "_" + patrolData.getAlgType(),
PatrolData::getImageNormalUrlPath,
(existing, replacement) -> existing
));
// 筛出缺陷数据
List<PatrolData> filterList = allList.parallelStream().filter(patrolData -> "0".equals(patrolData.getWarnStatus())).collect(Collectors.toList());
List<AlgInfo> algInfos = patrolResultService.selectAlgInfo(new PatrolResult());
filterList.forEach((item) -> {
item.setAlgName((algInfos.stream().anyMatch((alg) -> {
return alg.getAlgSubtypeCode().equals(item.getAlgType());
}) ? algInfos.stream().filter((alg) -> {
return alg.getAlgSubtypeCode().equals(item.getAlgType());
}).findFirst().get().getAlgSubtypeName() : ""));
if ("1".equals(item.getFilter())) {
item.setImg(item.getImageNormalUrlPath());
}
AlgValue algValue = new AlgValue();
if(item.getResValue() != null) {
String str = algValue.formatValue(item.getResValue());
if ("meter".equals(item.getAlgType())) {
if (str.equals("-1")) {
item.setResValue("空值");
}
}
}
});
Map<String, List<PatrolData>> groupedFilterList = filterList.stream().collect(Collectors.groupingBy(item -> item.getTaskPatrolId() + "|" + item.getObjectId() + "|" + item.getAlgType()));
List<PatrolData> resultList = new ArrayList<>();
groupedFilterList.forEach((key, value) -> {
PatrolData patrolData = new PatrolData();
String[] keys = key.split("\\|");
if(keys.length != 3) {
logger.error("key format error: " + key);
}
String taskPatrolId = keys[0];
String objectId = keys[1];
String algType = keys[2];
patrolData.setTaskPatrolId(taskPatrolId);
patrolData.setObjectId(objectId);
patrolData.setAlgType(algType);
patrolData.setDesc(value.stream().map(PatrolData::getDesc).distinct().collect(Collectors.joining(",")));
for (PatrolData data : value) {
// 初筛有缺陷 展示初筛结果图片
if ("1".equals(data.getFilter()) && StringUtils.isEmpty(patrolData.getImgAnalyse())) {
patrolData.setImgAnalyse(data.getImgAnalyse());
}
if ("1".equals(data.getFilter()) && StringUtils.isEmpty(patrolData.getImg())) {
patrolData.setImg(data.getImg());
}
// 大模型有缺陷 展示大模型结果图片
if ("0".equals(data.getFilter())) {
patrolData.setImgAnalyse(data.getImgAnalyse());
patrolData.setImg(data.getImg());
}
}
String imageNormalPath = imageNormalMap.getOrDefault(taskPatrolId + "_" + objectId + "_" + algType, "");
patrolData.setImageNormalUrlPath(imageNormalPath);
patrolData.setAlgName(value.stream().map(item -> item.getAlgName() != null ? item.getAlgName() : "").distinct().findFirst().orElse(""));
patrolData.setAreaName(value.stream().map(item -> item.getAreaName() != null ? item.getAreaName() : "").distinct().findFirst().orElse(""));
patrolData.setBrightDesc(value.stream().map(item -> item.getBrightDesc() != null ? item.getBrightDesc() : "").distinct().findFirst().orElse(""));
patrolData.setBrightImgAnalyse(value.stream().map(item -> item.getBrightImgAnalyse() != null ? item.getBrightImgAnalyse() : "").distinct().findFirst().orElse(""));
patrolData.setBrightResStatus(value.stream().map(item -> item.getBrightResStatus() != null ? item.getBrightResStatus() : "").distinct().findFirst().orElse(""));
patrolData.setChannelName(value.stream().map(item -> item.getChannelName() != null ? item.getChannelName() : "").distinct().findFirst().orElse(""));
patrolData.setDataType(value.stream().map(item -> item.getDataType() != null ? item.getDataType() : "").distinct().findFirst().orElse(""));
patrolData.setDeviceName(value.stream().map(item -> item.getDeviceName() != null ? item.getDeviceName() : "").distinct().findFirst().orElse(""));
patrolData.setDeviceSource(value.stream().map(item -> item.getDeviceSource() != null ? item.getDeviceSource() : "").distinct().findFirst().orElse(""));
patrolData.setImgType(value.stream().map(item -> item.getImgType() != null ? item.getImgType() : "").distinct().findFirst().orElse(""));
patrolData.setLineId(value.stream().map(PatrolData::getLineId).distinct().collect(Collectors.joining(",")));
patrolData.setPatrolTime(value.stream().map(item -> item.getPatrolTime() != null ? item.getPatrolTime() : "").distinct().findFirst().orElse(""));
patrolData.setPointId(value.stream().map(item -> item.getPointId() != null ? item.getPointId() : "").distinct().findFirst().orElse(""));
patrolData.setPointName(value.stream().map(item -> item.getPointName() != null ? item.getPointName() : "").distinct().findFirst().orElse(""));
patrolData.setPointStatus(value.stream().map(item -> item.getPointStatus() != null ? item.getPointStatus() : "").distinct().findFirst().orElse(""));
patrolData.setRequestId(value.stream().map(item -> item.getRequestId() != null ? item.getRequestId() : "").distinct().findFirst().orElse(""));
patrolData.setResValue(value.stream().map(item -> item.getResValue() != null ? item.getResValue() : "").distinct().findFirst().orElse(""));
patrolData.setResStatus(value.stream().map(item -> item.getResStatus() != null ? item.getResStatus() : "").distinct().findFirst().orElse(""));
patrolData.setSuggestion(value.stream().map(item -> item.getSuggestion() != null ? item.getSuggestion() : "").distinct().findFirst().orElse(""));
patrolData.setWarnStatus(value.stream().map(item -> item.getWarnStatus() != null ? item.getWarnStatus() : "").distinct().findFirst().orElse(""));
resultList.add(patrolData);
});
// null 的值按降序排列最新的时间在前,null的在最后面排列
resultList.sort(Comparator.comparing(PatrolData::getPatrolTime,
Comparator.nullsLast(Comparator.reverseOrder())));
PageDomain pageDomain = TableSupport.buildPageRequest();
int pageNum = pageDomain.getPageNum();
int pageSize = pageDomain.getPageSize();
int toNum = Math.min(resultList.size(), pageNum * pageSize);
List<PatrolData> pageList = resultList.subList((pageNum - 1) * pageSize, toNum);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(200);
rspData.setRows(pageList);
rspData.setMsg("查询成功");
rspData.setTotal((new PageInfo<>(resultList)).getTotal());
return rspData;
}
//初筛大模型一起查询 //初筛大模型一起查询
@GetMapping({"/list_v2_ex"}) @GetMapping({"/list_v2_ex"})
public TableDataInfo listV2Ex(PatrolTaskStatus patrolTaskStatus) { public TableDataInfo listV2Ex(PatrolTaskStatus patrolTaskStatus) {


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/ResultAnalysis.java View File

@ -10,6 +10,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.Date; import java.util.Date;
import java.util.List;
@Setter @Setter
@Getter @Getter
@ -35,6 +36,7 @@ public class ResultAnalysis extends BaseEntity {
* 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销忽略 4-跟踪告警 5-确认告警 6-缺陷 * 点位状态 0-异常 1-正常 2-待人工确认 3-已撤销忽略 4-跟踪告警 5-确认告警 6-缺陷
*/ */
private String pointStatus; private String pointStatus;
private List<String> pointStatusList;
private String beginTime; private String beginTime;
private String endTime; private String endTime;
private String suggestion; private String suggestion;


+ 12
- 9
inspect-main/inspect-main-task/src/main/java/com/inspect/insreport/controller/InspectionReportController.java View File

@ -126,10 +126,12 @@ public class InspectionReportController extends BaseController {
return map; return map;
} }
@GetMapping({"/{lineId}/{filter}"})
public AjaxResult getInfo(@PathVariable("lineId") Long lineId, @PathVariable(value = "filter",required = false) String filter) {
InspectionReport inspectionReport = inspectionReportService.selectInspectionReportByLineId(lineId);
if(inspectionReport == null) {
@GetMapping({"/{type}/{lineId}/{filter}"})
public AjaxResult getInfo(@PathVariable("type") String type, @PathVariable("lineId") Long lineId, @PathVariable(value = "filter",required = false) String filter) {
InspectionReport inspectionReport = new InspectionReport();
if ("report".equals(type)) {
inspectionReport = inspectionReportService.selectInspectionReportByLineId(lineId);
} else if("taskStatus".equals(type)) {
// 暂时这么处理进度条报告入口lineId传的是patrolTaskStatus的lineId // 暂时这么处理进度条报告入口lineId传的是patrolTaskStatus的lineId
PatrolTaskStatus patrolTaskStatus = patrolTaskStatusService.selectPatrolTaskStatusByLineId(lineId); PatrolTaskStatus patrolTaskStatus = patrolTaskStatusService.selectPatrolTaskStatusByLineId(lineId);
String taskPatrolledId = patrolTaskStatus.getTaskPatrolledId(); String taskPatrolledId = patrolTaskStatus.getTaskPatrolledId();
@ -192,14 +194,15 @@ public class InspectionReportController extends BaseController {
return AjaxResult.success(inspectionReport); return AjaxResult.success(inspectionReport);
} }
@GetMapping({"/shaoxing/{lineId}/{filter}"})
public AjaxResult getInfo_shaoxing(@PathVariable("lineId") Long lineId, @PathVariable(value = "filter",required = false) String filter) {
InspectionReport inspectionReport = inspectionReportService.selectInspectionReportByLineId(lineId);
if(inspectionReport == null) {
@GetMapping({"/shaoxing/{type}/{lineId}/{filter}"})
public AjaxResult getInfo_shaoxing(@PathVariable("type") String type, @PathVariable("lineId") Long lineId, @PathVariable(value = "filter",required = false) String filter) {
InspectionReport inspectionReport = new InspectionReport();
if ("report".equals(type)) {
inspectionReport = inspectionReportService.selectInspectionReportByLineId(lineId);
} else if("taskStatus".equals(type)) {
// 暂时这么处理进度条报告入口lineId传的是patrolTaskStatus的lineId // 暂时这么处理进度条报告入口lineId传的是patrolTaskStatus的lineId
PatrolTaskStatus patrolTaskStatus = patrolTaskStatusService.selectPatrolTaskStatusByLineId(lineId); PatrolTaskStatus patrolTaskStatus = patrolTaskStatusService.selectPatrolTaskStatusByLineId(lineId);
String taskPatrolledId = patrolTaskStatus.getTaskPatrolledId(); String taskPatrolledId = patrolTaskStatus.getTaskPatrolledId();
inspectionReport = new InspectionReport();
inspectionReport.setTaskPatrolledId(taskPatrolledId); inspectionReport.setTaskPatrolledId(taskPatrolledId);
inspectionReport.setFilter(filter); inspectionReport.setFilter(filter);
logger.info("进度条报告查看,filter:{},taskPatrolledId:{}", filter, taskPatrolledId); logger.info("进度条报告查看,filter:{},taskPatrolledId:{}", filter, taskPatrolledId);


+ 11
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java View File

@ -83,6 +83,8 @@ public class PatrolData implements Comparable<PatrolData> {
// 纠偏后的图片 // 纠偏后的图片
private String originalValue; private String originalValue;
private String taskPatrolId;
public String warnStatus(String ws) { public String warnStatus(String ws) {
byte var3 = -1; byte var3 = -1;
@ -364,6 +366,14 @@ public class PatrolData implements Comparable<PatrolData> {
this.originalValue = originalValue; this.originalValue = originalValue;
} }
public String getTaskPatrolId() {
return taskPatrolId;
}
public void setTaskPatrolId(String taskPatrolId) {
this.taskPatrolId = taskPatrolId;
}
protected boolean canEqual(Object other) { protected boolean canEqual(Object other) {
return other instanceof PatrolData; return other instanceof PatrolData;
} }
@ -415,6 +425,7 @@ public class PatrolData implements Comparable<PatrolData> {
", filePath='" + filePath + '\'' + ", filePath='" + filePath + '\'' +
", suggestion='" + suggestion + '\'' + ", suggestion='" + suggestion + '\'' +
", originalValue='" + originalValue + '\'' + ", originalValue='" + originalValue + '\'' +
", taskPatrolId='" + taskPatrolId + '\'' +
'}'; '}';
} }
} }

+ 8
- 1
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml View File

@ -184,6 +184,7 @@
<result property="imageNormalUrlPath" column="image_normal_url_path"/> <result property="imageNormalUrlPath" column="image_normal_url_path"/>
<result property="filePath" column="file_path"/> <result property="filePath" column="file_path"/>
<result property="originalValue" column="original_value"/> <result property="originalValue" column="original_value"/>
<result property="taskPatrolId" column="task_patrol_id"/>
</resultMap> </resultMap>
<select id="selectPatrolDataResultByTaskCode" parameterType="PatrolResult" resultMap="PatrolDataResult"> <select id="selectPatrolDataResultByTaskCode" parameterType="PatrolResult" resultMap="PatrolDataResult">
@ -241,7 +242,8 @@
b.alg_type, b.alg_type,
b.objectId, b.objectId,
b.suggestion, b.suggestion,
b.res_value
b.res_value,
b.task_patrol_id
<if test="posType != null and posType != '' and posType == '0'.toString"> <if test="posType != null and posType != '' and posType == '0'.toString">
, ,
g.channel_name, g.channel_name,
@ -290,6 +292,11 @@
<if test="pointStatus != null and pointStatus != ''"> <if test="pointStatus != null and pointStatus != ''">
and b.point_status = #{pointStatus} and b.point_status = #{pointStatus}
</if> </if>
<if test="pointStatusList != null and pointStatusList != ''">and b.point_status in
<foreach item="pointStatus" collection="pointStatusList" open="(" separator="," close=")">
#{pointStatus}
</foreach>
</if>
<if test="pointName != null and pointName != ''">and a.device_name like concat('%', #{pointName}, '%')</if> <if test="pointName != null and pointName != ''">and a.device_name like concat('%', #{pointName}, '%')</if>
<if test="deviceName != null and deviceName != ''">and d.device_name like concat('%', #{deviceName}, '%') <if test="deviceName != null and deviceName != ''">and d.device_name like concat('%', #{deviceName}, '%')
</if> </if>


Loading…
Cancel
Save