diff --git a/src/main/java/com/dispose/manager/DeviceTaskManager.java b/src/main/java/com/dispose/manager/DeviceTaskManager.java index 571b1cb1..c7feebbd 100644 --- a/src/main/java/com/dispose/manager/DeviceTaskManager.java +++ b/src/main/java/com/dispose/manager/DeviceTaskManager.java @@ -134,4 +134,11 @@ public interface DeviceTaskManager { * @return the task by id */ DeviceTask getTaskById(Long id); + + /** + * Gets PengXin device task info by startId. + * + * @return the minId task info. + */ + List getPengXinTaskById(Long startId); } diff --git a/src/main/java/com/dispose/manager/impl/DeviceTaskManagerImpl.java b/src/main/java/com/dispose/manager/impl/DeviceTaskManagerImpl.java index 7abccc58..9373beb2 100644 --- a/src/main/java/com/dispose/manager/impl/DeviceTaskManagerImpl.java +++ b/src/main/java/com/dispose/manager/impl/DeviceTaskManagerImpl.java @@ -295,4 +295,14 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { public DeviceTask getTaskById(Long id) { return deviceTaskMapper.getTaskInfoById(id); } + + /** + * Gets PengXin device task info by startId. + * + * @return the minId task info. + */ + @Override + public List getPengXinTaskById(Long startId){ + return deviceTaskMapper.getPengXinTask(startId); + } } diff --git a/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java b/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java index 7fdde139..c76b1598 100644 --- a/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java +++ b/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java @@ -7,7 +7,6 @@ import com.dispose.manager.DeviceTaskManager; import com.dispose.manager.DisposeTaskManager; import com.dispose.mapper.DisposeTaskMapper; import com.dispose.pojo.entity.DisposeTask; -import com.dispose.pojo.po.AbilityInfo; import com.dispose.pojo.po.MulReturnType; import com.dispose.service.DisposeAbilityRouterService; import com.github.pagehelper.PageHelper; @@ -163,29 +162,6 @@ public class DisposeTaskManagerImpl implements DisposeTaskManager { return new MulReturnType<>(pageInfo, new ArrayList<>()); } - //根据taskId遍历设置处置任务 - for (DisposeTask v : preList) { - DisposeTask task = disposeTaskManager.getDisposeTaskById(v.getId()); - - task.getDeviceTask().forEach(d -> { - // 获取设备 - AbilityInfo ai = disposeAbilityRouterService.getAbilityDevice(d.getDeviceId()); - - // 如果设备正常,查询当前设备的任务状态 - if (ai != null) { - if (d.getExternId() != null && d.getExternId().length() > 0) { - log.info("deviceId:{}, taskId:{}", d.getDeviceId(), d.getTaskId()); - MulReturnType ret = ai.getDb().taskStatus(d.getExternId()); - - if (ret.getFirstParam() == ErrorCode.ERR_OK) { - deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(d.getExternId(), - ret.getSecondParam()); - } - } - } - }); - } - List taskList = new ArrayList<>(disposeTaskMapper.selectByIdSet(taskId)); return new MulReturnType<>(pageInfo, taskList); diff --git a/src/main/java/com/dispose/mapper/DeviceTaskMapper.java b/src/main/java/com/dispose/mapper/DeviceTaskMapper.java index dc7e5c6a..f31656ee 100644 --- a/src/main/java/com/dispose/mapper/DeviceTaskMapper.java +++ b/src/main/java/com/dispose/mapper/DeviceTaskMapper.java @@ -154,4 +154,12 @@ public interface DeviceTaskMapper { */ int changeExternId(@Param("id") Long id, @Param("externId") String externId); + + /** + * Gets PengXin device task info. + * + * @param startId the start id + * @return PengXin device task info + */ + List getPengXinTask(Long startId); } diff --git a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java index 9828342d..3f302e47 100644 --- a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java @@ -20,6 +20,8 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; /** @@ -775,20 +777,20 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { * Device task status schedule. */ public void deviceTaskStatusSchedule() { - // 遍历所有新的设备处置任务 - for (DeviceTask v : deviceTaskManager.getStartedDisposeDeviceTaskInfo()) { - DisposeTask task = disposeTaskManager.getDisposeTaskById(v.getTaskId()); + List taskList = new ArrayList<>(); - // 保护代码,理论上不存在该情况 - assert task != null; + //处置任务设备类型为鹏信设备,任务状态不再变更 + for (Long i = 1L; deviceTaskManager.getPengXinTaskById(i).size() != 0; i = taskList.get(taskList.size() - 1).getId() + 1) { + log.debug("startId:{}", i); + taskList.addAll(deviceTaskManager.getPengXinTaskById(i)); + } + for (DeviceTask v : taskList) { // 获取设备 AbilityInfo ai = disposeAbilityRouterService.getAbilityDevice(v.getDeviceId()); // 如果设备已经删除或者禁用,跳过处理 if (ai == null) { - // 设置任务状态为已完成 - deviceTaskManager.changeDisposeDeviceTaskInfoStatus(v.getId(), DisposeTaskStatus.TASK_FINISHED); continue; } @@ -802,18 +804,12 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 设置标志,避免对同一个IP重复调用停止处置命令 taskCache.put(taskStatusKey, true); - // 任务预计结束5分钟内, - if (Helper.getTimestampDiffNow(task.getPlanEndTime()) < 5 * 60) { - if (v.getEndTime() == null || Helper.getTimestampDiffNow(v.getEndTime()) < 5 * 60) { + if (v.getExternId() != null && v.getExternId().length() > 0) { + MulReturnType ret = ai.getDb().taskStatus(v.getExternId()); - if (v.getExternId() != null && v.getExternId().length() > 0) { - MulReturnType ret = ai.getDb().taskStatus(v.getExternId()); - - if (ret.getFirstParam() == ErrorCode.ERR_OK) { - deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(v.getExternId(), - ret.getSecondParam()); - } - } + if (ret.getFirstParam() == ErrorCode.ERR_OK) { + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(v.getExternId(), + ret.getSecondParam()); } } diff --git a/src/main/resources/mappers/DeviceTask.xml b/src/main/resources/mappers/DeviceTask.xml index 7071efb5..5c527b9f 100644 --- a/src/main/resources/mappers/DeviceTask.xml +++ b/src/main/resources/mappers/DeviceTask.xml @@ -130,4 +130,15 @@ WHERE id = #{id} + \ No newline at end of file