Pu Zhibing
5 天以前 3244b550596e0330031b3f4547356927df83b0ad
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
@@ -6,6 +6,7 @@
import lombok.extern.slf4j.Slf4j;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -34,22 +35,30 @@
     */
    public static void setStrategyPrice(Map<Integer, TAccountingStrategyDetail> accountingStrategyDetails,AcquisitionBillingModeReply acquisitionBillingModeReply) {
        accountingStrategyDetails.forEach((k,v)->{
            BigDecimal electrovalence = v.getElectrovalence();
            BigDecimal serviceCharge = v.getServiceCharge();
            if(Objects.isNull(electrovalence)){
                electrovalence = BigDecimal.ZERO;
            }
            if(Objects.isNull(serviceCharge)){
                serviceCharge = BigDecimal.ZERO;
            }
            switch (k){
                case 1:
                    acquisitionBillingModeReply.setSharp_peak_electricity_rate(v.getElectrovalence());
//                    acquisitionBillingModeReply.setSharp_peak_service_rate(v.getServiceCharge());
                    acquisitionBillingModeReply.setSharp_peak_electricity_rate(electrovalence);
                    acquisitionBillingModeReply.setSharp_peak_service_rate(serviceCharge);
                    break;
                case 2:
                    acquisitionBillingModeReply.setPeak_electricity_rate(v.getElectrovalence());
//                    acquisitionBillingModeReply.setPeak_service_rate(v.getServiceCharge());
                    acquisitionBillingModeReply.setPeak_electricity_rate(electrovalence);
                    acquisitionBillingModeReply.setPeak_service_rate(serviceCharge);
                    break;
                case 3:
                    acquisitionBillingModeReply.setFlat_peak_electricity_rate(v.getElectrovalence());
//                    acquisitionBillingModeReply.setFlat_peak_service_rate(v.getServiceCharge());
                    acquisitionBillingModeReply.setFlat_peak_electricity_rate(electrovalence);
                    acquisitionBillingModeReply.setFlat_peak_service_rate(serviceCharge);
                    break;
                default:
                    acquisitionBillingModeReply.setLow_peak_electricity_rate(v.getElectrovalence());
//                    acquisitionBillingModeReply.setLow_peak_service_rate(v.getServiceCharge());
                    acquisitionBillingModeReply.setLow_peak_electricity_rate(electrovalence);
                    acquisitionBillingModeReply.setLow_peak_service_rate(serviceCharge);
                    break;
            }
        });
@@ -67,8 +76,13 @@
            }
            accountingStrategyDetails = accountingStrategyDetails.stream().sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList());
            for (TAccountingStrategyDetail accountingStrategyDetail : accountingStrategyDetails) {
                if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime()).isBefore(time)
                        && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime()).isAfter(time)){
                String startTime = accountingStrategyDetail.getStartTime();
                String endTime = accountingStrategyDetail.getEndTime();
                if("00:00".equals(endTime)){
                    endTime = "23:59";
                }
                if(DateUtils.string2LocalTime(startTime + ":00").isBefore(time)
                        && DateUtils.string2LocalTime(endTime + ":00").isAfter(time)){
                    switch (i){
                        case 1:
                            acquisitionBillingModeReply.setTime1(accountingStrategyDetail.getType().equals(1)?0