| | |
| | | package com.ruoyi.integration.iotda.utils.tools; |
| | | |
| | | import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.integration.api.model.AcquisitionBillingModeReply; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.io.Serializable; |
| | | import java.time.LocalTime; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | public class StrategyUtil implements Serializable { |
| | | |
| | | |
| | | /** |
| | | * 校验计费模版是否准确 |
| | | * 获取计费模版的价格 |
| | | * @return |
| | | */ |
| | | public static boolean checkStrategy() { |
| | | return true; |
| | | public static Map<Integer, TAccountingStrategyDetail> getStrategyPrice(List<TAccountingStrategyDetail> accountingStrategyDetails) { |
| | | Map<Integer, TAccountingStrategyDetail> phaseToServiceFee = new HashMap<>(); |
| | | for (TAccountingStrategyDetail detail : accountingStrategyDetails) { |
| | | Integer type = detail.getType(); |
| | | if (!phaseToServiceFee.containsKey(type)) { |
| | | phaseToServiceFee.put(type, detail); |
| | | } |
| | | } |
| | | return phaseToServiceFee; |
| | | } |
| | | /** |
| | | * 计费模版的价格设置 |
| | | * @return |
| | | */ |
| | | public static void setStrategyPrice(Map<Integer, TAccountingStrategyDetail> accountingStrategyDetails,AcquisitionBillingModeReply acquisitionBillingModeReply) { |
| | | accountingStrategyDetails.forEach((k,v)->{ |
| | | switch (k){ |
| | | case 1: |
| | | acquisitionBillingModeReply.setSharp_peak_electricity_rate(v.getElectrovalence()); |
| | | // acquisitionBillingModeReply.setSharp_peak_service_rate(v.getServiceCharge()); |
| | | break; |
| | | case 2: |
| | | acquisitionBillingModeReply.setPeak_electricity_rate(v.getElectrovalence()); |
| | | // acquisitionBillingModeReply.setPeak_service_rate(v.getServiceCharge()); |
| | | break; |
| | | case 3: |
| | | acquisitionBillingModeReply.setFlat_peak_electricity_rate(v.getElectrovalence()); |
| | | // acquisitionBillingModeReply.setFlat_peak_service_rate(v.getServiceCharge()); |
| | | break; |
| | | default: |
| | | acquisitionBillingModeReply.setLow_peak_electricity_rate(v.getElectrovalence()); |
| | | // acquisitionBillingModeReply.setLow_peak_service_rate(v.getServiceCharge()); |
| | | break; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 计费模版的时段设置 |
| | | * @return |
| | | */ |
| | | public static void setTime(List<TAccountingStrategyDetail> accountingStrategyDetails,AcquisitionBillingModeReply acquisitionBillingModeReply) { |
| | | LocalTime time = LocalTime.of(0, 15, 0); |
| | | for (int i = 1; i <= 48; i++) { |
| | | if(i != 1){ |
| | | time = time.plusMinutes(30); |
| | | } |
| | | 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)){ |
| | | switch (i){ |
| | | case 1: |
| | | acquisitionBillingModeReply.setTime1(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 2: |
| | | acquisitionBillingModeReply.setTime2(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 3: |
| | | acquisitionBillingModeReply.setTime3(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 4: |
| | | acquisitionBillingModeReply.setTime4(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 5: |
| | | acquisitionBillingModeReply.setTime5(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 6: |
| | | acquisitionBillingModeReply.setTime6(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 7: |
| | | acquisitionBillingModeReply.setTime7(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 8: |
| | | acquisitionBillingModeReply.setTime8(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 9: |
| | | acquisitionBillingModeReply.setTime9(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 10: |
| | | acquisitionBillingModeReply.setTime10(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 11: |
| | | acquisitionBillingModeReply.setTime11(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 12: |
| | | acquisitionBillingModeReply.setTime12(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 13: |
| | | acquisitionBillingModeReply.setTime13(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 14: |
| | | acquisitionBillingModeReply.setTime14(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 15: |
| | | acquisitionBillingModeReply.setTime15(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 16: |
| | | acquisitionBillingModeReply.setTime16(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 17: |
| | | acquisitionBillingModeReply.setTime17(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 18: |
| | | acquisitionBillingModeReply.setTime18(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 19: |
| | | acquisitionBillingModeReply.setTime19(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 20: |
| | | acquisitionBillingModeReply.setTime20(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 21: |
| | | acquisitionBillingModeReply.setTime21(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 22: |
| | | acquisitionBillingModeReply.setTime22(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 23: |
| | | acquisitionBillingModeReply.setTime23(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 24: |
| | | acquisitionBillingModeReply.setTime24(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 25: |
| | | acquisitionBillingModeReply.setTime25(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 26: |
| | | acquisitionBillingModeReply.setTime26(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 27: |
| | | acquisitionBillingModeReply.setTime27(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 28: |
| | | acquisitionBillingModeReply.setTime28(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 29: |
| | | acquisitionBillingModeReply.setTime29(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 30: |
| | | acquisitionBillingModeReply.setTime30(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 31: |
| | | acquisitionBillingModeReply.setTime31(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 32: |
| | | acquisitionBillingModeReply.setTime32(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 33: |
| | | acquisitionBillingModeReply.setTime33(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 34: |
| | | acquisitionBillingModeReply.setTime34(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 35: |
| | | acquisitionBillingModeReply.setTime35(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 36: |
| | | acquisitionBillingModeReply.setTime36(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 37: |
| | | acquisitionBillingModeReply.setTime37(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 38: |
| | | acquisitionBillingModeReply.setTime38(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 39: |
| | | acquisitionBillingModeReply.setTime39(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 40: |
| | | acquisitionBillingModeReply.setTime40(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 41: |
| | | acquisitionBillingModeReply.setTime41(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 42: |
| | | acquisitionBillingModeReply.setTime42(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 43: |
| | | acquisitionBillingModeReply.setTime43(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 44: |
| | | acquisitionBillingModeReply.setTime44(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 45: |
| | | acquisitionBillingModeReply.setTime45(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 46: |
| | | acquisitionBillingModeReply.setTime46(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 47: |
| | | acquisitionBillingModeReply.setTime47(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | case 48: |
| | | acquisitionBillingModeReply.setTime48(accountingStrategyDetail.getType().equals(1)?0 |
| | | :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |