2021与蓝度共同重构项目,服务端
fix
zhanzhiqin
2022-05-20 51eb63d31f771dd71b34d22e23c94ab2ee27f5c4
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -600,6 +600,47 @@
         */
    }
    /**
     * 单个任务一天的节能率
     *
     * @return
     */
    public BigDecimal jisuan(LightTaskDto Task) {
        final BigDecimal[] bigDecimalResult = {new BigDecimal(0.00)};
        /**
         * 节能率计算开始
         */
        //TODO
        ControlLightCommandVO startTime = parseSwitchLightCommand(Task.getOpenOrder());
        ControlLightCommandVO endTime = parseSwitchLightCommand(Task.getCloseOrder());
        //存放节能率
        //获取到单灯任务的节能率
        if (Task.getControlOrder() != null && !Task.getControlOrder().isEmpty()) {//有控等指令 拆分计算
            List<ControlLightCommandVO> controlLightCommandVOS = parseControlLightCommand(Task.getControlOrder());
            for (int i = 0; i < controlLightCommandVOS.size(); i++) {
                BigDecimal bigDecimal = calculateEnergySaving(startTime, controlLightCommandVOS.get(i));
                bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal);
                if (controlLightCommandVOS.size() == (i + 1)) {
                    BigDecimal bigDecimal1 = calculateEnergySaving(controlLightCommandVOS.get(i), endTime);
                    bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal1);
                    break;
                }
                startTime = controlLightCommandVOS.get(i);
//                    saving.add(bigDecimal);
            }
        } else {//无控灯指令 直接计算
            BigDecimal bigDecimal = calculateEnergySaving(startTime, endTime);
//                saving.add(bigDecimal);
            bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal);
        }
        return bigDecimalResult[0];
        /**
         * 节能率计算结束
         */
    }
    /**
     * 一天的能耗
@@ -637,10 +678,10 @@
                        System.out.println(bigEnergy2 + "时长*亮度===========================");
                        //计算能耗(总   时长*亮度*功率)
                      if(bigEnergy2.compareTo(new BigDecimal(0)) != 0){
                          BigDecimal totalEnergy3 = totalEnergy(bigEnergy2, Task.getLightAdress(), poleTaskLightPowerBos);
                          bigEnergy[0] = bigEnergy[0].add(totalEnergy3);
                      }
                        if (bigEnergy2.compareTo(new BigDecimal(0)) != 0) {
                            BigDecimal totalEnergy3 = totalEnergy(bigEnergy2, Task.getLightAdress(), poleTaskLightPowerBos);
                            bigEnergy[0] = bigEnergy[0].add(totalEnergy3);
                        }
                        break;
                    }
                    startTime = controlLightCommandVOS.get(i);
@@ -650,7 +691,7 @@
                //计算能耗(部分   时长*亮度)
                BigDecimal Energy = calculateEnergyConsumption(startTime, endTime);
                //计算能耗(总   时长*亮度*功率)
           //判断 Energy==0 则不计算
                //判断 Energy==0 则不计算
                if (Energy.compareTo(new BigDecimal(0)) != 0) {
                    BigDecimal totalEnergy = totalEnergy(Energy, Task.getLightAdress(), poleTaskLightPowerBos);
                    bigEnergy[0] = bigEnergy[0].add(totalEnergy);