Browse Source

缺陷记录新增筛选条件

master
WangGuangYuan 4 weeks ago
parent
commit
bb02825bc5
5 changed files with 124 additions and 5 deletions
  1. +42
    -5
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java
  2. +3
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java
  3. +3
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java
  4. +6
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java
  5. +70
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml

+ 42
- 5
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java View File

@ -644,14 +644,12 @@ public class ResultAnalysisController extends BaseController {
/**
* 缺陷记录(将确认缺陷的数据展示在这)
* @param query 查询条件:点位名称、算法名称(下拉,选项见 /defect/algNameOptions)、采集时间范围
* @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);
public TableDataInfo defectList(DefectListQuery query) {
List<PatrolData> allList = patrolResultService.selectDefectList(query);
Map<String, String> imageNormalMap = allList.parallelStream()
.filter(patrolData -> StringUtils.isNotEmpty(patrolData.getImageNormalUrlPath()))
@ -742,6 +740,11 @@ public class ResultAnalysisController extends BaseController {
resultList.add(patrolData);
});
// 算法名称筛选:algType 属于聚合分组维度,按聚合记录的 algName 精确匹配,命中记录整条保留(多条缺陷描述不会丢失)
if (query != null && StringUtils.isNotEmpty(query.getAlgName())) {
String selectedAlgName = query.getAlgName();
resultList.removeIf(item -> !selectedAlgName.equals(item.getAlgName()));
}
// 非 null 的值按降序排列(最新的时间在前),null的在最后面排列
resultList.sort(Comparator.comparing(PatrolData::getPatrolTime,
Comparator.nullsLast(Comparator.reverseOrder())));
@ -761,6 +764,40 @@ public class ResultAnalysisController extends BaseController {
return rspData;
}
/**
* 缺陷记录-算法名称下拉选项(返回去重后的 algName 值,供 /defect/list 的算法名称下拉筛选使用)
* @param query 查询条件:点位名称、采集时间范围(algName 不参与查询,避免选项被自身过滤)
* @return
*/
@GetMapping({"/defect/algNameOptions"})
public AjaxResult defectAlgNameOptions(DefectListQuery query) {
List<PatrolData> allList = patrolResultService.selectDefectList(query);
List<AlgInfo> algInfos = patrolResultService.selectAlgInfo(new PatrolResult());
// 仅取缺陷数据(与 /defect/list 口径一致),按 algType 解析出 algName 后去重、按字典序返回
List<String> algNameOptions = allList.stream()
.filter(data -> "0".equals(data.getWarnStatus()))
.map(data -> resolveAlgName(algInfos, data.getAlgType()))
.filter(StringUtils::isNotEmpty)
.distinct()
.sorted()
.collect(Collectors.toList());
return AjaxResult.success(algNameOptions);
}
/**
* 按算法类型解析算法名称,口径与 /defect/list 明细行分配的 algName 一致(未匹配到时返回空串)。
*/
private String resolveAlgName(List<AlgInfo> algInfos, String algType) {
if (algInfos == null) {
return "";
}
return algInfos.stream()
.filter(alg -> alg.getAlgSubtypeCode() != null && alg.getAlgSubtypeCode().equals(algType))
.map(AlgInfo::getAlgSubtypeName)
.findFirst()
.orElse("");
}
/**
* 新的关系树
* @param areaIdS


+ 3
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java View File

@ -1,6 +1,7 @@
package com.inspect.partrolresult.mapper;
import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.analysis.domain.DefectListQuery;
import com.inspect.partrolresult.domain.*;
import com.inspect.statistics.domain.TaskStatisticsConfig;
import com.inspect.system.base.openDomain.BasedataEqpBookMoMain;
@ -34,6 +35,8 @@ public interface PatrolResultMapper {
List<PatrolData> selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis);
List<PatrolData> selectDefectList(DefectListQuery query);
List<PatrolData> selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus);
List<BasedataEqpBookMoMain> selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpBookMoMain);


+ 3
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java View File

@ -1,6 +1,7 @@
package com.inspect.partrolresult.service;
import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.analysis.domain.DefectListQuery;
import com.inspect.insreport.domain.InspectionReport;
import com.inspect.partrolresult.domain.*;
import com.inspect.resultmain.domain.PatrolTaskResultMain;
@ -30,6 +31,8 @@ public interface IPatrolResultService {
List<PatrolData> selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis);
List<PatrolData> selectDefectList(DefectListQuery query);
List<PatrolData> selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus);
List<BasedataEqpBookMoMain> selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpbookMomain);


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

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.inspect.analysis.domain.AlgValue;
import com.inspect.analysis.domain.AnalyseResPoint;
import com.inspect.analysis.domain.DefectListQuery;
import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.analysis.mapper.ResultAnalysisMapper;
import com.inspect.analysis.utils.ResultAnalysisUtils;
@ -147,6 +148,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService {
return this.patrolResultMapper.selectPatrolDataResultByTaskCodeV3(resultAnalysis);
}
@Override
public List<PatrolData> selectDefectList(DefectListQuery query) {
return patrolResultMapper.selectDefectList(query);
}
public List<PatrolData> selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus) {
return patrolResultMapper.selectPatrolDataResultByTaskCodeList(patrolTaskStatus);
}


+ 70
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml View File

@ -346,6 +346,76 @@
</where>
ORDER BY line_id desc
</select>
<select id="selectDefectList" parameterType="com.inspect.analysis.domain.DefectListQuery"
resultMap="PatrolDataResult">
select
b.line_id,
a.device_name as point_name,
a.device_id as point_id,
a.create_time as patrol_time,
b.point_status,
b.result_type as warn_status,
b.description as 'desc',
case when b.filter = '0' then a.file_path else b.res_img_url end as img,
b.image_normal_url_path,
a.file_path,
a.file_type as img_type,
a.data_type,
b.filter,
b.request_id,
b.res_img_url as img_analysis,
b.original_value,
b.res_status,
d.device_name,
e.area_name,
d.area_id,
b.alg_type,
b.objectId,
b.suggestion,
b.res_value,
b.task_patrol_id,
a.task_name
from patrol_result a
inner join result_analysis b
on a.line_id = b.business_id
and a.task_patrolled_id = b.task_patrol_id
and a.device_id = b.objectId
left join basedata_patrolpoint c on a.device_id = c.patrol_point_id
left join basedata_device d on c.device_id = d.device_id
left join basedata_area e on e.area_id = d.area_id
<where>
<choose>
<when test="taskPatrolIds != null and !taskPatrolIds.isEmpty()">
and a.task_patrolled_id in
<foreach collection="taskPatrolIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
and b.task_patrol_id in
<foreach collection="taskPatrolIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</when>
</choose>
and b.result_type = '0'
and b.point_status = '4' or b.point_status = '5'
<if test="filter != null and filter != ''">and b.filter = #{filter}</if>
<if test="algType != null and algType != ''">and b.alg_type = #{algType}</if>
<if test="areaId != null and areaId != ''">and d.area_id = #{areaId}</if>
<if test="deviceId != null and deviceId != ''">and d.device_id = #{deviceId}</if>
<if test="pointId != null and pointId != ''">and a.device_id = #{pointId}</if>
<if test="taskCode != null and taskCode != ''">and a.task_code = #{taskCode}</if>
<if test="pointName != null and pointName != ''">and a.device_name like concat('%', #{pointName}, '%')</if>
<if test="taskName != null and taskName != ''">and a.task_name like concat('%', #{taskName}, '%')</if>
<if test="deviceName != null and deviceName != ''">and d.device_name like concat('%', #{deviceName}, '%')</if>
<if test="beginTime != null and beginTime != ''">and a.create_time &gt;= concat(#{beginTime}, ' 00:00:00')</if>
<if test="endTime != null and endTime != ''">and a.create_time &lt;= concat(#{endTime}, ' 23:59:59')</if>
</where>
order by b.task_patrol_id, b.objectId, b.alg_type,
case b.filter when '1' then 1 when '0' then 2 else 3 end,
a.create_time, b.line_id
</select>
<resultMap type="com.inspect.system.base.openDomain.BasedataEqpBookMoMain" id="BasedataEqpBookResult">
<result property="eqpBookId" column="eqp_book_id"/>
<result property="stationName" column="station_name"/>


Loading…
Cancel
Save