Sfoglia il codice sorgente

refactor: 实现三个下发接口,并测试通过

zhanghaijun 3 anni fa
parent
commit
87a414d4ef

+ 11 - 1
README.md

@@ -1,4 +1,14 @@
-Redis序列化方式如下
+## 环境以来
+
+```bash
+## docker运行redis
+docker run --name redis -d -p 6379:6379 --restart=always redis:6.0.10 --appendonly yes
+## 清楚redis缓存
+docker exec -it redis redis-cli FLUSHALL
+```
+
+
+## Redis序列化方式如下
 
 | 类名称                                          | 描述                                                         |
 | ----------------------------------------------- | ------------------------------------------------------------ |

+ 4 - 1
src/main/java/com/cec/plugins/PluginsApplication.java

@@ -1,5 +1,6 @@
 package com.cec.plugins;
 
+import org.springframework.boot.Banner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -7,7 +8,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 public class PluginsApplication {
 
     public static void main(String[] args) {
-        SpringApplication.run(PluginsApplication.class, args);
+        SpringApplication springApplication = new SpringApplication(PluginsApplication.class);
+        springApplication.setBannerMode(Banner.Mode.OFF);
+        springApplication.run(args);
     }
 
 }

+ 20 - 4
src/main/java/com/cec/plugins/config/ExceptionControllerAdvice.java

@@ -1,21 +1,37 @@
 package com.cec.plugins.config;
 
+import com.cec.plugins.core.ErrorUtil;
+import com.cec.plugins.domain.ResultData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.support.DefaultMessageSourceResolvable;
+import org.springframework.validation.BindException;
 import org.springframework.validation.ObjectError;
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * @author zhanghaijun
  * @date 2023/8/13 00:43
  * @description 全局的异常处理
  */
+@Slf4j
 @RestControllerAdvice
 public class ExceptionControllerAdvice {
 
-    @ExceptionHandler(MethodArgumentNotValidException.class)
-    public String MethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) {
-        ObjectError objectError = e.getBindingResult().getAllErrors().get(0);
-        return objectError.getDefaultMessage();
+    @ExceptionHandler(BindException.class)
+    public ResultData BindExceptionHandler(BindException e) {
+        List<ObjectError> allErrors = e.getBindingResult().getAllErrors();
+        String result = allErrors.stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining(","));
+        return ResultData.fail(result);
+    }
+
+    @ExceptionHandler(Exception.class)
+    public ResultData ExceptionHandler(Exception e) {
+        log.error("全局的异常:{}", ErrorUtil.errorInfoToString(e));
+        return ResultData.fail(e.getMessage());
     }
 }

+ 19 - 19
src/main/java/com/cec/plugins/config/RedissonConfig.java

@@ -2,7 +2,7 @@ package com.cec.plugins.config;
 
 import cn.hutool.core.util.StrUtil;
 import com.cec.plugins.config.properties.RedisProperties;
-import com.cec.plugins.config.properties.RetryProperties;
+import com.cec.plugins.config.properties.ProjectProperties;
 import lombok.RequiredArgsConstructor;
 import org.redisson.Redisson;
 import org.redisson.api.RedissonClient;
@@ -17,13 +17,12 @@ import org.springframework.context.annotation.Primary;
 
 /**
  * @author zhanghaijun
- * @version 1.0
  * @date 2023/8/11 16:30
- * @description [一句话描述该类的功能]
+ * @description Redis配置
  */
 @Configuration
 @RequiredArgsConstructor
