ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightTaskController.java
@@ -3,6 +3,7 @@ import com.sandu.common.domain.ResponseVO; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.dto.LightTaskDto; import com.sandu.ximon.admin.param.LightTaskDelParam; import com.sandu.ximon.admin.param.LightTaskParam; import com.sandu.ximon.admin.service.LightTaskService; @@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * è·¯ç¯ä»»å¡ç¸å ³æ§å¶ç±» @@ -38,7 +40,7 @@ @GetMapping("/list") public ResponseVO<Object> listLightTask(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword) { List<LightTask> taskList = lightTaskService.listLightTask(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword); List<LightTaskDto> taskList = lightTaskService.listLightTask(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword); return ResponseUtil.successPage(taskList); } @@ -61,4 +63,10 @@ return ResponseUtil.fail("ç¼è¾å¤±è´¥"); } } @GetMapping("/{taskId}") public ResponseVO<Object> detailLightTask(@PathVariable Long taskId) { Map<Object, Object> objectObjectMap = lightTaskService.detailLightTask(taskId); return ResponseUtil.success(objectObjectMap); } } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.admin.controller; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; @@ -54,7 +55,7 @@ wrapper= Wrappers.lambdaQuery(PlayPlanNv.class).eq(PlayPlanNv::getUserId,SecurityUtils.getUserId()); } wrapper=Wrappers.lambdaQuery(PlayPlanNv.class); if(null!=keyword){ if(StrUtil.isNotBlank(keyword)){ wrapper.like(PlayPlanNv::getName,keyword); } return ResponseUtil.successPage(playPlanNvService.list(wrapper)); ximon-admin/src/main/java/com/sandu/ximon/admin/dto/LightTaskDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.sandu.ximon.admin.dto; import com.sandu.ximon.dao.domain.LightTask; import lombok.Data; import java.util.List; /** * @author chenjiantian * @date 2022/1/6 10:01 */ @Data public class LightTaskDto extends LightTask { private List<Integer> weekList; } ximon-admin/src/main/java/com/sandu/ximon/admin/param/LightTaskParam.java
@@ -3,6 +3,7 @@ import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; @@ -18,14 +19,14 @@ /** * ä»»å¡åç§° */ @NotEmpty(message = "ä»»å¡åç§°ä¸è½ä¸ºç©º") @NotBlank(message = "ä»»å¡åç§°ä¸è½ä¸ºç©º") private String taskName; /** * ææå ï¼ä½è¿ç®ä¿åï¼1代表ææä¸ï¼2ææäºï¼4ææä¸ï¼8ææåï¼16ææäºï¼32ææå ï¼64æææ¥ */ @NotNull(message = "ææä¸è½ä¸ºç©º") private Integer week; @NotEmpty(message = "ææä¸è½ä¸ºç©º") private List<Integer> weekList; /** ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskQuartzService.java
@@ -7,10 +7,8 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.sandu.common.execption.BusinessException; import com.sandu.common.quartz.ExecutionJob; import com.sandu.common.quartz.service.QuartzService; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.constant.Constants; import com.sandu.ximon.admin.dto.SingleLightOrderDto; import com.sandu.ximon.admin.manager.iot.rrpc.util.SupplementUtils; import com.sandu.ximon.admin.param.LightTaskParam; @@ -69,7 +67,7 @@ SingleLightOrderDto openLightOrder = TaskOrderUtil.parseLightOrder(lightTask.getOpenOrder()); SingleLightOrderDto closeLightOrder = TaskOrderUtil.parseLightOrder(lightTask.getCloseOrder()); String[] controlOrderArray = StrUtil.split(lightTask.getControlOrder(), LightTaskParam.REQUEST_ORDER_LENGTH); Integer[] weekArrays = TaskOrderUtil.parseLightWeek(lightTask.getWeek()); Integer[] weekArrays = TaskOrderUtil.parseLightCronWeek2List(lightTask.getWeek()).toArray(new Integer[0]); if (openLightOrder == null || closeLightOrder == null) { throw new BusinessException("è§£æåç¯å½ä»¤å¤±è´¥"); } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -1,12 +1,15 @@ package com.sandu.ximon.admin.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.sandu.common.execption.BusinessException; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.dto.LightTaskDto; import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder; import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame; import com.sandu.ximon.admin.manager.iot.frame.inner.request.A5LightTimerReqInnerFrame; @@ -16,16 +19,20 @@ import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService; import com.sandu.ximon.admin.param.LightTaskParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.TaskOrderUtil; import com.sandu.ximon.dao.domain.LightTask; import com.sandu.ximon.dao.domain.LightTaskPoleRelation; import com.sandu.ximon.dao.domain.LightTaskQuartz; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.mapper.LightTaskMapper; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.Map; /** * @author chenjiantian @@ -41,6 +48,7 @@ private final PoleService poleService; private final LightTaskPoleRelationService lightTaskPoleRelationService; /** * æ°å¢è·¯ç¯ä»»å¡ */ @@ -49,10 +57,14 @@ if (StrUtil.length(param.getControlOrder()) % LightTaskParam.REQUEST_ORDER_LENGTH != 0) { throw new BusinessException("ç¯æ§å½ä»¤æ ¼å¼ä¸æ£ç¡®"); } int week = 0; for (Integer w : param.getWeekList()) { week |= w; } LightTask lightTask = new LightTask(); lightTask.setClientId(SecurityUtils.getClientId()); lightTask.setTaskName(param.getTaskName()); lightTask.setWeek(param.getWeek()); lightTask.setWeek(week); lightTask.setCloseOrder(param.getCloseOrder()); lightTask.setOpenOrder(param.getOpenOrder()); lightTask.setControlOrder(param.getControlOrder()); @@ -104,7 +116,7 @@ return responseInnerFrame; } public List<LightTask> listLightTask(int pageNo, int pageSize, String keyword) { public List<LightTaskDto> listLightTask(int pageNo, int pageSize, String keyword) { LambdaQueryWrapper<LightTask> wrapper = Wrappers.lambdaQuery(LightTask.class); if (StrUtil.isNotBlank(keyword)) { wrapper.like(LightTask::getTaskName, keyword); @@ -115,8 +127,19 @@ } PageHelper.startPage(pageNo, pageSize); return list(wrapper); List<LightTask> list = list(wrapper); Page<LightTaskDto> page = new Page<>(); BeanUtils.copyProperties(list,page); for (LightTask lightTask : list) { LightTaskDto lightTaskDto = new LightTaskDto(); BeanUtils.copyProperties(lightTask,lightTaskDto); lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(lightTask.getWeek())); page.add(lightTaskDto); } return page; } @Transactional(rollbackFor = Exception.class) public boolean updateLightTask(Long taskId, LightTaskParam param) { @@ -127,9 +150,12 @@ if (lightTask == null) { throw new BusinessException("æ¾ä¸å°è·¯ç¯ä»»å¡"); } int week = 0; for (Integer w : param.getWeekList()) { week |= w; } lightTask.setTaskName(param.getTaskName()); lightTask.setWeek(param.getWeek()); lightTask.setWeek(week); lightTask.setControlOrder(param.getControlOrder()); lightTask.setOpenOrder(param.getOpenOrder()); lightTask.setCloseOrder(param.getCloseOrder()); @@ -190,4 +216,14 @@ return true; } public Map<Object, Object> detailLightTask(Long taskId) { LightTask lightTask = getById(taskId); if(lightTask == null){ throw new BusinessException("æ¾ä¸å°ä»»å¡"); } List<Long> poleIdList = lightTaskPoleRelationService.listPoleIdByTaskId(taskId); List<Pole> poles = poleService.listByIds(poleIdList); return MapUtil.builder().put("task",lightTask).put("poles",poles).build(); } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TaskOrderUtil.java
@@ -29,7 +29,12 @@ return singleLightOrderDto; } public static Integer[] parseLightWeek(Integer week) { /** * 转æcronçææè¡¨è¾¾å¼ * @param week * @return */ public static List<Integer> parseLightCronWeek2List(Integer week) { if (week == null) { return null; } @@ -55,7 +60,7 @@ if((WeekEnums.SATURDAY.getCode() & week) > 0){ list.add(DateBuilder.SATURDAY); } return list.toArray(new Integer[0]); return list; } /** @@ -74,4 +79,38 @@ } return cronExpression.toString(); } /** * 转æçç»å端ææè¡¨è¾¾å¼ * @param week * @return */ public static List<Integer> parseLightWeek2List(Integer week) { if (week == null) { return null; } List<Integer> list = new ArrayList<>(); if((WeekEnums.MONDAY.getCode() & week) > 0){ list.add(WeekEnums.MONDAY.getCode()); } if((WeekEnums.TUESDAY.getCode() & week) > 0){ list.add(WeekEnums.TUESDAY.getCode()); } if((WeekEnums.WEDNESDAY.getCode() & week) > 0){ list.add(WeekEnums.WEDNESDAY.getCode()); } if((WeekEnums.THURSDAY.getCode() & week) > 0){ list.add(WeekEnums.THURSDAY.getCode()); } if((WeekEnums.FRIDAY.getCode() & week) > 0){ list.add(WeekEnums.FRIDAY.getCode()); } if((WeekEnums.SATURDAY.getCode() & week) > 0){ list.add(WeekEnums.SATURDAY.getCode()); } if((WeekEnums.SUNDAY.getCode() & week) > 0){ list.add(WeekEnums.SUNDAY.getCode()); } return list; } }