From 3d99f4db0c4921fa0f91c7942564a06e5e2b8c7a Mon Sep 17 00:00:00 2001 From: lijiuwei Date: Tue, 29 Apr 2025 11:39:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/inspect/job/task/JobMainTask.java | 70 +++++++++++--- .../job/task/PatrolEqpbookChannelTask.java | 3 +- .../service/impl/AnalysisServiceImpl.java | 3 - .../impl/IspAlgorithmRequestService.java | 93 ------------------- .../controller/PatrolResultController.java | 6 +- .../service/AnalyseRemoteService.java | 6 +- 6 files changed, 67 insertions(+), 114 deletions(-) delete mode 100644 inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/IspAlgorithmRequestService.java 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 bb60141..f7c5823 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 @@ -1536,17 +1536,6 @@ public class JobMainTask { } } - @SuppressWarnings({"unused"}) - public void makeEveryDayTask() { - log.info("***************************** JobTaskTimer makeEveryDayTask *************************************"); - - try { - taskExecClient.makeCurrentDayTask(); - } catch (Exception e) { - log.info("[JOB] makeCurrentDayTask: {}", e.getMessage()); - } - } - // private String getTaskPatrolId(final PatrolTask patrolTask) { // String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime()); // return patrolTask.getDevNo() + "_" + patrolTask.getTaskCode() + "_" + time; @@ -1559,7 +1548,7 @@ public class JobMainTask { @SuppressWarnings({"unused"}) public void execEveryDayTask(List patrolTaskList) { - log.info("***************************** JobTaskTimer execEveryDayTask *************************************"); + log.info("***************************** JobTaskTimer execEveryDayTask with parameters *************************************"); // setRedisRecordCount(patrolTaskList.size()); // for (PatrolTask patrolTask : patrolTaskList) { @@ -1617,7 +1606,7 @@ public class JobMainTask { @SuppressWarnings({"unused"}) public void execRepeatDayTask(List patrolTaskList) { - log.info("***************************** JobTaskTimer execRepeatDayTask *************************************"); + log.info("***************************** JobTaskTimer execRepeatDayTask with parameters *************************************"); // for (PatrolTask patrolTask : patrolTaskList) { // final String taskPatrolId = getTaskPatrolId(patrolTask); @@ -1645,4 +1634,59 @@ public class JobMainTask { // } // } } + + private boolean isTaskSlotEmpty(String taskCode) { + String taskCurrentCode = redisService.getCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode); + Integer redisRecCnt = redisService.getCacheObjectOfTask(RedisConst.TASK_RECORD_CNT, taskCode); + log.info(Color.YELLOW + "[JOB] TASK_CURRENT_CODE: {}, TASK_RECORD_CNT: {}" + Color.END, taskCurrentCode, redisRecCnt); + return StringUtils.isEmpty(taskCurrentCode) || + !StringUtils.isEmpty(taskCurrentCode) && (redisRecCnt == null || redisRecCnt == 0); + } + + private synchronized void extractRedisTask(String redisKey, String taskCode) { + List patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class); + if (patrolTaskList != null && !patrolTaskList.isEmpty()) { + log.info(Color.YELLOW + "[JOB] ADD NEW TASK: {}, TASK LIST SIZE: {}" + Color.END, redisKey, patrolTaskList.size()); + redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey); + execEveryDayTask(patrolTaskList); + } + } + + @SuppressWarnings({"unused"}) + public void execEveryDayTask() { + log.info("***************************** JobTaskTimer execEveryDayTask *************************************"); + + Collection redisKeys = redisService.keys(RedisConst.TASK_CODE_EX); + for (String redisKey : redisKeys) { + try { + String[] keywords = StringUtils.split(redisKey, StringUtils.AT); + if (keywords.length == 3) { + String taskCode = keywords[1]; + String fixedStartTime = keywords[2]; + if (isTaskSlotEmpty(taskCode)) { + 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) { + extractRedisTask(redisKey, taskCode); + } + } + } + } catch (Exception e) { + log.error("error", e); + } + } + } + + @SuppressWarnings({"unused"}) + public void makeEveryDayTask() { + log.info("***************************** JobTaskTimer makeEveryDayTask *************************************"); + + try { + taskExecClient.makeCurrentDayTask(); + } catch (Exception e) { + log.error("error", e); + } + } } diff --git a/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java b/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java index 4e199d4..8e0a38d 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java +++ b/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java @@ -48,7 +48,8 @@ public class PatrolEqpbookChannelTask { //获取库里面的eqpbookchannel List eqpBookChannels = patrolDeviceStateMapper.selectEqpBookChannel(); result = HttpClientUtils.get(url, StringUtils.EMPTY); - logger.info("同步巡检设备在线状态:{}", result); + logger.info("同步巡检设备在线状态"); +// logger.info("同步巡检设备在线状态:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); if (null != jsonObject) { JSONObject cameraBriefInfos = jsonObject.getJSONObject("cameraBriefInfos"); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java index 70bfee8..02278fa 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java @@ -43,9 +43,6 @@ public class AnalysisServiceImpl implements IAnalysisService { @Resource private RedisService redisService; - @Resource - private IspAlgorithmRequestService ispAlgorithmRequestService; - @Resource private AnalyseRemoteService analyseRemoteService; diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/IspAlgorithmRequestService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/IspAlgorithmRequestService.java deleted file mode 100644 index a10d401..0000000 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/IspAlgorithmRequestService.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.inspect.analysis.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.inspect.analysis.constant.AnalyseConstants; -import com.inspect.analysis.domain.AnalyseLog; -import com.inspect.analysis.service.IAnalysisLogService; -import com.inspect.base.core.utils.HttpClientUtils; -import com.inspect.base.core.utils.StringUtils; -import com.inspect.base.redis.service.RedisService; -import com.inspect.partrolresult.domain.AnalyseReqItem; -import com.inspect.partrolresult.domain.AnalyseRequest; -import com.inspect.task.service.IPatrolTaskService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - - -@Component -public class IspAlgorithmRequestService { - private final Logger log = LoggerFactory.getLogger(this.getClass()); - - @Value("${server.port}") - private String port; - @Resource - private RedisService redisService; - @Resource - private IAnalysisLogService analysisLogService; - @Resource - private IPatrolTaskService patrolTaskService; - - public void sendRequest(AnalyseRequest analyseReq, boolean isFilter) { - String requestId = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); - String taskPatrolId = analyseReq.getTaskPatrolId(); - analyseReq.setRequestId(requestId); - String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST.concat(taskPatrolId); - String requestSetKey = AnalyseConstants.ANALYSE_REQUEST_ALG.concat(requestId); - redisService.setCacheObject(AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId), taskPatrolId, 20L, TimeUnit.MINUTES); - redisService.redisTemplate.opsForSet().add(taskSetKey, requestId); - redisService.expire(taskSetKey, 20L, TimeUnit.MINUTES); - String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER); - String filter = "0"; - String requestUrl; - if ("1".equals(analyseFilter) && isFilter) { - final String analyzeFilterRequestIdRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(requestId); - log.info("[ALG] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq); - redisService.setCacheObject(analyzeFilterRequestIdRedisKey, analyseReq.clone(), 1L, TimeUnit.HOURS); - AnalyseReqItem analyseReqItem = analyseReq.getObjectList().get(0); - analyseReqItem.setTypeList(new String[]{"tx_pb"}); - analyseReq.setObjectList(Collections.singletonList(analyseReqItem)); - filter = "1"; - requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_FILTER_URL); - } else { - analyseReq.getObjectList().forEach((item) -> { - for (String type : item.getTypeList()) { - redisService.redisTemplate.opsForSet().add(requestSetKey, item.toResultValue(type)); - } - - }); - requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL); - } - - analysisLogService.log(new AnalyseLog(analyseReq.toString(), "0", taskPatrolId, filter, requestId)); - - try { - log.info("[ANALYSE REMOTE REQ] REMOTE_URL={}\n REMOTE_PARAMS={}", requestUrl, analyseReq); - String result = HttpClientUtils.sendPostAgain(requestUrl.concat("/picAnalyse"), analyseReq.toString()); - final String resultCode = JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE); - log.info("[ANALYSE REMOTE REQ] RESULT_CODE={}\n RESULT={}", resultCode, result); - if (!"200".equals(resultCode)) { - log.error("[ANALYSE REMOTE REQ] BAD RESULT={}", result); - } - } catch (Exception e) { - log.error("[ANALYSE REMOTE REQ] REMOTE ISP ALGORITHM SERVER EXCEPTION: {}", e.getMessage()); - HttpClientUtils.sendPostAgain("http://localhost:" + this.port + "/picAnalyseRetNotify", analyseReq.toErrorResultStr()); - } - - } - - public void sendRequest(AnalyseRequest analyseReq) { - this.sendRequest(analyseReq, Boolean.FALSE); - } - - public static void main(String[] args) { - String result = AnalyseConstants.ANALYSE_REQUEST_ID.concat("1234"); - System.out.println(result); - } -} diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java index 94addea..70e2341 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java @@ -805,7 +805,7 @@ public class PatrolResultController extends BaseController { filePanpath = judgeMap.get("dis_ref_picture_path"); } - analyseReqItem.setImageNormalUrlPath(filePanpath); + analyseReqItem.setImageNormalUrlPath(filePanpath);//总是为空 List judgeList = algInfoList.stream().filter( (item) -> item.getAlgName().contains("判别") ).collect(Collectors.toList()); @@ -853,7 +853,7 @@ public class PatrolResultController extends BaseController { } // 古老的红外逻辑处理 - logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty()); + logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());//永远为true if (!infraredList.isEmpty() && "true".equals(pictureFrame)) { String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS); @@ -1326,6 +1326,7 @@ public class PatrolResultController extends BaseController { patrolResultParam.setDataType(datetype); List results = patrolResultService.selectPatrolResultList(patrolResultParam); if (!results.isEmpty()) { + //patrol_result记录已存在则更新 PatrolResult patrolResult2 = results.get(0); if (StringUtils.isNotEmpty(patrolResult.getFilePath())) { patrolResult2.setFilePath(patrolResult.getFilePath()); @@ -1387,6 +1388,7 @@ public class PatrolResultController extends BaseController { resultList.add(patrolResult2); // } } else { + //patrol_result记录不存在则新增 patrolResult.setMainId(mainID + ""); Map stringStringMap = patrolResultService.selectThresholdByPointId(patrolResult.getDeviceId()); if (stringStringMap != null && StringUtils.isNotEmpty(stringStringMap.get("alarm_threshold"))) { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java index 0969e6d..12dc2fe 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java @@ -35,20 +35,22 @@ public class AnalyseRemoteService { @Resource private IPatrolTaskService patrolTaskService; - //qinyl + //qinyl 只取第一个,analyseReq.getObjectList().get(0) public void sendRequest(AnalyseRequest analyseReq, String[] typeList, boolean isFilter) { String requestId = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); String taskPatrolId = analyseReq.getTaskPatrolId(); redisService.setCacheObject(RedisConst.REQUEST_UUID + requestId, taskPatrolId, 1L, TimeUnit.DAYS); log.info("[CALL REMOTE ANALYZE] requestId: {}, taskPatrolId: {}", requestId, taskPatrolId); + analyseReq.setRequestId(requestId); String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST + taskPatrolId; String requestSetKey = AnalyseConstants.ANALYSE_REQUEST_ALG + requestId; redisService.setCacheObject(AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId), taskPatrolId, 20L, TimeUnit.MINUTES); redisService.redisTemplate.opsForSet().add(taskSetKey, requestId); redisService.expire(taskSetKey, 20L, TimeUnit.MINUTES); - String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER); + String requestUrl; + String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER); if ("1".equals(analyseFilter) && isFilter) { final String analyzeFilterRequestIdRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(requestId); log.info("[FILTER] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq);