| | |
| | | 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; |
| | |
| | | */ |
| | | 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; |
| | | } |
| | | }); |
| | |
| | | } |
| | | accountingStrategyDetails = accountingStrategyDetails.stream().sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList()); |
| | | for (TAccountingStrategyDetail accountingStrategyDetail : accountingStrategyDetails) { |
| | | if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").isBefore(time) |
| | | && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ":00").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 |