Browse Source

feat: patrol_task表新增specified_alg字段,用于任务指定如纠偏等算法类型(可根据注释“任务指定算法类型”查看逻辑路径);去掉纠偏算法合并逻辑

master v1.2.0
yinhuaiwei 3 days ago
parent
commit
25b246a011
18 changed files with 201 additions and 193 deletions
  1. +1
    -1
      inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java
  2. +1
    -0
      inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTask.java
  3. +4
    -0
      inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java
  4. +19
    -22
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  5. +1
    -0
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  6. +0
    -3
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java
  7. +12
    -34
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  8. +5
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java
  9. +6
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java
  10. +26
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java
  11. +0
    -34
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java
  12. +2
    -53
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolTask.java
  13. +5
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java
  14. +1
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/domain/PatrolTaskStatus.java
  15. +46
    -35
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java
  16. +16
    -1
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml
  17. +3
    -1
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml
  18. +53
    -7
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskStatusMapper.xml

+ 1
- 1
inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java View File

@ -34,7 +34,7 @@ public class AlgConstants {
INFRARED2, INFRARED2,
"isolator", "isolator",
"gis_meter", "gis_meter",
"correction",
CORRECTION,
"switch", "switch",
GIS_METER_2 GIS_METER_2
); );


+ 1
- 0
inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTask.java View File

