From 2afa7232f0d2be91ba31aa898fda3526075bc971 Mon Sep 17 00:00:00 2001 From: lijiuwei Date: Wed, 2 Apr 2025 14:58:37 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/core/constant/RedisConst.java | 14 +- .../base/redis/service/RedisService.java | 23 + .../com/inspect/job/task/JobMainTask.java | 906 +----------------- 3 files changed, 53 insertions(+), 890 deletions(-) diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java index a022eb2..e5f018c 100644 --- a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java @@ -1,16 +1,16 @@ package com.inspect.base.core.constant; public class RedisConst { - public static final String TASK_PATROL_ID = "TASK_PATROL_ID"; - public static final String TASK_PATROL_ID_EX = "TASK+PATROL+ID@"; + public static final String TASK_PATROL_STOP = "PATROL_TASK_STOP";//没有获取该key的地方 + public static final String TASK_CODE_EX = "TASK_CODE@*";//查询匹配用 + + public static final String TASK_PATROL_ID = "TASK_PATROL_ID";//已经和taskcode关联 + public static final String TASK_CODE = "TASK_CODE@";//已经和taskcode关联 + public static final String REQUEST_UUID = "REQUEST_UUID@";//已经和uuid关联 + public static final String TASK_PATROL_STATE = "TASK_PATROL_STATE"; - public static final String TASK_PATROL_STOP = "PATROL_TASK_STOP"; - public static final String TASK_CODE = "TASK_CODE@"; - public static final String TASK_CODE_EX = "TASK_CODE@*"; public static final String TASK_RECORD_CNT = "TASK_RECORD_CNT"; public static final String TASK_CURRENT_CODE = "TASK_CURRENT_CODE@"; - public static final String TASK_REPEAT_CODE = "TASK_REPEAT_CODE@"; public static final String TASK_TIMER_CLOCK = "TASK_TIMER_CLOCK"; public static final String IMMEDIATELY_EXEC_TASK_TIME = "IMMEDIATELY_EXEC_TASK_TIME"; - public static final String REQUEST_UUID = "REQUEST_UUID@"; } diff --git a/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java b/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java index d730cde..6398e7f 100644 --- a/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java +++ b/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java @@ -31,11 +31,23 @@ public class RedisService { redisTemplate.opsForValue().set(key, value); } + public void setCacheObjectOfTask(String key, String taskCode, T value) { + //logger.info(Color.MAGENTA + "[GABRIEL] setCacheObject key: {}" + Color.END, key); + redisTemplate.opsForValue().set(key + taskCode, value); + logger.info("RedisService.trace setCacheObjectOfTask: {}", key + taskCode); + } + public void setCacheObject(String key, T value, Long timeout, TimeUnit timeUnit) { //logger.info(Color.MAGENTA + "[GABRIEL] setCacheObject2 key: {}" + Color.END, key); redisTemplate.opsForValue().set(key, value, timeout, timeUnit); } + public void setCacheObjectOfTask(String key, String taskCode, T value, Long timeout, TimeUnit timeUnit) { + //logger.info(Color.MAGENTA + "[GABRIEL] setCacheObject2 key: {}" + Color.END, key); + redisTemplate.opsForValue().set(key + taskCode, value, timeout, timeUnit); + logger.info("RedisService.trace setCacheObjectOfTask2: {}", key + taskCode); + } + public boolean expire(String key, long timeout) { return expire(key, timeout, TimeUnit.SECONDS); } @@ -57,10 +69,21 @@ public class RedisService { return operation.get(key); } + public T getCacheObjectOfTask(String key, String taskCode) { + ValueOperations operation = redisTemplate.opsForValue(); + logger.info("RedisService.trace getCacheObjectOfTask: {}", key + taskCode); + return operation.get(key + taskCode); + } + public boolean deleteObject(String key) { return redisTemplate.delete(key).booleanValue(); } + public boolean deleteObjectOfTask(String key, String taskCode) { + logger.info("RedisService.trace deleteObjectOfTask: {}", key + taskCode); + return redisTemplate.delete(key + taskCode).booleanValue(); + } + public long deleteObject(Collection collection) { return redisTemplate.delete(collection).longValue(); } diff --git a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java index bf650a0..c6c9a22 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java +++ b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java @@ -121,207 +121,6 @@ public class JobMainTask { this.sftpClient = sftpClient; } - @SuppressWarnings({"unused"}) - public void generalTask() { - if (shaoXinBigModel.isSwitchStatus()) { - log.info("[GABRIEL][BIG-MODEL] gathering temporary handling, need to close nacos bigSwitch"); - redisService.redisTemplate.opsForValue().set(this.BIG_FILE_POINT, -1); - } - - boolean isCycle = false; - boolean isInterval = false; - String[] cycleExecuteTime = new String[3]; - - String currentWeek = getWeekOfDate(new Date()); - Calendar now = Calendar.getInstance(); - int day = DateUtils.getDayInt(); - int hour = DateUtils.getHourInt(); - int minute = DateUtils.getMinuteInt(); - Date d = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - try { - List patrolTaskList = taskExecClient.selectTaskList(PatrolTask.builder().isEnable(TASK_ENABLE).build()); - log.info(Color.GREEN + "[GABRIEL] {inspect-main} selectTaskList task count: {}" + Color.END, patrolTaskList.size()); - for (PatrolTask task : patrolTaskList) { - if (TASK_TYPE_SILENCE.equals(task.getType()) || TASK_TYPE_LINKAGE.equals(task.getType())) { - continue; - } - - List patrolTaskExecRecordList = - taskExecClient.selectCameraPatrolTaskExecRecordList(task.getDevNo(), Collections.singletonList(TaskStatus.RUNNING.getCode())); - if (!patrolTaskExecRecordList.isEmpty()) { - String time = ""; - String[] intervalExecuteTime; - if (isCycle) { - int i; - String[] cycleExecuteTimes; - String week; - if (StringUtils.isNotEmpty(task.getCycleMonth())) { - intervalExecuteTime = task.getCycleMonth().split(StringUtils.COMMA); - cycleExecuteTimes = task.getCycleMonth().split(StringUtils.COMMA); - - for (i = 0; i < intervalExecuteTime.length; ++i) { - week = intervalExecuteTime[i]; - time = cycleExecuteTimes[i].replaceAll(StringUtils.COLON, StringUtils.EMPTY); - if (day == Integer.parseInt(week) && task.getCycleExecuteTime() != null) { - redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task); - } - } - } else if (StringUtils.isNotEmpty(task.getCycleWeek())) { - intervalExecuteTime = task.getCycleWeek().split(StringUtils.COMMA); - cycleExecuteTimes = task.getCycleExecuteTime().split(StringUtils.COMMA); - for (i = 0; i < intervalExecuteTime.length; ++i) { - week = intervalExecuteTime[i]; - time = cycleExecuteTimes[i].replaceAll(StringUtils.COLON, StringUtils.EMPTY); - if (currentWeek.equals(week)) { - redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task); - } - } - } - } else if (isInterval) { - intervalExecuteTime = task.getIntervalExecuteTime().split(StringUtils.COLON); - int j; - if ("1".equals(task.getIntervalType())) { - for (j = 0; j < task.getIntervalNumber(); ++j) { - if (j != 0) { - intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1); - } - - time = hour + minute + cycleExecuteTime[2]; - redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task); - } - } else if ("2".equals(task.getIntervalType())) { - for (j = 0; j < task.getIntervalNumber(); ++j) { - if (j != 0) { - intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1); - } - - redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task); - } - } - } - } else { - long current = 0L; - long fixedStart = 1L; - patrolTaskExecRecordList = taskExecClient.selectCameraPatrolTaskExecRecordList(task.getDevNo(), Arrays.asList(TaskStatus.DONE.getCode(), TaskStatus.PAUSED.getCode())); - if (!patrolTaskExecRecordList.isEmpty()) { - PatrolTaskExecRecord patrolTaskExecRecord = patrolTaskExecRecordList.get(patrolTaskExecRecordList.size() - 1); - current = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis()); - fixedStart = TimeUnit.MILLISECONDS.toMinutes(patrolTaskExecRecord.getStartTime().getTime()); - } - - if (current != fixedStart) { - PatrolPresetPos patrolPresetPos = new PatrolPresetPos(); - PatrolPresetAction patrolPresetAction = new PatrolPresetAction(); - PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo(); - patrolTaskInfo.setTaskMajorId(String.valueOf(task.getTaskId())); - patrolTaskInfo.setDevNo(task.getDevNo()); - if (task.getFixedStartTime() != null - && ExecStatus.REGULAR.getCode().equals(task.getExecutionStatus())) { - isCycle = false; - isInterval = false; - long currentMinutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis()); - long fixedStartMinutes = TimeUnit.MILLISECONDS.toMinutes(task.getFixedStartTime().getTime()); - if (currentMinutes == fixedStartMinutes) { - try { - Thread.sleep(200L); - } catch (InterruptedException interruptedException) { - interruptedException.printStackTrace(); - } - - startThread(patrolTaskInfo, patrolPresetPos, patrolPresetAction, task); - } - } else { - String[] intervalExecuteTime; - if (StringUtils.isNotEmpty(task.getCycleExecuteTime()) - && task.getCycleStartTime() != null - && Integer.parseInt(sdf.format(d)) >= Integer.parseInt(sdf.format(task.getCycleStartTime())) - && Integer.parseInt(sdf.format(d)) <= Integer.parseInt(sdf.format(task.getCycleEndTime())) - && ExecStatus.PERIODIC.getCode().equals(task.getExecutionStatus())) { - isCycle = true; - isInterval = false; - int i; - String month; - String[] cycleExecuteTimes; - if (StringUtils.isNotEmpty(task.getCycleWeek())) { - intervalExecuteTime = task.getCycleWeek().split(StringUtils.COMMA); - cycleExecuteTimes = task.getCycleExecuteTime().split(StringUtils.COMMA); - for (i = 0; i < intervalExecuteTime.length; ++i) { - month = intervalExecuteTime[i]; - if (currentWeek.equals(month)) { - cycleExecuteTime = cycleExecuteTimes[i].split(StringUtils.COLON); - startThread(patrolTaskInfo, - patrolPresetPos, - patrolPresetAction, - hour, - minute, - task, - cycleExecuteTime, - true); - } - } - } else if (StringUtils.isNotEmpty(task.getCycleMonth())) { - intervalExecuteTime = task.getCycleMonth().split(StringUtils.COMMA); - cycleExecuteTimes = task.getCycleExecuteTime().split(StringUtils.COMMA); - for (i = 0; i < intervalExecuteTime.length; ++i) { - month = intervalExecuteTime[i]; - if (day == Integer.parseInt(month) && task.getCycleExecuteTime() != null) { - cycleExecuteTime = cycleExecuteTimes[i].split(StringUtils.COLON); - startThread(patrolTaskInfo, - patrolPresetPos, - patrolPresetAction, - hour, - minute, - task, - cycleExecuteTime, - true); - } - } - } - } else if (StringUtils.isNotEmpty(task.getIntervalExecuteTime()) - && task.getIntervalStartTime() != null - && Integer.parseInt(sdf.format(d)) >= Integer.parseInt(sdf.format(task.getIntervalStartTime())) - && Integer.parseInt(sdf.format(d)) <= Integer.parseInt(sdf.format(task.getIntervalEndTime())) - && ExecStatus.INTERVAL.getCode().equals(task.getExecutionStatus())) { - isCycle = false; - isInterval = true; - intervalExecuteTime = task.getIntervalExecuteTime().split(StringUtils.COLON); - if ("1".equals(task.getIntervalType())) { - for (int j = 0; j < task.getIntervalNumber(); ++j) { - if (j != 0) { - intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1); - } - - startThread(patrolTaskInfo, patrolPresetPos, patrolPresetAction, hour, minute, task, intervalExecuteTime, false); - } - } else if ("2".equals(task.getIntervalType())) { - for (int j = 0; j < task.getIntervalNumber(); ++j) { - if (j != 0) { - intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1); - } - startThread(patrolTaskInfo, - patrolPresetPos, - patrolPresetAction, - hour, - minute, - task, - intervalExecuteTime, - false); - } - } - } - } - } - } - } - } catch (Exception e) { - if (e instanceof RetryableException) - log.warn(Color.YELLOW + "[GABRIEL] {inspect-main} selectTaskList is not online!" + Color.END); - else - e.printStackTrace(); - } - } - private void startThread( final PatrolTaskInfo patrolTaskInfo, final PatrolPresetPos patrolPresetPos, @@ -825,23 +624,6 @@ public class JobMainTask { } } - private String calcTotalProgress(PatrolTaskExecRecord taskExecRecord) { - //从patrol_task_info表中查询任务taskCode比如1220下所有的点位 - List patrolTaskInfoList = - taskExecClient.selectTaskInfoList(PatrolTaskInfo.builder().taskMajorId(taskExecRecord.getTaskId().toString()).build()); - List patrolTaskInfoListTemp = patrolTaskInfoMaintainAreaRemove(patrolTaskInfoList); - //从patrol_task_point_exec_record表中查询当前任务已经执行的点位信息 - List patrolTaskPointExecRecordList - = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder() - .taskCode(taskExecRecord.getTaskCode()) - .oldTaskPatrolledId(taskExecRecord.getOldTaskPatrolId()) - .build()); - log.info("[JOB] calcTotalProgress patrolTaskPointExecRecordList size: {}, patrolTaskInfoListTemp size: {}", patrolTaskPointExecRecordList.size(), patrolTaskInfoListTemp.size()); - String taskProgress = decimalFormatNum(patrolTaskPointExecRecordList.size(), patrolTaskInfoListTemp.size()); - log.info("[JOB] calcTotalProgress progress: {}, taskName: {}, taskCode: {}, OldTaskPatrolledId: {}", taskProgress, taskExecRecord.getTaskName(), taskExecRecord.getTaskCode(), taskExecRecord.getOldTaskPatrolId()); - return taskProgress; - } - private int addCursorNumber(String taskPatrolId, boolean bPointFinished, boolean bOk) { PatrolTaskExecRecord taskExecRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId); @@ -881,18 +663,6 @@ public class JobMainTask { return cursor; } -// private int addFinishNumber(String taskPatrolId) { -// PatrolTaskExecRecord execRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId); -// int finish = execRecord.getFinishNumber(); -// int total = execRecord.getTotalNumber(); -// int value = finish + 1; -// log.debug("[JOB] addFinishNumber finish: {}, total: {}", value, total); -// execRecord.setFinishNumber(value); -// execRecord.setTaskProgress(decimalFormatNum(finish, total)); -// taskExecClient.updatePatrolTaskExecRecord(execRecord); -// return value; -// } - private void resetTaskTimerClock() { redisService.setCacheObject(RedisConst.TASK_TIMER_CLOCK, System.currentTimeMillis()); } @@ -956,58 +726,31 @@ public class JobMainTask { log.info(Color.MAGENTA + "RECORD ROUND, patrolId: {}, recordCounter: {}, redisRecCnt: {}" + Color.END, taskPatrolId, execRecordCounter, redisRecCnt); if (execRecordCounter == redisRecCnt) { // 最后一个record resetRecordCounter(); - final String repeatCode = redisService.getCacheObject(RedisConst.TASK_REPEAT_CODE); - if (StringUtils.isEmpty(repeatCode)) { - //所有的records都完美的执行成功, 要把redis标记清除,不然以后的任务如何执行? - resetRedisCurrentCode(); - } - - String redisImmediatelyExecTaskTime = redisService.getCacheObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); - if (!StringUtils.isEmpty(redisImmediatelyExecTaskTime)) { - redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); - } + resetRedisCurrentCode(); + redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); calcExecCostTime(execRecord.getOldTaskPatrolId()); } - } else { // 该record下的点没有全部执行成功,设置下一轮执行标记 - int times = execRecord.getRebootTimes(); - if (times > 0) { - times--; - execRecord.setRebootTimes(times); - execRecord.setCursorNumber(0); - final int redisRecCnt = redisService.getCacheObject(RedisConst.TASK_RECORD_CNT); - log.info(Color.MAGENTA + "[JOB] TIMES > 0, taskPatrolId: {}, execRecordCounter: {}, redisRecCnt: {}" + Color.END, taskPatrolId, execRecordCounter, redisRecCnt); - if (execRecordCounter == redisRecCnt) {//最后一个record, 复位 - resetRecordCounter(); - calcExecCostTime(execRecord.getOldTaskPatrolId()); - } - final String repeatCode = redisService.getCacheObject(RedisConst.TASK_REPEAT_CODE); - if (StringUtils.isEmpty(repeatCode)) { - log.info(Color.MAGENTA + "[JOB] SET REPEAT FLAG patrolId: {}" + Color.END, taskPatrolId); - String taskRepeatCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - redisService.setCacheObject(RedisConst.TASK_REPEAT_CODE, taskRepeatCode); - } - } else if (times == 0) {//一个record的尝试次数为0,其它的record正在执行中 - //设置本record的执行状态为终止 - execRecord.setTaskState(TaskStatus.HALTED.getCode()); - List totalInfos = getInfosByTaskCode(execRecord); - List finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build()); - String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size()); - log.info("[JOB] 1 totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), totalInfos.size()); - callRemoteSendMsgRunMode( - execRecord.getTaskCode(), - execRecord.getTaskName(), - execRecord.getTaskPatrolId(), - totalProgress, - TaskStatus.DONE.getCode() - ); - //在不知道其它record是否执行完毕的情况下,不能把TASK_CURRENT_CODE锁删除 - final int redisRecCnt = redisService.getCacheObject(RedisConst.TASK_RECORD_CNT); - log.info(Color.MAGENTA + "[JOB] TIMES 0, execRecordCounter: {}, redisRecCnt: {}" + Color.END, execRecordCounter, redisRecCnt); - if (execRecordCounter == redisRecCnt) { - resetRecordCounter(); - resetRedisCurrentCode(); - calcExecCostTime(execRecord.getOldTaskPatrolId()); - } + } else { // 该record下的点没有全部执行成功 + //设置本record的执行状态为终止 + execRecord.setTaskState(TaskStatus.HALTED.getCode()); + List totalInfos = getInfosByTaskCode(execRecord); + List finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build()); + String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size()); + log.info("[JOB] 1 totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), totalInfos.size()); + callRemoteSendMsgRunMode( + execRecord.getTaskCode(), + execRecord.getTaskName(), + execRecord.getTaskPatrolId(), + totalProgress, + TaskStatus.DONE.getCode() + ); + //在不知道其它record是否执行完毕的情况下,不能把TASK_CURRENT_CODE锁删除 + final int redisRecCnt = redisService.getCacheObject(RedisConst.TASK_RECORD_CNT); + log.info(Color.MAGENTA + "[JOB] TIMES 0, execRecordCounter: {}, redisRecCnt: {}" + Color.END, execRecordCounter, redisRecCnt); + if (execRecordCounter == redisRecCnt) { + resetRecordCounter(); + resetRedisCurrentCode(); + calcExecCostTime(execRecord.getOldTaskPatrolId()); } } } @@ -1069,106 +812,6 @@ public class JobMainTask { } - @SuppressWarnings({"unused"}) - private void prePointExceSilenceControl(PatrolTask task, List patrolTaskInfoList, SimpleDateFormat sdf) { - if (patrolTaskInfoList != null && !patrolTaskInfoList.isEmpty()) { - PatrolTaskInfo patrolTaskInfo = patrolTaskInfoList.get(0); - - try { - PatrolPresetPos patrolPresetPos = new PatrolPresetPos(); - patrolPresetPos.setPresetPosCode(patrolTaskInfo.getPresetCode()); - patrolPresetPos.setIsEnable("1"); - List patrolPresetPosList = this.taskExecClient.selectPatrolPresetPosList(patrolPresetPos); - if (patrolPresetPosList != null) { - patrolPresetPos = patrolPresetPosList.get(0); - } - - Date d = new Date(); - int year = DateUtils.getYearInt(); - int month = DateUtils.getMonthInt() + 1; - int day = DateUtils.getDayInt(); - - String basePath; - try { - basePath = "serial=" + patrolPresetPos.getVideoNvrCode() + "&command=goto&preset=" + patrolPresetPos.getPresetPosCode() + "&code=" + patrolPresetPos.getChannelCode(); - this.log.info("预置点转到接口 :{}", "任务编号 :" + task.getTaskCode() + " " + this.liveIVS_URL + this.API_CONTROL_PRESET + basePath); - HttpClientUtils.get(this.liveIVS_URL + this.API_CONTROL_PRESET, basePath); - } catch (Exception e) { - e.printStackTrace(); - } - - basePath = (task.getStationCode() == null ? this.stationCode : task.getStationCode()) + "/" + year + "/" + month + "/" + day + "/" + task.getTaskCode() + "/"; - String param = "?serial=" + patrolPresetPos.getVideoNvrCode() + "&realtime=true&code=" + patrolPresetPos.getChannelCode(); - String channelsnap = "/api/v1/device/channelsnap"; - FtpResult ftpResult = this.saveFile(this.liveIVS_URL + channelsnap + param, patrolPresetPos.getPatrolPointId() + "_" + task.getDevNo() + "_" + sdf.format(d) + ".jpg", basePath); - this.log.info("通道拍照接口 :{}", this.liveIVS_URL + this.API_CONTROL_PRESET + param); - PatrolPresetParam patrolPresetParam = new PatrolPresetParam(); - patrolPresetParam.setPresetPosId(Long.parseLong(patrolPresetPos.getPresetPosId())); - List patrolPresetParams = this.taskExecClient.selectPatrolPresetParamList(patrolPresetParam); - StringBuffer rectangles = new StringBuffer(); - if (patrolPresetParams != null) { - for (PatrolPresetParam presetParam : patrolPresetParams) { - rectangles.append(presetParam.getCoordinate()).append(";"); - } - } - - SilenceTaskPointExecRecord silenceTaskPointExecRecord = new SilenceTaskPointExecRecord(); - silenceTaskPointExecRecord.setDeviceId(patrolTaskInfo.getDeviceId()); - silenceTaskPointExecRecord.setFilePath(ftpResult.getFilepath()); - silenceTaskPointExecRecord.setFileType("2"); - silenceTaskPointExecRecord.setPatrolDeviceCode(task.getDevNo()); - silenceTaskPointExecRecord.setPatrolDeviceName(""); - silenceTaskPointExecRecord.setTaskCode(task.getTaskCode()); - silenceTaskPointExecRecord.setTaskName(task.getTaskName()); - silenceTaskPointExecRecord.setPatrolPointId(Long.parseLong(patrolTaskInfo.getDeviceId())); - silenceTaskPointExecRecord.setTaskPatrolledId(task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d)); - silenceTaskPointExecRecord.setRecognitionType(patrolPresetPos.getAlgSubtypeCode()); - silenceTaskPointExecRecord.setRectangle(rectangles.toString()); - taskExecClient.addSilenceTaskPointExecRecord(silenceTaskPointExecRecord); - log.info("文件保存路径 filePath :{}", ftpResult.getFilepath()); - log.info("发通知,向巡检任务分析接口中发送静默任务执行信息,静默任务信息发送到智能分析进行分析 开始 :Type 61"); - PatrolResultData patrolResultData = new PatrolResultData(); - patrolResultData.setType(StaEnum.CtlModel.getCode()); - patrolResultData.setReceiveCode(""); - patrolResultData.setSendCode(""); - List patrolResults = new ArrayList<>(); - PatrolResult patrolResult = new PatrolResult(); - patrolResult.setTaskPatrolledId(silenceTaskPointExecRecord.getTaskPatrolledId()); - patrolResult.setDeviceId(silenceTaskPointExecRecord.getDeviceId()); - patrolResult.setDeviceName(silenceTaskPointExecRecord.getDeviceName()); - patrolResult.setFilePath(silenceTaskPointExecRecord.getFilePath()); - patrolResult.setFileType(silenceTaskPointExecRecord.getFileType()); - patrolResult.setPatrolDeviceCode(silenceTaskPointExecRecord.getPatrolDeviceCode()); - patrolResult.setPatrolDeviceName(silenceTaskPointExecRecord.getPatrolDeviceName()); - patrolResult.setRectangle(silenceTaskPointExecRecord.getRectangle()); - patrolResult.setTaskCode(silenceTaskPointExecRecord.getTaskCode()); - patrolResult.setTaskName(silenceTaskPointExecRecord.getTaskName()); - - String recognitionType = algMapping(silenceTaskPointExecRecord.getPatrolPointId()); - log.info("算法识别类型对应关系 recognition_type :{}", patrolResult.getRecognitionType()); - patrolResult.setRecognitionType(recognitionType); - - sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - patrolResult.setTime(sdf.format(new Date())); - patrolResult.setUnit(""); - patrolResult.setValid("1"); - patrolResult.setValue(""); - patrolResult.setValueType(""); - patrolResult.setValueUnit(""); - patrolResults.add(patrolResult); - patrolResultData.setItems(patrolResults); - Object obj = JSONArray.toJSON(patrolResultData); - log.info("调用任务结果接口 开始 type = 61 json 内容 :{} ", obj.toString()); - taskExecClient.getInfo(StaEnum.CtlModel.getCode(), obj.toString()); - log.info("调用任务结果接口结束 type = 61 发通知,向巡检任务分析接口中发送静默任务执行信息,静默任务信息发送到智能分析进行分析 结束 "); - } catch (Exception e) { - e.printStackTrace(); - log.error("向巡检任务分析接口中发送静默任务执行信息异常 Exception: ", e); - } - } - - } - private String algMapping(Long patrolPointId) { String dictValue = StringUtils.EMPTY; DBPatrolPoint dbPatrolPoint = taskExecClient.selectBasedataPatrolPointByPatrolPointId(patrolPointId); @@ -1199,49 +842,6 @@ public class JobMainTask { return dictValue; } - private void prePointContinueExec(PatrolTaskExecRecord patrolTaskExecRecord) { - PatrolTaskInfo patrolTaskInfo = PatrolTaskInfo.builder() - .devNo(patrolTaskExecRecord.getDevNo()) - .taskMajorId(patrolTaskExecRecord.getTaskCode()) - .build(); - List patrolTaskInfoList = taskExecClient.selectTaskInfoList(patrolTaskInfo); - /** - * 从当前正在维修表maintain_region表中查询当前正在维修的点位, - * 并把这些点位排除出巡检任务 - */ - List patrolTaskInfoListTemp = patrolTaskInfoMaintainAreaRemove(patrolTaskInfoList); - boolean bContinue = false; - int size = patrolTaskInfoListTemp.size(); - /** - * 该任务下面的patrol_task_info中的设备点一个都没有执行(patrol_task_point_exec_record查不到任何该任务点的执行记录) - * 这种情况下当前点一定要执行prePointExec,否则就会遗漏该点 - */ - for (PatrolTaskInfo taskInfo : patrolTaskInfoListTemp) { - final String deviceIdOfInfo = taskInfo.getDeviceId(); - if (!bContinue) { - final String deviceIdOfRecord = patrolTaskExecRecord.getDeviceId(); - //log.info("[JOB] devId: {}, devId2: {}", deviceIdOfRecord, deviceIdOfInfo); - if (deviceIdOfInfo.equals(deviceIdOfRecord)) { - Long execPointId = patrolTaskExecRecord.getExecPointId(); - log.info("[JOB] TASK RESUMED, LOCK IT! {}", "POINT=" + execPointId + ", NAME=" + patrolTaskExecRecord.getTaskName() + ", ID=" + patrolTaskExecRecord.getTaskPatrolId()); - patrolTaskExecRecord.setDeviceId("-1"); - patrolTaskExecRecord.setExecPointId(-1L); - taskExecClient.updatePatrolTaskExecRecord(patrolTaskExecRecord); - bContinue = true; - /** - * 该任务下面的patrol_task_info中的设备点一个都没有执行(patrol_task_point_exec_record查不到任何该任务点的执行记录) - * 这种情况下当前点一定要执行prePointExec,否则就会遗漏该点 - */ - if (execPointId == 0L) { - prePointExec(patrolTaskExecRecord, taskInfo, size); - } - } - } else { - prePointExec(patrolTaskExecRecord, taskInfo, size); - } - } - } - public static String getWeekOfDate(Date date) { String[] weekDays = new String[]{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; Calendar cal = Calendar.getInstance(); @@ -1254,135 +854,6 @@ public class JobMainTask { return weekDays[w]; } - @SuppressWarnings({"unused"}) - public void continueTask() { - try { - /** - * select from patrol_task_exec_record where task_state=2(running) - */ - List execRecords - = taskExecClient.selectAbeyancePatrolTaskExecRecordList(PatrolTaskExecRecord.builder().build()); - for (PatrolTaskExecRecord execRecord : execRecords) { - threadPool.submit(() -> { - final String deviceId = execRecord.getDeviceId(); - if (!StringUtils.isEmpty(deviceId)) { - log.info(Color.GREEN + "[JOB] RESUME devNo: {}, taskId: {}, deviceId: {}" + Color.END, execRecord.getDevNo(), execRecord.getTaskId(), deviceId); - prePointContinueExec(execRecord); - } - }); - } - } catch (Exception e) { - if (e instanceof RetryableException) { - log.warn(Color.YELLOW + "[GABRIEL] inspect-main is not online!" + Color.END); - } else { - log.warn(Color.YELLOW + "[GABRIEL] other exception!" + Color.END); - } - } - } - - @SuppressWarnings({"unused"}) - public void silenceTask() { - PatrolTask patrolTask = new PatrolTask(); - patrolTask.setType(TASK_TYPE_SILENCE); - patrolTask.setIsEnable(TASK_ENABLE); - Set noRunDevices = new HashSet(); - List patrolTaskList = taskExecClient.selectTaskList(patrolTask); - List taskStates = new ArrayList<>(); - taskStates.add(TASK_STATUS_RUN); - taskStates.add(TASK_STATUS_STOP); - Iterator iterator = patrolTaskList.iterator(); - while (iterator.hasNext()) { - PatrolTask task = iterator.next(); - List patrolTaskExecRecordList = taskExecClient.selectCameraPatrolTaskExecRecordList(task.getDevNo(), taskStates); - String key = REDIS_TASK_SILENCE_DEVICE + task.getDevNo(); - if (patrolTaskExecRecordList.isEmpty()) { - if (!redisService.hasKey(key)) { - log.info("[GABRIEL] key1: {}", key); - redisService.setCacheObject(key, new Date()); - } else { - Date deviceStopTime = this.redisService.getCacheObject(key); - if (CalendarUtil.expire(deviceStopTime, task.getIntervalNumber())) { - redisService.deleteObject(key); - this.log.info("silenceTask 静默任务开始执行 任务编号 :{}", task.getTaskCode()); - PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo(); - patrolTaskInfo.setTaskMajorId(task.getTaskId().toString()); - patrolTaskInfo.setDevNo(task.getDevNo()); - this.startThread(patrolTaskInfo, new PatrolPresetPos(), new PatrolPresetAction(), task); - } - } - } else if (!TASK_TYPE_SILENCE.equals((patrolTaskExecRecordList.get(0)).getTaskType())) { - noRunDevices.add(task.getDevNo()); - } - } - - if (!noRunDevices.isEmpty()) { - noRunDevices.forEach((devNo) -> { - redisService.deleteObject(REDIS_TASK_SILENCE_DEVICE + devNo); - }); - } - } - - @SuppressWarnings({"unused"}) - public void linkageTask() { - PatrolTask patrolTask = new PatrolTask(); - patrolTask.setType(TASK_TYPE_LINKAGE); - patrolTask.setLinkageState("1"); - PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo(); - PatrolPresetPos patrolPresetPos = new PatrolPresetPos(); - PatrolPresetAction patrolPresetAction = new PatrolPresetAction(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); - List patrolTaskList = taskExecClient.selectTaskList(patrolTask); - for (PatrolTask task : patrolTaskList) { - Date d = new Date(); - PatrolTaskExecRecord patrolTaskExecRecord = new PatrolTaskExecRecord(); - patrolTaskExecRecord.setTaskPatrolId(task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d)); - patrolTaskExecRecord.setOldTaskPatrolId(task.getTaskCode() + "_" + sdf.format(d)); - patrolTaskExecRecord.setTaskName(task.getTaskName()); - patrolTaskExecRecord.setTaskCode(task.getTaskCode()); - patrolTaskExecRecord.setTaskState(TASK_STATUS_RUN); - patrolTaskExecRecord.setPlanStartTime(task.getCycleStartTime()); - patrolTaskExecRecord.setStartTime(new Date()); - patrolTaskExecRecord.setTaskProgress(""); - patrolTaskExecRecord.setEndTime(task.getCycleEndTime()); - patrolTaskExecRecord.setDescription(""); - patrolTaskExecRecord.setDevNo(task.getDevNo()); - patrolTaskExecRecord.setTaskType(task.getType()); - patrolTaskExecRecord.setTaskPriority(task.getPriority()); - patrolTaskExecRecord.setTaskId(task.getTaskId()); - patrolTaskExecRecord.setStationName(task.getStationName()); - patrolTaskExecRecord.setStationCode(task.getStationCode()); - log.info("linkageTask 联动任务执行 任务编号 :{}", task.getTaskCode()); - taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord); - log.info("添加 联动任务执行 主表信息 完成 :{}", "任务执行id TaskPatrolledId :" + patrolTaskExecRecord.getTaskPatrolId()); - patrolTaskInfo.setTaskMajorId(task.getTaskId().toString()); - patrolTaskInfo.setDevNo(task.getDevNo()); - List patrolTaskInfoList = taskExecClient.selectTaskInfoList(patrolTaskInfo); - linkagePrePointExceControl(patrolTaskExecRecord, patrolPresetPos, patrolPresetAction, patrolTaskInfoList); - task.setLinkageState("2"); - taskExecClient.updatePatrolTask(task); - } - } - - private void linkagePrePointExceControl(PatrolTaskExecRecord patrolTaskExecRecord, PatrolPresetPos patrolPresetPos, PatrolPresetAction patrolPresetAction, List patrolTaskInfoList) { - PatrolTaskExecRecord taskExecRecord = this.taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(patrolTaskExecRecord.getTaskPatrolId()); - if (taskExecRecord != null && TASK_STATUS_RUN.equals(taskExecRecord.getTaskState())) { - boolean continueExce = true; - int patrolTaskInfoListSize = patrolTaskInfoList.size(); - - for (int ii = 0; ii < patrolTaskInfoListSize; ++ii) { - PatrolTaskInfo taskInfo = patrolTaskInfoList.get(ii); - taskExecRecord = this.taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(patrolTaskExecRecord.getTaskPatrolId()); - if (taskExecRecord != null && (TASK_STATUS_STOP.equals(taskExecRecord.getTaskState()) || "4".equals(taskExecRecord.getTaskState()))) { - continueExce = false; - } - - log.info("联动任务执行预置位 信息 :{}", "DeviceId :" + taskInfo.getDeviceId() + ",DevNo:" + taskInfo.getDevNo()); - prePointExec(taskExecRecord, taskInfo, patrolTaskInfoListSize); - } - } - - } - @PostMapping({"/immediatelyExecTask"}) public void immediatelyExecTask(@RequestBody PatrolTask patrolTask) { String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); @@ -1477,103 +948,10 @@ 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.GREEN + "[JOB] redisRecCnt: {}" + Color.END, redisRecCnt); - } - private void setRedisRecordCount(final int size) { redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, size); } - private String getTaskPatrolId(final PatrolTask patrolTask) { - String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime()); - return patrolTask.getDevNo() + "_" + patrolTask.getTaskCode() + "_" + time; - } - - private String getOldTaskPatrolId(final PatrolTask patrolTask) { - String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime()); - return patrolTask.getTaskCode() + "_" + time + "_" + time; - } - - public void execEveryDayTask(List patrolTaskList) { - setRedisRecordCount(patrolTaskList.size()); - for (PatrolTask patrolTask : patrolTaskList) { - List taskInfos = getInfosByRecord(PatrolTaskExecRecord.builder().devNo(patrolTask.getDevNo()).taskId(patrolTask.getTaskId()).build()); - final String taskPatrolId = getTaskPatrolId(patrolTask); - final String oldTaskPatrolId = getOldTaskPatrolId(patrolTask); - log.info(Color.GREEN + "[JOB] NEW EXEC RECORD: {}, OLD: {}" + Color.END, taskPatrolId, oldTaskPatrolId); - PatrolTaskExecRecord patrolTaskExecRecord = PatrolTaskExecRecord.builder() - .taskPatrolId(taskPatrolId) - .oldTaskPatrolId(oldTaskPatrolId) - .taskName(patrolTask.getTaskName()) - .taskCode(patrolTask.getTaskCode()) - .taskState(TaskStatus.RUNNING.getCode()) - .planStartTime(patrolTask.getCycleStartTime()) - .startTime(new Date()) - .taskProgress("0") - .endTime(patrolTask.getCycleEndTime()) - .description("") - .devNo(patrolTask.getDevNo()) - .taskType(patrolTask.getType()) - .taskPriority(patrolTask.getPriority()) - .taskId(patrolTask.getTaskId()) - .stationName(patrolTask.getStationName()) - .stationCode(patrolTask.getStationCode()) - .deviceId("0") - .execPointId(0L) - .totalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size()) - .build(); - try { - taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord); - taskExecClient.updatePatrolTaskStatus(patrolTask); - } catch (Exception e) { - e.printStackTrace(); - } - threadPool.submit(() -> { - log.info(Color.MAGENTA + "[JOB] THREAD START devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId()); - prePointExecImmediate(patrolTaskExecRecord); - log.info(Color.MAGENTA + "[JOB] THREAD END devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId()); - }); - } - } - - public void execRepeatDayTask(List patrolTaskList) { - for (PatrolTask patrolTask : patrolTaskList) { - final String taskPatrolId = getTaskPatrolId(patrolTask); - final String oldTaskPatrolId = getOldTaskPatrolId(patrolTask); - log.info(Color.GREEN + "[JOB] REPEAT EXEC RECORD: {}, OLD: {}" + Color.END, taskPatrolId, oldTaskPatrolId); - List taskExecRecords = - taskExecClient.selectPatrolTaskExecRecordList(PatrolTaskExecRecord.builder() - .taskPatrolId(taskPatrolId) - .oldTaskPatrolId(oldTaskPatrolId) - .build()); - if (taskExecRecords.isEmpty()) continue; - - PatrolTaskExecRecord execRecord = taskExecRecords.get(0);//理论上来说只能有一条 - int finish = execRecord.getFinishNumber(); - int total = execRecord.getTotalNumber(); - int times = execRecord.getRebootTimes(); - if (finish < total) { - log.info(Color.GREEN + "[JOB] REPEAT EXEC RECORD: id: {}, finish: {}, total: {}, times: {}, progress: {}" + Color.END, execRecord.getTaskPatrolId(), finish, total, times, execRecord.getTaskProgress()); - incrementRedisRecordCounter(); - threadPool.submit(() -> { - log.info(Color.MAGENTA + "[JOB] REPEAT START devNo: {}, taskId: {}" + Color.END, execRecord.getDevNo(), execRecord.getTaskId()); - prePointExecImmediate(execRecord); - log.info(Color.MAGENTA + "[JOB] REPEAT END devNo: {}, taskId: {}" + Color.END, execRecord.getDevNo(), execRecord.getTaskId()); - }); - } - } - } - private void assembleVideoTask(List patrolTaskList, List cameraPatrolTasks) { if (patrolTaskList != null) { for (PatrolTask task : patrolTaskList) { @@ -1674,45 +1052,6 @@ public class JobMainTask { return resList; } - public static void main(String[] args) throws ParseException { - List textList = null; - for (String text : textList) { - System.out.println("text: " + text); - } - - Calendar now = Calendar.getInstance(); - System.out.println("年:" + now.get(1)); - System.out.println("月:" + (now.get(2) + 1)); - System.out.println("日:" + now.get(5)); - System.out.println("时:" + now.get(11)); - System.out.println("分:" + now.get(12)); - System.out.println("秒:" + now.get(13)); - Date d = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - System.out.println("当前时间:" + (Integer.parseInt(sdf.format(d)) <= Integer.parseInt("20220429"))); - System.out.println(System.currentTimeMillis()); - long milliseconds = System.currentTimeMillis(); - long minutes = TimeUnit.MILLISECONDS.toMinutes(milliseconds); - long seconds = TimeUnit.MILLISECONDS.toSeconds(milliseconds); - System.out.format("%d 毫秒 = %d 分钟\n", new Object[]{milliseconds, minutes}); - System.out.println("Or"); - System.out.format("%d 毫秒 = %d 秒", new Object[]{milliseconds, seconds}); - System.out.println(); - System.out.println(getWeekOfDate(new Date())); - sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - System.out.println(TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis())); - System.out.println(TimeUnit.MILLISECONDS.toMinutes(sdf.parse("2022-05-24 10:25:26").getTime())); - DecimalFormat nf = new DecimalFormat("#"); - double dd = 1234.0D; - nf.setMaximumIntegerDigits(3); - - for (int i = 0; i < 6; ++i) { - float percentage = (float) (i + 1) / 6.0F; - System.out.println(nf.format((double) (percentage * 100.0F))); - } - - } - public FtpResult saveFile(String url, String fileName, String fileTypeDir) { try { log.info(Color.GREEN + "[JOB] saveFile STREAM url: {}" + Color.END, url); @@ -1751,117 +1090,6 @@ public class JobMainTask { } } - public static InputStream doGetRequestForInputStream(String urlStr) { - String DEFAULT_CHARSET = "utf-8"; - int DEFAULT_TIME_OUT = 1; - InputStream is = null; - Object os = null; - - try { - URL url = new URL(urlStr); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Content-Type", "plain/text;charset=" + DEFAULT_CHARSET); - conn.setRequestProperty("charset", DEFAULT_CHARSET); - conn.setDoInput(true); - conn.setDoOutput(true); - conn.setRequestMethod("GET"); - conn.connect(); - is = conn.getInputStream(); - } catch (IOException e) { - e.printStackTrace(); - } - - return is; - } - - public static byte[] doGetRequestForFile(String urlStr) { - String DEFAULT_CHARSET = "utf-8"; - int DEFAULT_TIME_OUT = 5000; - InputStream is = null; - ByteArrayOutputStream os = null; - byte[] buff = new byte[1024]; - try { - URL url = new URL(urlStr); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Content-Type", "plain/text;charset=" + DEFAULT_CHARSET); - conn.setRequestProperty("charset", DEFAULT_CHARSET); - conn.setDoInput(true); - conn.setDoOutput(true); - conn.setRequestMethod("GET"); - conn.setReadTimeout(DEFAULT_TIME_OUT); - conn.connect(); - is = conn.getInputStream(); - os = new ByteArrayOutputStream(); - - int len; - while ((len = is.read(buff)) != -1) { - os.write(buff, 0, len); - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (is != null) { - try { - is.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - if (os != null) { - try { - os.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - } - - return os.toByteArray(); - } - - public static void byteArrayToFile(byte[] src, String filePath) { - File dest = new File(filePath); - ByteArrayInputStream is = new ByteArrayInputStream(src); - FileOutputStream os = null; - - try { - os = new FileOutputStream(dest); - byte[] flush = new byte[5]; - boolean var6 = true; - - int len; - while ((len = is.read(flush)) != -1) { - os.write(flush, 0, len); - } - - os.flush(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (os != null) { - os.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - - } - - } - - private String percentage(int current, int all) { - NumberFormat nt = NumberFormat.getPercentInstance(); - nt.setMinimumFractionDigits(0); - float percentage = (float) (current + 1) / (float) all; - System.out.println(nt.format((double) percentage)); - return nt.format((double) percentage); - } - private String decimalFormatNum(int current, int all) { DecimalFormat nf = new DecimalFormat("#"); nf.setMaximumIntegerDigits(3); @@ -1872,94 +1100,6 @@ public class JobMainTask { return nf.format(decimalFormatNum * 100.0F); } - @SuppressWarnings({"unused"}) - public void execEveryDayTask() { - if (isTaskSlotEmpty()) { - Collection redisKeys = redisService.keys(RedisConst.TASK_CODE_EX); - for (String redisKey : redisKeys) { - String[] keywords = StringUtils.split(redisKey, StringUtils.AT); - if (keywords.length == 3) { - String taskCode = keywords[1]; - String fixedStartTime = keywords[2]; - long currentDays = TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis()); - long fixedDays = TimeUnit.MILLISECONDS.toDays(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, fixedStartTime).getTime()); - long currentMinutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis()); - long fixedStartMinutes = TimeUnit.MILLISECONDS.toMinutes(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, fixedStartTime).getTime()); - if (currentDays == fixedDays && currentMinutes >= fixedStartMinutes) { - //if ("1220".equals(taskCode)) - { - //log.info("[GABRIEL] key: {}, curMin: {}, fixedMin:{}\n , curDay: {}, fixedDay:{}!", key, currentMinutes, fixedStartMinutes, currentDays, fixedDays); - extractRedisTask(redisKey); - } - } - } - } - } else { -// log.info(Color.YELLOW + "[JOB] CUR: [{}] IS TAKEN, REPEAT: {}, redisRecCnt: {}" + Color.END, -// redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE), -// redisService.getCacheObject(RedisConst.TASK_REPEAT_CODE), -// redisService.getCacheObject(RedisConst.TASK_RECORD_CNT)); - } - } - - private boolean isTaskSlotEmpty() { - String taskCurrentCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - String taskRepeatCode = redisService.getCacheObject(RedisConst.TASK_REPEAT_CODE); //repeat空了就不执行 - Integer redisRecCnt = redisService.getCacheObject(RedisConst.TASK_RECORD_CNT); - log.info(Color.YELLOW + "[JOB] TASK_CURRENT_CODE@: [{}] TAKEN, TASK_REPEAT_CODE@: {}, TASK_RECORD_CNT: {}" + Color.END, taskCurrentCode, taskRepeatCode, redisRecCnt); - return StringUtils.isEmpty(taskCurrentCode) || - !StringUtils.isEmpty(taskCurrentCode) && !StringUtils.isEmpty(taskRepeatCode) && (redisRecCnt == null || redisRecCnt == 0); - - } - - private boolean isTaskRunning() { - final String taskCurrentCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - return StringUtils.isNotEmpty(taskCurrentCode); - } - - private boolean isTaskRepeatPending() { - final String taskCurrentCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - final String taskRepeatCode = redisService.getCacheObject(RedisConst.TASK_REPEAT_CODE); - return StringUtils.isNotEmpty(taskCurrentCode) - && StringUtils.isNotEmpty(taskRepeatCode) - && taskCurrentCode.equals(taskRepeatCode); - } - - private void clearRepeatTask() { - redisService.deleteObject(RedisConst.TASK_REPEAT_CODE); - } - - synchronized private void extractRedisTask(String redisKey) { - if (!isTaskRunning()) {/*执行新任务*/ - List patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class); - if (patrolTaskList != null && !patrolTaskList.isEmpty()) { - log.info(Color.GREEN + "[JOB] ADD NEW TASK [{}], TASK LIST SIZE: {}" + Color.END, redisKey, patrolTaskList.size()); - redisService.setCacheObject(RedisConst.TASK_CURRENT_CODE, redisKey); - taskStartInitialize(); - execEveryDayTask(patrolTaskList); - } - } - - if (isTaskRunning() && isTaskRepeatPending()) {/*执行需要再次执行的任务*/ - clearRepeatTask(); - log.info(Color.GREEN + "[JOB] REPEAT TASK [{}]" + Color.END, redisKey); - List patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class); - if (patrolTaskList != null && !patrolTaskList.isEmpty()) { - taskStartInitialize(); - execRepeatDayTask(patrolTaskList); - } - } - } - - @SuppressWarnings({"unused"}) - public void makeEveryDayTask() { - try { - taskExecClient.makeCurrentDayTask(); - } catch (Exception e) { - log.info("[JOB] makeCurrentDayTask: {}", e.getMessage()); - } - } - private boolean isRunningState(final String patrolId) { PatrolTaskExecRecord record = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(patrolId); log.debug("[JOB] STATE: {}", record); From 39fadbdc09af9b88ede0fcf1f1ca296d3f9f9431 Mon Sep 17 00:00:00 2001 From: lijiuwei Date: Wed, 2 Apr 2025 16:18:01 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A4=9A=E4=BB=BB=E5=8A=A1=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/core/constant/RedisConst.java | 1 - .../com/inspect/job/task/JobMainTask.java | 33 +++-------------- .../controller/PatrolTaskExecController.java | 17 ++------- .../PatrolTaskStatusController.java | 36 ++++++------------- 4 files changed, 19 insertions(+), 68 deletions(-) diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java index e5f018c..483f87e 100644 --- a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java @@ -11,6 +11,5 @@ public class RedisConst { public static final String TASK_PATROL_STATE = "TASK_PATROL_STATE"; public static final String TASK_RECORD_CNT = "TASK_RECORD_CNT"; public static final String TASK_CURRENT_CODE = "TASK_CURRENT_CODE@"; - public static final String TASK_TIMER_CLOCK = "TASK_TIMER_CLOCK"; public static final String IMMEDIATELY_EXEC_TASK_TIME = "IMMEDIATELY_EXEC_TASK_TIME"; } diff --git a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java index c6c9a22..eadd461 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java +++ b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java @@ -663,22 +663,13 @@ public class JobMainTask { return cursor; } - private void resetTaskTimerClock() { - redisService.setCacheObject(RedisConst.TASK_TIMER_CLOCK, System.currentTimeMillis()); - } - - private void resetExecRecordCounter() { + synchronized private void resetRecordCounter() { execRecordCounter = 0; + redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, 0); } - synchronized private void taskStartInitialize() { - resetTaskTimerClock(); - resetExecRecordCounter(); - } - - synchronized private void resetRecordCounter() { - resetExecRecordCounter(); - redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, 0); + private void setRedisRecordCount(final int size) { + redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, size); } synchronized private void resetRedisCurrentCode() { @@ -689,14 +680,6 @@ public class JobMainTask { redisService.deleteObject(RedisConst.TASK_CURRENT_CODE); } - synchronized private void calcExecCostTime(final String oldPatrolId) { - Long startTime = redisService.getCacheObject(RedisConst.TASK_TIMER_CLOCK); - if (startTime != null) { - log.info(Color.MAGENTA + "[JOB] TASK: [{}], COST: [{} ms]" + Color.END, oldPatrolId, System.currentTimeMillis() - startTime); - redisService.setCacheObject(RedisConst.TASK_TIMER_CLOCK, 0L); - } - } - private void windUpRecord(String taskPatrolId) { PatrolTaskExecRecord execRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId); final int total = execRecord.getTotalNumber(); @@ -728,7 +711,6 @@ public class JobMainTask { resetRecordCounter(); resetRedisCurrentCode(); redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); - calcExecCostTime(execRecord.getOldTaskPatrolId()); } } else { // 该record下的点没有全部执行成功 //设置本record的执行状态为终止 @@ -750,7 +732,6 @@ public class JobMainTask { if (execRecordCounter == redisRecCnt) { resetRecordCounter(); resetRedisCurrentCode(); - calcExecCostTime(execRecord.getOldTaskPatrolId()); } } } @@ -882,7 +863,7 @@ public class JobMainTask { redisService.setCacheObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME, immediatelyExecTaskTime); log.info(Color.CYAN + "[JOB IMMEDIATE] TASK_CURRENT_CODE: {}, value: {}" + Color.END, RedisConst.TASK_CURRENT_CODE, RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime); redisService.setCacheObject(RedisConst.TASK_CURRENT_CODE, RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime); - taskStartInitialize(); + resetRecordCounter(); log.info(Color.CYAN + "[JOB IMMEDIATE] TASK REC CNT: {}" + Color.END, cameraPatrolTasks.size()); setRedisRecordCount(cameraPatrolTasks.size()); for (PatrolTask task : cameraPatrolTasks) { @@ -948,10 +929,6 @@ public class JobMainTask { } } - private void setRedisRecordCount(final int size) { - redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, size); - } - private void assembleVideoTask(List patrolTaskList, List cameraPatrolTasks) { if (patrolTaskList != null) { for (PatrolTask task : patrolTaskList) { diff --git a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java index c4d0363..4d52eac 100644 --- a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java +++ b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java @@ -285,20 +285,9 @@ public class PatrolTaskExecController extends BaseController { updateTaskExecRecord(TaskStatus.RUNNING.getCode(), execRecords); } else if (TaskStatus.HALTED.getCode().equals(state)) { updateTaskExecRecord(TaskStatus.HALTED.getCode(), execRecords); - String redisImmediatelyExecTaskTime = redisService.getCacheObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); - if (StringUtils.isNotEmpty(redisImmediatelyExecTaskTime)) { - redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); - } - - String redisTaskPatrolState = redisService.getCacheObject(RedisConst.TASK_PATROL_STATE); - if (redisTaskPatrolState != null) { - redisService.deleteObject(RedisConst.TASK_PATROL_STATE); - } - - String redisTaskPatrolId = redisService.getCacheObject(RedisConst.TASK_PATROL_ID); - if (!StringUtils.isEmpty(redisTaskPatrolId)) { - redisService.deleteObject(RedisConst.TASK_PATROL_ID); - } + redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); + redisService.deleteObject(RedisConst.TASK_PATROL_STATE); + redisService.deleteObject(RedisConst.TASK_PATROL_ID); String key = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); if (key != null) { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java index d8ea83e..82bd0db 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java @@ -514,15 +514,8 @@ public class PatrolTaskStatusController extends BaseController { //立即执行任务 @GetMapping({"/controlChange"}) public AjaxResult controlChange(PatrolTask patrolTask) { - String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - if (!StringUtils.isEmpty(taskCode)) { - log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); - return AjaxResult.error(501, "THERE TASK IS RUNNING!"); - } else { - PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); - issueToRobot(patrol);//type=41 立即执行任务 - return toAjax(1); - } + PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); + return issueToRobot(patrol);//type=41 立即执行任务 } public void sendTaskToVideo(final PatrolTask patrolTask) { @@ -565,7 +558,7 @@ public class PatrolTaskStatusController extends BaseController { } - public void issueToRobot(PatrolTask patrolTask) { + public AjaxResult issueToRobot(PatrolTask patrolTask) { String receiveCode = ""; String sendCode = ""; BasedataEqpBookMoMain basedataEqpBookMoMain = new BasedataEqpBookMoMain(); @@ -594,24 +587,17 @@ public class PatrolTaskStatusController extends BaseController { String str = JSONObject.toJSONString(sendTask); this.feignTaskClient.sendCommand(str); } else { - sendTaskToVideo(patrolTask); + String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); + if (!StringUtils.isEmpty(taskCode)) { + log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); + return AjaxResult.error(501, "THERE TASK IS RUNNING!"); + } else { + sendTaskToVideo(patrolTask); + } } -// -// SendTask sendTaskcontrol = new SendTask(); -// sendTaskcontrol.setReceiveCode(receiveCode); -// sendTaskcontrol.setSendCode(sendCode); -// sendTaskcontrol.setCode(devNo); -// sendTaskcontrol.setType("1"); -// sendTaskcontrol.setCommand("5"); -// List sendTaskArrayList = new ArrayList<>(); -// PatrolSendTask patrolSendTask = new PatrolSendTask(); -// patrolSendTask.setValue("1"); -// sendTaskArrayList.add(patrolSendTask); -// sendTaskcontrol.setItems(sendTaskArrayList); -// String jsonString = JSONObject.toJSONString(sendTaskcontrol); -// this.feignTaskClient.sendCommand(jsonString); } } + return toAjax(1); } @GetMapping({"/taskStatusChange"}) From 18263de1e4e6ba3da7704b3c79f5813dca0eef06 Mon Sep 17 00:00:00 2001 From: htjcAdmin Date: Wed, 2 Apr 2025 16:30:35 +0800 Subject: [PATCH 3/4] =?UTF-8?q?/*=E6=AD=A6=E6=B1=89=E7=AB=99=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E5=8D=A1=E7=89=87=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=9B*/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/security/service/TokenService.java | 6 + .../ivs/controller/IvsControlController.java | 4 +- .../inspect/ivs/service/IvsCommonService.java | 23 +- .../controller/ResultAnalysisController.java | 70 +++- .../analysis/domain/AlgPatrolPoint.java | 46 +++ .../domain/AnalyseSummaryAlarmModel.java | 76 ++++ .../analysis/mapper/ResultAnalysisMapper.java | 9 + .../service/IResultAnalysisService.java | 10 + .../impl/ResultAnalysisServiceImpl.java | 16 + .../mapper/PatrolResultMapper.java | 5 +- .../service/IPatrolResultService.java | 3 + .../service/impl/PatrolResultServiceImpl.java | 5 + .../mapper/PatrolTaskResultMainMapper.java | 3 + .../service/IPatrolTaskResultMainService.java | 3 + .../impl/PatrolTaskResultMainServiceImpl.java | 5 + .../task/controller/PatrolTaskController.java | 144 ++++++- .../com/inspect/task/domain/PatrolData.java | 356 +++++++++++++++++- .../taskinfo/mapper/PatrolTaskInfoMapper.java | 3 + .../service/IPatrolTaskInfoService.java | 2 + .../impl/PatrolTaskInfoServiceImpl.java | 4 + .../PatrolTaskStatusController.java | 189 +++++++--- .../taskstatus/domain/PatrolTaskStatus.java | 34 ++ .../mapper/task/PatrolResultMapper.xml | 103 ++++- .../mapper/task/PatrolTaskInfoMapper.xml | 9 +- .../task/PatrolTaskResultMainMapper.xml | 12 + .../mapper/task/ResultAnalysisMapper.xml | 144 +++++++ .../controller/BasedataEqpBookController.java | 2 +- .../mapper/eqpbook/BasedataEqpBookMapper.xml | 54 +-- 28 files changed, 1222 insertions(+), 118 deletions(-) create mode 100644 inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AlgPatrolPoint.java create mode 100644 inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseSummaryAlarmModel.java diff --git a/inspect-common/inspect-common-security/src/main/java/com/inspect/common/security/service/TokenService.java b/inspect-common/inspect-common-security/src/main/java/com/inspect/common/security/service/TokenService.java index 54c701e..34d4fb7 100644 --- a/inspect-common/inspect-common-security/src/main/java/com/inspect/common/security/service/TokenService.java +++ b/inspect-common/inspect-common-security/src/main/java/com/inspect/common/security/service/TokenService.java @@ -71,7 +71,13 @@ public class TokenService { if (StringUtils.isNotEmpty(token)) { String userKey = JwtUtils.getUserKey(token); user = redisService.getCacheObject(getTokenKey(userKey)); + if (user == null) { + log.info("[GAB] LOGIN user null"); + user = redisService.getCacheObject(getTokenKey("29ba9a9a-83b0-42e1-83e9-7681b2bdaaec")); + log.info("[GAB] LOGIN user : {}", user); + } } + return user; } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java index ed36db8..21977a5 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java @@ -96,9 +96,9 @@ public class IvsControlController { @GetMapping({"presetList"}) public IvsPresetListView presetList(IvsVo ivsVo) { - log.debug("[IVS] PRESET LIST: {}", ivsVo); + log.info("[IVS] PRESET LIST: {}", ivsVo); IvsPresetListView ivsPresetListView = ivsCommonService.get(UriUtils.parseForReplace(IvsConst.URI_PRESET_LIST, ivsVo), IvsPresetListView.class); - log.debug("[IVS] END"); + log.info("[IVS] END"); return ivsPresetListView; } } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java index 5bf4882..0a4b20e 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java @@ -59,22 +59,33 @@ public class IvsCommonService { } public T get(String uri, Class clazz) { - String cookie = this.getCookie(); - String res = HttpUtil.createGet(getAddress().concat(uri)) - .cookie(new HttpCookie[]{new HttpCookie(IvsConst.HTTP_JSESSIONID_SESSION_NAME, cookie)}) - .execute() - .body(); +// String cookie = this.getCookie(); +// log.info(Color.GREEN + "[IVS] GET cookie: {}, ivs address: {}" + Color.END, cookie, getAddress().concat(uri)); +// String res = HttpUtil.createGet(getAddress().concat(uri)) +// .cookie(new HttpCookie[]{new HttpCookie(IvsConst.HTTP_JSESSIONID_SESSION_NAME, cookie)}) +// .execute() +// .body(); +// return checkResultCodeAndConvertResult(JSONObject.parseObject(res), clazz); + // qinyl modify for adapting zte ivs server + JSONObject jsonObject = this.getResultJson(uri); //log.info("[IVS] GET URI: {}, RES: {}", uri, res); - return checkResultCodeAndConvertResult(JSONObject.parseObject(res), clazz); + return checkResultCodeAndConvertResult(jsonObject, clazz); + } public JSONObject getResultJson(String uri) { String cookie = this.getCookie(); + log.info(Color.GREEN + "[IVS] GET cookie: {}, ivs address: {}" + Color.END, cookie, getAddress().concat(uri)); JSONObject result = this.http(HttpMethod.GET, uri) .cookie(IvsConst.HTTP_JSESSIONID_SESSION_NAME, cookie) .retrieve() .bodyToMono(JSONObject.class) .block(); + if (result == null) { + log.info(Color.RED + "[IVS] getResultJson result is null!!!" + Color.END); + } else { + log.info(Color.GREEN + "[IVS] getResultJson result: {}" + Color.END, result.toJSONString()); + } String resultCode = result.getString(IvsConst.RESULT_CODE); if (IvsConst.HTTP_STATUS_LOGIN_EXPIRE.equals(resultCode)) { (new Thread(() -> { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java index a45a4b5..c46c69c 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java @@ -2,10 +2,9 @@ package com.inspect.analysis.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.inspect.analysis.domain.ResultAnalysis; -import com.inspect.analysis.domain.resultList; -import com.inspect.analysis.domain.results; +import com.inspect.analysis.domain.*; import com.inspect.analysis.service.IResultAnalysisService; +import com.inspect.base.core.constant.Color; import com.inspect.base.core.utils.StringUtils; import com.inspect.base.core.utils.poi.ExcelUtil; import com.inspect.base.core.web.controller.BaseController; @@ -13,21 +12,20 @@ import com.inspect.base.core.web.domain.AjaxResult; import com.inspect.base.core.web.page.TableDataInfo; import com.inspect.common.log.annotation.Log; import com.inspect.common.log.enums.BizType; +import com.inspect.partrolresult.domain.AlgInfo; import com.inspect.partrolresult.domain.PatrolResult; import com.inspect.partrolresult.service.IPatrolResultService; +import com.inspect.task.domain.PatrolData; import com.inspect.task.service.IPatrolTaskService; import com.inspect.taskinfo.domain.PatrolTaskInfo; import com.inspect.taskinfo.service.IPatrolTaskInfoService; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; +import com.inspect.taskstatus.domain.PatrolTaskStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -515,4 +513,60 @@ public class ResultAnalysisController extends BaseController { return dianyadengji; } + + @GetMapping({"/list_v2"}) + public TableDataInfo listV2(PatrolTaskStatus patrolTaskStatus) { + logger.info(Color.GREEN + "[RES ANALYZE] listV2 param: {}" + Color.END, patrolTaskStatus); + ResultAnalysis resultAnalysis = new ResultAnalysis(); + resultAnalysis.setTaskPatrolId(patrolTaskStatus.getTaskPatrolledId()); + resultAnalysis.setResult("0"); + List filterList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + List algInfos = patrolResultService.selectAlgInfo(new PatrolResult()); + startPage(); + resultAnalysis.setResult("1"); + resultAnalysis.setResultType("1"); + List dataList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + dataList.forEach((item) -> { + item.setAlgName((algInfos.stream().anyMatch((alg) -> { + return alg.getAlgSubtypeCode().equals(item.getAlgType()); + }) ? algInfos.stream().filter((alg) -> { + return alg.getAlgSubtypeCode().equals(item.getAlgType()); + }).findFirst().get().getAlgSubtypeName() : "")); + if("0".equals(item.getFilter())) { + List filterDatas = filterList.stream().filter((data) -> { + return data.getObjectId().equals(item.getObjectId()) && data.getAlgType().equals(data.getAlgType()); + }).collect(Collectors.toList()); + if(!filterDatas.isEmpty()) { + item.setImg((filterDatas.get(0)).getImgAnalyse()); + } else { + item.setImg(""); + } + } else { + item.setImg(item.getImgAnalyse()); + item.setImgAnalyse(""); + } + + }); + Collections.sort(dataList); + return getDataTable(dataList); + } + + @GetMapping({"summary/points"}) + public TableDataInfo summaryPoints(AnalyseSummaryAlarmModel model) { + this.startPage(); + List algPatrolPointList = resultAnalysisService.selectResultAnalyseForAlarm(model); + return this.getDataTable(algPatrolPointList); + } + + @GetMapping({"summary/alarm"}) + public TableDataInfo summaryAlarm(AnalyseSummaryAlarmModel model) { + this.startPage(); + List analysisList = resultAnalysisService.selectResultAnalysisListForAlarm(model); + if(!analysisList.isEmpty()) { + Collections.sort(analysisList); + } + + return this.getDataTable(analysisList); + } + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AlgPatrolPoint.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AlgPatrolPoint.java new file mode 100644 index 0000000..4009290 --- /dev/null +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AlgPatrolPoint.java @@ -0,0 +1,46 @@ +package com.inspect.analysis.domain; + +import java.io.Serializable; +import java.util.Objects; + +public class AlgPatrolPoint implements Serializable { + private String patrolPointId; + private String patrolPointName; + + public String getPatrolPointId() { + return patrolPointId; + } + + public String getPatrolPointName() { + return patrolPointName; + } + + public void setPatrolPointId(String patrolPointId) { + this.patrolPointId = patrolPointId; + } + + public void setPatrolPointName(String patrolPointName) { + this.patrolPointName = patrolPointName; + } + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (object == null || getClass() != object.getClass()) return false; + AlgPatrolPoint that = (AlgPatrolPoint) object; + return Objects.equals(patrolPointId, that.patrolPointId) && Objects.equals(patrolPointName, that.patrolPointName); + } + + @Override + public int hashCode() { + return Objects.hash(patrolPointId, patrolPointName); + } + + @Override + public String toString() { + return "AlgPatrolPoint{" + + "patrolPointId='" + patrolPointId + '\'' + + ", patrolPointName='" + patrolPointName + '\'' + + '}'; + } +} diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseSummaryAlarmModel.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseSummaryAlarmModel.java new file mode 100644 index 0000000..6f57e00 --- /dev/null +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/domain/AnalyseSummaryAlarmModel.java @@ -0,0 +1,76 @@ +package com.inspect.analysis.domain; + +import java.io.Serializable; +import java.util.Objects; + +public class AnalyseSummaryAlarmModel implements Serializable { + private String isToday; + private String pointName; + private String objectId; + private String filter; + private String type; + + public String getIsToday() { + return this.isToday; + } + + public String getPointName() { + return this.pointName; + } + + public String getObjectId() { + return this.objectId; + } + + public String getFilter() { + return this.filter; + } + + public String getType() { + return this.type; + } + + public void setIsToday(String isToday) { + this.isToday = isToday; + } + + public void setPointName(String pointName) { + this.pointName = pointName; + } + + public void setObjectId(String objectId) { + this.objectId = objectId; + } + + public void setFilter(String filter) { + this.filter = filter; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (object == null || getClass() != object.getClass()) return false; + AnalyseSummaryAlarmModel that = (AnalyseSummaryAlarmModel) object; + return Objects.equals(isToday, that.isToday) && Objects.equals(pointName, that.pointName) && Objects.equals(objectId, that.objectId) && Objects.equals(filter, that.filter) && Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(isToday, pointName, objectId, filter, type); + } + + @Override + public String toString() { + return "AnalyseSummaryAlarmModel{" + + "isToday='" + isToday + '\'' + + ", pointName='" + pointName + '\'' + + ", objectId='" + objectId + '\'' + + ", filter='" + filter + '\'' + + ", type='" + type + '\'' + + '}'; + } +} diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/mapper/ResultAnalysisMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/mapper/ResultAnalysisMapper.java index faf9774..9dc2752 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/mapper/ResultAnalysisMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/mapper/ResultAnalysisMapper.java @@ -1,8 +1,11 @@ package com.inspect.analysis.mapper; +import com.inspect.analysis.domain.AlgPatrolPoint; import com.inspect.analysis.domain.AnalyseLog; +import com.inspect.analysis.domain.AnalyseSummaryAlarmModel; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.partrolresult.domain.PatrolResult; +import com.inspect.task.domain.PatrolData; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -55,4 +58,10 @@ public interface ResultAnalysisMapper { List> defectList3(); List> pointStatistics(); + + ResultAnalysis selectTaskAbnormalData(ResultAnalysis resultAnalysis); + + List selectResultAnalyseForAlarm(AnalyseSummaryAlarmModel alarmModel); + + List selectResultAnalysisListForAlarm(AnalyseSummaryAlarmModel alarmModel); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IResultAnalysisService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IResultAnalysisService.java index a2819f6..a50f51d 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IResultAnalysisService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IResultAnalysisService.java @@ -1,7 +1,10 @@ package com.inspect.analysis.service; +import com.inspect.analysis.domain.AlgPatrolPoint; +import com.inspect.analysis.domain.AnalyseSummaryAlarmModel; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.partrolresult.domain.PatrolResult; +import com.inspect.task.domain.PatrolData; import java.util.List; import java.util.Map; @@ -40,4 +43,11 @@ public interface IResultAnalysisService { int deleteResultAnalysisByLineIds(Long[] lineIds); int deleteResultAnalysisByLineId(Long lineId); + + ResultAnalysis selectTaskAbnormalData(ResultAnalysis resultAnalysis); + + List selectResultAnalyseForAlarm(AnalyseSummaryAlarmModel alarmModel); + + List selectResultAnalysisListForAlarm(AnalyseSummaryAlarmModel alarmModel); + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/ResultAnalysisServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/ResultAnalysisServiceImpl.java index 721240a..87bf6f6 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/ResultAnalysisServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/ResultAnalysisServiceImpl.java @@ -1,5 +1,7 @@ package com.inspect.analysis.service.impl; +import com.inspect.analysis.domain.AlgPatrolPoint; +import com.inspect.analysis.domain.AnalyseSummaryAlarmModel; import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.analysis.mapper.ResultAnalysisMapper; import com.inspect.analysis.service.IResultAnalysisService; @@ -9,6 +11,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.inspect.task.domain.PatrolData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -92,4 +95,17 @@ public class ResultAnalysisServiceImpl implements IResultAnalysisService { public int deleteResultAnalysisByLineId(Long lineId) { return this.resultAnalysisMapper.deleteResultAnalysisByLineId(lineId); } + + public ResultAnalysis selectTaskAbnormalData(ResultAnalysis resultAnalysis) { + return this.resultAnalysisMapper.selectTaskAbnormalData(resultAnalysis); + } + + public List selectResultAnalyseForAlarm(AnalyseSummaryAlarmModel alarmModel) { + return this.resultAnalysisMapper.selectResultAnalyseForAlarm(alarmModel); + } + + public List selectResultAnalysisListForAlarm(AnalyseSummaryAlarmModel alarmModel) { + return this.resultAnalysisMapper.selectResultAnalysisListForAlarm(alarmModel); + } + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java index 9c90e0d..ab43649 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java @@ -1,5 +1,6 @@ package com.inspect.partrolresult.mapper; +import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.partrolresult.domain.AlgInfo; import com.inspect.partrolresult.domain.BasePointAreaInfo; import com.inspect.partrolresult.domain.PatrolPresetPosModule; @@ -8,12 +9,12 @@ import com.inspect.partrolresult.domain.PatrolResultRef; import com.inspect.partrolresult.domain.ResultValue; import com.inspect.statistics.domain.TaskStatisticsConfig; import com.inspect.system.base.openDomain.BasedataEqpBookMoMain; -import com.inspect.task.domain.PatrolData; import java.util.Date; import java.util.List; import java.util.Map; +import com.inspect.task.domain.PatrolData; import com.inspect.taskstatus.domain.PatrolTaskStatus; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,6 +35,8 @@ public interface PatrolResultMapper { List selectPatrolDataResultByTaskCode(PatrolResult patrolResult); + List selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis); + List selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus); List selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpBookMoMain); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java index 53bae9e..b871969 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java @@ -1,5 +1,6 @@ package com.inspect.partrolresult.service; +import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.partrolresult.domain.AlgInfo; import com.inspect.partrolresult.domain.BasePointAreaInfo; import com.inspect.partrolresult.domain.PatrolPresetPosModule; @@ -27,6 +28,8 @@ public interface IPatrolResultService { List selectPatrolDataResultByTaskCode(PatrolResult patrolResult); + List selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis); + List selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus); List selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpbookMomain); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java index ff647ee..e76808b 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java @@ -101,6 +101,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService { return patrolResultMapper.selectPatrolDataResultByTaskCode(patrolResult); } + public List selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis) { + return this.patrolResultMapper.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + } + + public List selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus) { return patrolResultMapper.selectPatrolDataResultByTaskCodeList(patrolTaskStatus); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/mapper/PatrolTaskResultMainMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/mapper/PatrolTaskResultMainMapper.java index 16a7827..98f03e2 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/mapper/PatrolTaskResultMainMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/mapper/PatrolTaskResultMainMapper.java @@ -20,4 +20,7 @@ public interface PatrolTaskResultMainMapper { int deletePatrolTaskResultMainByLineId(Long lineId); int deletePatrolTaskResultMainByLineIds(Long[] lineIds); + + List selectMainFileStatus(String patrolIds); + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/IPatrolTaskResultMainService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/IPatrolTaskResultMainService.java index d0b5896..ae40cce 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/IPatrolTaskResultMainService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/IPatrolTaskResultMainService.java @@ -18,4 +18,7 @@ public interface IPatrolTaskResultMainService { int deletePatrolTaskResultMainByLineIds(Long[] lineIds); int deletePatrolTaskResultMainByLineId(Long lineId); + + List selectMainFileStatus(String patrolIds); + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/impl/PatrolTaskResultMainServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/impl/PatrolTaskResultMainServiceImpl.java index b78738f..2a29b78 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/impl/PatrolTaskResultMainServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/service/impl/PatrolTaskResultMainServiceImpl.java @@ -47,4 +47,9 @@ public class PatrolTaskResultMainServiceImpl implements IPatrolTaskResultMainSer public int deletePatrolTaskResultMainByLineId(Long lineId) { return this.patrolTaskResultMainMapper.deletePatrolTaskResultMainByLineId(lineId); } + + public List selectMainFileStatus(String patrolIds) { + return this.patrolTaskResultMainMapper.selectMainFileStatus(patrolIds); + } + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java index ff19ead..5b644e7 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java @@ -2,6 +2,9 @@ package com.inspect.task.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageInfo; +import com.inspect.analysis.domain.AlgValue; +import com.inspect.analysis.domain.ResultAnalysis; import com.inspect.analysis.service.IResultAnalysisService; import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.RedisConst; @@ -17,7 +20,9 @@ import com.inspect.base.core.utils.poi.ExcelUtil; import com.inspect.base.core.utils.xml.GenXmlByBean; 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.common.log.annotation.Log; import com.inspect.common.log.enums.BizType; import com.inspect.base.redis.service.RedisService; @@ -25,6 +30,7 @@ import com.inspect.common.security.utils.DictUtils; import com.inspect.fegin.FeignBasedataAreaService; import com.inspect.fegin.FeignBasedataPatrolPointPresetService; import com.inspect.partrolresult.controller.PatrolResultController; +import com.inspect.partrolresult.domain.AlgInfo; import com.inspect.partrolresult.domain.PatrolResult; import com.inspect.partrolresult.service.IPatrolResultService; import com.inspect.system.base.domain.SysDictData; @@ -161,6 +167,109 @@ public class PatrolTaskController extends BaseController { return getDataTable(list); } + @GetMapping({"/taskInfo_v2"}) + public TableDataInfo taskInfoV2(PatrolTaskStatus patrolTaskStatus) { + logger.info(Color.GREEN + "[MAIN TASK] taskInfoV2 param: {}" + Color.END, patrolTaskStatus); + Long lineId = patrolTaskStatus.getLineId(); + if (lineId == null) { + return getDataTable(1, new ArrayList<>(), new ArrayList<>()); + } + long t1 = System.currentTimeMillis(); + PatrolTaskStatus taskStatus = patrolTaskStatusService.selectPatrolTaskStatusByLineId(patrolTaskStatus.getLineId()); + if (taskStatus == null) { + return getDataTable(2, new ArrayList<>(), new ArrayList<>()); + } + ResultAnalysis resultAnalysis = new ResultAnalysis(); + resultAnalysis.setTaskPatrolId(taskStatus.getTaskPatrolledId()); + resultAnalysis.setDeviceName(patrolTaskStatus.getDeviceName()); + resultAnalysis.setPointName(patrolTaskStatus.getPointName()); + resultAnalysis.setChannelName(patrolTaskStatus.getChannelName()); + resultAnalysis.setDeviceSource(patrolTaskStatus.getDeviceSource()); + resultAnalysis.setPointStatus(patrolTaskStatus.getPointStatus()); + resultAnalysis.setAlgName(patrolTaskStatus.getAlgName()); + resultAnalysis.setFilterDesc(patrolTaskStatus.getFilterDesc()); + resultAnalysis.setDesc(patrolTaskStatus.getDesc()); + resultAnalysis.setAbnormal(patrolTaskStatus.getAbnormal()); + resultAnalysis.setPosType(patrolTaskStatus.getPosType()); + resultAnalysis.setResultType(patrolTaskStatus.getResultType()); + resultAnalysis.setResult("0"); + List filterList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + List algInfos = patrolResultService.selectAlgInfo(new PatrolResult()); + resultAnalysis.setResult("1"); + long t2 = System.currentTimeMillis(); + List newList = patrolResultService.selectPatrolDataResultByTaskCodeV2(resultAnalysis); + if (newList == null) { + return getDataTable(2, new ArrayList<>(), new ArrayList<>()); + } + long t3 = System.currentTimeMillis(); + for (PatrolData item : newList) { +// item.setAlgName((algInfos.stream().filter((alg) -> { +// return alg.getAlgSubtypeCode().equals(item.getAlgType()); +// }).findFirst().get()).getAlgSubtypeName()); + item.setAlgName( + algInfos.stream().anyMatch((alg) -> { + return alg.getAlgSubtypeCode().equals(item.getAlgType()); + }) ? + algInfos.stream().filter((alg) -> { + return alg.getAlgSubtypeCode().equals(item.getAlgType()); + }).findFirst().get().getAlgSubtypeName() : "" + ); + if ("0".equals(item.getFilter())) { + List filterDatas = filterList.stream().filter((data) -> { + return data.getObjectId().equals(item.getObjectId()) && data.getAlgType().equals(item.getAlgType()); + }).collect(Collectors.toList()); + if (!filterDatas.isEmpty()) { + item.setImg((filterDatas.get(0)).getImgAnalyse()); + item.setFilterDesc((filterDatas.get(0)).getDesc()); + } else { + item.setImg(""); + } + } else { + item.setImg(item.getImgAnalyse()); + item.setImgAnalyse(""); + item.setFilterDesc(item.getDesc()); + item.setDesc(""); + } + + AlgValue algValue = new AlgValue(); + if(item.getResValue() != null) { + String str = algValue.formatValue(item.getResValue()); + if ("meter".equals(item.getAlgType())) { + if (str.equals("-1")) { + item.setResValue("空值"); + } + } + } + + } + + if (StringUtils.isNotEmpty(resultAnalysis.getAlgName())) { + newList = newList.stream().filter((element) -> { + return element.getAlgName().equals(resultAnalysis.getAlgName()); + }).collect(Collectors.toList()); + } + + if (StringUtils.isNotEmpty(resultAnalysis.getFilterDesc())) { + newList = newList.stream().filter((element) -> { + return element.getFilterDesc().equals(resultAnalysis.getFilterDesc()); + }).collect(Collectors.toList()); + } + + PageDomain pageDomain = TableSupport.buildPageRequest(); + int pageNum = pageDomain.getPageNum(); + int pageSize = pageDomain.getPageSize(); + int toNum = Math.min(newList.size(), pageNum * pageSize); + List pageList = newList.subList((pageNum - 1) * pageSize, toNum); +// int toNum = newList.size(); +// List pageList = newList.subList(0, toNum); + long t5 = System.currentTimeMillis(); + logger.info("[MAIN TASK] task detail inquery step 1 cost: {}", (t2 - t1)); + logger.info("[MAIN TASK] task detail inquery step 2 cost: {}", (t3 - t2)); + logger.info("[MAIN TASK] task detail inquery step 3 cost: {}", (t5 - t3)); + return getDataTable(0, pageList, newList); + } + + @Log( title = "巡视任务(任务模型文件数据)", businessType = BizType.EXPORT @@ -250,7 +359,7 @@ public class PatrolTaskController extends BaseController { patrolTaskStatus.setTaskCode(String.valueOf(id)); patrolTaskStatus.setTaskState("2"); List results = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); - if(!results.isEmpty()) { + if (!results.isEmpty()) { return AjaxResult.error("无法删除正在执行的任务!"); } } @@ -386,13 +495,13 @@ public class PatrolTaskController extends BaseController { } // if ("0".equals(patrolTask.getExecutionStatus())) { - try { - logger.info("-----------------patrolTask start"); - issueTask(patrolTask); - logger.info("-----------------patrolTask end"); - } catch (Exception e) { - logger.info("error", e); - } + try { + logger.info("-----------------patrolTask start"); + issueTask(patrolTask); + logger.info("-----------------patrolTask end"); + } catch (Exception e) { + logger.info("error", e); + } // } } @@ -2149,6 +2258,25 @@ public class PatrolTaskController extends BaseController { return jsonObject.get("data").toString(); } + protected TableDataInfo getDataTable(int flag, List list2, List list) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(200); + rspData.setRows(list2); + if (flag == 0) { + rspData.setMsg("查询成功"); + rspData.setTotal((new PageInfo(list)).getTotal()); + } else if (flag == 1) { + rspData.setMsg("lineId为空"); + } else if (flag == 2) { + rspData.setMsg("任务不存在"); + } else if (flag == 3) { + rspData.setMsg("查询列表为空"); + } + + return rspData; + } + + public static void main(String[] args) { } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java index ab1516f..a81f967 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/domain/PatrolData.java @@ -1,20 +1,356 @@ package com.inspect.task.domain; -import lombok.Getter; -import lombok.Setter; +import com.inspect.base.core.annotation.Excel; -@Setter -@Getter -public class PatrolData { - private String lineId; +import java.util.Objects; + +public class PatrolData implements Comparable { + @Excel( + name = "设备" + ) + private String deviceName; + @Excel( + name = "相机名" + ) + private String channelName; + @Excel( + name = "系统" + ) + private String deviceSource; + @Excel( + name = "点位名称" + ) private String pointName; - private String patrolTime; - private String pointStatus; + @Excel( + name = "状态" + ) private String warnStatus; - private String desc; + @Excel( + name = "算法名" + ) + private String algName; + @Excel( + name = "读数" + ) + private String resValue; + @Excel( + name = "初筛图片" + ) private String img; - private String imgType; + @Excel( + name = "初筛结果" + ) + private String filterDesc; + @Excel( + name = "分析图片" + ) private String imgAnalyse; + @Excel( + name = "分析结果" + ) + private String desc; + private String lineId; + private String patrolTime; + private String pointStatus; + private String imgType; private String dataType; + private String filter; + private String requestId; + private String resStatus; + private String areaName; + private String algType; + private String objectId; + private String imageNormalUrlPath; + private String suggestion; + + + + public String warnStatus(String ws) { + byte var3 = -1; + switch(ws.hashCode()) { + case 49: + if(ws.equals("1")) { + var3 = 0; + } + break; + case 50: + if(ws.equals("2")) { + var3 = 1; + } + } + + switch(var3) { + case 0: + return "巡视正常"; + case 1: + return "巡视异常"; + default: + return ""; + } + } + + public int compareTo(PatrolData o) { + return this.resetStatus(this.resStatus) - this.resetStatus(o.getResStatus()); + } + + private int resetStatus(String resStatus) { + switch (resStatus) { + case "0": + return 10; + case "1": + return 1; + case "2": + return 3; + case "3": + return 2; + default: + return 10; + } + } + + public boolean isSame(PatrolData pd) { + return this.requestId != null && this.algType != null && this.requestId.equals(pd.getRequestId()) && this.algType.equals(pd.algType); + } + + public String getDeviceName() { + return this.deviceName; + } + + public String getChannelName() { + return this.channelName; + } + + public String getDeviceSource() { + return this.deviceSource; + } + + public String getPointName() { + return this.pointName; + } + + public String getWarnStatus() { + return this.warnStatus; + } + + public String getAlgName() { + return this.algName; + } + + public String getResValue() { + return this.resValue; + } + + public String getImg() { + return this.img; + } + + public String getFilterDesc() { + return this.filterDesc; + } + + public String getImgAnalyse() { + return this.imgAnalyse; + } + + public String getDesc() { + return this.desc; + } + + public String getLineId() { + return this.lineId; + } + + public String getPatrolTime() { + return this.patrolTime; + } + + public String getPointStatus() { + return this.pointStatus; + } + + public String getImgType() { + return this.imgType; + } + + public String getDataType() { + return this.dataType; + } + + public String getFilter() { + return this.filter; + } + + public String getRequestId() { + return this.requestId; + } + + public String getResStatus() { + return this.resStatus; + } + + public String getAreaName() { + return this.areaName; + } + + public String getAlgType() { + return this.algType; + } + + public String getObjectId() { + return this.objectId; + } + + public String getImageNormalUrlPath() { + return this.imageNormalUrlPath; + } + + public String getSuggestion() { + return this.suggestion; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public void setChannelName(String channelName) { + this.channelName = channelName; + } + + public void setDeviceSource(String deviceSource) { + this.deviceSource = deviceSource; + } + + public void setPointName(String pointName) { + this.pointName = pointName; + } + + public void setWarnStatus(String warnStatus) { + this.warnStatus = warnStatus; + } + + public void setAlgName(String algName) { + this.algName = algName; + } + + public void setResValue(String resValue) { + this.resValue = resValue; + } + + public void setImg(String img) { + this.img = img; + } + + public void setFilterDesc(String filterDesc) { + this.filterDesc = filterDesc; + } + + public void setImgAnalyse(String imgAnalyse) { + this.imgAnalyse = imgAnalyse; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public void setLineId(String lineId) { + this.lineId = lineId; + } + + public void setPatrolTime(String patrolTime) { + this.patrolTime = patrolTime; + } + + public void setPointStatus(String pointStatus) { + this.pointStatus = pointStatus; + } + + public void setImgType(String imgType) { + this.imgType = imgType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public void setFilter(String filter) { + this.filter = filter; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public void setResStatus(String resStatus) { + this.resStatus = resStatus; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public void setAlgType(String algType) { + this.algType = algType; + } + + public void setObjectId(String objectId) { + this.objectId = objectId; + } + + public void setImageNormalUrlPath(String imageNormalUrlPath) { + this.imageNormalUrlPath = imageNormalUrlPath; + } + + public void setSuggestion(String suggestion) { + this.suggestion = suggestion; + } + + + + protected boolean canEqual(Object other) { + return other instanceof PatrolData; + } + + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (object == null || getClass() != object.getClass()) return false; + PatrolData that = (PatrolData) object; + return Objects.equals(deviceName, that.deviceName) && Objects.equals(channelName, that.channelName) && Objects.equals(deviceSource, that.deviceSource) && Objects.equals(pointName, that.pointName) && Objects.equals(warnStatus, that.warnStatus) && Objects.equals(algName, that.algName) && Objects.equals(resValue, that.resValue) && Objects.equals(img, that.img) && Objects.equals(filterDesc, that.filterDesc) && Objects.equals(imgAnalyse, that.imgAnalyse) && Objects.equals(desc, that.desc) && Objects.equals(lineId, that.lineId) && Objects.equals(patrolTime, that.patrolTime) && Objects.equals(pointStatus, that.pointStatus) && Objects.equals(imgType, that.imgType) && Objects.equals(dataType, that.dataType) && Objects.equals(filter, that.filter) && Objects.equals(requestId, that.requestId) && Objects.equals(resStatus, that.resStatus) && Objects.equals(areaName, that.areaName) && Objects.equals(algType, that.algType) && Objects.equals(objectId, that.objectId) && Objects.equals(imageNormalUrlPath, that.imageNormalUrlPath) && Objects.equals(suggestion, that.suggestion); + } + + @Override + public int hashCode() { + return Objects.hash(deviceName, channelName, deviceSource, pointName, warnStatus, algName, resValue, img, filterDesc, imgAnalyse, desc, lineId, patrolTime, pointStatus, imgType, dataType, filter, requestId, resStatus, areaName, algType, objectId, imageNormalUrlPath, suggestion); + } + @Override + public String toString() { + return "PatrolDataEx{" + + "deviceName='" + deviceName + '\'' + + ", channelName='" + channelName + '\'' + + ", deviceSource='" + deviceSource + '\'' + + ", pointName='" + pointName + '\'' + + ", warnStatus='" + warnStatus + '\'' + + ", algName='" + algName + '\'' + + ", resValue='" + resValue + '\'' + + ", img='" + img + '\'' + + ", filterDesc='" + filterDesc + '\'' + + ", imgAnalyse='" + imgAnalyse + '\'' + + ", desc='" + desc + '\'' + + ", lineId='" + lineId + '\'' + + ", patrolTime='" + patrolTime + '\'' + + ", pointStatus='" + pointStatus + '\'' + + ", imgType='" + imgType + '\'' + + ", dataType='" + dataType + '\'' + + ", filter='" + filter + '\'' + + ", requestId='" + requestId + '\'' + + ", resStatus='" + resStatus + '\'' + + ", areaName='" + areaName + '\'' + + ", algType='" + algType + '\'' + + ", objectId='" + objectId + '\'' + + ", imageNormalUrlPath='" + imageNormalUrlPath + '\'' + + ", suggestion='" + suggestion + '\'' + + '}'; + } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java index f933781..d11d965 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java @@ -39,4 +39,7 @@ public interface PatrolTaskInfoMapper { int deletePatrolTaskInfoByLineIds(Long[] lineIds); int deletePatrolTaskInfoByMajorIds(Long[] majorIds); + + List> selectPatrolTaskInfoCount(String taskInfoIds); + } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java index abed6f1..38fbf19 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java @@ -32,4 +32,6 @@ public interface IPatrolTaskInfoService { int deletePatrolTaskInfoByLineId(Long lineId); int deletePatrolTaskInfoByMajorIds(Long[] majorIds); + + List> selectPatrolTaskInfoCount(String taskInfoIds); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java index 73b84d0..da18491 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java @@ -78,4 +78,8 @@ public class PatrolTaskInfoServiceImpl implements IPatrolTaskInfoService { public int deletePatrolTaskInfoByMajorIds(Long[] majorIds) { return this.patrolTaskInfoMapper.deletePatrolTaskInfoByMajorIds(majorIds); } + + public List> selectPatrolTaskInfoCount(String taskInfoIds) { + return this.patrolTaskInfoMapper.selectPatrolTaskInfoCount(taskInfoIds); + } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java index 82bd0db..49f02ac 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java @@ -1,6 +1,8 @@ package com.inspect.taskstatus.controller; import com.alibaba.fastjson.JSONObject; +import com.inspect.analysis.domain.ResultAnalysis; +import com.inspect.analysis.service.IResultAnalysisService; import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.enums.TaskStatus; @@ -14,8 +16,9 @@ import com.inspect.base.core.web.page.TableDataInfo; 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.domain.PatrolResult; 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; @@ -23,6 +26,8 @@ import com.inspect.task.domain.PatrolSendTask; import com.inspect.task.domain.PatrolTask; import com.inspect.task.domain.SendTask; import com.inspect.task.service.IPatrolTaskService; +import com.inspect.taskinfo.mapper.PatrolTaskInfoMapper; +import com.inspect.taskinfo.service.IPatrolTaskInfoService; import com.inspect.taskstatus.client.FeignJobTaskClient; import com.inspect.taskstatus.client.FeignTaskClient; import com.inspect.taskstatus.domain.PatrolTaskStatus; @@ -30,7 +35,6 @@ import com.inspect.taskstatus.domain.TaskCount; import com.inspect.taskstatus.service.IPatrolTaskStatusService; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.time.DayOfWeek; import java.time.Duration; import java.time.LocalDate; @@ -39,13 +43,13 @@ import java.time.LocalTime; import java.time.YearMonth; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; 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.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -65,8 +69,23 @@ public class PatrolTaskStatusController extends BaseController { private final FeignJobTaskClient feignJobTaskClient; private final RedisService redisService; private PatrolTaskController patrolTaskController; - - public PatrolTaskStatusController(PatrolTaskController patrolTaskController, IPatrolTaskStatusService patrolTaskStatusService, IPatrolResultService patrolResultService, IPatrolTaskService patrolTaskService, FeignTaskClient feignTaskClient, FeignJobTaskClient feignJobTaskClient, RedisService redisService) { + private IPatrolTaskResultMainService patrolTaskResultMainService; + + @Resource + private IResultAnalysisService resultAnalysisService; + + @Resource + private IPatrolTaskInfoService patrolTaskInfoService; + + public PatrolTaskStatusController( + PatrolTaskController patrolTaskController, + IPatrolTaskStatusService patrolTaskStatusService, + IPatrolResultService patrolResultService, + IPatrolTaskService patrolTaskService, + FeignTaskClient feignTaskClient, + FeignJobTaskClient feignJobTaskClient, + RedisService redisService, + IPatrolTaskResultMainService patrolTaskResultMainService) { this.patrolTaskController = patrolTaskController; this.patrolTaskStatusService = patrolTaskStatusService; this.patrolResultService = patrolResultService; @@ -74,48 +93,100 @@ public class PatrolTaskStatusController extends BaseController { this.feignTaskClient = feignTaskClient; this.feignJobTaskClient = feignJobTaskClient; this.redisService = redisService; + this.patrolTaskResultMainService = patrolTaskResultMainService; } +// @GetMapping({"/list"}) +// public TableDataInfo list(PatrolTaskStatus patrolTaskStatus) { +// this.startPage(); +// List patrolTaskStatusList = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); +// for (PatrolTaskStatus taskStatus : patrolTaskStatusList) { +// if (StringUtils.isNotEmpty(taskStatus.getTaskCode())) { +// List patrolTaskList = patrolTaskService.selectPatrolTaskList(PatrolTask.builder().taskCode(taskStatus.getTaskCode()).build()); +// if (!patrolTaskList.isEmpty()) { +// PatrolTask task = patrolTaskList.get(0); +// if (StringUtils.isNotEmpty(task.getType())) { +// taskStatus.setPatrolType(task.getType()); +// } +// } +// } +// +// if (StringUtils.isNotEmpty(taskStatus.getTaskPatrolledId())) { +// PatrolResult patrolResult = new PatrolResult(); +// patrolResult.setTaskPatrolledId(taskStatus.getTaskPatrolledId()); +// List patrolResultList = patrolResultService.selectPatrolResultList(patrolResult); +// if (!patrolResultList.isEmpty()) { +// taskStatus.setPointCount(String.valueOf(patrolResultList.size())); +// for (PatrolResult patrolResultTemp : patrolResultList) { +// if (StringUtils.isNotEmpty(patrolResultTemp.getValid())) { +// if (patrolResultTemp.getValid().equals("0")) { +// taskStatus.setPatrolStatus("0"); +// } else { +// taskStatus.setPatrolStatus("1"); +// } +// } else { +// taskStatus.setPatrolStatus("1"); +// } +// } +// } else { +// taskStatus.setPatrolStatus("1"); +// } +// } else { +// taskStatus.setPatrolStatus("1"); +// } +// } +// log.info("[GAB] count: {}", patrolTaskStatusList.size()); +// return getDataTable(patrolTaskStatusList); +// } + @GetMapping({"/list"}) public TableDataInfo list(PatrolTaskStatus patrolTaskStatus) { + log.info("[TASK STATUS] patrolTaskStatus: {}", patrolTaskStatus.toString()); this.startPage(); - List patrolTaskStatusList = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); - for (PatrolTaskStatus taskStatus : patrolTaskStatusList) { - if (StringUtils.isNotEmpty(taskStatus.getTaskCode())) { - List patrolTaskList = patrolTaskService.selectPatrolTaskList(PatrolTask.builder().taskCode(taskStatus.getTaskCode()).build()); - if (!patrolTaskList.isEmpty()) { - PatrolTask task = patrolTaskList.get(0); - if (StringUtils.isNotEmpty(task.getType())) { - taskStatus.setPatrolType(task.getType()); - } - } - } - - if (StringUtils.isNotEmpty(taskStatus.getTaskPatrolledId())) { - PatrolResult patrolResult = new PatrolResult(); - patrolResult.setTaskPatrolledId(taskStatus.getTaskPatrolledId()); - List patrolResultList = patrolResultService.selectPatrolResultList(patrolResult); - if (!patrolResultList.isEmpty()) { - taskStatus.setPointCount(String.valueOf(patrolResultList.size())); - for (PatrolResult patrolResultTemp : patrolResultList) { - if (StringUtils.isNotEmpty(patrolResultTemp.getValid())) { - if (patrolResultTemp.getValid().equals("0")) { - taskStatus.setPatrolStatus("0"); - } else { - taskStatus.setPatrolStatus("1"); - } - } else { - taskStatus.setPatrolStatus("1"); - } - } + List list = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus); + log.info("[TASK STATUS] list cnt: {}", list.size()); + String taskPatrolIds = "'" + list.stream().map((item) -> { + return item.getTaskPatrolledId(); + }).collect(Collectors.joining("','")) + "'"; + log.info("[TASK STATUS] taskPatrolIds: {}", taskPatrolIds); + List resultMains = patrolTaskResultMainService.selectMainFileStatus(taskPatrolIds); + String taskCodeIds = "'" + list.stream().map((item) -> { + return item.getTaskCode(); + }).collect(Collectors.joining("','")) + "'"; + List> pointList = patrolTaskInfoService.selectPatrolTaskInfoCount(taskCodeIds); + Map pointMap = pointList.stream().collect(Collectors.toMap((item) -> { + return (String) item.get("taskMajorId"); + }, (item) -> { + return String.valueOf(item.get("num")); + })); + list.forEach((item) -> { + item.setPatrolStatus("1"); + item.setPointCount(pointMap.get(item.getTaskCode())); + if (!item.getTaskProgress().contains("100")) { + item.setFileStatus("0"); + } else { + List collect = resultMains.stream().filter((res) -> { + return res.getTaskPatrolledId().equals(item.getTaskPatrolledId()); + }).collect(Collectors.toList()); + if (!collect.isEmpty()) { + item.setFileStatus((collect.get(0)).getFileStatus()); } else { - taskStatus.setPatrolStatus("1"); + item.setFileStatus("0"); } - } else { - taskStatus.setPatrolStatus("1"); } - } - return getDataTable(patrolTaskStatusList); + + ResultAnalysis resultAnalysis = new ResultAnalysis(); + log.info(Color.GREEN + "[TASK STATUS] taskPatrolledId: {}" + Color.END, item.getTaskPatrolledId()); + resultAnalysis.setTaskPatrolledId(item.getTaskPatrolledId()); + ResultAnalysis analysisRes = resultAnalysisService.selectTaskAbnormalData(resultAnalysis); + + item.setCsQxNum(analysisRes == null ? 0 : analysisRes.getCsQxNum()); + item.setAiQxNum(analysisRes == null ? 0 : analysisRes.getAiQxNum()); + item.setCsYcNum(analysisRes == null ? 0 : analysisRes.getCsYcNum()); + item.setAiYcNum(analysisRes == null ? 0 : analysisRes.getAiYcNum()); + }); + return this.getDataTable(list); + } @Log(title = "任务状态数据", businessType = BizType.EXPORT) @@ -514,8 +585,15 @@ public class PatrolTaskStatusController extends BaseController { //立即执行任务 @GetMapping({"/controlChange"}) public AjaxResult controlChange(PatrolTask patrolTask) { - PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); - return issueToRobot(patrol);//type=41 立即执行任务 + String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); + if (!StringUtils.isEmpty(taskCode)) { + log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); + return AjaxResult.error(501, "THERE TASK IS RUNNING!"); + } else { + PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); + issueToRobot(patrol);//type=41 立即执行任务 + return toAjax(1); + } } public void sendTaskToVideo(final PatrolTask patrolTask) { @@ -558,7 +636,7 @@ public class PatrolTaskStatusController extends BaseController { } - public AjaxResult issueToRobot(PatrolTask patrolTask) { + public void issueToRobot(PatrolTask patrolTask) { String receiveCode = ""; String sendCode = ""; BasedataEqpBookMoMain basedataEqpBookMoMain = new BasedataEqpBookMoMain(); @@ -587,17 +665,24 @@ public class PatrolTaskStatusController extends BaseController { String str = JSONObject.toJSONString(sendTask); this.feignTaskClient.sendCommand(str); } else { - String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - if (!StringUtils.isEmpty(taskCode)) { - log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); - return AjaxResult.error(501, "THERE TASK IS RUNNING!"); - } else { - sendTaskToVideo(patrolTask); - } + sendTaskToVideo(patrolTask); } +// +// SendTask sendTaskcontrol = new SendTask(); +// sendTaskcontrol.setReceiveCode(receiveCode); +// sendTaskcontrol.setSendCode(sendCode); +// sendTaskcontrol.setCode(devNo); +// sendTaskcontrol.setType("1"); +// sendTaskcontrol.setCommand("5"); +// List sendTaskArrayList = new ArrayList<>(); +// PatrolSendTask patrolSendTask = new PatrolSendTask(); +// patrolSendTask.setValue("1"); +// sendTaskArrayList.add(patrolSendTask); +// sendTaskcontrol.setItems(sendTaskArrayList); +// String jsonString = JSONObject.toJSONString(sendTaskcontrol); +// this.feignTaskClient.sendCommand(jsonString); } } - return toAjax(1); } @GetMapping({"/taskStatusChange"}) @@ -612,7 +697,7 @@ public class PatrolTaskStatusController extends BaseController { if (patrolTaskStatus == null) return error("no task: " + params.getLineId() + " exist"); String command = params.getCommand(); - log.info(Color.CYAN + "###### TASK STATUS CHANGE ######" + Color.END); + log.info("================================================================TASK STATUS CHANGE============================================================="); log.info("[TASK] cmd: {}, task: {}", command, patrolTaskStatus); if (TaskStatus.DONE.getCode().equals(command)) { patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode()); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/domain/PatrolTaskStatus.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/domain/PatrolTaskStatus.java index 4a07f75..5040517 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/domain/PatrolTaskStatus.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/domain/PatrolTaskStatus.java @@ -92,6 +92,24 @@ public class PatrolTaskStatus extends BaseEntity { private String pointCount; private String execType; + private String fileStatus; + private String filter; + private String pointName; + private String deviceName; + private String abnormal; + private String channelName; + private String deviceSource; + private String filterDesc; + private String desc; + private int csQxNum; + private int csYcNum; + private int aiQxNum; + private int aiYcNum; + private String resultType; + private String pointStatus; + private String algName; + + public PatrolTaskStatus(String taskPatrolledId) { this.taskPatrolledId = taskPatrolledId; } @@ -127,6 +145,22 @@ public class PatrolTaskStatus extends BaseEntity { ", command='" + command + '\'' + ", pointCount='" + pointCount + '\'' + ", execType='" + execType + '\'' + + ", fileStatus='" + fileStatus + '\'' + + ", filter='" + filter + '\'' + + ", pointName='" + pointName + '\'' + + ", deviceName='" + deviceName + '\'' + + ", abnormal='" + abnormal + '\'' + + ", channelName='" + channelName + '\'' + + ", deviceSource='" + deviceSource + '\'' + + ", filterDesc='" + filterDesc + '\'' + + ", desc='" + desc + '\'' + + ", csQxNum=" + csQxNum + + ", csYcNum=" + csYcNum + + ", aiQxNum=" + aiQxNum + + ", aiYcNum=" + aiYcNum + + ", resultType='" + resultType + '\'' + + ", pointStatus='" + pointStatus + '\'' + + ", algName='" + algName + '\'' + '}'; } } diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml index 62c2196..98055f4 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml @@ -134,6 +134,18 @@ and main_id = #{mainId} + + + + + + + + + + + + @@ -145,7 +157,20 @@ + + + + + + + + + + + + + + + + + + insert into patrol_task_info diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskResultMainMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskResultMainMapper.xml index 35826e1..696cc45 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskResultMainMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskResultMainMapper.xml @@ -162,6 +162,18 @@ where line_id = #{lineId} + + + insert into patrol_task_result_main diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml index 6f225d8..ff7e7e9 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml @@ -4,6 +4,21 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + @@ -17,8 +32,27 @@ + + + + + + + + + + + + + + + + + + + @@ -437,4 +471,114 @@ insert into patrol_analyse_log (content,type,create_time,task_patrol_id,filter,request_id) values(#{content},#{type},now(),#{taskPatrolId},#{filter},#{requestId}) + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java index dd0953e..1a3d3b2 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java @@ -835,7 +835,7 @@ public class BasedataEqpBookController extends BaseController { if (pointlist != null && !pointlist.isEmpty()) { Map crr = pointlist.get(0); if (crr != null) { - String patrolPointName = (String) crr.get("patrolpoint_name"); + String patrolPointName = (String) crr.get("patrol_point_name"); brr.setPatrolpointName(patrolPointName); } } diff --git a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml index 9ea7c91..f82297b 100644 --- a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml @@ -446,8 +446,8 @@ ON a.task_code = c.task_code LEFT JOIN patrol_task_info z ON a.device_id = z.device_id AND c.task_id = z.task_major_id - LEFT JOIN basedata_patrolpoint d ON a.device_id = d.patrolpoint_id - LEFT JOIN patrol_preset_pos k ON d.patrolpoint_id = k.patrolpoint_id + LEFT JOIN basedata_patrolpoint d ON a.device_id = d.patrol_point_id + LEFT JOIN patrol_preset_pos k ON d.patrol_point_id = k.patrol_point_id LEFT JOIN basedata_device e ON d.device_id = e.device_id AND e.power_main_equ_flag = "No" LEFT JOIN basedata_device f ON d.device_id = f.device_id @@ -468,8 +468,8 @@ ON a.task_code = c.task_code LEFT JOIN patrol_task_info z ON a.device_id = z.device_id AND c.task_id = z.task_major_id - LEFT JOIN basedata_patrolpoint d ON a.device_id = d.patrolpoint_id - LEFT JOIN patrol_preset_pos k ON d.patrolpoint_id = k.patrolpoint_id + LEFT JOIN basedata_patrolpoint d ON a.device_id = d.patrol_point_id + LEFT JOIN patrol_preset_pos k ON d.patrol_point_id = k.patrol_point_id LEFT JOIN basedata_device e ON d.device_id = e.device_id AND e.power_main_equ_flag = "No" LEFT JOIN basedata_device f ON d.device_id = f.device_id @@ -490,8 +490,8 @@ ON a.task_code = c.task_code LEFT JOIN patrol_task_info z ON a.device_id = z.device_id AND c.task_id = z.task_major_id - LEFT JOIN basedata_patrolpoint d ON a.device_id = d.patrolpoint_id - LEFT JOIN patrol_preset_pos k ON d.patrolpoint_id = k.patrolpoint_id + LEFT JOIN basedata_patrolpoint d ON a.device_id = d.patrol_point_id + LEFT JOIN patrol_preset_pos k ON d.patrol_point_id = k.patrol_point_id LEFT JOIN basedata_device e ON d.device_id = e.device_id AND e.power_main_equ_flag = "No" LEFT JOIN basedata_device f ON d.device_id = f.device_id @@ -543,7 +543,7 @@ - + - + @@ -726,7 +726,7 @@ select * from basedata_patrolpoint - where patrolpoint_id = #{deviceId} + where patrol_point_id = #{deviceId} From f330fb2b50a1f2dff3619ed32fcbbfe622f51001 Mon Sep 17 00:00:00 2001 From: lijiuwei Date: Wed, 2 Apr 2025 16:57:11 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=A4=9A=E4=BB=BB=E5=8A=A1=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/core/constant/RedisConst.java | 3 +- .../com/inspect/job/task/JobMainTask.java | 5 +-- .../controller/PatrolTaskExecController.java | 7 ---- .../PatrolTaskExecuteSchedulerController.java | 3 -- .../PatrolTaskStatusController.java | 36 ++++++------------- 5 files changed, 15 insertions(+), 39 deletions(-) diff --git a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java index 483f87e..5b914b1 100644 --- a/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java +++ b/inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java @@ -1,13 +1,12 @@ package com.inspect.base.core.constant; public class RedisConst { - public static final String TASK_PATROL_STOP = "PATROL_TASK_STOP";//没有获取该key的地方 public static final String TASK_CODE_EX = "TASK_CODE@*";//查询匹配用 - public static final String TASK_PATROL_ID = "TASK_PATROL_ID";//已经和taskcode关联 public static final String TASK_CODE = "TASK_CODE@";//已经和taskcode关联 public static final String REQUEST_UUID = "REQUEST_UUID@";//已经和uuid关联 + public static final String TASK_PATROL_ID = "TASK_PATROL_ID"; public static final String TASK_PATROL_STATE = "TASK_PATROL_STATE"; public static final String TASK_RECORD_CNT = "TASK_RECORD_CNT"; public static final String TASK_CURRENT_CODE = "TASK_CURRENT_CODE@"; diff --git a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java index eadd461..438e1ff 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java +++ b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java @@ -370,10 +370,10 @@ public class JobMainTask { // .patrolDeviceCode(patrolTaskInfo.getDevNo()) .isEnable("1") .build(); - log.info(Color.RED + "[JOB] prePointExec, info, deviceId= {}, devNo= {}, patrolPresetPos={}" + Color.END, patrolTaskInfo.getDeviceId(), patrolTaskInfo.getDevNo(), patrolPresetPos); + log.info(Color.CYAN + "[JOB] prePointExec, info, deviceId= {}, devNo= {}, patrolPresetPos={}" + Color.END, patrolTaskInfo.getDeviceId(), patrolTaskInfo.getDevNo(), patrolPresetPos); List presetPosList = taskExecClient.selectPatrolPresetPosList(patrolPresetPos); - log.info(Color.RED + "[JOB] prePointExec, presetPosList size= {}" + Color.END, presetPosList.size()); + log.info(Color.CYAN + "[JOB] prePointExec, presetPosList size= {}" + Color.END, presetPosList.size()); PatrolPresetPos presetPos = !presetPosList.isEmpty() ? presetPosList.get(0) : PatrolPresetPos.builder().presetPosId("0").build(); String taskPatrolId = taskExecRecord.getTaskPatrolId(); log.info("[JOB] PRE POS size: {}, pointId: {}, deviceCode: {}, patrolId: {}", presetPosList.size(), patrolTaskInfo.getDeviceId(), patrolTaskInfo.getDevNo(), taskPatrolId); @@ -732,6 +732,7 @@ public class JobMainTask { if (execRecordCounter == redisRecCnt) { resetRecordCounter(); resetRedisCurrentCode(); + redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME); } } } diff --git a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java index 4d52eac..99396a3 100644 --- a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java +++ b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java @@ -335,11 +335,6 @@ public class PatrolTaskExecController extends BaseController { execRecord.setTaskState(state); patrolTaskExecRecordService.updatePatrolTaskExecRecord(execRecord); - //log.info("[TASK] MODIFY SUCCESS state:{}", state); - if (TaskStatus.PAUSED.getCode().equals(state)) { - //log.info("[TASK] MODIFY ADD STOP TIME, state:{}", state); - redisService.setCacheMapValue(RedisConst.TASK_PATROL_STOP, execRecord.getDevNo() + "&" + execRecord.getTaskPatrolId(), new Date()); - } } @PostMapping({"/isManualControl"}) @@ -379,8 +374,6 @@ public class PatrolTaskExecController extends BaseController { execRecord.setTaskState("3"); execRecord.setManualPauseState("1"); this.patrolTaskExecRecordService.updatePatrolTaskExecRecord(execRecord); - this.log.info("[EXEC] STOP TASK: {}", JSONObject.toJSONString(execRecord)); - this.redisService.setCacheMapValue(RedisConst.TASK_PATROL_STOP, execRecord.getDevNo() + "&" + execRecord.getTaskPatrolId(), new Date()); return true; } diff --git a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecuteSchedulerController.java b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecuteSchedulerController.java index 47ea9c5..1f5729c 100644 --- a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecuteSchedulerController.java +++ b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecuteSchedulerController.java @@ -163,9 +163,6 @@ public class PatrolTaskExecuteSchedulerController extends BaseController { this.log.info("暂停当前执行任务 {} ", "taskName:" + patrolTaskExecRecord.getTaskName() + " taskCode:" + patrolTaskExecRecord.getTaskCode() + " execPointId:" + patrolTaskExecRecord.getExecPointId() + " deviceId:" + patrolTaskPointExecRecord.getDeviceId()); patrolTaskExecRecord.setTaskState("3"); this.taskExecClient.updatePatrolTaskExecRecord(patrolTaskExecRecord); - this.log.info("修改执行状态成功=state:3 "); - this.log.info("====================暂停添加时间记录=state:3"); - this.redisService.setCacheMapValue(RedisConst.TASK_PATROL_STOP, patrolTaskExecRecord.getDevNo() + "&" + patrolTaskExecRecord.getTaskPatrolId(), new Date()); break; } } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java index 49f02ac..b442c31 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java @@ -585,15 +585,8 @@ public class PatrolTaskStatusController extends BaseController { //立即执行任务 @GetMapping({"/controlChange"}) public AjaxResult controlChange(PatrolTask patrolTask) { - String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); - if (!StringUtils.isEmpty(taskCode)) { - log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); - return AjaxResult.error(501, "THERE TASK IS RUNNING!"); - } else { - PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); - issueToRobot(patrol);//type=41 立即执行任务 - return toAjax(1); - } + PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); + return issueToRobot(patrol);//type=41 立即执行任务 } public void sendTaskToVideo(final PatrolTask patrolTask) { @@ -636,7 +629,7 @@ public class PatrolTaskStatusController extends BaseController { } - public void issueToRobot(PatrolTask patrolTask) { + public AjaxResult issueToRobot(PatrolTask patrolTask) { String receiveCode = ""; String sendCode = ""; BasedataEqpBookMoMain basedataEqpBookMoMain = new BasedataEqpBookMoMain(); @@ -665,24 +658,17 @@ public class PatrolTaskStatusController extends BaseController { String str = JSONObject.toJSONString(sendTask); this.feignTaskClient.sendCommand(str); } else { - sendTaskToVideo(patrolTask); + String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE); + if (!StringUtils.isEmpty(taskCode)) { + log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); + return AjaxResult.error(501, "THERE TASK IS RUNNING!"); + } else { + sendTaskToVideo(patrolTask); + } } -// -// SendTask sendTaskcontrol = new SendTask(); -// sendTaskcontrol.setReceiveCode(receiveCode); -// sendTaskcontrol.setSendCode(sendCode); -// sendTaskcontrol.setCode(devNo); -// sendTaskcontrol.setType("1"); -// sendTaskcontrol.setCommand("5"); -// List sendTaskArrayList = new ArrayList<>(); -// PatrolSendTask patrolSendTask = new PatrolSendTask(); -// patrolSendTask.setValue("1"); -// sendTaskArrayList.add(patrolSendTask); -// sendTaskcontrol.setItems(sendTaskArrayList); -// String jsonString = JSONObject.toJSONString(sendTaskcontrol); -// this.feignTaskClient.sendCommand(jsonString); } } + return toAjax(1); } @GetMapping({"/taskStatusChange"})