From be22cb2494544c850fcc52039d3327e36610b19d Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 12 十月 2024 13:44:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 265 insertions(+), 3 deletions(-)
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
index 732dec1..f999d66 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java
@@ -1,19 +1,281 @@
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.math.BigDecimal;
+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)->{
+ BigDecimal electrovalence = v.getElectrovalence();
+ if(Objects.isNull(electrovalence)){
+ electrovalence = BigDecimal.ZERO;
+ }
+ switch (k){
+ case 1:
+ acquisitionBillingModeReply.setSharp_peak_electricity_rate(electrovalence);
+ acquisitionBillingModeReply.setSharp_peak_service_rate(new BigDecimal(0));
+ break;
+ case 2:
+ acquisitionBillingModeReply.setPeak_electricity_rate(electrovalence);
+ acquisitionBillingModeReply.setPeak_service_rate(new BigDecimal(0));
+ break;
+ case 3:
+ acquisitionBillingModeReply.setFlat_peak_electricity_rate(electrovalence);
+ acquisitionBillingModeReply.setFlat_peak_service_rate(new BigDecimal(0));
+ break;
+ default:
+ acquisitionBillingModeReply.setLow_peak_electricity_rate(electrovalence);
+ acquisitionBillingModeReply.setLow_peak_service_rate(new BigDecimal(0));
+ 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) {
+ 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
+ :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;
+ }
+ }
+ }
+ }
}
}
--
Gitblit v1.7.1