From 6bcebb0fd044cad3f4584be4b8b433139250e3c6 Mon Sep 17 00:00:00 2001
From: HuangXin <huangxin@cmhi.chinamobile.com>
Date: Tue, 2 Jun 2020 14:49:41 +0800
Subject: [PATCH] OCT REM: 1. Fix DDOSAQ-891 2. Fix DDOSAQ-892 3. Fix
 DDOSAQ-898 4. Fix DDOSAQ-901 5. Fix DDOSAQ-912

---
 .../com/dispose/controller/DisposeTaskController.java  |  2 +-
 .../java/com/dispose/pojo/vo/task/StartTaskReq.java    |  2 +-
 .../java/com/dispose/service/impl/TaskServiceImpl.java |  6 +-----
 src/main/java/com/dispose/task/TaskManagerTask.java    | 10 +++++-----
 .../dispose/test/controller/TaskControllerTest.java    |  2 +-
 5 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/dispose/controller/DisposeTaskController.java b/src/main/java/com/dispose/controller/DisposeTaskController.java
index 65f3e630..b2822ed8 100644
--- a/src/main/java/com/dispose/controller/DisposeTaskController.java
+++ b/src/main/java/com/dispose/controller/DisposeTaskController.java
@@ -100,7 +100,7 @@ public class DisposeTaskController {
 
         StartTaskReq reqInfo = mr.getRequestObject(StartTaskReq.class);
 
-        if (reqInfo.getId() == null) {
+        if (reqInfo.getId() == null || reqInfo.getId().length() == 0) {
             log.error("Request id params error, error:{} --> {}", mr.getMsgContent(), reqInfo.getId());
             return ProtocolRespDTO.result(ErrorCode.ERR_PARAMS);
         }
diff --git a/src/main/java/com/dispose/pojo/vo/task/StartTaskReq.java b/src/main/java/com/dispose/pojo/vo/task/StartTaskReq.java
index 82bd369e..10bee16d 100644
--- a/src/main/java/com/dispose/pojo/vo/task/StartTaskReq.java
+++ b/src/main/java/com/dispose/pojo/vo/task/StartTaskReq.java
@@ -17,7 +17,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class StartTaskReq {
-    private Integer id;
+    private String id;
     private Integer type;
     private String disposeIp;
     private Integer disposeTime;
diff --git a/src/main/java/com/dispose/service/impl/TaskServiceImpl.java b/src/main/java/com/dispose/service/impl/TaskServiceImpl.java
index 1fe75675..c6313ba0 100644
--- a/src/main/java/com/dispose/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/dispose/service/impl/TaskServiceImpl.java
@@ -348,11 +348,7 @@ public class TaskServiceImpl implements TaskService {
      */
     @Override
     public List<TaskInfoDetail> getNodeAllTask(Long devId) {
-        List<TaskInfoDetail> taskList = taskCacheManager
-                .getAllTask()
-                .stream()
-                .filter(v -> v.getDeviceId().equals(devId))
-                .collect(Collectors.toList());
+        List<TaskInfoDetail> taskList = disposeTaskMapper.getAllTaskByNodeDevId(devId);
 
         if (taskList.size() > 0) {
             log.info("The device has tasks: devId:{}, tasksNumber:{}", devId, taskList.size());
diff --git a/src/main/java/com/dispose/task/TaskManagerTask.java b/src/main/java/com/dispose/task/TaskManagerTask.java
index 41dd21c2..199bd47c 100644
--- a/src/main/java/com/dispose/task/TaskManagerTask.java
+++ b/src/main/java/com/dispose/task/TaskManagerTask.java
@@ -40,11 +40,6 @@ public class TaskManagerTask {
         while (it.hasNext()) {
             TaskInfoDetail taskData = it.next();
 
-            // 如果重试次数过多,停止处理该任务
-            if(taskData.getRetryTimes() < GlobalVar.TASK_ERROR_MAX_RETRY) {
-                continue;
-            }
-
             // 判断是否存在正在运行的过期的任务,如果存在则结束该任务
             if(taskService.taskIsExpired(taskData) && taskService.taskIsRunning(taskData)) {
                 log.info("Finish expired task {}:{} begin at {}",
@@ -54,6 +49,11 @@ public class TaskManagerTask {
                 continue;
             }
 
+            // 如果重试次数过多,停止处理该任务
+            if(taskData.getRetryTimes() > GlobalVar.TASK_ERROR_MAX_RETRY) {
+                continue;
+            }
+
             // 判断是否有新建任务,如果有的话启动新建的处置任务
             if (taskData.getCurrentStatus() == DisposeTaskStatus.TASK_NEW.getCode()) {
                 log.info("Start task {}:{} of {}",
diff --git a/src/test/java/com/dispose/test/controller/TaskControllerTest.java b/src/test/java/com/dispose/test/controller/TaskControllerTest.java
index a97f03b1..63eaedfc 100644
--- a/src/test/java/com/dispose/test/controller/TaskControllerTest.java
+++ b/src/test/java/com/dispose/test/controller/TaskControllerTest.java
@@ -124,7 +124,7 @@ public class TaskControllerTest extends InitTestEnvironment {
     @Test
     public void t1_startTask() throws Exception {
         StartTaskReq reqData = StartTaskReq.builder()
-                .id(-1)
+                .id("-1")
                 .type(DeviceCapacity.CLEANUP.getCode())
                 .disposeIp("192.168.3.4")
                 .disposeTime(60)