2021与蓝度共同重构项目,服务端
liuhaonan
2022-06-23 3c48285da366fdb0aeefe8de3046f4a1618c3335
bug修复
已修改5个文件
113 ■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/mapper/LightTaskMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/LightTaskMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightTaskController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/dto/LightTaskDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/LightTaskMapper.java
@@ -16,6 +16,12 @@
    List<LightTask> listLightTask(Long userId);
    List<PoleTaskLightPowerBo> listLightTaskByTaskId(Long taskId);
    Integer successCount(Long taskId);
    Integer toTalCount(Long taskId);
    List<LightTask> listTask(Long userId , String keyword);
}
dao/src/main/resources/mapper/LightTaskMapper.xml
@@ -58,4 +58,46 @@
            t2.task_id = #{taskId}
        </if>
    </select>
    <select id="successCount" resultType="java.lang.Integer" parameterType="java.lang.Long">
        SELECT
           count(*)
        FROM
            light_task t1
                LEFT JOIN light_task_pole_relation t2 ON t1.task_id = t2.task_id
        WHERE
            t1.task_id = #{taskId}
          AND t2.issue_status = 0
    </select>
    <select id="toTalCount" resultType="java.lang.Integer">
        SELECT
            count(*)
        FROM
            light_task t1
                LEFT JOIN light_task_pole_relation t2 ON t1.task_id = t2.task_id
        WHERE
            t1.task_id = #{taskId}
    </select>
    <select id="listTask" resultType="com.sandu.ximon.dao.domain.LightTask">
        SELECT
            t1.*
        FROM
            light_task t1
                LEFT JOIN light_task_pole_relation t2 ON t1.task_id = t2.task_id
                LEFT JOIN pole t3 ON t3.id = t2.pole_id
                LEFT JOIN pole_binding t4 ON t3.id = t4.pole_id
                LEFT JOIN light t5 ON t5.device_code = t4.device_code
        WHERE
            1=1
        <if test="userId != null">
           AND ( t1.task_name LIKE #{keyword} OR t5.device_code LIKE #{keyword} )
        </if>
         <if test="userId != null">
             AND ( t1.client_id =#{userId} OR t1.user_id =#{userId} )
         </if>
        GROUP BY
            task_id
--         ORDER BY
--             t1.${orderBy}
    </select>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightTaskController.java
@@ -2,6 +2,7 @@
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.security.annotation.AnonymousAccess;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.dto.LightTaskDto;
import com.sandu.ximon.admin.param.LightTaskDelParam;
@@ -44,14 +45,15 @@
        }
    }
    @AnonymousAccess
    @GetMapping("/list")
    public ResponseVO<Object> listLightTask(BaseConditionVO conditionVO,
                                            @RequestParam(value = "keyword", required = false) String keyword,
                                            @RequestParam(value = "order", required = false) Integer order,
                                            @RequestParam(value = "seq", required = false) Integer seq) {
        if (!permissionConfig.check(MenuEnum.LIGHT_TASK_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
//        if (!permissionConfig.check(MenuEnum.LIGHT_TASK_LIST.getCode())) {
//            return ResponseUtil.fail("缺少对应用户权限");
//        }
        List<LightTaskDto> taskList = lightTaskService.listLightTask(conditionVO, keyword, order, seq);
        return ResponseUtil.successPage(taskList);
    }
ximon-admin/src/main/java/com/sandu/ximon/admin/dto/LightTaskDto.java
@@ -13,4 +13,9 @@
public class LightTaskDto extends LightTask {
    private List<Integer> weekList;
    /**
     * 同步状态
     */
    private String syncStatus;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -333,16 +333,16 @@
    }
    public List<LightTaskDto> listLightTask(BaseConditionVO conditionVO, String keyword, Integer order, Integer seq) {
        LambdaQueryWrapper<LightTask> wrapper = Wrappers.lambdaQuery(LightTask.class);
        if (StrUtil.isNotBlank(keyword)) {
            wrapper.like(LightTask::getTaskName, keyword);
        }
        //不是超管需要筛选
        if (SecurityUtils.getClientId() != null) {
            wrapper.eq(LightTask::getClientId, SecurityUtils.getUserId()).or(w -> {
                w.eq(LightTask::getUserId, SecurityUtils.getUserId());
            });
        }
//        LambdaQueryWrapper<LightTask> wrapper = Wrappers.lambdaQuery(LightTask.class);
//        if (StrUtil.isNotBlank(keyword)) {
//            wrapper.like(LightTask::getTaskName, keyword);
//        }
//        //不是超管需要筛选
//        if (SecurityUtils.getClientId() != null) {
//            wrapper.eq(LightTask::getClientId, SecurityUtils.getUserId()).or(w -> {
//                w.eq(LightTask::getUserId, SecurityUtils.getUserId());
//            });
//        }
        //排序字段
        String orderByResult = "task_id";
@@ -372,7 +372,8 @@
        String orderBy = orderByResult + " " + orderBySeq;
        PageHelper.startPage(conditionVO.getPageNo(), conditionVO.getPageSize(), orderBy);
        List<LightTask> list = list(wrapper);
        List<LightTask> list = baseMapper.listTask(SecurityUtils.getClientId(),keyword);
        Page<LightTaskDto> page = new Page<>();
        BeanUtils.copyProperties(list, page);
@@ -380,6 +381,35 @@
            LightTaskDto lightTaskDto = new LightTaskDto();
            BeanUtils.copyProperties(lightTask, lightTaskDto);
            lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(lightTask.getWeek()));
            //下发成功的灯杆数量
            Integer successCount = baseMapper.successCount(lightTaskDto.getTaskId());
            ///任务中总的灯杆数量
            Integer toTalCount = baseMapper.toTalCount(lightTaskDto.getTaskId());
            if (successCount == null) {
                successCount = 0;
            }
            if (toTalCount == null) {
                toTalCount = 0;
            }
            if (toTalCount == 0) {
                //任务中没有灯杆
                lightTaskDto.setSyncStatus("未同步");
            } else {
                //任务中有灯杆
                if (successCount == 0) {
                    //下发成功未0
                    lightTaskDto.setSyncStatus("未同步");
                } else if (successCount != 0 && successCount < toTalCount) {
                    //存在下发成功    但并未全部成功
                    lightTaskDto.setSyncStatus("部分同步");
                } else if (toTalCount.equals(successCount) && toTalCount != 0 && successCount != 0) {
                    //全部成功
                    lightTaskDto.setSyncStatus("已同步");
                } else {
                    //未知类型
                    lightTaskDto.setSyncStatus("同步状态出错");
                }
            }
            page.add(lightTaskDto);
        }
        return page;