| .run/测试-管理端.run.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/resources/mapper/LightTaskMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/security/stringTest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/vo/ControlLightCommandVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.run/²âÊÔ-¹ÜÀí¶Ë.run.xml
@@ -28,7 +28,7 @@ </option> <option name="hostTagId" value="0" /> <option name="location" value="cd /usr/local/project/ximon-light-20017" /> <option name="pathOrUrl" value="e:\IdeaProjects\XMPoleManager\ximon-admin\target\ximon-admin-0.0.1-SNAPSHOT.jar" /> <option name="pathOrUrl" value="D:\IdeaProjects\XMPoleManager\ximon-admin\target\ximon-admin-0.0.1-SNAPSHOT.jar" /> <option name="tagId" value="0" /> <option name="terminalCommand" /> <option name="type" value="HOST" /> dao/src/main/resources/mapper/LightTaskMapper.xml
@@ -31,9 +31,11 @@ parameterType="java.lang.Long"> 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 t2.pole_id = t3.id LEFT JOIN light_task_pole_relation t2 ON t1.task_id = t2.task_id LEFT JOIN pole t3 ON t2.pole_id = t3.id WHERE t2.issue_status = 0 AND (t3.user_id = #{userId} or t3.client_id = #{userId}) <if test="userid != null"> AND (t3.user_id = #{userid} OR t3.client_id = #{userid}) </if> </select> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/security/stringTest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package com.sandu.ximon.admin.security; import com.sandu.ximon.admin.vo.ControlLightCommandVO; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; /** * @Author liuhaonan * @Date 2022/4/19 * @Version 1.0 */ public class stringTest { public static void main(String[] args) { String command = "16050032359000"; // String command = "00000500605000"; 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); } ControlLightCommandVO v1 = list.get(0); ControlLightCommandVO v2 = list.get(1); // int i1 = v2.getHour() - v1.getHour(); // int i2 = (v2.getMin()- v1.getMin()); BigDecimal hour = BigDecimal.valueOf((v2.getHour()- v1.getHour())); BigDecimal min = BigDecimal.valueOf((v2.getMin()- v1.getMin())/60); BigDecimal totalTime=(hour.add(min)); // int total=(i1*3600+i2*60); // BigDecimal energySaving = BigDecimal.valueOf(((100-v1.getBrightness())/100)*totalTime/24); // BigDecimal energySaving =BigDecimal.valueOf((100-v1.getBrightness())).divide(BigDecimal.valueOf(100)).multiply(totalTime).divide(BigDecimal.valueOf(24)); BigDecimal energySaving =new BigDecimal(100).subtract(BigDecimal.valueOf(v1.getBrightness())).divide(BigDecimal.valueOf(100)).multiply(totalTime).divide(BigDecimal.valueOf(24)); System.out.println(energySaving); // System.out.println(energySaving+"----------------------"+energySaving1); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -203,7 +203,7 @@ * * @return */ public List<LightReportData> controlEnergySaving() { public Map controlEnergySaving() { Long clientId = SecurityUtils.getClientId(); // List<LightBo> listLight = baseMapper.listLight(clientId, null); // List<String> deviceCodeList = listLight.stream().map(LightBo::getDeviceCode).collect(Collectors.toList()); @@ -212,34 +212,102 @@ List<LightTaskDto> lightTaskDtos = SpringContextHolder.getBean(LightTaskService.class).listTask(); LocalDateTime now = LocalDateTime.now(); lightTaskDtos.forEach(Task -> { List<LightTaskDto> list1 = new ArrayList<>(); List<LightTaskDto> list2 = new ArrayList<>(); List<LightTaskDto> list3 = new ArrayList<>(); List<LightTaskDto> list4 = new ArrayList<>(); List<LightTaskDto> list5 = new ArrayList<>(); List<LightTaskDto> list6 = new ArrayList<>(); List<LightTaskDto> list7 = new ArrayList<>(); for (LightTaskDto lightTaskDto : lightTaskDtos) { List<Integer> weekList = lightTaskDto.getWeekList(); System.out.println(weekList+"==========================="); for (Integer one : weekList) { switch (one) { case 1: list1.add(lightTaskDto); break; case 2: list2.add(lightTaskDto); break; case 4: list3.add(lightTaskDto); break; case 8: list4.add(lightTaskDto); break; case 16: list5.add(lightTaskDto); break; case 32: list6.add(lightTaskDto); break; case 64: list7.add(lightTaskDto); break; default: } } } Map map = new HashMap(); map.put("1", jisuan(list1)); map.put("2", jisuan(list2)); map.put("3", jisuan(list3)); map.put("4", jisuan(list4)); map.put("5", jisuan(list5)); map.put("6", jisuan(list6)); map.put("7", jisuan(list7)); return map; } /** * ä¸å¤©çèè½ç * * @param list * @return */ public BigDecimal jisuan(List<LightTaskDto> list) { BigDecimal bigDecimalResult = new BigDecimal(0.00); /** * èè½ç计ç®å¼å§ */ list.forEach(Task -> { // List<BigDecimal> saving = new ArrayList<>(); ControlLightCommandVO startTime = parseSwitchLightCommand(Task.getOpenOrder()); ControlLightCommandVO endTime = parseSwitchLightCommand(Task.getCloseOrder()); //åæ¾èè½ç List<BigDecimal> saving = new ArrayList<>(); //è·åå°åç¯ä»»å¡çèè½ç if (Task.getControlOrder() != null) {//ææ§çæä»¤ æåè®¡ç® List<ControlLightCommandVO> controlLightCommandVOS = parseControlLightCommand(Task.getControlOrder()); for (int i = 0; i < controlLightCommandVOS.size(); i++) { BigDecimal bigDecimal = calculateEnergySaving(startTime, controlLightCommandVOS.get(i)); if(controlLightCommandVOS.size()==i){ if (controlLightCommandVOS.size() == (i+1)) { BigDecimal bigDecimal1 = calculateEnergySaving(controlLightCommandVOS.get(i), endTime); saving.add(bigDecimal1); System.out.println(bigDecimal1+"==========================="); // saving.add(bigDecimal1); bigDecimalResult.add(bigDecimal1); break; } startTime = controlLightCommandVOS.get(i); saving.add(bigDecimal); // saving.add(bigDecimal); bigDecimalResult.add(bigDecimal); } }else {//æ æ§ç¯æä»¤ ç´æ¥è®¡ç® } else {//æ æ§ç¯æä»¤ ç´æ¥è®¡ç® BigDecimal bigDecimal = calculateEnergySaving(startTime, endTime); saving.add(bigDecimal); // saving.add(bigDecimal); bigDecimalResult.add(bigDecimal); } }); return bigDecimalResult; return null; /** * èè½ç计ç®ç»æ */ } /** ximon-admin/src/main/java/com/sandu/ximon/admin/vo/ControlLightCommandVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.sandu.ximon.admin.vo; import lombok.Data; /** * @Author liuhaonan * @Date 2022/4/20 * @Version 1.0 */ @Data public class ControlLightCommandVO { int hour ; int min ; int brightness ; }