2021与蓝度共同重构项目,服务端
liuhaonan
2022-05-06 4f0c98099f43028d29546c7000ef48bc89282dc4
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -327,8 +327,7 @@
            if (week < 1) {
                week = 7;
            }
            map.put(i, "周" + week);
            map.put(i, getlist(week));
            map.put(i, getlistEnergy(week));
        }
@@ -546,7 +545,7 @@
            ControlLightCommandVO startTime = parseSwitchLightCommand(Task.getOpenOrder());
            ControlLightCommandVO endTime = parseSwitchLightCommand(Task.getCloseOrder());
            //获取到单灯任务的节能率
            if (Task.getControlOrder() != null) {//有控等指令 拆分计算
            if (!Task.getControlOrder().isEmpty()) {//有控等指令 拆分计算
                List<ControlLightCommandVO> controlLightCommandVOS = parseControlLightCommand(Task.getControlOrder());
@@ -571,6 +570,7 @@
                }
            } else {//无控灯指令 直接计算
                BigDecimal bigDecimal = calculateEnergySaving(startTime, endTime);
                //计算能耗(部分   时长*亮度)
                BigDecimal Energy = calculateEnergyConsumption(startTime, endTime);
                //计算能耗(总   时长*亮度*功率)
                BigDecimal totalEnergy = totalEnergy(Energy, Task.getLightAdress(), poleTaskLightPowerBos);
@@ -661,7 +661,14 @@
    //计算能耗(部分    时长*亮度)
    public BigDecimal calculateEnergyConsumption(ControlLightCommandVO v1, ControlLightCommandVO v2) {
        //计算时长
        BigDecimal hour = BigDecimal.valueOf((v2.getHour() - v1.getHour()));
        BigDecimal hour;
        if (v2.getHour() > v1.getHour()){
            hour = BigDecimal.valueOf((v2.getHour() - v1.getHour()));
        }else if (v2.getHour() < v1.getHour()) {
            hour = BigDecimal.valueOf((v2.getHour() + 24 - v1.getHour()));
        } else {
            hour = BigDecimal.valueOf(0);
        }
        BigDecimal min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60);
        BigDecimal totalTime = (hour.add(min));
        //计算亮灯时长*亮度