yuanhao 2 yıl önce
ebeveyn
işleme
23b4b12f29

+ 1 - 1
.gitignore

@@ -31,7 +31,7 @@ nbdist/
 
 ### maven ###
 target/
-/src/main/resources/static
+/src/main/resources/static/
 *.war
 *.ear
 *.zip

+ 51 - 21
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/service/client/BackDataGenService.java

@@ -1,10 +1,12 @@
 package com.jiayue.insu.inclientqn.service.client;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
 import com.jiayue.insu.inclientqn.constant.CommonStant;
+import com.jiayue.insu.inclientqn.entity.BackForeForecastData;
 import com.jiayue.insu.inclientqn.entity.BackForeUsForecastData;
 import com.jiayue.insu.inclientqn.entity.BackStatData;
 import com.jiayue.insu.inclientqn.inenum.ElectricFieldTypeEnum;
@@ -219,46 +221,74 @@ public class BackDataGenService {
 
         RequestVo requestVo = null;
 
-        if (CollectionUtil.isNotEmpty(backForeUsForecastDatas) && backForeUsForecastDatas.size() < 16) {
+        if (CollectionUtil.isNotEmpty(backForeUsForecastDatas) && backForeUsForecastDatas.size() == 16) {
 
-            boolean checkDate = true;
-
-            long step = 900000L;
+            Collections.sort(backForeUsForecastDatas, Comparator.comparing(BackForeUsForecastData::getForecastTime));
+            StringBuilder content = new StringBuilder();
+            String header = StrUtil.format(headerTemplate, el, DateUtil.parse(DateUtil.now()).toString("yyyy-MM-dd HH:mm:ss"));
+            String labelStart = StrUtil.format("<{}>" + CommonStant.LINE_CONSTANT, QNHLEnum.DATA_STAT_TYPE_UltraShortTermForecastReport.getCode());
+            String labelEnd = StrUtil.format("</{}>" + CommonStant.LINE_CONSTANT, QNHLEnum.DATA_STAT_TYPE_UltraShortTermForecastReport.getCode());
+            String title = "@" + CommonStant.SPACE1_CONSTANT + "序号" + CommonStant.SPACE4_CONSTANT + "时间"
+                    + CommonStant.SPACE4_CONSTANT + "功率预测" + CommonStant.SPACE4_CONSTANT + "预计开机容量" + CommonStant.SPACE4_CONSTANT + "风速"
+                    + CommonStant.SPACE4_CONSTANT + "风向" + CommonStant.SPACE4_CONSTANT + "温度" + CommonStant.SPACE4_CONSTANT + "湿度" + CommonStant.SPACE4_CONSTANT + "气压"
+                    + CommonStant.LINE_CONSTANT;
+            content.append(header);
+            content.append(labelStart);
+            content.append(title);
 
-            long startTime = signTime + step;
+            String template = "# {}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "null"
+                    + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null"
+                    + CommonStant.LINE_CONSTANT;
 
-            long endTime = signTime + step * 15;
+            for (int i = 0; i < backForeUsForecastDatas.size(); i++) {
 
-            for (long i = startTime; i < endTime; i = i + step) {
-                long finalI = i;
-                List<BackForeUsForecastData> filter = backForeUsForecastDatas.stream().filter(b -> b.getForecastTime().equals(LocalDateTimeUtil.of(finalI))).collect(Collectors.toList());
-                if (CollectionUtil.isEmpty(filter)) {
-                    checkDate = false;
-                    break;
-                }
+                BackForeUsForecastData b = backForeUsForecastDatas.get(i);
+                String format = LocalDateTimeUtil.format(b.getForecastTime(), DatePattern.PURE_DATETIME_PATTERN);
+                String dataContent = StrUtil.format(template, i, format, b.getForecastValue(), b.getForecastOpenCap());
+                content.append(dataContent);
             }
+
+            content.append(labelEnd);
+
+            requestVo = RequestVo.UPLOAD_FORE(el, content.toString(), signTime);
+
+        }
+
+
+        return requestVo;
+    }
+
+
+    public RequestVo genForeForecast(String el, long signTime, List<BackForeForecastData> backForeForecastDatas) throws Exception {
+
+        RequestVo requestVo = null;
+
+        if (CollectionUtil.isNotEmpty(backForeForecastDatas)) {
+
+            boolean checkDate = true;
+
+
             if (checkDate) {
-                Collections.sort(backForeUsForecastDatas, Comparator.comparing(BackForeUsForecastData::getForecastTime));
+                Collections.sort(backForeForecastDatas, Comparator.comparing(BackForeForecastData::getForecastTime));
                 StringBuilder content = new StringBuilder();
                 String header = StrUtil.format(headerTemplate, el, DateUtil.parse(DateUtil.now()).toString("yyyy-MM-dd HH:mm:ss"));
                 String labelStart = StrUtil.format("<{}>" + CommonStant.LINE_CONSTANT, QNHLEnum.DATA_STAT_TYPE_UltraShortTermForecastReport.getCode());
                 String labelEnd = StrUtil.format("</{}>" + CommonStant.LINE_CONSTANT, QNHLEnum.DATA_STAT_TYPE_UltraShortTermForecastReport.getCode());
                 String title = "@" + CommonStant.SPACE1_CONSTANT + "序号" + CommonStant.SPACE4_CONSTANT + "时间"
-                        + CommonStant.SPACE4_CONSTANT + "功率预测" + CommonStant.SPACE4_CONSTANT + "预计开机容量" + CommonStant.SPACE4_CONSTANT + "风速"
-                        + CommonStant.SPACE4_CONSTANT + "风向" + CommonStant.SPACE4_CONSTANT + "温度" + CommonStant.SPACE4_CONSTANT + "湿度" + CommonStant.SPACE4_CONSTANT + "气压"
+                        + CommonStant.SPACE4_CONSTANT + "功率预测" + CommonStant.SPACE4_CONSTANT + "预计开机容量"
                         + CommonStant.LINE_CONSTANT;
                 content.append(header);
                 content.append(labelStart);
                 content.append(title);
 
-                String template = "# {}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null"
-                        + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null" + CommonStant.SPACE4_CONSTANT + "null"
+                String template = "# {}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "{}" + CommonStant.SPACE4_CONSTANT + "{}"
                         + CommonStant.LINE_CONSTANT;
 
-                for (int i = 0; i < backForeUsForecastDatas.size(); i++) {
+                for (int i = 0; i < backForeForecastDatas.size(); i++) {
 
-                    BackForeUsForecastData b = backForeUsForecastDatas.get(i);
-                    String dataContent = String.format(template, i,b.getForecastValue(),b.getForecastOpenCap());
+                    BackForeForecastData b = backForeForecastDatas.get(i);
+                    String format = LocalDateTimeUtil.format(b.getForecastTime(), DatePattern.PURE_DATETIME_PATTERN);
+                    String dataContent = StrUtil.format(template, i, format, b.getForecastValue(), b.getForecastOpenCap());
                     content.append(dataContent);
                 }
 

+ 42 - 10
in-client-qn/src/test/java/com/jiayue/insu/inclientqn/service/BackDataGenServiceTest.java

@@ -1,8 +1,11 @@
 package com.jiayue.insu.inclientqn.service;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.RandomUtil;
 import com.jiayue.insu.inclientqn.BaseTest;
+import com.jiayue.insu.inclientqn.entity.BackForeUsForecastData;
 import com.jiayue.insu.inclientqn.inenum.QNHLEnum;
 import com.jiayue.insu.inclientqn.service.client.BackDataGenService;
 import com.jiayue.insu.inclientqn.service.client.RequestDataService;
@@ -10,28 +13,34 @@ import com.jiayue.insu.inclientqn.util.DateTimeUtils;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 
 public class BackDataGenServiceTest extends BaseTest {
     @Autowired
     BackDataGenService backDataGenService;
     @Autowired
     private RequestDataService requestDataService;
+    @Autowired
+    private BackForeUsForecastDataService backForeUsForecastDataService;
+
     @Test
-    void test(){
-        try{
+    void test() {
+        try {
             //backDataGenService.genStateRealPowerData("test");
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
 
     }
 
     @Test
-    void test1(){
-        try{
+    void test1() {
+        try {
             //backDataGenService.genStateRealWeatherData("test","E1");
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
 
@@ -39,14 +48,37 @@ public class BackDataGenServiceTest extends BaseTest {
 
 
     @Test
-    void test2(){
-        try{
+    void test2() {
+        try {
             long time = DateTimeUtils.get15min(DateUtil.date().getTime());
             LocalDateTime localDateTime = LocalDateTimeUtil.of(time);
-            requestDataService.requestBackStatData(QNHLEnum.DATA_STAT_TYPE_RealWeather,time);
-        }catch (Exception e){
+            requestDataService.requestBackStatData(QNHLEnum.DATA_STAT_TYPE_RealWeather, time);
+        } catch (Exception e) {
             e.printStackTrace();
         }
 
     }
+
+    @Test
+    void test3() {
+        try {
+            LocalDateTime signTime = LocalDateTimeUtil.of(DateTimeUtils.get15min(DateTime.now().getTime()));
+            List<BackForeUsForecastData> list = new ArrayList<>();
+            for (int i = 1; i <= 16; i++) {
+                BackForeUsForecastData backForeUsForecastData = new BackForeUsForecastData();
+                backForeUsForecastData.setSignTime(signTime);
+                backForeUsForecastData.setForecastTime(signTime.plusMinutes(15 * i));
+                backForeUsForecastData.setForecastValue(RandomUtil.randomBigDecimal(new BigDecimal(50)));
+                backForeUsForecastData.setForecastOpenCap(new BigDecimal("50"));
+                list.add(backForeUsForecastData);
+            }
+
+            backForeUsForecastDataService.saveBatch(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
 }