| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 服务端批量控灯日志记录开始 |
| | | */ |
| | | String content = "{控灯请求:" + paramList.toString() |
| | | + ", 控灯结果:" + resultList.toString() + "}"; |
| | | List<String> codeList = new ArrayList<>(); |
| | | for (LightControlParam bean : paramList) { |
| | | codeList.add(bean.getDeviceCode()); |
| | | } |
| | | StoreOperationRecordsUtils.storeOperationData(codeList, null, "服务端批量控灯", content); |
| | | /** |
| | | * 服务端批量控灯日志记录结束 |
| | | */ |
| | | |
| | | return resultList; |
| | | } |
| | | |
| | |
| | | bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal); |
| | | if (controlLightCommandVOS.size() == (i + 1)) { |
| | | BigDecimal bigDecimal1 = calculateEnergySaving(controlLightCommandVOS.get(i), endTime); |
| | | System.out.println(bigDecimal1 + "==========================="); |
| | | // System.out.println(bigDecimal1 + "==========================="); |
| | | // saving.add(bigDecimal1); |
| | | bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal1); |
| | | break; |
| | |
| | | public BigDecimal calculateEnergySaving(ControlLightCommandVO v1, ControlLightCommandVO v2) { |
| | | |
| | | // BigDecimal hour = BigDecimal.valueOf((v2.getHour() - v1.getHour())); |
| | | BigDecimal hour; |
| | | // BigDecimal hour; |
| | | double hour; |
| | | double min; |
| | | //计算时长 |
| | | if (v2.getHour() > v1.getHour()) { |
| | | hour = BigDecimal.valueOf((v2.getHour() - v1.getHour())); |
| | | hour = v2.getHour() - v1.getHour(); |
| | | } else if (v2.getHour() < v1.getHour()) { |
| | | hour = BigDecimal.valueOf((v2.getHour() + 24 - v1.getHour())); |
| | | hour = 24 + (v2.getHour() - v1.getHour()); |
| | | } else { |
| | | hour = BigDecimal.valueOf(0); |
| | | hour = 0; |
| | | } |
| | | // BigDecimal min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60); |
| | | BigDecimal min; |
| | | //计算分钟 |
| | | |
| | | if (v2.getMin() > v1.getMin()) { |
| | | min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60); |
| | | min = v2.getMin() - v1.getMin(); |
| | | } else if (v2.getMin() < v1.getMin()) { |
| | | min = BigDecimal.valueOf((v2.getMin() + 60 - v1.getMin()) / 60); |
| | | min = 60 + (v1.getMin() - v2.getMin()); |
| | | hour = hour - 1; |
| | | } else { |
| | | min = BigDecimal.valueOf(0); |
| | | min = 0; |
| | | } |
| | | //计算时长 |
| | | BigDecimal totalTime = BigDecimal.valueOf(hour * 60 + min); |
| | | |
| | | BigDecimal totalTime = (hour.add(min)); |
| | | |
| | | BigDecimal energySaving = BigDecimal.valueOf((100 - v1.getBrightness())).divide(BigDecimal.valueOf(100)).multiply(totalTime).divide(BigDecimal.valueOf(24)); |
| | | System.out.println(energySaving); |
| | | //计算节能率 ( (1-v1.getBrightness()/100)*totalTime/3600 ) 保留两位小数 |
| | | BigDecimal energySaving = BigDecimal.valueOf((1 - v1.getBrightness() / 100) * totalTime.doubleValue() / 3600).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | System.out.println(energySaving + "节能率"); |
| | | return energySaving; |
| | | } |
| | | |
| | |
| | | min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60); |
| | | } else if (v2.getMin() < v1.getMin()) { |
| | | min = BigDecimal.valueOf((v2.getMin() + 60 - v1.getMin()) / 60); |
| | | hour = hour.subtract(BigDecimal.valueOf(1)); |
| | | } else { |
| | | min = BigDecimal.valueOf(0); |
| | | } |