|
|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.inspect.taskstatus.controller; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import com.inspect.analysis.domain.ResultAnalysis; |
|
|
|
import com.inspect.analysis.service.IResultAnalysisService; |
|
|
|
import com.inspect.base.core.constant.RedisConst; |
|
|
|
@ -11,17 +12,20 @@ import com.inspect.base.core.utils.StringUtils; |
|
|
|
import com.inspect.base.core.utils.poi.ExcelUtil; |
|
|
|
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.base.redis.service.RedisService; |
|
|
|
import com.inspect.calender.domain.DailyTaskStatsDTO; |
|
|
|
import com.inspect.calender.enums.TaskStateEnum; |
|
|
|
import com.inspect.calender.service.TaskCalendarGenerator; |
|
|
|
import com.inspect.common.log.annotation.Log; |
|
|
|
import com.inspect.common.log.enums.BizType; |
|
|
|
import com.inspect.base.redis.service.RedisService; |
|
|
|
import com.inspect.partrolresult.service.IPatrolResultService; |
|
|
|
import com.inspect.resultmain.domain.PatrolTaskResultMain; |
|
|
|
import com.inspect.resultmain.service.IPatrolTaskResultMainService; |
|
|
|
import com.inspect.system.base.openDomain.BasedataEqpBookMoMain; |
|
|
|
import com.inspect.task.controller.PatrolTaskController; |
|
|
|
import com.inspect.task.domain.PatrolSendTask; |
|
|
|
|
|
|
|
import com.inspect.task.domain.PatrolTask; |
|
|
|
import com.inspect.task.domain.SendTask; |
|
|
|
import com.inspect.task.service.IPatrolTaskService; |
|
|
|
@ -31,29 +35,17 @@ import com.inspect.taskstatus.client.FeignTaskClient; |
|
|
|
import com.inspect.taskstatus.domain.PatrolTaskStatus; |
|
|
|
import com.inspect.taskstatus.domain.TaskCount; |
|
|
|
import com.inspect.taskstatus.service.IPatrolTaskStatusService; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.time.DayOfWeek; |
|
|
|
import java.time.Duration; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.LocalTime; |
|
|
|
import java.time.YearMonth; |
|
|
|
import java.time.ZoneId; |
|
|
|
import java.time.*; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
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({"/taskstatus"}) |
|
|
|
@ -75,6 +67,9 @@ public class PatrolTaskStatusController extends BaseController { |
|
|
|
@Resource |
|
|
|
private IPatrolTaskInfoService patrolTaskInfoService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private TaskCalendarGenerator taskCalendarGenerator; |
|
|
|
|
|
|
|
public PatrolTaskStatusController( |
|
|
|
PatrolTaskController patrolTaskController, |
|
|
|
IPatrolTaskStatusService patrolTaskStatusService, |
|
|
|
@ -136,6 +131,94 @@ public class PatrolTaskStatusController extends BaseController { |
|
|
|
// log.info("[GAB] count: {}", patrolTaskStatusList.size()); |
|
|
|
// return getDataTable(patrolTaskStatusList); |
|
|
|
// } |
|
|
|
// 仅支持查询一天的任务 |
|
|
|
@GetMapping({"/v2/list"}) |
|
|
|
public TableDataInfo listV2(PatrolTaskStatus patrolTaskStatus) { |
|
|
|
List<PatrolTaskStatus> list = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); |
|
|
|
String beginTime = patrolTaskStatus.getBeginTime(); |
|
|
|
if (StringUtils.isNotEmpty(beginTime)) { |
|
|
|
String[] beginTimeArr = beginTime.split("-"); |
|
|
|
int year = Integer.parseInt(beginTimeArr[0]); |
|
|
|
int month = Integer.parseInt(beginTimeArr[1]); |
|
|
|
int day = Integer.parseInt(beginTimeArr[2]); |
|
|
|
List<DailyTaskStatsDTO> futureCalendar = taskCalendarGenerator.getFutureCalendar(year, month, day); |
|
|
|
List<PatrolTaskStatus> futureList = futureCalendar.stream().map(item -> |
|
|
|
PatrolTaskStatus.builder() |
|
|
|
.startTime(Date.from(item.getStartTime().atZone(ZoneId.systemDefault()).toInstant())) |
|
|
|
.taskName(item.getName()) |
|
|
|
.taskCode(item.getId()) |
|
|
|
.taskPatrolledId(item.getId()) |
|
|
|
.patrolStatus(item.getTaskState().toString()) |
|
|
|
.taskState(item.getTaskState().toString()) |
|
|
|
.taskProgress("0") |
|
|
|
.taskEstimatedTime("0") |
|
|
|
.build() |
|
|
|
).collect(Collectors.toList()); |
|
|
|
list.addAll(futureList); |
|
|
|
} |
|
|
|
list.sort(Comparator.comparing(PatrolTaskStatus::getStartTime).reversed()); |
|
|
|
// 分页 |
|
|
|
PageDomain pageDomain = TableSupport.buildPageRequest(); |
|
|
|
Integer pageNum = pageDomain.getPageNum(); |
|
|
|
Integer pageSize = pageDomain.getPageSize(); |
|
|
|
int start = (pageNum - 1) * pageSize; |
|
|
|
int end = Math.min(start + pageSize, list.size()); |
|
|
|
log.info("[GAB] listV2: {} {}", pageNum, pageSize); |
|
|
|
List<PatrolTaskStatus> pageList = list.subList(start, end); |
|
|
|
|
|
|
|
// 更新结果 |
|
|
|
List<String> taskPatrolIds = list.stream().filter(item -> !item.getTaskState().equals(TaskStateEnum.PENDING.getCode())).map(PatrolTaskStatus::getTaskPatrolledId).collect(Collectors.toList()); |
|
|
|
if(taskPatrolIds.size() > 0) { |
|
|
|
List<PatrolTaskResultMain> resultMains = patrolTaskResultMainService.selectMainFileStatus(taskPatrolIds); |
|
|
|
List<String> taskCodeIds = list.stream().map(PatrolTaskStatus::getTaskCode).collect(Collectors.toList()); |
|
|
|
List<Map<String, Object>> pointList = patrolTaskInfoService.selectPatrolTaskInfoCount(taskCodeIds); |
|
|
|
Map<String, String> pointMap = pointList.stream().collect(Collectors.toMap((item) -> (String) item.get("taskMajorId"), (item) -> { |
|
|
|
return String.valueOf(item.get("num")); |
|
|
|
})); |
|
|
|
Map<String, ResultAnalysis> abnormalDataBatchMap = resultAnalysisService.selectTaskAbnormalDataBatch(taskPatrolIds); |
|
|
|
List<ResultAnalysis> allQxAnalysisList = resultAnalysisService.selectResultAnalysisListBatch(taskPatrolIds, "0"); |
|
|
|
Map<String, Map<GroupKey, List<ResultAnalysis>>> groupedAnalysisMap = allQxAnalysisList.stream() |
|
|
|
.collect(Collectors.groupingBy( |
|
|
|
ResultAnalysis::getTaskPatrolId, |
|
|
|
Collectors.groupingBy(data -> new GroupKey(data.getObjectId(), data.getAlgType())) |
|
|
|
)); |
|
|
|
list.forEach((item) -> { |
|
|
|
item.setPatrolStatus("1"); |
|
|
|
item.setPointCount(pointMap.get(item.getTaskCode())); |
|
|
|
if (!item.getTaskProgress().contains("100")) { |
|
|
|
item.setFileStatus("0"); |
|
|
|
} else { |
|
|
|
List<PatrolTaskResultMain> collect = resultMains.stream().filter((res) -> { |
|
|
|
return res.getTaskPatrolledId().equals(item.getTaskPatrolledId()); |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
if (!collect.isEmpty()) { |
|
|
|
item.setFileStatus((collect.get(0)).getFileStatus()); |
|
|
|
} else { |
|
|
|
item.setFileStatus("0"); |
|
|
|
} |
|
|
|
} |
|
|
|
// 异常数据统计 |
|
|
|
ResultAnalysis resultAnalysis = abnormalDataBatchMap.getOrDefault(item.getTaskPatrolledId(), new ResultAnalysis()); |
|
|
|
item.setCsQxNum(resultAnalysis.getCsQxNum()); |
|
|
|
item.setAiQxNum(resultAnalysis.getAiQxNum()); |
|
|
|
item.setCsYcNum(resultAnalysis.getCsYcNum()); |
|
|
|
item.setAiYcNum(resultAnalysis.getAiYcNum()); |
|
|
|
Map<GroupKey, List<ResultAnalysis>> groupKeyListMap = groupedAnalysisMap.get(item.getTaskPatrolledId()); |
|
|
|
item.setQxNum(groupKeyListMap == null ? 0 : groupKeyListMap.size()); |
|
|
|
if (StringUtils.isEmpty(item.getTaskEstimatedTime())) { |
|
|
|
item.setTaskEstimatedTime("0"); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
TableDataInfo rspData = new TableDataInfo(); |
|
|
|
rspData.setCode(200); |
|
|
|
rspData.setRows(pageList); |
|
|
|
rspData.setMsg("Query Ok"); |
|
|
|
rspData.setTotal((new PageInfo<>(list)).getTotal()); |
|
|
|
|
|
|
|
return rspData; |
|
|
|
} |
|
|
|
|
|
|
|
@GetMapping({"/list"}) |
|
|
|
public TableDataInfo list(PatrolTaskStatus patrolTaskStatus) { |
|
|
|
|