-@EnableConfigurationProperties({RedisProperties.class, RetryProperties.class})
+@EnableConfigurationProperties({RedisProperties.class, ProjectProperties.class})
 public class RedissonConfig {
 
     private final RedisProperties property;
@@ -48,19 +47,20 @@ public class RedissonConfig {
     }
 
     /** 评估数据库 */
-    @Bean(name = "redisEvaluate")
-    public RedissonClient redissonEvaluateClient() {
-        Config config = new Config();
-        config.setTransportMode(TransportMode.NIO);
-        SingleServerConfig singleServerConfig = config.useSingleServer();
-        RedisProperties.RedisModel evaluate = property.getEvaluate();
-        singleServerConfig
-            .setClientName(evaluate.getClientName())
-            .setAddress(evaluate.getUrl())
-            .setDatabase(evaluate.getDatabase());
-        if (StrUtil.isNotBlank(evaluate.getPassword())) {
-            singleServerConfig.setPassword(evaluate.getPassword());
-        }
-        return Redisson.create(config);
-    }
+    // @Bean(name = "redisEvaluate")
+    // public RedissonClient redissonEvaluateClient() {
+    //     Config config = new Config();
+    //     config.setTransportMode(TransportMode.NIO);
+    //     config.setCodec(new JsonJacksonCodec());
+    //     SingleServerConfig singleServerConfig = config.useSingleServer();
+    //     RedisProperties.RedisModel evaluate = property.getEvaluate();
+    //     singleServerConfig
+    //         .setClientName(evaluate.getClientName())
+    //         .setAddress(evaluate.getUrl())
+    //         .setDatabase(evaluate.getDatabase());
+    //     if (StrUtil.isNotBlank(evaluate.getPassword())) {
+    //         singleServerConfig.setPassword(evaluate.getPassword());
+    //     }
+    //     return Redisson.create(config);
+    // }
 }

+ 58 - 0
src/main/java/com/cec/plugins/config/StartLogRunner.java

@@ -0,0 +1,58 @@
+package com.cec.plugins.config;
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PreDestroy;
+import java.lang.management.ManagementFactory;
+import java.util.Date;
+import java.util.Optional;
+
+/**
+ * @author zhanghaijun
+ * @date 2023/8/16 23:01
+ * @description 初始化日志输出
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Component
+public class StartLogRunner implements ApplicationRunner {
+    private final ApplicationContext ctx;
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        String appJvmName = ManagementFactory.getRuntimeMXBean().getName();
+        String path = Optional.ofNullable(ctx.getEnvironment().getProperty("server.servlet.context-path")).orElse("");
+        String httpPort = ctx.getEnvironment().getProperty("server.port");
+        String httpHost = ctx.getEnvironment().getProperty("project.plugin.ip-address");
+        String httpUrl = "http://" + Optional.ofNullable(httpHost).orElse("127.0.0.1") + ":" + Optional.ofNullable(httpPort).orElse("8080") + path;
+        String format = String.format("\n ========== 启动服务 =========="
+                + "\n\t 服务名称:\t%s"
+                + "\n\t 进程ID: \t%s"
+                + "\n\t 启动时间:\t%s"
+                + "\n\t 访问路径:\t%s"
+                + "\n ============================",
+            ctx.getEnvironment().getProperty("spring.application.name"),
+            appJvmName.split("@")[0],
+            DateUtil.format(new Date(ctx.getStartupDate()), DatePattern.NORM_DATETIME_MS_PATTERN),
+            httpUrl
+        );
+        log.info("\033[1;33m {} \033[0m", format);
+    }
+
+    @PreDestroy
+    public void destroy() {
+        String format = String.format("\n ========== 暂停服务 =========="
+                + "\n\t 服务名称:\t%s"
+                + "\n\t 暂停时间:\t%s"
+                + "\n============================",
+            ctx.getEnvironment().getProperty("spring.application.name"), DateUtil.now());
+        log.info("\033[1;33m {} \033[0m", format);
+    }
+}

+ 2 - 3
src/main/java/com/cec/plugins/config/properties/RetryProperties.java

@@ -5,13 +5,12 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
  * @author zhanghaijun
- * @version 1.0
  * @date 2023/8/15 18:41
- * @description [一句话描述该类的功能]
+ * @description 项目配置 上下游服务配置
  */
 @Data
 @ConfigurationProperties(prefix = "project")
