| | |
| | | package com.sandu.ximon.admin.service; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.HexUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | |
| | | import com.sandu.ximon.admin.param.LightRemarkParam; |
| | | import com.sandu.ximon.admin.redis.LightKey; |
| | | import com.sandu.ximon.admin.security.SecurityUtils; |
| | | import com.sandu.ximon.admin.vo.ControlLightCommandVO; |
| | | import com.sandu.ximon.dao.bo.LightBo; |
| | | import com.sandu.ximon.dao.domain.Light; |
| | | import com.sandu.ximon.dao.domain.LightReportData; |
| | |
| | | // List<String> deviceCodeList = listLight.stream().map(LightBo::getDeviceCode).collect(Collectors.toList()); |
| | | |
| | | List<LightTaskDto> lightTaskDtos = SpringContextHolder.getBean(LightTaskService.class).listLightTask(null, null); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | lightTaskDtos.forEach(Task -> { |
| | | ControlLightCommandVO startTime = parseSwitchLightCommand(Task.getOpenOrder()); |
| | | if(Task.getControlOrder()!=null){ |
| | | List<ControlLightCommandVO> controlLightCommandVOS = parseControlLightCommand(Task.getControlOrder()); |
| | | } |
| | | ControlLightCommandVO endTime = parseSwitchLightCommand(Task.getCloseOrder()); |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | | return null; |
| | |
| | | /** |
| | | * 解析开关灯指令 |
| | | */ |
| | | public void parseSwitchLightCommand(String command) { |
| | | public ControlLightCommandVO parseSwitchLightCommand(String command) { |
| | | char[] chars = command.toCharArray(); |
| | | if(chars.length==7){ |
| | | int hour = Integer.valueOf(command.substring(0,2)); |
| | | int min = Integer.valueOf(command.substring(2,4)); |
| | | int brightness = Integer.valueOf(command.substring(4,7)); |
| | | ControlLightCommandVO vo = new ControlLightCommandVO(); |
| | | if (chars.length == 7) { |
| | | int hour = Integer.valueOf(command.substring(0, 2)); |
| | | int min = Integer.valueOf(command.substring(2, 4)); |
| | | int brightness = Integer.valueOf(command.substring(4, 7)); |
| | | vo.setHour(hour); |
| | | vo.setMin(min); |
| | | vo.setBrightness(brightness); |
| | | } |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | | * 解析控灯指令 |
| | | */ |
| | | public List<ControlLightCommandVO> parseControlLightCommand(String command) { |
| | | char[] chars = command.toCharArray(); |
| | | int i = chars.length / 7; |
| | | |
| | | List<ControlLightCommandVO> list = new ArrayList<>(); |
| | | |
| | | for (int j = 0; j < i; j++) { |
| | | int hour = Integer.valueOf(command.substring(0 + (j * 7), 2 + (j * 7))); |
| | | int min = Integer.valueOf(command.substring(2 + (j * 7), 4 + (j * 7))); |
| | | int brightness = Integer.valueOf(command.substring(4 + (j * 7), 7 + (j * 7))); |
| | | ControlLightCommandVO vo = new ControlLightCommandVO(); |
| | | vo.setHour(hour); |
| | | vo.setMin(min); |
| | | vo.setBrightness(brightness); |
| | | list.add(vo); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | //计算节能率 |
| | | public void calculateEnergySaving(ControlLightCommandVO v1,ControlLightCommandVO v2){ |
| | | int hour = v2.getHour()- v1.getHour(); |
| | | int min = (v2.getMin()- v1.getMin()); |
| | | int brightness = v2.getBrightness()- v1.getBrightness(); |
| | | int totalTime=(hour*60+min)*60; |
| | | Double energySaving = (1-(v1.getBrightness()/100.0))*totalTime/(36*24); |
| | | } |
| | | |
| | | /** |