|
|
|
@ -1,10 +1,15 @@ |
|
|
|
package com.inspect.task.service.impl; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
import com.inspect.analysis.mapper.ResultAnalysisMapper; |
|
|
|
import com.inspect.base.core.utils.DateUtils; |
|
|
|
import com.inspect.base.core.utils.HttpClientUtils; |
|
|
|
import com.inspect.base.core.utils.StringUtils; |
|
|
|
import com.inspect.partrolresult.util.PrintUtil; |
|
|
|
import com.inspect.resultmain.controller.PatrolTaskResultMainController; |
|
|
|
import com.inspect.resultmain.domain.PatrolTaskResultMain; |
|
|
|
import com.inspect.task.domain.DeviceConvert; |
|
|
|
|
|
|
|
import com.inspect.task.domain.PatrolData; |
|
|
|
@ -12,12 +17,14 @@ import com.inspect.task.domain.PatrolTask; |
|
|
|
import com.inspect.task.mapper.PatrolTaskMapper; |
|
|
|
import com.inspect.task.service.IPatrolTaskService; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import com.inspect.taskstatus.domain.PatrolTaskStatus; |
|
|
|
import com.inspect.taskstatus.mapper.PatrolTaskStatusMapper; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.scheduling.annotation.Async; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@ -26,6 +33,12 @@ public class PatrolTaskServiceImpl implements IPatrolTaskService { |
|
|
|
|
|
|
|
final PatrolTaskMapper patrolTaskMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private PatrolTaskStatusMapper patrolTaskStatusMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private PatrolTaskResultMainController patrolTaskResultMainController; |
|
|
|
|
|
|
|
final ResultAnalysisMapper resultAnalysisMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
@ -158,4 +171,52 @@ public class PatrolTaskServiceImpl implements IPatrolTaskService { |
|
|
|
log.info("controller correctionAlgorithm HttpClientUtils.get execute exception: {}", e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 异步执行 |
|
|
|
*/ |
|
|
|
@Async |
|
|
|
public void executeAsync(PatrolTaskStatus taskStatus) { |
|
|
|
String stationNo = patrolTaskMapper.selectStationNo(); |
|
|
|
long startTime = System.currentTimeMillis(); |
|
|
|
log.debug("异步执行任务报告合并,任务: {}", taskStatus); |
|
|
|
String taskName = taskStatus.getTaskName(); |
|
|
|
if (!"lingzhouzhiliu".equals(stationNo) || StringUtils.isEmpty(taskName) || !taskName.contains("_")) { |
|
|
|
return; |
|
|
|
} |
|
|
|
String[] taskNames = StringUtils.split(taskName, "_"); |
|
|
|
String taskAreaName = taskNames[0]; |
|
|
|
// 根据区域名查询该区域的任务数量 |
|
|
|
List<PatrolTask> patrolAreaTasks = patrolTaskMapper.selectPatrolTaskListByTaskAreaName(taskAreaName + "_"); |
|
|
|
log.debug("异步执行任务报告合并,区域: {} 下的任务: {}", taskAreaName, patrolAreaTasks); |
|
|
|
// 换流变_ 14个 |
|
|
|
// 直流场_ 6个 |
|
|
|
log.debug("异步执行任务报告合并,区域: {} 下的任务数量: {}", taskAreaName, patrolAreaTasks.size()); |
|
|
|
if (patrolAreaTasks.size() == 0) { |
|
|
|
return; |
|
|
|
} |
|
|
|
Set<String> patrolTaskCodes = patrolAreaTasks.stream().map(PatrolTask::getTaskCode).collect(Collectors.toSet()); |
|
|
|
log.debug("异步执行任务报告合并,区域: {} 下的任务编码集合: {}", taskAreaName, patrolTaskCodes); |
|
|
|
|
|
|
|
// patrolTaskStatus 和 patrolTaskResultMain 关联查询,区域任务执行状态已完成,并且未归档的数量是否和区域任务总数相等,相等则归档该区域的任务 |
|
|
|
|
|
|
|
// 查询区域任务执行状态已完成,并且未归档的数量是否和区域任务总数相等,相等则归档该区域的任务 |
|
|
|
List<JSONObject> jsonObjects = patrolTaskMapper.selectPatrolTaskStatus(patrolTaskCodes); |
|
|
|
log.debug("异步执行任务报告合并,区域: {} 下的已完成任务集合: {}", taskAreaName, jsonObjects); |
|
|
|
Set<String> taskCodeStatus = jsonObjects.stream().map(jsonObject -> jsonObject.getString("taskCode")).collect(Collectors.toSet()); |
|
|
|
log.debug("异步执行任务报告合并,区域: {} 下的任务编码集合: {}", taskAreaName, taskCodeStatus); |
|
|
|
|
|
|
|
// 如果patrolTaskCodes 都在taskCodeStatus中,则归档该区域的任务 |
|
|
|
if (!taskCodeStatus.containsAll(patrolTaskCodes)) { |
|
|
|
return; |
|
|
|
} |
|
|
|
List<Long> lineIds = jsonObjects.stream().map(jsonObject -> jsonObject.getLong("lineId")).distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
PatrolTaskResultMain patrolTaskResultMain = new PatrolTaskResultMain(); |
|
|
|
patrolTaskResultMain.setLineIds(lineIds); |
|
|
|
patrolTaskResultMain.setCheckPerson("admin"); |
|
|
|
patrolTaskResultMainController.updateInfo_lingzhou(patrolTaskResultMain); |
|
|
|
PrintUtil.useTime("异步执行任务报告合并,区域: " + taskAreaName + " 下的任务归档完成", startTime); |
|
|
|
|
|
|
|
} |
|
|
|
} |