Ver código fonte

电价尖峰平谷

skyline 2 anos atrás
pai
commit
3c870a06ee

+ 7 - 2
entity/src/main/java/com/kym/entity/enplus/EnPolicyInfo.java

@@ -15,6 +15,11 @@ import java.time.format.DateTimeFormatter;
  */
 @Data
 public class EnPolicyInfo {
+    public final static String[] PRICE_PERIOD = {"谷", "平", "峰", "尖"};
+    /**
+     * 价格时段(尖峰平谷)
+     */
+    public String pricePeriod;
     /**
      * 时段开始时间点
      */
@@ -32,7 +37,7 @@ public class EnPolicyInfo {
     private Double servicePrice;
 
     @JSONCreator
-    EnPolicyInfo(@JSONField(name = "StartTime")String startTime) {
-        this.startTime = LocalTime.parse(startTime,DateTimeFormatter.ofPattern("HHmmss"));
+    EnPolicyInfo(@JSONField(name = "StartTime") String startTime) {
+        this.startTime = LocalTime.parse(startTime, DateTimeFormatter.ofPattern("HHmmss"));
     }
 }

+ 6 - 2
entity/src/main/java/com/kym/entity/enplus/response/EnBusinessPolicy.java

@@ -7,6 +7,7 @@ import com.kym.entity.enplus.EnPolicyInfo;
 import lombok.Data;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author skyline
@@ -47,11 +48,14 @@ public class EnBusinessPolicy {
     /**
      * 单项业务策略信息
      */
-    private List<EnPolicyInfo> policyInfoss;
+    private List<EnPolicyInfo> policyInfos;
 
     @JSONCreator
     EnBusinessPolicy(@JSONField(name = "PolicyInfos") JSONArray array) {
-        this.policyInfoss = array.toJavaList(EnPolicyInfo.class);
+        this.policyInfos = array.toJavaList(EnPolicyInfo.class);
+        // 将尖峰平谷信息填入EnPolicyInfo中
+        var elecPriceSet = policyInfos.stream().map(EnPolicyInfo::getElecPrice).collect(Collectors.toSet()).stream().sorted().toList();
+        policyInfos = policyInfos.stream().peek(price -> price.setPricePeriod(EnPolicyInfo.PRICE_PERIOD[elecPriceSet.indexOf(price.getElecPrice())])).toList();
     }