diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java index fe7df27..e6c4057 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java @@ -61,14 +61,14 @@ @Override public boolean saveOrUpdateBusPlan(BusPlan busPlan) { //若是编辑重置执行状态 - if(ObjectUtil.isNotEmpty(busPlan.getId())){ + if (ObjectUtil.isNotEmpty(busPlan.getId())) { busPlan.setTaskStatus(StatusEnum.TASK_UNSTART); } //先保存数据 if (this.saveOrUpdate(busPlan)) { //toDo:若已启动任务,则创建启动job任务 缺消息提示 、和修改时间的 - if(StatusEnum.STATUS_OPEN.equals(busPlan.getStatus())){ - startOrStop(new PlanRequest(busPlan.getId(),StatusEnum.STATUS_OPEN)); + if (StatusEnum.STATUS_OPEN.equals(busPlan.getStatus())) { + startOrStop(new PlanRequest(busPlan.getId(), StatusEnum.STATUS_OPEN)); } } return true; @@ -88,12 +88,16 @@ if (ObjectUtil.isAllNotEmpty(startTaskTime, endTaskTime)) { //在此期间若没有任务执行 if (!TaskCommom.isOnTaskInfo(busPlan.getMonitorId(), startTaskTime, endTaskTime)) { + if (DateUtil.compare(startTaskTime, new Date()) <= 0 && + DateUtil.compare(endTaskTime, new Date()) >= 0) { + startTaskTime = new Date(); + } startTask(startTaskTime, StartTaskJob.class, DictEnum.START_TASK + busPlan.getId(), busPlan.getId() + "", busPlan.getMonitorId()); startTask(endTaskTime, StopTaskJob.class, DictEnum.STOP_TASK + busPlan.getId(), busPlan.getId() + "", busPlan.getMonitorId()); flag = true; - }else { + } else { throw new BusinessException(BusinessExceptionEnum.RUN_TASK_FAILED); } } @@ -112,21 +116,33 @@ @Override + @Transactional public boolean updateStatus(Long id, String status) { BusPlan busPlan = this.getById(id); if (ObjectUtil.isNotEmpty(busPlan)) { - busPlan.setTaskStatus(status); - if(StatusEnum.TASK_COMPLETE.equals(status)){ - busPlan.setStatus(StatusEnum.STATUS_CLOSE); - } - this.updateById(busPlan); //开启巡航 或者停止巡航 BusMonipoiInfo baseInfo = monipoiInfoService.getById(busPlan.getMonitorId()); if (null != baseInfo) { if (StatusEnum.TASK_RUNNING.equals(status)) { - cruise(baseInfo.getDeviceIp(), "start", busPlan.getLineNum()); + //若开始任务执行不成功,去掉TaskCommom中的任务 + if(!cruise(baseInfo.getDeviceIp(), "start", busPlan.getLineNum())){ + TaskCommom.deleteTaskInfos(DictEnum.START_TASK + busPlan.getId()); + }else { + //执行成功,设置任务执行状态开始 + busPlan.setTaskStatus(status); + this.updateById(busPlan); + } } else if (StatusEnum.TASK_COMPLETE.equals(status)) { - cruise(baseInfo.getDeviceIp(), "stop", busPlan.getLineNum()); + //若停止任务执行不成功,去掉TaskCommom中的任务 + if(!cruise(baseInfo.getDeviceIp(), "stop", busPlan.getLineNum())){ + TaskCommom.deleteTaskInfos(DictEnum.STOP_TASK + busPlan.getId()); + }else { + //执行成功,设置任务执行状态完成 + busPlan.setTaskStatus(status); + //执行成功,设置任务状态完成 + busPlan.setStatus(StatusEnum.STATUS_CLOSE); + this.updateById(busPlan); + } } } return true; @@ -139,10 +155,10 @@ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); - List busPlanList =this.baseMapper.pageList(page,busPlan,dataScope); - for(BusPlan busPlan1:busPlanList){ - busPlan1.setTaskStatusName(dictService.getDictNameByCode(DictEnum.TASK_EXECUTE,busPlan1.getTaskStatus())); - busPlan1.setStatusName(dictService.getDictNameByCode(DictEnum.TASK_STATUS,busPlan1.getStatus())); + List busPlanList = this.baseMapper.pageList(page, busPlan, dataScope); + for (BusPlan busPlan1 : busPlanList) { + busPlan1.setTaskStatusName(dictService.getDictNameByCode(DictEnum.TASK_EXECUTE, busPlan1.getTaskStatus())); + busPlan1.setStatusName(dictService.getDictNameByCode(DictEnum.TASK_STATUS, busPlan1.getStatus())); } return busPlanList; } @@ -159,6 +175,9 @@ public void deleteTask(String jobName, BusPlan busPlan) { quartzManager.removeJob(jobName); TaskCommom.deleteTaskInfos(jobName); + busPlan.setStatus(StatusEnum.STATUS_CLOSE); + busPlan.setTaskStatus(StatusEnum.TASK_COMPLETE); + this.updateById(busPlan); //若有任务正在执行,则取消 if (StatusEnum.STATUS_OPEN.equals(busPlan.getTaskStatus())) { BusMonipoiInfo baseInfo = monipoiInfoService.getById(busPlan.getMonitorId()); @@ -169,13 +188,19 @@ } - public void cruise(String ip, String command, Integer lineNum) { - Long userId = ihcNetService.getUserIdByIp(ip); - if (ObjectUtil.isEmpty(userId) || userId < 0) { - throw new BusinessException(BusinessExceptionEnum.DEVICE_REGISTER_FAILED); + public boolean cruise(String ip, String command, Integer lineNum) { + try { + Long userId = ihcNetService.getUserIdByIp(ip); + if (ObjectUtil.isEmpty(userId) || userId < 0) { + throw new BusinessException(BusinessExceptionEnum.DEVICE_REGISTER_FAILED); + } + //开启或停止巡航 + return ihcNetService.cruise(userId.intValue(), command, lineNum, null); + }catch (Exception e){ + e.printStackTrace(); } - //开启或停止巡航 - ihcNetService.cruise(userId.intValue(), command, lineNum, null); + + return false; } }