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;