2021与蓝度共同重构项目,服务端
fix
zhanzhiqin
2022-05-23 ab2504a3f8374755bb11f50f84ca41150dce42d1
fix
已修改2个文件
93 ■■■■■ 文件已修改
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightTaskController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightTaskController.java
@@ -71,16 +71,21 @@
        if (!permissionConfig.check(MenuEnum.LIGHT_TASK_UPDATE.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        int result = lightTaskService.updateLightTask(taskId, param);
        if(result==0){
            return ResponseUtil.success("编辑成功");
        }else if(result==1){
            return ResponseUtil.success("原任务存在发送指令异常,旧任务保留,下发成功的部分保存至对应新增任务");
        }else if(result==2){
            return ResponseUtil.fail("原任务存在发送指令异常,任务下发失败,旧任务保留");
        }else {
            return ResponseUtil.fail("未知错误");
        }
//        int result = lightTaskService.updateLightTask(taskId, param);
//        if (result == 0) {
//            return ResponseUtil.success("全部成功");
//        } else if (result == 1) {
//            return ResponseUtil.success("全部失败");
//        } else if (result == 2) {
//            return ResponseUtil.fail("只有旧任务");
//        } else if (result == 3) {
//            return ResponseUtil.fail("部分成功,部分失败");
//        } else {
//            return ResponseUtil.fail("未知错误");
//        }
        String result = lightTaskService.updateLightTask(taskId, param);
        return ResponseUtil.success(result);
    }
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -137,7 +137,7 @@
    }
    @Transactional(rollbackFor = Exception.class)
    public int updateLightTask(Long taskId, LightTaskParam param) {
    public String updateLightTask(Long taskId, LightTaskParam param) {
        if (StrUtil.length(param.getControlOrder()) % LightTaskParam.REQUEST_ORDER_LENGTH != 0) {
            throw new BusinessException("灯控命令格式不正确");
        }
@@ -215,12 +215,16 @@
            closePoleSuccess = closePoleMap.getOrDefault("success", new ArrayList<>());
        }
        //有失敗的需要保存旧的任務
        if (closePoleFail.size() == 0 && oldPoleFail.size() == 0) {
            //旧任务中全部发送指令成功,更新原本任务中的数据
            newLightTask.setTaskId(lightTask.getTaskId());
            updateById(newLightTask);
        } else {
            save(newLightTask);
            if (!newPoleSuccess.isEmpty() || !oldPoleSuccess.isEmpty()) {
                //有失敗的需要保存旧的任務,新增新的任务数据进行保存
                save(newLightTask);
            }
        }
        /**
@@ -239,7 +243,7 @@
         * 编辑路灯任务日志记录结束
         */
        for (LightTaskPoleRelation bean : newPoleAll) {
        for (LightTaskPoleRelation bean : newPoleSuccess) {
            bean.setTaskId(newLightTask.getTaskId());
        }
        //成功用新的任务ID
@@ -257,20 +261,33 @@
        }
        List<LightTaskPoleRelation> all = new ArrayList<>();
        all.addAll(newPoleAll);
        all.addAll(newPoleSuccess);
        all.addAll(oldPoleSuccess);
        all.addAll(oldPoleFail);
        all.addAll(closePoleFail);
        List<Long> allPoleId = new ArrayList<>();
        allPoleId.addAll(poleIdList);
        allPoleId.addAll(oldList);
        lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, allPoleId));
        lightTaskPoleRelationService.saveBatch(all);
        for (LightTaskPoleRelation bean : newPoleSuccess) {
            allPoleId.add(bean.getPoleId());
        }
        for (LightTaskPoleRelation bean : oldPoleSuccess) {
            allPoleId.add(bean.getPoleId());
        }
        for (LightTaskPoleRelation bean : oldPoleFail) {
            allPoleId.add(bean.getPoleId());
        }
        for (LightTaskPoleRelation bean : closePoleSuccess) {
            allPoleId.add(bean.getPoleId());
        }
        if (!allPoleId.isEmpty()) {
            lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, allPoleId));
        }
        if (!all.isEmpty()) {
            lightTaskPoleRelationService.saveBatch(all);
        }
        /**
@@ -300,21 +317,30 @@
//            //编辑成功
//            return 0;
//        } else if (newPoleSuccess.isEmpty() && oldPoleSuccess.isEmpty() && closePoleSuccess.isEmpty()) {
//            //编辑失败, 新旧任务都有
//            //编辑失败
//            return 1;
//        } else if ((newPoleSuccess.isEmpty() && newPoleFail.isEmpty())) {
//            if (oldPoleSuccess.isEmpty() && closePoleSuccess.isEmpty()) {
//                //编辑失败,保留原先任务没有改变,只有旧任务
//        } else {
//            //在旧任务基础上编辑
//            if (lightTask.getTaskId().equals(newLightTask.getTaskId())) {
//                //只有旧任务
//                return 2;
//            } else {
//                //编辑部分成功部分失败,新旧任务同时存在
//            }  else {
//                //有新任务,有旧任务
//                return 3;
//            }
//        } else {
//            return -1;
//        }
        return 0;
        if (newPoleFail.isEmpty() && oldPoleFail.isEmpty() && closePoleFail.isEmpty()) {
            return "编辑成功";
        } else if (!closePoleFail.isEmpty() || !oldPoleFail.isEmpty()) {
            return "原任务中存在下发异常,原任务保留,创建新任务进行保存";
        } else if (!newPoleFail.isEmpty()) {
            return "新任务中存在下发异常,忽略异常操作的灯杆";
        } else if (newPoleSuccess.isEmpty() && oldPoleSuccess.isEmpty() && closePoleSuccess.isEmpty()) {
            throw new BusinessException("编辑失败");
        } else {
            return "操作异常";
        }
    }