@ -99,6 +99,7 @@ public class PatrolTask extends BaseEntity {
private String areaName; private String areaName;
private List<PatrolTaskInfo> eqPointList; private List<PatrolTaskInfo> eqPointList;
private List<PatrolTaskStatus> patrolTaskStatusList; private List<PatrolTaskStatus> patrolTaskStatusList;
private String specifiedAlg;
@Override @Override
public boolean equals(Object object) { public boolean equals(Object object) {


+ 4
- 0
inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java View File

@ -52,4 +52,8 @@ public class PatrolTaskExecRecord extends BaseEntity {
private Integer finishNumber; private Integer finishNumber;
private Integer cursorNumber; private Integer cursorNumber;
private Integer rebootTimes; private Integer rebootTimes;
/**
* 任务指定算法类型
*/
private String specifiedAlg;
} }

+ 19
- 22
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -490,7 +490,7 @@ public class JobMainTask {
private PatrolTaskExecRecord prePointExec(PatrolTaskExecRecord taskExecRecord, PatrolTaskInfo patrolTaskInfo, int infoListSize) { private PatrolTaskExecRecord prePointExec(PatrolTaskExecRecord taskExecRecord, PatrolTaskInfo patrolTaskInfo, int infoListSize) {
String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
final PatrolPresetPosSlim presetPos = queryPatrolPresetPos(uuid, patrolTaskInfo.getDeviceId()); final PatrolPresetPosSlim presetPos = queryPatrolPresetPos(uuid, patrolTaskInfo.getDeviceId());
if(StringUtils.isNotEmpty(presetPos.getAddress())) {
if (StringUtils.isNotEmpty(presetPos.getAddress())) {
log.info("prePointExec remake infrared address: raw: {}", presetPos.getAddress()); log.info("prePointExec remake infrared address: raw: {}", presetPos.getAddress());
String infraredAddress = getInfraredAddress(3, presetPos); String infraredAddress = getInfraredAddress(3, presetPos);
presetPos.setAddress(infraredAddress); presetPos.setAddress(infraredAddress);
@ -527,7 +527,6 @@ public class JobMainTask {
String taskPatrolId = taskExecRecord.getTaskPatrolId(); String taskPatrolId = taskExecRecord.getTaskPatrolId();
if (PresetAction.PHOTO.getCode().equals(presetAction.getActionType())) { if (PresetAction.PHOTO.getCode().equals(presetAction.getActionType())) {
final String chanType = presetPos.getChannelType(); final String chanType = presetPos.getChannelType();
fileTypes.append("ir".equals(chanType) ? "1" : "vl".equals(chanType) ? "2" : "").append(",");
//boolean bOk = false; //boolean bOk = false;
try { try {
log.info("PHOTO_PRESET_TYPE taskPatrolId: {}, chanType: {}, patrolPointId: {}, channelCode: {}, videoNvrCode: {}", log.info("PHOTO_PRESET_TYPE taskPatrolId: {}, chanType: {}, patrolPointId: {}, channelCode: {}, videoNvrCode: {}",
@ -537,6 +536,7 @@ public class JobMainTask {
presetPos.getChannelCode(), presetPos.getChannelCode(),
presetPos.getVideoNvrCode()); presetPos.getVideoNvrCode());
if ("vl".equals(chanType)) { if ("vl".equals(chanType)) {
fileTypes.append(2).append(",");
String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial="
+ presetPos.getVideoNvrCode() + presetPos.getVideoNvrCode()
+ "&realtime=true&code=" + presetPos.getChannelCode() + "&realtime=true&code=" + presetPos.getChannelCode()
@ -558,6 +558,9 @@ public class JobMainTask {
recordPersist(taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths); recordPersist(taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths);
} else if ("ir".equals(chanType)) { } else if ("ir".equals(chanType)) {
Map<String, String> algSubtypeIdMap = taskExecClient.getAlgTypeListByPatrolPointId(String.valueOf(presetPos.getPatrolPointId())); Map<String, String> algSubtypeIdMap = taskExecClient.getAlgTypeListByPatrolPointId(String.valueOf(presetPos.getPatrolPointId()));
// 任务指定算法类型巡视详情的图片类型加载
boolean isSpecifiedAlg = StringUtils.isNotEmpty(taskExecRecord.getSpecifiedAlg());
fileTypes.append(isSpecifiedAlg ? "2" : "1").append(",");
String paramUrl = liveIVS_URL String paramUrl = liveIVS_URL
+ "/api/v1/device/channelsnap?serial=" + presetPos.getVideoNvrCode() + "/api/v1/device/channelsnap?serial=" + presetPos.getVideoNvrCode()
+ "&realtime=true&code=" + presetPos.getChannelCode(); + "&realtime=true&code=" + presetPos.getChannelCode();
@ -1133,6 +1136,7 @@ public class JobMainTask {
patrolTaskExecRecord.setDeviceId("0"); patrolTaskExecRecord.setDeviceId("0");
patrolTaskExecRecord.setExecPointId(0L); patrolTaskExecRecord.setExecPointId(0L);
patrolTaskExecRecord.setTotalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size()); patrolTaskExecRecord.setTotalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size());
patrolTaskExecRecord.setSpecifiedAlg(patrolTask.getSpecifiedAlg());
log.info("taskName: {}, taskCode: {}, taskPatrolledId: {}", log.info("taskName: {}, taskCode: {}, taskPatrolledId: {}",
patrolTaskExecRecord.getTaskName(), patrolTaskExecRecord.getTaskCode(), patrolTaskExecRecord.getTaskPatrolId()); patrolTaskExecRecord.getTaskName(), patrolTaskExecRecord.getTaskCode(), patrolTaskExecRecord.getTaskPatrolId());
taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord); taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
@ -1305,13 +1309,19 @@ public class JobMainTask {
// } // }
// } // }
private int calcTaskAlgorithmTotalNumber(List<PatrolTaskInfo> patrolTaskInfoList) {
private int calcTaskAlgorithmTotalNumber(List<PatrolTaskInfo> patrolTaskInfoList, String specifiedAlg) {
int totalAlgorithmNumber = 0; int totalAlgorithmNumber = 0;
for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) {
String result = taskExecClient.getAlgSubtypeIdsByPatrolPointId(patrolTaskInfo.getDeviceId());
if (StringUtils.isNotEmpty(result)) {
String[] algSubtypeIds = result.split(StringUtils.COMMA);
// 任务指定算法类型累加任务点位算法个数
if (StringUtils.isNotEmpty(specifiedAlg)) {
String[] algSubtypeIds = specifiedAlg.split(StringUtils.COMMA);
totalAlgorithmNumber += algSubtypeIds.length; totalAlgorithmNumber += algSubtypeIds.length;
} else {
String result = taskExecClient.getAlgSubtypeIdsByPatrolPointId(patrolTaskInfo.getDeviceId());
if (StringUtils.isNotEmpty(result)) {
String[] algSubtypeIds = result.split(StringUtils.COMMA);
totalAlgorithmNumber += algSubtypeIds.length;
}
} }
} }
@ -1324,7 +1334,7 @@ public class JobMainTask {
deviceMap.computeIfAbsent(patrolTaskInfo.getDeviceCode(), k -> new ArrayList<>()).add(patrolTaskInfo); deviceMap.computeIfAbsent(patrolTaskInfo.getDeviceCode(), k -> new ArrayList<>()).add(patrolTaskInfo);
} }
int totalAlgorithmNumber = calcTaskAlgorithmTotalNumber(patrolTaskInfoList);
int totalAlgorithmNumber = calcTaskAlgorithmTotalNumber(patrolTaskInfoList, patrolTaskExecRecord.getSpecifiedAlg());
patrolTaskExecRecord.setTotalAlgorithmNumber(totalAlgorithmNumber); patrolTaskExecRecord.setTotalAlgorithmNumber(totalAlgorithmNumber);
asyncTaskPatrolPointCnt.set(0); asyncTaskPatrolPointCnt.set(0);
@ -1422,6 +1432,7 @@ public class JobMainTask {
patrolTaskExecRecord.getOldTaskPatrolId(), patrolTaskExecRecord.getOldTaskPatrolId(),
isConsummate ? "false" : "true"); isConsummate ? "false" : "true");
} }
public List<List<PatrolTaskInfo>> optimizedGroup(List<PatrolTaskInfo> list) { public List<List<PatrolTaskInfo>> optimizedGroup(List<PatrolTaskInfo> list) {
Map<String, List<PatrolTaskInfo>> deviceMap = new HashMap<>(); Map<String, List<PatrolTaskInfo>> deviceMap = new HashMap<>();
@ -1454,7 +1465,6 @@ public class JobMainTask {
return result; return result;
} }
private void execRemoveMaintainArea(List<PatrolTaskInfo> patrolTaskInfoList, List<MaintainRegion> maintAreaList, List<String> deviceIds) { private void execRemoveMaintainArea(List<PatrolTaskInfo> patrolTaskInfoList, List<MaintainRegion> maintAreaList, List<String> deviceIds) {
for (MaintainRegion area : maintAreaList) { for (MaintainRegion area : maintAreaList) {
if (area.getStartTime().getTime() < System.currentTimeMillis() && area.getEndTime().getTime() > System.currentTimeMillis()) { if (area.getStartTime().getTime() < System.currentTimeMillis() && area.getEndTime().getTime() > System.currentTimeMillis()) {
@ -1546,7 +1556,6 @@ public class JobMainTask {
return record != null && TaskStatus.RUNNING.getCode().equals(record.getTaskState()); return record != null && TaskStatus.RUNNING.getCode().equals(record.getTaskState());
} }
@SuppressWarnings({"unused"}) @SuppressWarnings({"unused"})
public void generalTask() { public void generalTask() {
log.info("***************************** JobTaskTimer generalTask *************************************"); log.info("***************************** JobTaskTimer generalTask *************************************");
@ -1968,6 +1977,7 @@ public class JobMainTask {
.deviceId("0") .deviceId("0")
.execPointId(0L) .execPointId(0L)
.totalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size()) .totalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size())
.specifiedAlg(patrolTask.getSpecifiedAlg())
.build(); .build();
try { try {
taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord); taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
@ -1983,19 +1993,6 @@ public class JobMainTask {
} }
} }
// private void incrementRedisRecordCounter() {
// Integer redisRecCnt = redisService.getCacheObject(RedisConst.TASK_RECORD_CNT);
// if (redisRecCnt == null) {
// redisRecCnt = 1;
// redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, redisRecCnt);
// } else {
// redisRecCnt++;
// redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, redisRecCnt);
// }
//
// log.info(Color.YELLOW + "[JOB] redisRecCnt: {}" + Color.END, redisRecCnt);
// }
@SuppressWarnings({"unused"}) @SuppressWarnings({"unused"})
public void execRepeatDayTask(List<PatrolTask> patrolTaskList) { public void execRepeatDayTask(List<PatrolTask> patrolTaskList) {
log.info("***************************** JobTaskTimer execRepeatDayTask with parameters *************************************"); log.info("***************************** JobTaskTimer execRepeatDayTask with parameters *************************************");


+ 1
- 0
inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java View File

@ -927,6 +927,7 @@ public class PatrolTaskExecController extends BaseController {
.endTime(task.getEndTime()) .endTime(task.getEndTime())
.areaId(task.getAreaId()) .areaId(task.getAreaId())
.areaName(task.getAreaName()) .areaName(task.getAreaName())
.specifiedAlg(task.getSpecifiedAlg())
.build(); .build();
patrolTaskList.add(patrolTask); patrolTaskList.add(patrolTask);
return patrolTaskList; return patrolTaskList;


+ 0
- 3
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/utils/ResultAnalysisUtils.java View File

@ -351,9 +351,6 @@ public class ResultAnalysisUtils {
resultAnalysis.setResStatus("0"); resultAnalysis.setResStatus("0");
defaultDesc = "纠偏结果异常"; defaultDesc = "纠偏结果异常";
} }
// 纠偏分析结果均为正常
resultAnalysis.setResultType(ResultTypeEnum.NORMAL.getCode());
resultAnalysis.setPointStatus(PointStatusEnum.NORMAL.getCode());
} else if ("2001".equals(resultAnalysis.getResCode())) { } else if ("2001".equals(resultAnalysis.getResCode())) {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
List<List<Double>> list; List<List<Double>> list;


+ 12
- 34
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -667,7 +667,6 @@ public class PatrolResultController extends BaseController {
} }
private void remoteAnalysisServiceStart(final String ANALYSIS_URL, final String params) { private void remoteAnalysisServiceStart(final String ANALYSIS_URL, final String params) {
logger.info("[ALG] CALL ALG BIG MODEL, URL: {}, PARAM: {}", ANALYSIS_URL, params); logger.info("[ALG] CALL ALG BIG MODEL, URL: {}, PARAM: {}", ANALYSIS_URL, params);
executor.submit(() -> { executor.submit(() -> {
@ -693,6 +692,7 @@ public class PatrolResultController extends BaseController {
String ids = ""; String ids = "";
for (PatrolResult patrolResult : patrolResultList) { for (PatrolResult patrolResult : patrolResultList) {
PatrolTask task = patrolTaskService.selectPatrolTaskByTaskId(Long.valueOf(patrolResult.getTaskCode()));
logger.info("callRemoteAlgorithm taskPatrolledId: {}, patrolResult: {}", patrolResult.getTaskPatrolledId(), patrolResult); logger.info("callRemoteAlgorithm taskPatrolledId: {}, patrolResult: {}", patrolResult.getTaskPatrolledId(), patrolResult);
List<AnalyseReqItem> filterList = new ArrayList<>(); //初筛 List<AnalyseReqItem> filterList = new ArrayList<>(); //初筛
List<AnalyseReqItem> bigModelList = new ArrayList<>(); //大模型 List<AnalyseReqItem> bigModelList = new ArrayList<>(); //大模型
@ -702,32 +702,13 @@ public class PatrolResultController extends BaseController {
AnalyseReqItem analyseReqItem = new AnalyseReqItem(); AnalyseReqItem analyseReqItem = new AnalyseReqItem();
analyseReqItem.setObjectId(patrolResult.getDeviceId()); analyseReqItem.setObjectId(patrolResult.getDeviceId());
//根据basedata_patrolpoint中的patrol_point_id(对应patrol_result表中的device_id)查询该预置位配置的算法列表
Map<String, String> algSubtypeIdMap = patrolResultService.selectAlgorithmType(patrolResult.getDeviceId());
List<String> algSubtypeIdList = new ArrayList<>();
logger.info("callRemoteAlgorithm algorithmTypeMap: {}", algSubtypeIdMap);
if (algSubtypeIdMap != null) {
String subIdStr = algSubtypeIdMap.get("alg_subtype_ids");
if (subIdStr.contains(StringUtils.COMMA)) {
String[] subIds = subIdStr.split(StringUtils.COMMA);
for (String subId : subIds) {
if (StringUtils.isNotEmpty(subId)) {
algSubtypeIdList.add(subId);
}
}
} else {
algSubtypeIdList.add(subIdStr);
}
}
PatrolResult patrolResultTemp = new PatrolResult();
if (!algSubtypeIdList.isEmpty()) {
patrolResultTemp.setAlgId(algSubtypeIdList);
}
List<AlgInfo> algInfoList = new ArrayList<>();
if (patrolResultTemp.getAlgId() != null && !patrolResultTemp.getAlgId().isEmpty()) {
algInfoList = patrolResultService.selectAlgInfo(patrolResultTemp);
List<AlgInfo> algInfoList;
if (StringUtils.isNotEmpty(task.getSpecifiedAlg())) {
// 任务指定算法类型获取指定算法类型的对象
algInfoList = patrolResultService.selectAlgInfoByCode(task.getSpecifiedAlg());
} else {
// 根据basedata_patrolpoint中的patrol_point_id(对应patrol_result表中的device_id)查询该预置位配置的算法列表
algInfoList = patrolResultService.selectPointAlgInfo(patrolResult.getDeviceId());
} }
logger.info("callRemoteAlgorithm algInfoList: {}", algInfoList); logger.info("callRemoteAlgorithm algInfoList: {}", algInfoList);
@ -922,8 +903,6 @@ public class PatrolResultController extends BaseController {
logger.info(Color.CYAN + "callRemoteAlgorithm filter size: {}, filterList: {}" + Color.END, filterList.size(), filterList); logger.info(Color.CYAN + "callRemoteAlgorithm filter size: {}, filterList: {}" + Color.END, filterList.size(), filterList);
logger.info(Color.CYAN + "callRemoteAlgorithm bigModel size: {}, bigModelList: {}" + Color.END, bigModelList.size(), bigModelList); logger.info(Color.CYAN + "callRemoteAlgorithm bigModel size: {}, bigModelList: {}" + Color.END, bigModelList.size(), bigModelList);
// 查询任务指定的分析主机厂商
PatrolTask task = patrolTaskService.selectPatrolTaskByTaskId(Long.valueOf(patrolResult.getTaskCode()));
String drafter = task.getDrafter(); String drafter = task.getDrafter();
//qinyl 初筛逻辑处理 //qinyl 初筛逻辑处理
if (!filterList.isEmpty()) { if (!filterList.isEmpty()) {
@ -1141,7 +1120,7 @@ public class PatrolResultController extends BaseController {
PatrolTaskStatus patrolTaskStatusOfDb = patrolTaskStatusList.get(0); PatrolTaskStatus patrolTaskStatusOfDb = patrolTaskStatusList.get(0);
// 除了db非完成或终止或暂停状态当db状态与上报状态不一致时更新db状态 // 除了db非完成或终止或暂停状态当db状态与上报状态不一致时更新db状态
if (!Arrays.asList(TaskStatus.DONE.getCode(), TaskStatus.HALTED.getCode()).contains(patrolTaskStatusOfDb.getTaskState()) if (!Arrays.asList(TaskStatus.DONE.getCode(), TaskStatus.HALTED.getCode()).contains(patrolTaskStatusOfDb.getTaskState())
&& !Arrays.asList(TaskStatus.DONE.getCode(),patrolTaskStatusOfDb.getTaskState()).contains(patrolTaskStatusItem.getTaskState())
&& !Arrays.asList(TaskStatus.DONE.getCode(), patrolTaskStatusOfDb.getTaskState()).contains(patrolTaskStatusItem.getTaskState())
&& !sendCode.equals("摄像头") && !sendCode.equals("摄像头")
) { ) {
logger.info("GET_INFO_41 UPDATE TASK_STATE old: {} TO new: {}", patrolTaskStatusOfDb.getTaskState(), patrolTaskStatusItem.getTaskState()); logger.info("GET_INFO_41 UPDATE TASK_STATE old: {} TO new: {}", patrolTaskStatusOfDb.getTaskState(), patrolTaskStatusItem.getTaskState());
@ -1635,10 +1614,10 @@ public class PatrolResultController extends BaseController {
// 非摄像头的设备任务需要从数据库统计执行点位数量 // 非摄像头的设备任务需要从数据库统计执行点位数量
if (jsonRootBean.getTotalNumber() == null && !tasks.isEmpty()) { if (jsonRootBean.getTotalNumber() == null && !tasks.isEmpty()) {
logger.info("jsonRootBean.getTotalNumber not NULL: {}", algrithomPatrolResultList); logger.info("jsonRootBean.getTotalNumber not NULL: {}", algrithomPatrolResultList);
String taskId = String.valueOf(tasks.get(0).getTaskId());
logger.info("taskId: {}, sendCode: {}", taskId, sendCode);
String taskCode = String.valueOf(tasks.get(0).getTaskId());
logger.info("taskCode: {}, sendCode: {}", taskCode, sendCode);
// 获取设备标识以便统计执行点位数量 // 获取设备标识以便统计执行点位数量
List<String> algList = patrolResultMapper.selectAlgList(taskId, sendCode, null);
List<String> algList = patrolResultService.selectAlgList(taskCode, sendCode, tasks.get(0).getSpecifiedAlg());
logger.info("algList: {}", algList.toString()); logger.info("algList: {}", algList.toString());
int algCount = 0; int algCount = 0;
for (String alg : algList) { for (String alg : algList) {
@ -1782,7 +1761,6 @@ public class PatrolResultController extends BaseController {
return AjaxResult.success(patrolTaskList); return AjaxResult.success(patrolTaskList);
} }
@GetMapping({"/getEqpBookListInfoForXml"}) @GetMapping({"/getEqpBookListInfoForXml"})
public String getEqpBookListInfo(BasedataEqpBookMoMain basedataEqpBook) { public String getEqpBookListInfo(BasedataEqpBookMoMain basedataEqpBook) {
logger.info("--------getEqpBookListInfo 1!!!!!!"); logger.info("--------getEqpBookListInfo 1!!!!!!");


+ 5
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java View File

@ -118,7 +118,11 @@ public interface PatrolResultMapper {
Map<String, String> selectDeviceNameById(BasePointAreaInfo basePointAreaInfo); Map<String, String> selectDeviceNameById(BasePointAreaInfo basePointAreaInfo);
List<String> selectAlgList(@Param("taskId") String taskId, @Param("sendCode") String sendCode, @Param("devType") String devType);
List<String> selectAlgList(@Param("taskCode") String taskCode, @Param("sendCode") String sendCode, @Param("devType") String devType);
List<PatrolData> selectPatrolDataResultByTaskCodeV3(ResultAnalysis resultAnalysis); List<PatrolData> selectPatrolDataResultByTaskCodeV3(ResultAnalysis resultAnalysis);
List<AlgInfo> selectPointAlgInfo(String patrolPointId);
List<AlgInfo> selectAlgInfoByCode(String codes);
} }

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

@ -101,4 +101,10 @@ public interface IPatrolResultService {
List<PatrolResult> selectPatrolResultListByMainIds(List<Long> mainIds); List<PatrolResult> selectPatrolResultListByMainIds(List<Long> mainIds);
InspectionReport getInspectionReport(List<Long> lineIds, PatrolTaskResultMain patrolTaskResultMain); InspectionReport getInspectionReport(List<Long> lineIds, PatrolTaskResultMain patrolTaskResultMain);
List<AlgInfo> selectPointAlgInfo(String patrolPointId);
List<AlgInfo> selectAlgInfoByCode(String codes);
List<String> selectAlgList(String taskCode, String sendCode, String specifiedAlg);
} }

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

@ -2186,6 +2186,32 @@ public class PatrolResultServiceImpl implements IPatrolResultService {
return report; return report;
} }
@Override
public List<AlgInfo> selectPointAlgInfo(String patrolPointId) {
return patrolResultMapper.selectPointAlgInfo(patrolPointId);
}
@Override
public List<AlgInfo> selectAlgInfoByCode(String codes) {
return patrolResultMapper.selectAlgInfoByCode(codes);
}
/**
* 根据以下条件返回任务的全部或某设备类型的点位及其算法
* @param sendCode 任务编码
* @param specifiedAlg 设备唯一标识
* @return 任务指定算法
*/
@Override
public List<String> selectAlgList(String taskCode, String sendCode, String specifiedAlg) {
String devType = "摄像头".equals(sendCode) ? "2" : null;
List<String> algList = patrolResultMapper.selectAlgList(taskCode, sendCode, devType);
if (StringUtils.isNotEmpty(specifiedAlg)) {
return algList.stream().map(item -> specifiedAlg).collect(Collectors.toList());
}
return algList;
}
private PatrolResultRef mergePatrolResultRef(PatrolResultRef filterResult, PatrolResultRef AIResult, String resultType) { private PatrolResultRef mergePatrolResultRef(PatrolResultRef filterResult, PatrolResultRef AIResult, String resultType) {
PatrolResultRef merged = new PatrolResultRef(); PatrolResultRef merged = new PatrolResultRef();
merged.setDeviceId(filterResult.getDeviceId()); merged.setDeviceId(filterResult.getDeviceId());


+ 0
- 34
inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java View File

@ -358,38 +358,6 @@ public class PatrolTaskController extends BaseController {
} }
} }
// 6.1 合并纠偏算法数据
Map<Boolean, List<PatrolData>> partitionedMap = newList.stream()
.collect(Collectors.partitioningBy(element -> AlgConstants.CORRECTION.equals(element.getAlgType())));
List<PatrolData> correctionList = partitionedMap.getOrDefault(true, Collections.emptyList());
newList = partitionedMap.getOrDefault(false, Collections.emptyList());
if (!correctionList.isEmpty()) {
for (PatrolData item : newList) {
Optional<PatrolData> correctionOptional = correctionList.stream().filter(element -> element.getObjectId().equals(item.getObjectId())).findFirst();
if (correctionOptional.isPresent()) {
PatrolData correctionData = correctionOptional.get();
item.setResStatus(correctionData.getResStatus());
item.setOriginalValue(correctionData.getDesc());
// 同点位算法的状态为正常时以纠偏算法的状态为主否则以点位算法的状态为主
if (ResultTypeEnum.NORMAL.getCode().equals(item.getWarnStatus())) {
// 纠偏算法异常状态更改为异常
if (ResStatusEnum.UNCONFIRM.getCode().equals(item.getResStatus())) {
item.setPointStatus(PointStatusEnum.ABNORMAL.getCode());
}
// 需要纠偏状态更改为缺陷
if (ResStatusEnum.CORRECT.getCode().equals(correctionData.getResStatus())) {
item.setPointStatus(PointStatusEnum.DEFECT.getCode());
}
}
if (ResStatusEnum.CORRECTED.getCode().equals(item.getResStatus())) {
item.setOriginalValue(correctionData.getOriginalValue());
}
}
}
}
// 7. 所有过滤条件合并为一个 stream避免多次 filter + collect // 7. 所有过滤条件合并为一个 stream避免多次 filter + collect
newList = newList.stream() newList = newList.stream()
.filter(element -> StringUtils.isEmpty(patrolTaskStatus.getAlgName()) .filter(element -> StringUtils.isEmpty(patrolTaskStatus.getAlgName())
@ -3991,8 +3959,6 @@ public class PatrolTaskController extends BaseController {
listAlgName.add(item.getAlgName()); listAlgName.add(item.getAlgName());
} }
} }
Map<String, Integer> overview = patrolTaskService.countPatrolTaskOverview(patrolTaskStatus.getTaskPatrolledId());
map.put("overview", overview);
map.put("listPointName", listPointName); map.put("listPointName", listPointName);
map.put("listPointStatus", mapList); map.put("listPointStatus", mapList);
map.put("listDeviceSource", listDeviceSource); map.put("listDeviceSource", listDeviceSource);


+ 2
- 53
inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolTask.java View File

@ -17,6 +17,7 @@ import lombok.*;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ToString
public class PatrolTask extends BaseEntity { public class PatrolTask extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -187,63 +188,11 @@ public class PatrolTask extends BaseEntity {
private List<PatrolTaskStatus> patrolTaskStatusList; private List<PatrolTaskStatus> patrolTaskStatusList;
private List<PrevPoint> prevPoints; private List<PrevPoint> prevPoints;
private List<String> patrolPointIds; private List<String> patrolPointIds;
private String specifiedAlg;
// 任务总点位数量 // 任务总点位数量
private int totalPoints; private int totalPoints;
private String deviceType; private String deviceType;
private String pointType; private String pointType;
@Override
public String toString() {
return "PatrolTask{" +
"taskId=" + taskId +
", stationName='" + stationName + '\'' +
", stationCode='" + stationCode + '\'' +
", type='" + type + '\'' +
", taskCode='" + taskCode + '\'' +
", taskName='" + taskName + '\'' +
", priority='" + priority + '\'' +
", deviceLevel='" + deviceLevel + '\'' +
", deviceList='" + deviceList + '\'' +
", fixedStartTime=" + fixedStartTime +
", cycleMonth='" + cycleMonth + '\'' +
", cycleWeek='" + cycleWeek + '\'' +
", cycleExecuteTime='" + cycleExecuteTime + '\'' +
", cycleStartTime=" + cycleStartTime +
", cycleEndTime=" + cycleEndTime +
", intervalNumber=" + intervalNumber +
", intervalType='" + intervalType + '\'' +
", intervalExecuteTime='" + intervalExecuteTime + '\'' +
", intervalStartTime=" + intervalStartTime +
", intervalEndTime=" + intervalEndTime +
", invalidStartTime=" + invalidStartTime +
", invalidEndTime=" + invalidEndTime +
", isEnable='" + isEnable + '\'' +
", linkageState='" + linkageState + '\'' +
", devType='" + devType + '\'' +
", drafter='" + drafter + '\'' +
", executionStatus='" + executionStatus + '\'' +
", fileStatus='" + fileStatus + '\'' +
", isUp='" + isUp + '\'' +
", taskCycle='" + taskCycle + '\'' +
", devNo='" + devNo + '\'' +
", storage='" + storage + '\'' +
", taskProgress='" + taskProgress + '\'' +
", taskState='" + taskState + '\'' +
", executionMode='" + executionMode + '\'' +
", beginTime='" + beginTime + '\'' +
", endTime='" + endTime + '\'' +
", areaId='" + areaId + '\'' +
", areaName='" + areaName + '\'' +
", areaIdS='" + areaIdS + '\'' +
", eqPointList=" + eqpointList +
", videoPosList=" + videoPosList +
", patrolTaskStatusList=" + patrolTaskStatusList +
", prevPoints=" + prevPoints +
", totalPoints=" + totalPoints +
", deviceType='" + deviceType + '\'' +
", pointType='" + pointType + '\'' +
'}';
}
} }

+ 5
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.analysis.domain.ResultAnalysisSummaryDTO; import com.inspect.analysis.domain.ResultAnalysisSummaryDTO;
import com.inspect.analysis.service.IResultAnalysisService; import com.inspect.analysis.service.IResultAnalysisService;
import com.inspect.base.core.constant.AlgConstants;
import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.constant.RedisConst;
import com.inspect.base.core.enums.TaskStatus; import com.inspect.base.core.enums.TaskStatus;
import com.inspect.base.core.enums.TaskType; import com.inspect.base.core.enums.TaskType;
@ -252,6 +253,10 @@ public class PatrolTaskStatusController extends BaseController {
list.forEach((item) -> { list.forEach((item) -> {
item.setPatrolStatus("1"); item.setPatrolStatus("1");
item.setPointCount(pointMap.get(item.getTaskCode())); item.setPointCount(pointMap.get(item.getTaskCode()));
// 任务指定算法类型当为纠偏时返回值便于前端做样式处理
if (AlgConstants.CORRECTION.equals(item.getSpecifiedAlg())) {
item.setAlgName(AlgConstants.CORRECTION);
}
// 根据任务进度和归档信息设置文件状态 // 根据任务进度和归档信息设置文件状态
if (!item.getTaskProgress().contains("100")) { if (!item.getTaskProgress().contains("100")) {
item.setFileStatus("0"); item.setFileStatus("0");


+ 1
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/domain/PatrolTaskStatus.java View File

@ -117,7 +117,7 @@ public class PatrolTaskStatus extends BaseEntity {
private String resultType; private String resultType;
private String pointStatus; private String pointStatus;
private String algName; private String algName;
private String specifiedAlg;
public PatrolTaskStatus(String taskPatrolledId) { public PatrolTaskStatus(String taskPatrolledId) {
this.taskPatrolledId = taskPatrolledId; this.taskPatrolledId = taskPatrolledId;


+ 46
- 35
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java View File

@ -11,6 +11,7 @@ import com.inspect.base.core.utils.DateUtils;
import com.inspect.base.core.utils.StringUtils; import com.inspect.base.core.utils.StringUtils;
import com.inspect.base.redis.service.RedisService; import com.inspect.base.redis.service.RedisService;
import com.inspect.partrolresult.mapper.PatrolResultMapper; import com.inspect.partrolresult.mapper.PatrolResultMapper;
import com.inspect.partrolresult.service.IPatrolResultService;
import com.inspect.resultmain.domain.PatrolTaskResultMain; import com.inspect.resultmain.domain.PatrolTaskResultMain;
import com.inspect.resultmain.service.IPatrolTaskResultMainService; import com.inspect.resultmain.service.IPatrolTaskResultMainService;
import com.inspect.task.domain.PatrolTask; import com.inspect.task.domain.PatrolTask;
@ -47,6 +48,9 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
@Resource @Resource
private PatrolResultMapper patrolResultMapper; private PatrolResultMapper patrolResultMapper;
@Resource
private IPatrolResultService patrolResultService;
@Autowired @Autowired
public PatrolTaskStatusServiceImpl(PatrolTaskStatusMapper patrolTaskStatusMapper) { public PatrolTaskStatusServiceImpl(PatrolTaskStatusMapper patrolTaskStatusMapper) {
this.patrolTaskStatusMapper = patrolTaskStatusMapper; this.patrolTaskStatusMapper = patrolTaskStatusMapper;
@ -152,22 +156,10 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
throw new IllegalArgumentException("主任务进度/状态由子任务自动计算,不能直接修改:" + patrolTaskStatus.getTaskPatrolledId()); throw new IllegalArgumentException("主任务进度/状态由子任务自动计算,不能直接修改:" + patrolTaskStatus.getTaskPatrolledId());
} }
// 任务状态完成/超期更新结束时间
if (state.equals(TaskStatus.DONE.getCode()) || state.equals(TaskStatus.HALTED.getCode())) {
String endTime = DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date());
patrolTaskStatus.setEndTime(endTime);
}
patrolTaskStatus.setTaskProgress(collectionProgress); patrolTaskStatus.setTaskProgress(collectionProgress);
patrolTaskStatus.setTaskEstimatedTime(algorithmProgress); patrolTaskStatus.setTaskEstimatedTime(algorithmProgress);
patrolTaskStatus.setTaskState(state); patrolTaskStatus.setTaskState(state);
// 普通任务且状态为已完成删除redis任务缓存
if (TaskType.ORDINARY.getCode().equals(patrolTaskStatus.getTaskType()) && state.equals(TaskStatus.DONE.getCode())) {
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTaskStatus.getTaskCode());
}
// 统计任务点位巡检情况
patrolTaskStatus.setSummary(getTaskPointsSummary(patrolTaskStatus.getTaskCode(), patrolTaskStatus.getTaskPatrolledId()));
setNormalTaskStatus(patrolTaskStatus);
// 更新子任务或普通任务 // 更新子任务或普通任务
updatePatrolTaskStatus(patrolTaskStatus); updatePatrolTaskStatus(patrolTaskStatus);
@ -185,6 +177,8 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
return; return;
} }
PatrolTaskStatus mainTask = selectPatrolTaskStatusByTaskPatrolledId(mainId);
BigDecimal execTotalPoints = BigDecimal.ZERO; BigDecimal execTotalPoints = BigDecimal.ZERO;
BigDecimal execTotalAlgorithms = BigDecimal.ZERO; BigDecimal execTotalAlgorithms = BigDecimal.ZERO;
TaskStatus mainTaskState = TaskStatus.DONE; TaskStatus mainTaskState = TaskStatus.DONE;
@ -195,12 +189,8 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
log.info("taskNames: {}", subTask.getTaskName()); log.info("taskNames: {}", subTask.getTaskName());
if (taskNames.length > 1) { if (taskNames.length > 1) {
String sendCode = taskNames[0]; String sendCode = taskNames[0];
List<String> algList = new ArrayList<>();
if (sendCode.equals("摄像头")) {
algList = patrolResultMapper.selectAlgList(taskCode, null, "2");
} else {
algList = patrolResultMapper.selectAlgList(taskCode, sendCode, null);
}
// 指定任务算法
List<String> algList = patrolResultService.selectAlgList(taskCode, sendCode, mainTask.getSpecifiedAlg());
int subTotalPoints = algList.size(); int subTotalPoints = algList.size();
int subTotalAlgorithms = algList.stream().mapToInt(s -> s.split(",").length).sum(); int subTotalAlgorithms = algList.stream().mapToInt(s -> s.split(",").length).sum();
@ -223,7 +213,7 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
} }
} }
List<String> algList = patrolResultMapper.selectAlgList(taskCode, null, null);
List<String> algList = patrolResultService.selectAlgList(taskCode, null, mainTask.getSpecifiedAlg());
int totalPoints = algList.size(); int totalPoints = algList.size();
int totalAlgorithms = algList.stream().mapToInt(s -> s.split(",").length).sum(); int totalAlgorithms = algList.stream().mapToInt(s -> s.split(",").length).sum();
log.info("totalPoints:{},totalAlgorithms:{}", totalPoints, totalAlgorithms); log.info("totalPoints:{},totalAlgorithms:{}", totalPoints, totalAlgorithms);
@ -241,24 +231,17 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
1, RoundingMode.DOWN 1, RoundingMode.DOWN
); );
PatrolTaskStatus mainTask = selectPatrolTaskStatusByTaskPatrolledId(mainId);
// 如果状态为已完成但采集和分析进度小于100说明还有任务未上报更新为运行中 // 如果状态为已完成但采集和分析进度小于100说明还有任务未上报更新为运行中
if (mainTaskState.getCode().equals(TaskStatus.DONE.getCode()) if (mainTaskState.getCode().equals(TaskStatus.DONE.getCode())
&& (mainTaskProgress.compareTo(new BigDecimal(100)) != 0 || mainAlgorithmProgress.compareTo(new BigDecimal(100)) != 0 )){
&& (mainTaskProgress.compareTo(new BigDecimal(100)) != 0 || mainAlgorithmProgress.compareTo(new BigDecimal(100)) != 0)) {
mainTaskState = TaskStatus.RUNNING; mainTaskState = TaskStatus.RUNNING;
} }
if (mainTaskState.getCode().equals(TaskStatus.DONE.getCode()) || mainTaskState.getCode().equals(TaskStatus.HALTED.getCode())) {
// 主任务且状态为已完成删除redis任务缓存
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode);
String endTime = DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date());
mainTask.setEndTime(endTime);
}
mainTask.setTaskState(mainTaskState.getCode()); mainTask.setTaskState(mainTaskState.getCode());
mainTask.setTaskProgress(mainTaskProgress.toString()); mainTask.setTaskProgress(mainTaskProgress.toString());
mainTask.setTaskEstimatedTime(mainAlgorithmProgress.toString()); mainTask.setTaskEstimatedTime(mainAlgorithmProgress.toString());
// 统计任务点位巡检情况
mainTask.setSummary(getTaskPointsSummary(mainTask.getTaskCode(), mainTask.getTaskPatrolledId()));
setNormalTaskStatus(mainTask);
// 更新主任务 // 更新主任务
patrolTaskStatusMapper.updatePatrolTaskStatus(mainTask); patrolTaskStatusMapper.updatePatrolTaskStatus(mainTask);
} }
@ -295,9 +278,13 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
return mainId; return mainId;
} }
private String getTaskPointsSummary(String taskCode, String taskPatrolledId) {
private String getTaskPointsSummary(String taskCode, String taskPatrolledId, String specifiedAlg) {
// 任务总点位和算法 // 任务总点位和算法
List<Map<String, String>> totalPointList = patrolTaskStatusMapper.selectTotalPointsAndAlgs(taskCode); List<Map<String, String>> totalPointList = patrolTaskStatusMapper.selectTotalPointsAndAlgs(taskCode);
// 任务指定算法类型
if (StringUtils.isNotEmpty(specifiedAlg)) {
totalPointList.stream().forEach(item -> item.put("alg_subtype_ids", specifiedAlg));
}
// 任务已巡检点位和算法 // 任务已巡检点位和算法
List<Map<String, String>> executedPointList = patrolTaskStatusMapper.selectExecutedPointsAndAlgs(taskPatrolledId); List<Map<String, String>> executedPointList = patrolTaskStatusMapper.selectExecutedPointsAndAlgs(taskPatrolledId);
return countInspectedPoint(totalPointList, executedPointList); return countInspectedPoint(totalPointList, executedPointList);
@ -305,6 +292,7 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
/** /**
* 统计点位巡检情况 * 统计点位巡检情况
*
* @param data1List 总点位和算法 * @param data1List 总点位和算法
* @param data2List 已执行点位和算法 * @param data2List 已执行点位和算法
* @return * @return
@ -312,8 +300,8 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
private String countInspectedPoint(List<Map<String, String>> data1List, List<Map<String, String>> data2List) { private String countInspectedPoint(List<Map<String, String>> data1List, List<Map<String, String>> data2List) {
Map<String, Set<String>> data2Map = new HashMap<>(); Map<String, Set<String>> data2Map = new HashMap<>();
for (Map<String, String> row : data2List) { for (Map<String, String> row : data2List) {
String pid = String.valueOf(row.get("patrol_point_id"));
String subtype = String.valueOf(row.get("alg_subtype_id"));
String pid = String.valueOf(row.get("patrol_point_id"));
String subtype = String.valueOf(row.get("alg_subtype_id"));
data2Map.computeIfAbsent(pid, k -> new HashSet<>()).add(subtype); data2Map.computeIfAbsent(pid, k -> new HashSet<>()).add(subtype);
} }
@ -349,6 +337,29 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
result.put("executedPoint", count); result.put("executedPoint", count);
result.put("unexecutedPoint", (data1List.size() - count)); result.put("unexecutedPoint", (data1List.size() - count));
return result.toString();
return result.toJSONString();
}
private void setNormalTaskStatus(PatrolTaskStatus patrolTaskStatus) {
// 任务最终状态已完成已终止
boolean isFinalState = TaskStatus.DONE.getCode().equals(patrolTaskStatus.getTaskState()) || TaskStatus.HALTED.getCode().equals(patrolTaskStatus.getTaskState());
// 常规任务主任务普通任务
boolean isNormalTask = TaskType.ORDINARY.getCode().equals(patrolTaskStatus.getTaskType()) || TaskType.MAIN.getCode().equals(patrolTaskStatus.getTaskType());
// 更新任务结束时间和redis任务执行标识
if (isFinalState) {
String endTime = DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date());
patrolTaskStatus.setEndTime(endTime);
if (isNormalTask) {
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTaskStatus.getTaskCode());
}
}
// 更新的点位汇总信息
if (isNormalTask) {
String summary = getTaskPointsSummary(patrolTaskStatus.getTaskCode(), patrolTaskStatus.getTaskPatrolledId(), patrolTaskStatus.getSpecifiedAlg());
patrolTaskStatus.setSummary(summary);
}
} }
} }

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

@ -1283,7 +1283,7 @@
LEFT JOIN patrol_task_info i ON p.patrol_point_id = i.device_id LEFT JOIN patrol_task_info i ON p.patrol_point_id = i.device_id
LEFT JOIN basedata_eqpbook e ON i.ebook_id = e.eqp_book_id LEFT JOIN basedata_eqpbook e ON i.ebook_id = e.eqp_book_id
<where> <where>
<if test="taskId != null and taskId != ''">and i.task_major_id = #{taskId}</if>
<if test="taskCode != null and taskCode != ''">and i.task_major_id = #{taskCode}</if>
<if test="sendCode != null and sendCode != ''">and e.main_system_code = #{sendCode}</if> <if test="sendCode != null and sendCode != ''">and e.main_system_code = #{sendCode}</if>
<if test="devType != null and devType != ''">and i.dev_type = #{devType}</if> <if test="devType != null and devType != ''">and i.dev_type = #{devType}</if>
</where> </where>
@ -1413,4 +1413,19 @@
<if test="abnormal == 0">ORDER BY d.device_name,a.device_name</if> <if test="abnormal == 0">ORDER BY d.device_name,a.device_name</if>
<if test="abnormal == 1">ORDER BY b.point_status</if> <if test="abnormal == 1">ORDER BY b.point_status</if>
</select> </select>
<select id="selectPointAlgInfo" resultMap="AlgInfoResult">
SELECT a.alg_name, s.alg_subtype_code, s.alg_subtype_name
FROM basedata_patrolpoint p
LEFT JOIN basedata_alg_subtype s ON FIND_IN_SET(s.alg_subtype_id, p.alg_subtype_ids)
LEFT JOIN basedata_alg a ON s.alg_id = a.alg_id
WHERE p.patrol_point_id = #{patrolPointId}
</select>
<select id="selectAlgInfoByCode" resultMap="AlgInfoResult">
SELECT a.alg_name, s.alg_subtype_code, s.alg_subtype_name
FROM basedata_alg_subtype s
LEFT JOIN basedata_alg a ON s.alg_id = a.alg_id
WHERE FIND_IN_SET(s.alg_subtype_code, #{codes})
</select>
</mapper> </mapper>

+ 3
- 1
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml View File

@ -43,6 +43,7 @@
<result property="areaIdS" column="area_id_s"/> <result property="areaIdS" column="area_id_s"/>
<result property="pointType" column="point_type"/> <result property="pointType" column="point_type"/>
<result property="deviceType" column="device_type"/> <result property="deviceType" column="device_type"/>
<result property="specifiedAlg" column="specified_alg"/>
</resultMap> </resultMap>
<sql id="selectPatrolTaskVo"> <sql id="selectPatrolTaskVo">
@ -84,7 +85,8 @@
drafter, drafter,
area_id_s, area_id_s,
point_type, point_type,
device_type
device_type,
specified_alg
from patrol_task from patrol_task
</sql> </sql>


+ 53
- 7
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskStatusMapper.xml View File

@ -76,7 +76,8 @@
pos, pos,
exec_type, exec_type,
task_type, task_type,
main_id
main_id,
summary
from patrol_task_status from patrol_task_status
</sql> </sql>
@ -294,13 +295,57 @@
</select> </select>
<select id="selectPatrolTaskStatusByLineId" parameterType="Long" resultMap="PatrolTaskStatusResult"> <select id="selectPatrolTaskStatusByLineId" parameterType="Long" resultMap="PatrolTaskStatusResult">
<include refid="selectPatrolTaskStatusVo"/>
where line_id = #{lineId}
SELECT
pts.line_id,
pts.task_patrolled_id,
pts.end_time,
pts.patrol_type,
pts.task_name,
pts.task_code,
pts.task_state,
pts.plan_start_time,
pts.start_time,
pts.task_progress,
pts.task_estimated_time,
pts.description,
pts.pos_type,
pts.code,
pts.pos,
pts.exec_type,
pts.task_type,
pts.main_id,
pts.summary,
t.specified_alg
FROM patrol_task_status pts
LEFT JOIN patrol_task t ON pts.task_code = t.task_code
where pts.line_id = #{lineId}
</select> </select>
<select id="selectPatrolTaskStatusByTaskPatrolledId" parameterType="String" resultMap="PatrolTaskStatusResult"> <select id="selectPatrolTaskStatusByTaskPatrolledId" parameterType="String" resultMap="PatrolTaskStatusResult">
<include refid="selectPatrolTaskStatusVo"/>
where task_patrolled_id = #{taskPatrolledId}
SELECT
pts.line_id,
pts.task_patrolled_id,
pts.end_time,
pts.patrol_type,
pts.task_name,
pts.task_code,
pts.task_state,
pts.plan_start_time,
pts.start_time,
pts.task_progress,
pts.task_estimated_time,
pts.description,
pts.pos_type,
pts.code,
pts.pos,
pts.exec_type,
pts.task_type,
pts.main_id,
pts.summary,
t.specified_alg
FROM patrol_task_status pts
LEFT JOIN patrol_task t ON pts.task_code = t.task_code
WHERE pts.task_patrolled_id = #{taskPatrolledId}
</select> </select>
<select id="selectPatrolTaskStatusListByTaskPatrolledIds" <select id="selectPatrolTaskStatusListByTaskPatrolledIds"
@ -363,8 +408,9 @@
SELECT a.objectId AS patrol_point_id, s.alg_subtype_id SELECT a.objectId AS patrol_point_id, s.alg_subtype_id
FROM result_analysis a FROM result_analysis a
LEFT JOIN basedata_alg_subtype s ON a.alg_type = s.alg_subtype_code LEFT JOIN basedata_alg_subtype s ON a.alg_type = s.alg_subtype_code
WHERE a.task_patrol_id = #{taskPatrolledId}
AND filter = 1
LEFT JOIN patrol_task_status t ON a.task_patrol_id = t.task_patrolled_id
WHERE a.filter = 1
AND (t.task_patrolled_id = #{taskPatrolledId} or t.main_id = #{taskPatrolledId})
</select> </select>
<select id="selectTotalPointsAndAlgs" resultType="java.util.Map"> <select id="selectTotalPointsAndAlgs" resultType="java.util.Map">


Loading…
Cancel
Save