|
|
|
@ -11,6 +11,8 @@ import com.inspect.base.core.constant.Color; |
|
|
|
import com.inspect.base.core.constant.RedisConst; |
|
|
|
import com.inspect.base.core.domain.DataMsg; |
|
|
|
import com.inspect.base.core.enums.PointStatusEnum; |
|
|
|
import com.inspect.base.core.enums.ResStatusEnum; |
|
|
|
import com.inspect.base.core.enums.ResultTypeEnum; |
|
|
|
import com.inspect.base.core.enums.TaskStatus; |
|
|
|
import com.inspect.base.core.service.SyncDataToUpstreamService; |
|
|
|
import com.inspect.base.core.sftp.SftpClient; |
|
|
|
@ -71,6 +73,7 @@ import java.util.*; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.Executors; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@RestController |
|
|
|
@ -182,7 +185,7 @@ public class PatrolTaskController extends BaseController { |
|
|
|
|
|
|
|
@GetMapping("/list") |
|
|
|
public TableDataInfo list(PatrolTask patrolTask) { |
|
|
|
// startPage(); |
|
|
|
startPage(); |
|
|
|
List<PatrolTask> taskList = patrolTaskService.selectPatrolTaskList(patrolTask); |
|
|
|
logger.debug("[TASK] patrolTask: {}, taskList: {}", patrolTask, taskList); |
|
|
|
for (PatrolTask task : taskList) { |
|
|
|
@ -190,50 +193,17 @@ public class PatrolTaskController extends BaseController { |
|
|
|
patrolTaskStatus.setTaskCode(task.getTaskCode()); |
|
|
|
patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode()); |
|
|
|
List<PatrolTaskStatus> statusList = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); |
|
|
|
String taskMajorId = task.getTaskCode(); |
|
|
|
int totalPoints = patrolTaskInfoService.countPatrolTaskInfoByMajorId(taskMajorId); |
|
|
|
task.setTotalPoints(totalPoints); |
|
|
|
if (!statusList.isEmpty()) { |
|
|
|
task.setFileStatus("1"); |
|
|
|
} else { |
|
|
|
task.setFileStatus("0"); |
|
|
|
} |
|
|
|
// String areaIdS = task.getAreaIdS(); |
|
|
|
// AjaxResult ajaxResult = FeignBasedataAreaService.list((new JSONObject()).fluentPut("areaIdS", areaIdS)); |
|
|
|
// JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(ajaxResult)); |
|
|
|
// // 检查响应是否成功 |
|
|
|
// if ("200".equals(ajaxResult.get("code").toString())) { |
|
|
|
// JSONArray data = jsonObject.getJSONArray("data"); |
|
|
|
// if (data != null && !data.isEmpty()) { |
|
|
|
// List<String> areaNames = data.stream() |
|
|
|
// .filter(item -> "station_in".equals(((JSONObject) item).getString("areaType"))) |
|
|
|
// .map(item -> ((JSONObject) item).getString("areaName")) |
|
|
|
// .collect(Collectors.toList()); |
|
|
|
// task.setAreaName(StringUtils.join(areaNames, StringUtils.COMMA)); |
|
|
|
// } |
|
|
|
// } |
|
|
|
} |
|
|
|
List<PatrolTask> taskListEx = taskList; |
|
|
|
if (StringUtils.isNotEmpty(patrolTask.getAreaName())) { |
|
|
|
taskListEx = new ArrayList<>(); |
|
|
|
for (PatrolTask task : taskList) { |
|
|
|
if (StringUtils.isNotEmpty(task.getAreaName()) && task.getAreaName().contains(patrolTask.getAreaName())) { |
|
|
|
taskListEx.add(task); |
|
|
|
} |
|
|
|
} |
|
|
|
// PageDomain pageDomain = TableSupport.buildPageRequest(); |
|
|
|
// int pageNum = pageDomain.getPageNum(); |
|
|
|
// int pageSize = pageDomain.getPageSize(); |
|
|
|
// int toNum = Math.min(taskListEx.size(), pageNum * pageSize); |
|
|
|
// List<PatrolTask> pageList = taskListEx.subList((pageNum - 1) * pageSize, toNum); |
|
|
|
// return getDataTable(0, pageList, taskListEx); |
|
|
|
// 统计任务点位数量 |
|
|
|
String taskMajorId = task.getTaskCode(); |
|
|
|
int totalPoints = patrolTaskInfoService.countPatrolTaskInfoByMajorId(taskMajorId); |
|
|
|
task.setTotalPoints(totalPoints); |
|
|
|
} |
|
|
|
PageDomain pageDomain = TableSupport.buildPageRequest(); |
|
|
|
int pageNum = pageDomain.getPageNum(); |
|
|
|
int pageSize = pageDomain.getPageSize(); |
|
|
|
int toNum = Math.min(taskListEx.size(), pageNum * pageSize); |
|
|
|
List<PatrolTask> pageList = taskListEx.subList((pageNum - 1) * pageSize, toNum); |
|
|
|
return getDataTable(0, pageList, taskListEx); |
|
|
|
return getDataTable(taskList); |
|
|
|
} |
|
|
|
|
|
|
|
@GetMapping({"/taskInfo"}) |
|
|
|
@ -388,23 +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.getOriginalValue()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 7. 所有过滤条件合并为一个 stream(避免多次 filter + collect) |
|
|
|
newList = newList.stream() |
|
|
|
.filter(element -> StringUtils.isEmpty(patrolTaskStatus.getAlgName()) |
|
|
|
@ -537,6 +490,58 @@ public class PatrolTaskController extends BaseController { |
|
|
|
return AjaxResult.success(patrolTask); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 信息 |
|
|
|
* |
|
|
|
* @param object |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping({"/shaoxing/{taskId}"}) |
|
|
|
public AjaxResult getInfoShaoxing(@PathVariable("taskId") Object object) { |
|
|
|
long taskId; |
|
|
|
try { |
|
|
|
taskId = Long.parseLong(String.valueOf(object)); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.info("[TASK] parameter taskId error: {}", e.getMessage()); |
|
|
|
return AjaxResult.fail(500, "parameter error: {}", e.getMessage()); |
|
|
|
} |
|
|
|
List<PrevPoint> prevPoints = new ArrayList<>(); |
|
|
|
PatrolTask patrolTask = patrolTaskService.selectPatrolTaskByTaskId(taskId); |
|
|
|
if (patrolTask == null) { |
|
|
|
return AjaxResult.fail(500, "任务不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isEmpty(patrolTask.getExecutionMode())) { |
|
|
|
patrolTask.setExecutionMode("0"); |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isEmpty(patrolTask.getType())) { |
|
|
|
patrolTask.setType("4"); |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(patrolTask.getCycleMonth())) { |
|
|
|
String cycleMonth = calcCycleMonth(patrolTask.getCycleMonth()); |
|
|
|
if (StringUtils.isNotEmpty(cycleMonth)) { |
|
|
|
patrolTask.setCycleMonth(cycleMonth); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo(); |
|
|
|
patrolTaskInfo.setTaskMajorId(patrolTask.getTaskId() + ""); |
|
|
|
List<PatrolTaskInfo> patrolTaskInfos = patrolTaskInfoService.selectPatrolTaskInfoList(patrolTaskInfo); |
|
|
|
List<String> patrolPointIds = new ArrayList<>(); |
|
|
|
if (!patrolTaskInfos.isEmpty()) { |
|
|
|
for (PatrolTaskInfo taskInfo : patrolTaskInfos) { |
|
|
|
patrolPointIds.add(taskInfo.getDeviceId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
patrolTask.setPrevPoints(prevPoints); |
|
|
|
patrolTask.setPatrolPointIds(patrolPointIds); |
|
|
|
return AjaxResult.success(patrolTask); |
|
|
|
} |
|
|
|
|
|
|
|
@Log( |
|
|
|
title = "巡视任务(任务模型文件数据)", |
|
|
|
businessType = BizType.INSERT |
|
|
|
@ -590,6 +595,537 @@ public class PatrolTaskController extends BaseController { |
|
|
|
return patrolTask.getTaskCode() + "_" + sdf.format(patrolTask.getCycleExecuteTime()); |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping({"/shaoxing/add"}) |
|
|
|
@ResponseBody |
|
|
|
public AjaxResult add_shaoxing(@RequestBody String message) { |
|
|
|
logger.info("[TASK] add message: {}", message); |
|
|
|
List<String> patrolTaskIds = new ArrayList<>(); |
|
|
|
if (StringUtils.isEmpty(message)) { |
|
|
|
return AjaxResult.success(String.join(StringUtils.COMMA, patrolTaskIds)); |
|
|
|
} |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(message); |
|
|
|
logger.info(Color.GREEN + "[MAIN] toPatrolTaskList jsonObject: {}" + Color.END, jsonObject); |
|
|
|
PatrolTask patrolTask = new PatrolTask(); |
|
|
|
toPatrolTask(jsonObject, patrolTask); |
|
|
|
|
|
|
|
List<String> patrolPointIds = new ArrayList<>(); |
|
|
|
// 点位信息 |
|
|
|
if (jsonObject.get("patrolPointIds") != null) { |
|
|
|
String jsonObjectString = jsonObject.get("patrolPointIds").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
String[] pointArr = jsonObjectString.split(","); |
|
|
|
patrolPointIds = Arrays.asList(pointArr); |
|
|
|
} |
|
|
|
} |
|
|
|
List<PatrolTaskInfo> taskInfos = new ArrayList<>(); |
|
|
|
if (patrolPointIds.size() > 0) { |
|
|
|
// 查询点位信息 |
|
|
|
List<JSONObject> patrolPointList = patrolTaskService.selectBasedataPatrolPointList(patrolPointIds); |
|
|
|
Map<Long, JSONObject> patrolPointIdMap = patrolPointList.stream().collect(Collectors.toMap(item -> item.getLong("patrolPointId"), Function.identity())); |
|
|
|
// 查询点位预置位信息 |
|
|
|
List<JSONObject> basedataPatrolPointPresetList = patrolTaskService.selectBasedataPatrolPointPresetList(patrolPointIds); |
|
|
|
Map<Long, JSONObject> basedataPatrolPointPresetMap = basedataPatrolPointPresetList.stream().collect(Collectors.toMap(item -> item.getLong("patrolPointId"), Function.identity(), (e1, e2) -> e2)); |
|
|
|
// 查询点位预置位位置信息 |
|
|
|
List<JSONObject> basedataPatrolPresetPosList = patrolTaskService.selectPatrolPresetPosList(patrolPointIds); |
|
|
|
Map<Long, JSONObject> basedataPatrolPresetPosMap = basedataPatrolPresetPosList.stream().collect(Collectors.toMap(item -> item.getLong("patrolPointId"), Function.identity(), (e1, e2) -> e2)); |
|
|
|
Set<String> eqpBookIdPreset = basedataPatrolPointPresetList.stream().map(basedataPatrolPointPresetJson -> { |
|
|
|
return basedataPatrolPointPresetJson.getString("eqpBookId"); |
|
|
|
}).collect(Collectors.toSet()); |
|
|
|
Set<String> eqpBookIdPos = basedataPatrolPresetPosList.stream().map(basedataPatrolPresetPosJson -> { |
|
|
|
return basedataPatrolPresetPosJson.getString("eqpBookId"); |
|
|
|
}).collect(Collectors.toSet()); |
|
|
|
List<String> eqpBookIds = new ArrayList<>(); |
|
|
|
eqpBookIds.addAll(eqpBookIdPreset); |
|
|
|
eqpBookIds.addAll(eqpBookIdPos); |
|
|
|
// 查询设备信息 |
|
|
|
List<Map<String, String>> list = patrolTaskInfoService.selectVideoPosByPointIdByEqpbookIds(eqpBookIds); |
|
|
|
Map<String, Map<String, String>> eqpBooksMap = |
|
|
|
list.stream().collect(Collectors.toMap(e -> String.valueOf(e.get("eqp_book_id")), e -> e, (e1, e2) -> e2)); |
|
|
|
List<String> devTypeList = new LinkedList<>(); |
|
|
|
Set<String> devNoSet = new LinkedHashSet<>(); |
|
|
|
Set<String> deviceSet = new LinkedHashSet<>(); |
|
|
|
// 查询点位预置位信息 |
|
|
|
for (String patrolPointId : patrolPointIds) { |
|
|
|
PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo(); |
|
|
|
patrolTaskInfo.setEbookId(basedataPatrolPointPresetMap.getOrDefault(Long.valueOf(patrolPointId), basedataPatrolPresetPosMap.getOrDefault(Long.valueOf(patrolPointId),new JSONObject())).getString("eqpBookId")); |
|
|
|
Map<String, String> videoPos = eqpBooksMap.get(patrolTaskInfo.getEbookId()); |
|
|
|
String type = videoPos.get("type"); |
|
|
|
String patrolDeviceCode = videoPos.get("patrol_device_code"); |
|
|
|
String typeEx; |
|
|
|
if (type.equals("13")) { |
|
|
|
typeEx = "0"; |
|
|
|
} else if (!type.equals("1") && !type.equals("2") && !type.equals("3")) { |
|
|
|
typeEx = "2"; |
|
|
|
} else { |
|
|
|
typeEx = "1"; |
|
|
|
} |
|
|
|
patrolTaskInfo.setDeviceId(patrolPointId); |
|
|
|
patrolTaskInfo.setDeviceName(patrolPointIdMap.getOrDefault(Long.valueOf(patrolPointId), new JSONObject()).getString("patrolPointName")); |
|
|
|
patrolTaskInfo.setComponentId(patrolPointIdMap.getOrDefault(Long.valueOf(patrolPointId), new JSONObject()).getString("relationDeviceId")); |
|
|
|
// patrolTaskInfo.setComponentName(); |
|
|
|
// patrolTaskInfo.setBayId(); |
|
|
|
// patrolTaskInfo.setBayName(); |
|
|
|
patrolTaskInfo.setMainDeviceId(patrolPointIdMap.getOrDefault(Long.valueOf(patrolPointId), new JSONObject()).getString("relationMainDeviceId")); |
|
|
|
// patrolTaskInfo.setMainDeviceName(); |
|
|
|
patrolTaskInfo.setDevNo(patrolDeviceCode); |
|
|
|
patrolTaskInfo.setDevType(typeEx); |
|
|
|
patrolTaskInfo.setPresetCode(basedataPatrolPointPresetMap.getOrDefault(Long.valueOf(patrolPointId), basedataPatrolPresetPosMap.getOrDefault(Long.valueOf(patrolPointId),new JSONObject())).getString("presetCode")); |
|
|
|
patrolTaskInfo.setEbookName(videoPos.getOrDefault("patrol_device_name", "")); |
|
|
|
// patrolTaskInfoService.insertPatrolTaskInfo(patrolTaskInfo); |
|
|
|
if (devNoSet.add(patrolTaskInfo.getDevNo())) { |
|
|
|
devTypeList.add(patrolTaskInfo.getDevType()); |
|
|
|
} |
|
|
|
deviceSet.add(patrolTaskInfo.getMainDeviceId()); |
|
|
|
taskInfos.add(patrolTaskInfo); |
|
|
|
} |
|
|
|
patrolTask.setDevType(StringUtils.join(devTypeList, ",")); |
|
|
|
patrolTask.setDevNo(StringUtils.join(devNoSet, ",")); |
|
|
|
patrolTask.setDeviceList(StringUtils.join(deviceSet, ",")); |
|
|
|
|
|
|
|
} |
|
|
|
logger.info("任务新增,patrolTask {}",patrolTask); |
|
|
|
int majorId = patrolTaskService.insertPatrolTask(patrolTask); |
|
|
|
patrolTaskIds.add(majorId + ""); |
|
|
|
logger.info("============任务新增成功======="); |
|
|
|
PatrolTask patrolTaskTemp = patrolTaskService.selectPatrolTaskByTaskId((long) majorId); |
|
|
|
patrolTaskTemp.setTaskCode(patrolTaskTemp.getTaskId() + ""); |
|
|
|
patrolTaskService.updatePatrolTask(patrolTaskTemp); |
|
|
|
|
|
|
|
patrolTask.setTaskCode(patrolTaskTemp.getTaskCode()); |
|
|
|
for (PatrolTaskInfo taskInfo : taskInfos) { |
|
|
|
taskInfo.setTaskMajorId(majorId + ""); |
|
|
|
} |
|
|
|
patrolTaskInfoService.batchInsertPatrolTaskInfo(taskInfos); |
|
|
|
|
|
|
|
try { |
|
|
|
logger.info("-----------------patrolTask start"); |
|
|
|
issueTask(patrolTask); |
|
|
|
logger.info("-----------------patrolTask end"); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.info("error", e); |
|
|
|
} |
|
|
|
|
|
|
|
return AjaxResult.success(String.join(StringUtils.COMMA, patrolTaskIds)); |
|
|
|
} |
|
|
|
|
|
|
|
private void toPatrolTask(JSONObject jsonObject, PatrolTask patrolTask) { |
|
|
|
String jsonObjectString; |
|
|
|
|
|
|
|
if (jsonObject.get("deviceType") != null) { |
|
|
|
jsonObjectString = jsonObject.get("deviceType").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setDeviceType(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("pointType") != null) { |
|
|
|
jsonObjectString = jsonObject.get("pointType").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setPointType(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("taskId") != null) { |
|
|
|
jsonObjectString = jsonObject.get("taskId").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setTaskId(Long.valueOf(jsonObjectString)); |
|
|
|
patrolTask.setCreateTime(patrolTaskService.selectPatrolTaskByTaskId(Long.valueOf(jsonObjectString)).getCreateTime()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("stationName") != null) { |
|
|
|
jsonObjectString = jsonObject.get("stationName").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setStationName(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("areaId") != null) { |
|
|
|
jsonObjectString = jsonObject.get("areaId").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setAreaId(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("areaName") != null) { |
|
|
|
jsonObjectString = jsonObject.get("areaName").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setAreaName(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("stationCode") != null) { |
|
|
|
jsonObjectString = jsonObject.get("stationCode").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setStationCode(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("type") != null) { |
|
|
|
jsonObjectString = jsonObject.get("type").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setType(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("taskCode") != null) { |
|
|
|
jsonObjectString = jsonObject.get("taskCode").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setTaskCode(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("taskName") != null) { |
|
|
|
jsonObjectString = jsonObject.get("taskName").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setTaskName(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("priority") != null) { |
|
|
|
jsonObjectString = jsonObject.get("priority").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setPriority(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("deviceLevel") != null) { |
|
|
|
jsonObjectString = jsonObject.get("deviceLevel").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setDeviceLevel(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("deviceList") != null) { |
|
|
|
jsonObjectString = jsonObject.get("deviceList").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setDeviceList(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("fixedStartTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("fixedStartTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setFixedStartTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("cycleMonth") != null) { |
|
|
|
jsonObjectString = jsonObject.get("cycleMonth").toString(); |
|
|
|
if (jsonObjectString != null && StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setCycleMonth(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("cycleWeek") != null) { |
|
|
|
jsonObjectString = jsonObject.get("cycleWeek").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setCycleWeek(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("cycleExecuteTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("cycleExecuteTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setCycleExecuteTime(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("cycleStartTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("cycleStartTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setCycleStartTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("cycleEndTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("cycleEndTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setCycleEndTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("intervalNumber") != null) { |
|
|
|
jsonObjectString = jsonObject.get("intervalNumber").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setIntervalNumber(Integer.parseInt(jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("intervalType") != null) { |
|
|
|
jsonObjectString = jsonObject.get("intervalType").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setIntervalType(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("intervalExecuteTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("intervalExecuteTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setIntervalExecuteTime(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("intervalStartTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("intervalStartTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setIntervalStartTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("intervalEndTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("intervalEndTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setIntervalEndTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("invalidStartTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("invalidStartTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setInvalidStartTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("invalidEndTime") != null) { |
|
|
|
jsonObjectString = jsonObject.get("invalidEndTime").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setInvalidEndTime(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("isenable") != null) { |
|
|
|
jsonObjectString = jsonObject.get("isenable").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setIsEnable(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("devType") != null) { |
|
|
|
jsonObjectString = jsonObject.get("devType").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setDevType(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("creator") != null) { |
|
|
|
jsonObjectString = jsonObject.get("creator").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setDrafter(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("executionStatus") != null) { |
|
|
|
jsonObjectString = jsonObject.get("executionStatus").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setExecutionStatus(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("taskCycle") != null) { |
|
|
|
jsonObjectString = jsonObject.get("taskCycle").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setTaskCycle(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("devNo") != null) { |
|
|
|
jsonObjectString = jsonObject.get("devNo").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setDevNo(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("executionMode") != null) { |
|
|
|
jsonObjectString = jsonObject.get("executionMode").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setExecutionMode(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("linkageState") != null) { |
|
|
|
jsonObjectString = jsonObject.get("linkageState").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setLinkageState(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("areaIdS") != null) { |
|
|
|
jsonObjectString = jsonObject.get("areaIdS").toString(); |
|
|
|
if (jsonObjectString != null && StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setAreaIdS(jsonObjectString); |
|
|
|
// 用新的区域树 |
|
|
|
String areaNameS = getAreaNameSByAreaIdSRelation(jsonObjectString); |
|
|
|
patrolTask.setAreaName(areaNameS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("taskId") != null) { |
|
|
|
jsonObjectString = jsonObject.get("taskId").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setTaskId(Long.valueOf(jsonObjectString)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (jsonObject.get("cycleMonth") != null) { |
|
|
|
jsonObjectString = jsonObject.get("cycleMonth").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
patrolTask.setCycleMonth(jsonObjectString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(patrolTask.getCycleMonth())) { |
|
|
|
final String cycleMonth = toCycleMonth(patrolTask.getCycleMonth()); |
|
|
|
if (StringUtils.isNotEmpty(cycleMonth)) { |
|
|
|
patrolTask.setCycleMonth(cycleMonth); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
String executionType = "1"; |
|
|
|
if (jsonObject.get("executionType") != null) { |
|
|
|
executionType = jsonObject.get("executionType").toString(); |
|
|
|
} |
|
|
|
|
|
|
|
if ("2".equals(executionType) || "3".equals(executionType)) { |
|
|
|
patrolTask.setFixedStartTime(null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping({"/shaoxing/save"}) |
|
|
|
@ResponseBody |
|
|
|
public AjaxResult save_shaoxing(@RequestBody String message) { |
|
|
|
try { |
|
|
|
logger.info("message: {}", message); |
|
|
|
int a = 1; |
|
|
|
if (StringUtils.isNotEmpty(message)) { |
|
|
|
JSONObject parseObject = JSONObject.parseObject(message); |
|
|
|
PatrolTask patrolTask = new PatrolTask(); |
|
|
|
toPatrolTask(parseObject, patrolTask); |
|
|
|
String key = redisService.getCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, String.valueOf(patrolTask.getTaskId())); |
|
|
|
if (key != null && key.contains(String.valueOf(patrolTask.getTaskId()))) { |
|
|
|
return AjaxResult.error("任务正在执行,禁止修改!"); |
|
|
|
} |
|
|
|
|
|
|
|
patrolTask.setStorage(message); |
|
|
|
String cycleMonthText; |
|
|
|
if (StringUtils.isNotEmpty(patrolTask.getCycleMonth())) { |
|
|
|
cycleMonthText = toCycleMonth(patrolTask.getCycleMonth()); |
|
|
|
if (StringUtils.isNotEmpty(cycleMonthText)) { |
|
|
|
patrolTask.setCycleMonth(cycleMonthText); |
|
|
|
} |
|
|
|
} |
|
|
|
String executionTypeText = ""; |
|
|
|
if (parseObject.get("executionType") != null) { |
|
|
|
executionTypeText = parseObject.get("executionType").toString(); |
|
|
|
} |
|
|
|
if ("2".equals(executionTypeText) || "3".equals(executionTypeText)) { |
|
|
|
patrolTask.setFixedStartTime(null); |
|
|
|
patrolTaskService.updatePatrolTaskTime(patrolTask.getTaskId().toString()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Long majorId = patrolTask.getTaskId(); |
|
|
|
patrolTask.setTaskCode(patrolTask.getTaskId() + ""); |
|
|
|
patrolTaskInfoService.deletePatrolTaskInfoByMajorId(majorId); |
|
|
|
// 点位信息 |
|
|
|
List<String> patrolPointIds = new ArrayList<>(); |
|
|
|
if (parseObject.get("patrolPointIds") != null) { |
|
|
|
String jsonObjectString = parseObject.get("patrolPointIds").toString(); |
|
|
|
if (StringUtils.isNotEmpty(jsonObjectString)) { |
|
|
|
String[] pointArr = jsonObjectString.split(","); |
|
|
|
patrolPointIds = Arrays.asList(pointArr); |
|
|
|
} |
|
|
|
} |
|
|
|
List<PatrolTaskInfo> taskInfos = new ArrayList<>(); |
|
|
|
if (patrolPointIds.size() > 0) { |
|
|
|
// 查询点位信息 |
|
|
|
List<JSONObject> patrolPointList = patrolTaskService.selectBasedataPatrolPointList(patrolPointIds); |
|
|
|
Map<Long, JSONObject> patrolPointIdMap = patrolPointList.stream().collect(Collectors.toMap(item -> item.getLong("patrolPointId"), Function.identity())); |
|
|
|
// 查询点位预置位信息 |
|
|
|
List<JSONObject> basedataPatrolPointPresetList = patrolTaskService.selectBasedataPatrolPointPresetList(patrolPointIds); |
|
|
|
Map<Long, JSONObject> basedataPatrolPointPresetMap = basedataPatrolPointPresetList.stream().collect(Collectors.toMap(item -> item.getLong("patrolPointId"), Function.identity(), (e1, e2) -> e2)); |
|
|
|
// 查询点位预置位位置信息 |
|
|
|
List<JSONObject> basedataPatrolPresetPosList = patrolTaskService.selectPatrolPresetPosList(patrolPointIds); |
|
|
|
Map<Long, JSONObject> basedataPatrolPresetPosMap = basedataPatrolPresetPosList.stream().collect(Collectors.toMap(item -> item.getLong("patrolPointId"), Function.identity(), (e1, e2) -> e2)); |
|
|
|
Set<String> eqpBookIdPreset = basedataPatrolPointPresetList.stream().map(basedataPatrolPointPresetJson -> { |
|
|
|
return basedataPatrolPointPresetJson.getString("eqpBookId"); |
|
|
|
}).collect(Collectors.toSet()); |
|
|
|
Set<String> eqpBookIdPos = basedataPatrolPresetPosList.stream().map(basedataPatrolPresetPosJson -> { |
|
|
|
return basedataPatrolPresetPosJson.getString("eqpBookId"); |
|
|
|
}).collect(Collectors.toSet()); |
|
|
|
List<String> eqpBookIds = new ArrayList<>(); |
|
|
|
eqpBookIds.addAll(eqpBookIdPreset); |
|
|
|
eqpBookIds.addAll(eqpBookIdPos); |
|
|
|
// 查询设备信息 |
|
|
|
List<Map<String, String>> list = patrolTaskInfoService.selectVideoPosByPointIdByEqpbookIds(eqpBookIds); |
|
|
|
Map<String, Map<String, String>> eqpBooksMap = |
|
|
|
list.stream().collect(Collectors.toMap(e -> String.valueOf(e.get("eqp_book_id")), e -> e, (e1, e2) -> e2)); |
|
|
|
List<String> devTypeList = new LinkedList<>(); |
|
|
|
Set<String> devNoSet = new LinkedHashSet<>(); |
|
|
|
Set<String> deviceSet = new LinkedHashSet<>(); |
|
|
|
// 查询点位预置位信息 |
|
|
|
for (String patrolPointId : patrolPointIds) { |
|
|
|
PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo(); |
|
|
|
patrolTaskInfo.setEbookId(basedataPatrolPointPresetMap.getOrDefault(Long.valueOf(patrolPointId), basedataPatrolPresetPosMap.getOrDefault(Long.valueOf(patrolPointId),new JSONObject())).getString("eqpBookId")); |
|
|
|
Map<String, String> videoPos = eqpBooksMap.get(patrolTaskInfo.getEbookId()); |
|
|
|
String type = videoPos.get("type"); |
|
|
|
String patrolDeviceCode = videoPos.get("patrol_device_code"); |
|
|
|
String typeEx; |
|
|
|
if (type.equals("13")) { |
|
|
|
typeEx = "0"; |
|
|
|
} else if (!type.equals("1") && !type.equals("2") && !type.equals("3")) { |
|
|
|
typeEx = "2"; |
|
|
|
} else { |
|
|
|
typeEx = "1"; |
|
|
|
} |
|
|
|
patrolTaskInfo.setDeviceId(patrolPointId); |
|
|
|
patrolTaskInfo.setDeviceName(patrolPointIdMap.getOrDefault(Long.valueOf(patrolPointId), new JSONObject()).getString("patrolPointName")); |
|
|
|
patrolTaskInfo.setComponentId(patrolPointIdMap.getOrDefault(Long.valueOf(patrolPointId), new JSONObject()).getString("relationDeviceId")); |
|
|
|
// patrolTaskInfo.setComponentName(); |
|
|
|
// patrolTaskInfo.setBayId(); |
|
|
|
// patrolTaskInfo.setBayName(); |
|
|
|
patrolTaskInfo.setMainDeviceId(patrolPointIdMap.getOrDefault(Long.valueOf(patrolPointId), new JSONObject()).getString("relationMainDeviceId")); |
|
|
|
// patrolTaskInfo.setMainDeviceName(); |
|
|
|
patrolTaskInfo.setDevNo(patrolDeviceCode); |
|
|
|
patrolTaskInfo.setDevType(typeEx); |
|
|
|
patrolTaskInfo.setPresetCode(basedataPatrolPointPresetMap.getOrDefault(Long.valueOf(patrolPointId), basedataPatrolPresetPosMap.getOrDefault(Long.valueOf(patrolPointId),new JSONObject())).getString("presetCode")); |
|
|
|
patrolTaskInfo.setEbookName(videoPos.getOrDefault("patrol_device_name", "")); |
|
|
|
// patrolTaskInfoService.insertPatrolTaskInfo(patrolTaskInfo); |
|
|
|
if (devNoSet.add(patrolTaskInfo.getDevNo())) { |
|
|
|
devTypeList.add(patrolTaskInfo.getDevType()); |
|
|
|
} |
|
|
|
deviceSet.add(patrolTaskInfo.getMainDeviceId()); |
|
|
|
taskInfos.add(patrolTaskInfo); |
|
|
|
} |
|
|
|
patrolTask.setDevType(StringUtils.join(devTypeList, ",")); |
|
|
|
patrolTask.setDevNo(StringUtils.join(devNoSet, ",")); |
|
|
|
patrolTask.setDeviceList(StringUtils.join(deviceSet, ",")); |
|
|
|
|
|
|
|
} |
|
|
|
patrolTaskService.updatePatrolTask(patrolTask); |
|
|
|
for (PatrolTaskInfo taskInfo : taskInfos) { |
|
|
|
taskInfo.setTaskMajorId(majorId + ""); |
|
|
|
} |
|
|
|
patrolTaskInfoService.batchInsertPatrolTaskInfo(taskInfos); |
|
|
|
issueTask(patrolTask); |
|
|
|
// 修改任务,删除原有的任务执行策略,根据新的策略重新生成 |
|
|
|
if (StringUtils.isNotEmpty(patrolTask.getTaskCode())) { |
|
|
|
Collection<String> redisKeys = redisService.keys(RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + "*"); |
|
|
|
for (String redisKey : redisKeys) { |
|
|
|
redisService.deleteObject(redisKey); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return toAjax(a); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
return toAjax(0); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@PostMapping({"/add"}) |
|
|
|
@ResponseBody |
|
|
|
public AjaxResult add(@RequestBody String message) { |
|
|
|
@ -900,6 +1436,7 @@ public class PatrolTaskController extends BaseController { |
|
|
|
} |
|
|
|
|
|
|
|
public void issueTask(PatrolTask patrolTask) { |
|
|
|
logger.info("***************************** JobTaskTimer issueTask ************************************* patrolTask: {}", patrolTask); |
|
|
|
String rebootCode = patrolTaskService.selectConfigByKey("rebootCode");//robotCode |
|
|
|
String uavCode = patrolTaskService.selectConfigByKey("uavCode");//droneCode |
|
|
|
String receiveCode = ""; |
|
|
|
@ -2546,6 +3083,17 @@ public class PatrolTaskController extends BaseController { |
|
|
|
return jsonObject.get("data").toString(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 新的关系树 |
|
|
|
* @param areaIdS |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private String getAreaNameSByAreaIdSRelation(String areaIdS) { |
|
|
|
AjaxResult ajaxResult = FeignBasedataAreaService.selectAreaNameSForTaskByAreaIdSRelation((new JSONObject()).fluentPut("areaIdS", areaIdS)); |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(ajaxResult)); |
|
|
|
return jsonObject.get("data").toString(); |
|
|
|
} |
|
|
|
|
|
|
|
@Log( |
|
|
|
title = "导出任务详情数据", |
|
|
|
businessType = BizType.EXPORT |
|
|
|
@ -3411,7 +3959,6 @@ public class PatrolTaskController extends BaseController { |
|
|
|
listAlgName.add(item.getAlgName()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
map.put("listPointName", listPointName); |
|
|
|
map.put("listPointStatus", mapList); |
|
|
|
map.put("listDeviceSource", listDeviceSource); |
|
|
|
|