From f12ba229fd642fb0ac2bbc8a92ecae944d75cf3f Mon Sep 17 00:00:00 2001 From: chenlinghy Date: Tue, 24 Nov 2020 16:28:22 +0800 Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=E4=BF=AE=E6=94=B9=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=88=B7=E6=96=B0=E8=AE=BE=E5=A4=87=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3=202.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E3=80=81manager=E5=B1=82=E6=A0=B9?= =?UTF-8?q?=E6=8D=AEid=E8=8E=B7=E5=8F=96=E4=BB=BB=E5=8A=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=8A=9F=E8=83=BD=EF=BC=8C=E9=80=9A=E8=BF=87=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=9B=B4=E6=8E=A5=E8=BF=87=E6=BB=A4=E7=AC=A6?= =?UTF-8?q?=E5=90=88=E8=A6=81=E6=B1=82=E7=9A=84=E4=BB=BB=E5=8A=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=203.=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dispose/manager/DeviceTaskManager.java | 7 ++++ .../manager/impl/DeviceTaskManagerImpl.java | 10 ++++++ .../manager/impl/DisposeTaskManagerImpl.java | 24 -------------- .../com/dispose/mapper/DeviceTaskMapper.java | 8 +++++ .../impl/DeviceTaskManagerServiceImpl.java | 32 ++++++++----------- src/main/resources/mappers/DeviceTask.xml | 11 +++++++ 6 files changed, 50 insertions(+), 42 deletions(-) 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