-public class RetryProperties {
+public class ProjectProperties {
 
     private PlatformModel platform;
     private PluginModel plugin;

+ 69 - 0
src/main/java/com/cec/plugins/controller/TaskController.http

@@ -0,0 +1,69 @@
+### 任务状态下发接口
+POST http://localhost:8080/config/api/v1/taskStatus
+Content-Type: application/json
+
+{
+    "taskId": "01f08470-ae8c-4510-a494-eefe676bcde6",
+    "subtaskId": "da8e68a4-0c31-4131-acfb-e95a4e034abb",
+    "xdschemaId": "7b696138-7a83-4f22-a97f-fbec9f21a3e1",
+    "instanceId": "7e1cb874-ed07-4d10-a980-0eada624b3fb",
+    "ident": "典型轨道交通运行控制网代理插件",
+    "status": 0
+}
+
+### 控制命令下发
+POST http://localhost:8080/config/api/v1/dipatchmission
+Content-Type: application/json
+
+{
+    "taskId": "01f08470-ae8c-4510-a494-eefe676bcde6",
+    "subtaskId": "da8e68a4-0c31-4131-acfb-e95a4e034abb",
+    "xdschemaId": "7b696138-7a83-4f22-a97f-fbec9f21a3e1",
+    "instanceId": "7e1cb874-ed07-4d10-a980-0eada624b3fb",
+    "ident": "典型轨道交通运行控制网代理插件",
+    "commands": 0
+}
+
+### 配置参数下发接口
+POST http://localhost:8080/config/api/v1/dipatchconfigsparam
+Content-Type: application/json
+
+{
+    "taskId": "01f08470-ae8c-4510-a494-eefe676bcde6",
+    "subtaskId": "da8e68a4-0c31-4131-acfb-e95a4e034abb",
+    "xdschemaId": "7b696138-7a83-4f22-a97f-fbec9f21a3e1",
+    "instanceId": "c3330933-29c9-4a6c-a782-ee8b94a6342a",
+    "ident": "典型轨道交通运行控制网代理插件",
+    "paramConfigurations": [
+        {
+            "deviceId": "S/N:1990123456",
+            "config": [
+                {
+                    "name": "布防/撤防",
+                    "key": "deploy",
+                    "value": "0"
+                },
+                {
+                    "name": "接警",
+                    "key": "handlePolice",
+                    "value": "0"
+                }
+            ]
+        },
+        {
+            "deviceId": "S/N:1990123456",
+            "config": [
+                {
+                    "name": "布防/撤防",
+                    "key": "deploy",
+                    "value": "0"
+                },
+                {
+                    "name": "接警",
+                    "key": "handlePolice",
+                    "value": "0"
+                }
+            ]
+        }
+    ]
+}

+ 23 - 16
src/main/java/com/cec/plugins/controller/TaskController.java

@@ -1,15 +1,13 @@
 package com.cec.plugins.controller;
 
+import com.cec.plugins.domain.DtoDipatchconfigsparam;
 import com.cec.plugins.domain.DtoDipatchmission;
 import com.cec.plugins.domain.DtoTaskStatus;
 import com.cec.plugins.domain.ResultData;
 import com.cec.plugins.service.TaskService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author zhanghaijun
@@ -30,30 +28,39 @@ public class TaskController {
     /** 任务状态下发接口 */
     @PostMapping("/taskStatus")
     public ResultData taskStatus(@RequestBody @Validated DtoTaskStatus dto) {
-        if (taskService.saveTaskStatus(dto)) {
-            return ResultData.success();
-        } else {
-            return ResultData.fail("下发任务状态失败");
+        boolean result = taskService.saveTaskToRedis(dto.getRedisMapping());
+        if (!result) {
+            return ResultData.fail("任务状态保存失败");
         }
+        // TODO 异步处理开始上报状态数据( 1、查询 2、上报 )
+        return ResultData.success();
     }
 
     /** 控制命令下发 */
     @PostMapping("/dipatchmission")
     public ResultData dipatchmission(@RequestBody @Validated DtoDipatchmission dto) {
-        ResultData result = taskService.checkTaskStatus(dto.getTaskId(), dto.getSubtaskId(), dto.getXdschemaId());
-        if (!result.isSuccess()) {
-            return result;
+        ResultData checkResult = taskService.checkTaskStatus(dto);
+        if (checkResult.Unsuccessful()) {
+            return checkResult;
+        }
+        boolean result = taskService.saveTaskToRedis(dto.getRedisMapping());
+        if (!result) {
+            return ResultData.fail("控制命令保存失败");
         }
         // TODO 异步处理开始上报状态数据( 1、查询 2、上报 )
         return ResultData.success();
     }
 
-    /** 控制命令下发 */
+    /** 配置参数下发接口 */
     @PostMapping("/dipatchconfigsparam")
-    public ResultData saveDipatchmission(@RequestBody @Validated DtoDipatchmission dto) {
-        ResultData result = taskService.checkTaskStatus(dto.getTaskId(), dto.getSubtaskId(), dto.getXdschemaId());
-        if (!result.isSuccess()) {
-            return result;
+    public ResultData saveDipatchmission(@RequestBody @Validated DtoDipatchconfigsparam dto) {
+        ResultData checkResult = taskService.checkTaskStatus(dto);
+        if (checkResult.Unsuccessful()) {
+            return checkResult;
+        }
+        boolean result = taskService.saveTaskToRedis(dto.getRedisMapping());
+        if (!result) {
+            return ResultData.fail("配置参数保存失败");
         }
         // TODO 异步处理开始上报状态数据( 1、查询 2、上报 )
         return ResultData.success();

+ 5 - 6
src/main/java/com/cec/plugins/core/RedisManage.java

@@ -476,13 +476,12 @@ public abstract class RedisManage {
      * @param value lock value
      */
     public void unLock(String key, String value) {
+        String DEL_LOCK_SCRIPT = "if redis.call(\"get\",KEYS[1]) == ARGV[1] then" +      // 如果 KEYS[1] 对应的 Value 值等于 ARGV[1]
+            " return redis.call(\"del\",KEYS[1])" +         // 删除 KEYS[1]
+            " else" +                                       // 否则
+            " return 0" +                                   // 返回 0
+            " end;";
         getClient().getScript().eval(RScript.Mode.READ_WRITE, DEL_LOCK_SCRIPT, RScript.ReturnType.INTEGER, Collections.singletonList(key), value);
     }
 
-    // 解锁脚本
-    private final String DEL_LOCK_SCRIPT = "if redis.call(\"get\",KEYS[1]) == ARGV[1] then" +      // 如果 KEYS[1] 对应的 Value 值等于 ARGV[1]
-        " return redis.call(\"del\",KEYS[1])" +         // 删除 KEYS[1]
-        " else" +                                       // 否则
-        " return 0" +                                   // 返回 0
-        " end;";
 }

+ 3 - 0
src/main/java/com/cec/plugins/domain/BaseData.java

@@ -1,8 +1,11 @@
 package com.cec.plugins.domain;
 
+import com.cec.plugins.enumerate.TaskEnum;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author zhanghaijun

+ 32 - 2
src/main/java/com/cec/plugins/domain/DtoDipatchconfigsparam.java

@@ -1,10 +1,13 @@
 package com.cec.plugins.domain;
 
-import cn.hutool.json.JSONArray;
+import com.cec.plugins.enumerate.TaskEnum;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.NotNull;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author zhanghaijun
@@ -16,5 +19,32 @@ import javax.validation.constraints.NotNull;
 public class DtoDipatchconfigsparam extends BaseData {
 
     @NotNull(message = "参数paramConfigurations不能为空")
-    private JSONArray paramConfigurations;
+    private List<DeviceConfig> paramConfigurations;
+
+    public Map<TaskEnum, Object> getRedisMapping() {
+        Map<TaskEnum, Object> map = new HashMap<>();
+        map.put(TaskEnum.ParamConfigInstanceId, getInstanceId());
+        for (DeviceConfig device : paramConfigurations) {
+            for (ConfigItem item : device.getConfig()) {
+                TaskEnum taskEnum = TaskEnum.findTaskEnum(item.key);
+                if (null != taskEnum) {
+                    map.put(taskEnum, item.getValue());
+                }
+            }
+        }
+        return map;
+    }
+
+    @Data
+    public static class DeviceConfig {
+        private String deviceId;
+        private List<ConfigItem> config;
+    }
+
+    @Data
+    public static class ConfigItem {
+        private String name;
+        private String key;
+        private String value;
+    }
 }

+ 10 - 0
src/main/java/com/cec/plugins/domain/DtoDipatchmission.java

@@ -1,9 +1,12 @@
 package com.cec.plugins.domain;
 
+import com.cec.plugins.enumerate.TaskEnum;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.NotNull;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author zhanghaijun
@@ -16,4 +19,11 @@ public class DtoDipatchmission extends BaseData {
     /** 恢复初始设置 */
     @NotNull(message = "参数commands不能为空")
     private Integer commands;
+
+    public Map<TaskEnum, Object> getRedisMapping() {
+        Map<TaskEnum, Object> map = new HashMap<>();
+        map.put(TaskEnum.CommandInstanceId, getInstanceId());
+        map.put(TaskEnum.CommandOrder, getCommands());
+        return map;
+    }
 }

+ 14 - 0
src/main/java/com/cec/plugins/domain/DtoTaskStatus.java

@@ -1,10 +1,13 @@
 package com.cec.plugins.domain;
 
+import com.cec.plugins.enumerate.TaskEnum;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.hibernate.validator.constraints.Range;
 
 import javax.validation.constraints.NotNull;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author zhanghaijun
@@ -20,4 +23,15 @@ public class DtoTaskStatus extends BaseData {
     @Range(min = 0, max = 1, message = "任务标识错误,只能是0(开始)或者1(结束)")
     private Integer status;
 
+    public Map<TaskEnum, Object> getRedisMapping() {
+        Map<TaskEnum, Object> map = new HashMap<>();
+        map.put(TaskEnum.TaskId, getTaskId());
+        map.put(TaskEnum.SubTaskId, getSubtaskId());
+        map.put(TaskEnum.XdSchemaId, getXdschemaId());
+        map.put(TaskEnum.TaskInstanceId, getInstanceId());
+        map.put(TaskEnum.TaskIdent, getIdent());
+        map.put(TaskEnum.TaskStatusOrder, getStatus());
+        return map;
+    }
+
 }

+ 9 - 2
src/main/java/com/cec/plugins/domain/ResultData.java

@@ -1,12 +1,15 @@
 package com.cec.plugins.domain;
 
 import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.annotation.JsonNaming;
 
 /**
  * @author zhanghaijun
  * @date 2023/8/13 00:46
  * @description 返回的结构体
  */
+@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
 public class ResultData {
 
     public final static int CODE_SUCCESS = 200;
@@ -34,14 +37,18 @@ public class ResultData {
         return time_stamp;
     }
 
-    public boolean isSuccess() {
-        return this.resp_code == CODE_SUCCESS;
+    public boolean Unsuccessful() {
+        return this.resp_code != CODE_SUCCESS;
     }
 
     public static <T> ResultData success() {
         return new ResultData(CODE_SUCCESS, "请求成功");
     }
 
+    public static <T> ResultData success(String message) {
+        return new ResultData(CODE_SUCCESS, message);
+    }
+
     public static <T> ResultData fail(String message) {
         return new ResultData(CODE_FAIL, StrUtil.blankToDefault(message, "请求失败"));
     }

+ 13 - 0
src/main/java/com/cec/plugins/enumerate/TaskEnum.java

@@ -1,5 +1,6 @@
 package com.cec.plugins.enumerate;
 
+import cn.hutool.core.util.StrUtil;
 import lombok.Getter;
 
 /**
@@ -110,4 +111,16 @@ public enum TaskEnum {
         this.key = key;
         this.describe = describe;
     }
+
+    public static TaskEnum findTaskEnum(String key) {
+        if (StrUtil.isBlank(key)) {
+            return null;
+        }
+        for (TaskEnum value : TaskEnum.values()) {
+            if (StrUtil.equalsAnyIgnoreCase(key, value.getKey())) {
+                return value;
+            }
+        }
+        return null;
+    }
 }

+ 2 - 2
src/main/java/com/cec/plugins/service/ReportedService.java

@@ -1,6 +1,6 @@
 package com.cec.plugins.service;
 
-import com.cec.plugins.config.properties.RetryProperties;
+import com.cec.plugins.config.properties.ProjectProperties;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
 @RequiredArgsConstructor
 public class ReportedService {
 
-    private final RetryProperties properties;
+    private final ProjectProperties properties;
 
 
 }

+ 16 - 20
src/main/java/com/cec/plugins/service/TaskService.java

@@ -1,6 +1,7 @@
 package com.cec.plugins.service;
 
 import cn.hutool.core.util.StrUtil;
+import com.cec.plugins.domain.BaseData;
 import com.cec.plugins.domain.DtoTaskStatus;
 import com.cec.plugins.domain.ResultData;
 import com.cec.plugins.enumerate.TaskEnum;
@@ -23,29 +24,24 @@ public class TaskService {
 
     private final RedisSource redisSource;
 
-    /** 任务状态下发 */
-    public boolean saveTaskStatus(DtoTaskStatus dto) {
-        redisSource.setCacheObject(TaskEnum.TaskId.getKey(), dto.getTaskId());
-        redisSource.setCacheObject(TaskEnum.SubTaskId.getKey(), dto.getSubtaskId());
-        redisSource.setCacheObject(TaskEnum.XdSchemaId.getKey(), dto.getXdschemaId());
-
-        redisSource.setCacheObject(TaskEnum.TaskInstanceId.getKey(), dto.getInstanceId());
-        redisSource.setCacheObject(TaskEnum.TaskIdent.getKey(), dto.getIdent());
-        redisSource.setCacheObject(TaskEnum.TaskStatusOrder.getKey(), dto.getStatus());
-
-        // TODO 异步处理开始上报状态数据( 1、查询 2、上报 )
+    public boolean saveTaskToRedis(Map<TaskEnum, Object> map) {
+        if (null == map) {
+            return false;
+        }
+        for (Map.Entry<TaskEnum, Object> entry : map.entrySet()) {
+            redisSource.setCacheObject(entry.getKey().getKey(), entry.getValue());
+        }
         return true;
     }
 
-    public ResultData checkTaskStatus(String taskId, String subtaskId, String XdSchemaId) {
-        Map<String, TaskEnum> map = new HashMap<>();
-        map.put(taskId, TaskEnum.TaskId);
-        map.put(subtaskId, TaskEnum.SubTaskId);
-        map.put(XdSchemaId, TaskEnum.XdSchemaId);
-
-        for (Map.Entry<String, TaskEnum> entry : map.entrySet()) {
-            if (!StrUtil.equals(entry.getKey(), redisSource.getCacheStr(entry.getValue().getKey()))) {
-                return ResultData.fail(entry.getValue().getDescribe() + "不一致");
+    public ResultData checkTaskStatus(BaseData dto) {
+        Map<TaskEnum, String> map = new HashMap<>();
+        map.put(TaskEnum.TaskId, dto.getTaskId());
+        map.put(TaskEnum.SubTaskId, dto.getSubtaskId());
+        map.put(TaskEnum.XdSchemaId, dto.getXdschemaId());
+        for (Map.Entry<TaskEnum, String> entry : map.entrySet()) {
+            if (!StrUtil.equals(entry.getValue(), redisSource.getCacheStr(entry.getKey().getKey()))) {
+                return ResultData.fail(entry.getKey().getDescribe() + "不一致");
             }
         }
         return ResultData.success();

+ 2 - 2
src/main/java/com/cec/plugins/service/integration/ReportedPlatform.java

@@ -1,6 +1,6 @@
 package com.cec.plugins.service.integration;
 
-import com.cec.plugins.config.properties.RetryProperties;
+import com.cec.plugins.config.properties.ProjectProperties;
 import com.cec.plugins.core.retry.RetryException;
 import com.cec.plugins.core.retry.RetryTemplate;
 import lombok.extern.slf4j.Slf4j;
@@ -14,7 +14,7 @@ import lombok.extern.slf4j.Slf4j;
 public class ReportedPlatform extends RetryTemplate {
 
 
-    public ReportedPlatform(RetryProperties.RetryModel model) {
+    public ReportedPlatform(ProjectProperties.RetryModel model) {
         super(model.getRetries(), model.getDelayMillis(), RetryException.class);
     }
 

+ 2 - 2
src/main/java/com/cec/plugins/service/integration/ReportedQuery.java

@@ -1,6 +1,6 @@
 package com.cec.plugins.service.integration;
 
-import com.cec.plugins.config.properties.RetryProperties;
+import com.cec.plugins.config.properties.ProjectProperties;
 import com.cec.plugins.core.retry.RetryException;
 import com.cec.plugins.core.retry.RetryTemplate;
 import lombok.extern.slf4j.Slf4j;
@@ -13,7 +13,7 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class ReportedQuery extends RetryTemplate {
 
-    public ReportedQuery(RetryProperties.RetryModel model) {
+    public ReportedQuery(ProjectProperties.RetryModel model) {
         super(model.getRetries(), model.getDelayMillis(), RetryException.class);
     }