Преглед изворни кода

中能融合生产第一版

fanxiaoyu пре 1 година
родитељ
комит
2fd06e782d
69 измењених фајлова са 6587 додато и 540 уклоњено
  1. 25 8
      ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/ParsingJob.java
  2. 56 15
      ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/Task.java
  3. 36 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0002.java
  4. 37 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0003.java
  5. 49 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0002.java
  6. 49 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0003.java
  7. 32 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/WindPowerReal15MinFD0002Mapper.java
  8. 32 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/WindPowerReal15MinFD0003Mapper.java
  9. 270 116
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/GenerateBackPassDataService.java
  10. 53 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0001Service.java
  11. 50 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0002Service.java
  12. 50 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0003Service.java
  13. 50 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0005Service.java
  14. 50 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0006Service.java
  15. 50 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0007Service.java
  16. 61 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0001Service.java
  17. 61 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0002Service.java
  18. 61 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0003Service.java
  19. 61 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0005Service.java
  20. 61 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0006Service.java
  21. 61 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0007Service.java
  22. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0001Service.java
  23. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0002Service.java
  24. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0003Service.java
  25. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0005Service.java
  26. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0006Service.java
  27. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0007Service.java
  28. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0001Service.java
  29. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0002Service.java
  30. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0003Service.java
  31. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0005Service.java
  32. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0006Service.java
  33. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0007Service.java
  34. 34 4
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/an/DownloadService.java
  35. 12 4
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/ElectricFieldServiceImpl.java
  36. 332 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0001ServiceImpl.java
  37. 332 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0002ServiceImpl.java
  38. 332 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0003ServiceImpl.java
  39. 332 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0005ServiceImpl.java
  40. 332 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0006ServiceImpl.java
  41. 332 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0007ServiceImpl.java
  42. 465 325
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverServiceImpl.java
  43. 85 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0001CoverServiceImpl.java
  44. 85 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0002CoverServiceImpl.java
  45. 85 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0003CoverServiceImpl.java
  46. 85 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0005CoverServiceImpl.java
  47. 85 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0006CoverServiceImpl.java
  48. 85 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0007CoverServiceImpl.java
  49. 72 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0001CoverServiceImpl.java
  50. 72 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0002CoverServiceImpl.java
  51. 72 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0003CoverServiceImpl.java
  52. 72 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0005CoverServiceImpl.java
  53. 72 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0006CoverServiceImpl.java
  54. 72 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0007CoverServiceImpl.java
  55. 24 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/SysParameterServiceImpl.java
  56. 65 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0001ServiceImpl.java
  57. 62 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0002ServiceImpl.java
  58. 65 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0003ServiceImpl.java
  59. 65 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0005ServiceImpl.java
  60. 65 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0006ServiceImpl.java
  61. 65 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0007ServiceImpl.java
  62. 120 24
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingDqInfoServiceImpl.java
  63. 301 43
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingNwpInfoServiceImpl.java
  64. 78 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverFD0002.java
  65. 78 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverFD0003.java
  66. 79 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverFD0002.java
  67. 79 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverFD0003.java
  68. 62 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0002.java
  69. 61 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0003.java

+ 25 - 8
ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/ParsingJob.java

@@ -1,7 +1,7 @@
 package com.jiayue.ipfcst.client.Schedule;
 
 
-import com.jiayue.ipfcst.client.service.JiaYueWindPowerCdqResultCoverService;
+import com.jiayue.ipfcst.client.service.*;
 import com.jiayue.ipfcst.client.service.an.DownloadService;
 import com.jiayue.ipfcst.client.service.an.ParsingChannelService;
 import com.jiayue.ipp.common.data.entity.an.ParsingChannel;
@@ -24,13 +24,25 @@ public class ParsingJob {
     private final ParsingChannelService parsingChannelService;
     @Autowired
     private final DownloadService downloadService;
+    //    @Autowired
+//    private final JiaYueWindPowerCdqResultCoverService jiaYueWindPowerCdqResultCoverService;
     @Autowired
-    private final JiaYueWindPowerCdqResultCoverService jiaYueWindPowerCdqResultCoverService;
+    private final JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service;
+    @Autowired
+    private final JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service;
+    @Autowired
+    private final JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service;
+    @Autowired
+    private final JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service;
+    @Autowired
+    private final JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service;
+    @Autowired
+    private final JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service;
 
 
-//    @Scheduled(fixedRate = 900000)
+    //    @Scheduled(fixedRate = 900000)
     @Scheduled(fixedRate = 60000)
-    public void start(){
+    public void start() {
         List<ParsingChannel> parsingChannels = new ArrayList<>();
 
         ParsingChannel parsingChannel = new ParsingChannel();
@@ -43,8 +55,8 @@ public class ParsingJob {
 
         //循环ftp解析通道
         for (ParsingChannel parsingChannel1 : parsingChannels) {
-            if(parsingChannel1.getUseStatus().name().equals("E1")){
-                switch (parsingChannel1.getAnChannelType().name()){
+            if (parsingChannel1.getUseStatus().name().equals("E1")) {
+                switch (parsingChannel1.getAnChannelType().name()) {
                     case "E3":
                         downloadService.parsing(parsingChannel1);
                         break;
@@ -61,7 +73,12 @@ public class ParsingJob {
      */
     @Scheduled(cron = "30 10,25,40,55 * * * ? ")
 //    @Scheduled(fixedRate = 60000)
-    public void ultraShortTermApi(){
-        jiaYueWindPowerCdqResultCoverService.executeForecast();
+    public void ultraShortTermApi() {
+        jiaYueWindPowerCdqResultCoverFD0001Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0002Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0003Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0005Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0006Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0007Service.executeForecast();
     }
 }

+ 56 - 15
ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/Task.java

@@ -1,5 +1,7 @@
 package com.jiayue.ipfcst.client.Schedule;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
@@ -25,6 +27,7 @@ import java.io.*;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 气象文件下载任务
@@ -147,10 +150,10 @@ public class Task {
             }
         }
 
-        if (reqFilesList.size() == 0) {
-            log.info("未从云端获得今日未下载的文件信息");
-            return;
-        }
+//        if (reqFilesList.size() == 0) {
+//            log.info("未从云端获得今日未下载的文件信息");
+//            return;
+//        }
 
         //临时文件下载路径
         String tempFilePath = checkTempFilePath(fxglFilePath);
@@ -159,7 +162,7 @@ public class Task {
             for (FileCreateLog fileCreateLog : reqFilesList) {
                 String curentFileName = fileCreateLog.getFileName();
                 //判断该文件是否已下载
-                if (!Constant.alreadyDownFilesList.contains(fileCreateLog.getStationCode()+curentFileName)) {
+                if (!Constant.alreadyDownFilesList.contains(fileCreateLog.getStationCode() + curentFileName)) {
                     //返回信息中有文件从minio中的下载路径,尝试直接下载,如果下载失败再从云端下载
                     Long size = downloadFileByMinioOrCloud(tempFilePath + File.separatorChar + fileCreateLog.getStationCode(), curentFileName, fileCreateLog.getId(), fileCreateLog.getFileDownloadUrl());
 
@@ -168,7 +171,7 @@ public class Task {
                         String filePath = tempFilePath + File.separatorChar + fileCreateLog.getStationCode() + File.separatorChar + curentFileName;
                         log.info("成功下载文件到:{}", filePath);
                         //文件下载成功缓存文件名称,避免再次下载  ,
-                        Constant.alreadyDownFilesList.add(fileCreateLog.getStationCode()+curentFileName);
+                        Constant.alreadyDownFilesList.add(fileCreateLog.getStationCode() + curentFileName);
                         //缓存文件信息,做后续回传文件传入内网状态使用
                         Constant.downLoadFilesStatusList.add(fileCreateLog);
 //                        if (curentFileName.contains("pointconfig")) {
@@ -208,24 +211,62 @@ public class Task {
      */
     private List<FileCreateLog> queryToDownfilesFromCloud(String stationCode) {
         List<FileCreateLog> reqFilesList = new ArrayList<>();
-
-        Map postParms = new HashMap<>(2);
-        postParms.put("stationCode", stationCode);
-        postParms.put("sign", Md5Util.makeMd5(stationCode));
-        String body = HttpUtil.post(Constant.cacheClientConfig.getCloudAddr() + "getCurentDayUnDownLoadFile", postParms, 10000);
+        List<FileCreateLog> dqListNow = new ArrayList<>();
+        List<FileCreateLog> nwpListNow = new ArrayList<>();
+        List<FileCreateLog> finalList = new ArrayList<>();
+
+//        Map postParms = new HashMap<>(2);
+//        postParms.put("stationCode", stationCode);
+//        postParms.put("sign", Md5Util.makeMd5(stationCode));
+        // 请求minio
+        String url = "https://117.78.19.70:9010/client/getFileLogsForAio/";
+//        String body = HttpUtil.post(Constant.cacheClientConfig.getCloudAddr() + "getCurentDayUnDownLoadFile", postParms, 10000);
+        HttpRequest httpRequest = HttpRequest.get(url + stationCode);
+        httpRequest.setGlobalTimeout(20000);
+        String body = httpRequest.execute().body();
         JSONObject json = JSONUtil.parseObj(body);
         String code = json.get("code").toString();
         String data = json.get("data").toString();
         if ("0".equals(code) && data.length() > 0) {
             JSONArray array = JSONUtil.parseArray(data);
             reqFilesList = array.toList(FileCreateLog.class);
-            if (null != reqFilesList && reqFilesList.size() > 0) {
-                //对文件进行筛选
-                reqFilesList = screeningDownloadFils(reqFilesList);
+            String dateNow = DateUtil.format(new Date(), "yyyyMMdd");
+            if (CollectionUtil.isNotEmpty(reqFilesList)) {
+                dqListNow = reqFilesList.stream().filter(f -> f.getFileName().contains("DQ_" + dateNow)).collect(Collectors.toList());
+                nwpListNow = reqFilesList.stream().filter(f -> f.getFileName().contains("NWP_" + dateNow)).collect(Collectors.toList());
+                if (CollectionUtil.isNotEmpty(dqListNow)) {
+                    // 降序
+                    dqListNow.sort(Comparator.comparing(FileCreateLog::getFileName).reversed());
+                    if (null != dqListNow && dqListNow.size() > 0) {
+                        // 取最新的一条数据
+                        FileCreateLog fileCreateLog = dqListNow.get(0);
+                        finalList.add(fileCreateLog);
+                    }
+                } else {
+                    log.error("下载minio原始RB文件 --> {} 失败,失败原因:{}", stationCode, "文件为空!");
+                }
+
+                if (CollectionUtil.isNotEmpty(nwpListNow)) {
+                    // 降序
+                    nwpListNow.sort(Comparator.comparing(FileCreateLog::getFileName).reversed());
+                    if (null != dqListNow && dqListNow.size() > 0) {
+                        // 取最新的一条数据
+                        FileCreateLog fileCreateLog = nwpListNow.get(0);
+                        finalList.add(fileCreateLog);
+                    }
+                } else {
+                    log.error("下载minio原始RB文件 --> {} 失败,失败原因:{}", stationCode, "文件为空!");
+                }
+            } else {
+                log.error("下载minio原始RB文件 --> {} 失败,失败原因:{}", stationCode, "文件为空!");
             }
+//            if (null != reqFilesList && reqFilesList.size() > 0) {
+//                //对文件进行筛选
+//                reqFilesList = screeningDownloadFils(reqFilesList);
+//            }
         }
 
-        return reqFilesList;
+        return finalList;
     }
 
     /**

+ 36 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0002.java

@@ -0,0 +1,36 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCover;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0002;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * jiayue_zdata_wind_power_cdq_result
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface JiaYueWindPowerCdqResultCoverMapperFD0002 extends BaseMapper<JiaYueWindPowerCdqResultCoverFD0002> {
+
+    @Delete("DELETE FROM jiayue_FD0002_zdata_wind_power_cdq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_cdq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerCdqResultCoverFD0002> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Delete("DELETE FROM jiayue_FD0002_zdata_wind_power_cdq_result where DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    int deleteByDateTime(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime, @Param("objId") String objId);
+
+    @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_cdq_result WHERE DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerCdqResultCoverFD0002> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 37 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0003.java

@@ -0,0 +1,37 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCover;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0002;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0003;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * jiayue_zdata_wind_power_cdq_result
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface JiaYueWindPowerCdqResultCoverMapperFD0003 extends BaseMapper<JiaYueWindPowerCdqResultCoverFD0003> {
+
+    @Delete("DELETE FROM jiayue_FD0003_zdata_wind_power_cdq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_cdq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerCdqResultCoverFD0003> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Delete("DELETE FROM jiayue_FD0003_zdata_wind_power_cdq_result where DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    int deleteByDateTime(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime, @Param("objId") String objId);
+
+    @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_cdq_result WHERE DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerCdqResultCoverFD0003> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 49 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0002.java

@@ -0,0 +1,49 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCover;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0002;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * jiayue_zdata_wind_power_dq_result
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface JiaYueWindPowerDqResultCoverMapperFD0002 extends BaseMapper<JiaYueWindPowerDqResultCoverFD0002> {
+
+    @Delete("DELETE FROM jiayue_FD0002_zdata_wind_power_dq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerDqResultCoverFD0002> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_FD0002_zdata_wind_power_dq_result where DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId} AND DATA_DATE BETWEEN #{dateDateStart} AND #{dateDateEnd}")
+    int deleteByDateTime(@Param("startTime") Time startTime, @Param("endTime") Time endTime, @Param("objId") String objId,@Param("dateDateStart") Date dateDateStart, @Param("dateDateEnd") Date dateDateEnd);
+
+    @Select("SELECT *\n" +
+            "FROM (\n" +
+            "    SELECT *\n" +
+            "    FROM jiayue_FD0002_zdata_wind_power_dq_result\n" +
+            "    WHERE PRE_DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}\n" +
+            "    ORDER BY CREATE_TIME DESC\n" +
+            "    LIMIT 40\n" +
+            ") AS subquery\n" +
+            "ORDER BY PRE_DATE_TIME ASC;")
+    List<JiaYueWindPowerDqResultCoverFD0002> selectByTimeAndObjId(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerDqResultCoverFD0002> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
+
+}

+ 49 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0003.java

@@ -0,0 +1,49 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCover;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0003;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * jiayue_zdata_wind_power_dq_result
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface JiaYueWindPowerDqResultCoverMapperFD0003 extends BaseMapper<JiaYueWindPowerDqResultCoverFD0003> {
+
+    @Delete("DELETE FROM jiayue_FD0003_zdata_wind_power_dq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerDqResultCoverFD0003> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_FD0003_zdata_wind_power_dq_result where DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId} AND DATA_DATE BETWEEN #{dateDateStart} AND #{dateDateEnd}")
+    int deleteByDateTime(@Param("startTime") Time startTime, @Param("endTime") Time endTime, @Param("objId") String objId,@Param("dateDateStart") Date dateDateStart, @Param("dateDateEnd") Date dateDateEnd);
+
+    @Select("SELECT *\n" +
+            "FROM (\n" +
+            "    SELECT *\n" +
+            "    FROM jiayue_FD0003_zdata_wind_power_dq_result\n" +
+            "    WHERE PRE_DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}\n" +
+            "    ORDER BY CREATE_TIME DESC\n" +
+            "    LIMIT 40\n" +
+            ") AS subquery\n" +
+            "ORDER BY PRE_DATE_TIME ASC;")
+    List<JiaYueWindPowerDqResultCoverFD0003> selectByTimeAndObjId(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerDqResultCoverFD0003> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
+
+}

+ 32 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/WindPowerReal15MinFD0002Mapper.java

@@ -0,0 +1,32 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15Min;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * zdata_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface WindPowerReal15MinFD0002Mapper extends BaseMapper<WindPowerReal15MinFD0002> {
+
+    @Delete("DELETE FROM zdata_FD0002_wind_power_real_15min")
+    int deleteAll();
+
+    @Select("SELECT * FROM zdata_FD0002_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<WindPowerReal15MinFD0002> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Select("SELECT * FROM zdata_FD0002_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<WindPowerReal15MinFD0002> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 32 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/WindPowerReal15MinFD0003Mapper.java

@@ -0,0 +1,32 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15Min;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0003;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * zdata_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface WindPowerReal15MinFD0003Mapper extends BaseMapper<WindPowerReal15MinFD0003> {
+
+    @Delete("DELETE FROM zdata_FD0003_wind_power_real_15min")
+    int deleteAll();
+
+    @Select("SELECT * FROM zdata_FD0003_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<WindPowerReal15MinFD0003> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Select("SELECT * FROM zdata_FD0003_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<WindPowerReal15MinFD0003> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 270 - 116
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/GenerateBackPassDataService.java

@@ -14,6 +14,9 @@ import org.springframework.stereotype.Service;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.math.BigDecimal;
 import java.nio.charset.Charset;
 import java.sql.*;
@@ -52,7 +55,23 @@ public class GenerateBackPassDataService {
     private WindPowerDqResultCoverService windPowerDqResultCoverService;
 
     @Autowired
-    private WindPowerReal15MinService windPowerReal15MinService;
+    private WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service;
+
+    @Autowired
+    private WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service;
+
+    @Autowired
+    private WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service;
+
+    @Autowired
+    private WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service;
+
+    @Autowired
+    private WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service;
+
+    @Autowired
+    private WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service;
+
 
     @Autowired
     private WindTower15MinService windTower15MinService;
@@ -83,17 +102,17 @@ public class GenerateBackPassDataService {
     public void genRealPowerDataJsonFile() {
 
         long time = System.currentTimeMillis() - 86400000l;
-
-
         // 获取startTime和endTime
         Date startTime = DateTimeUtil.getDayStartTime(time);
         Date endTime = DateTimeUtil.getDayLastTime(time);
 
-
         List list = new ArrayList();
         list.add("FD0001");
         list.add("FD0002");
         list.add("FD0003");
+        list.add("FD0005");
+        list.add("FD0006");
+        list.add("FD0007");
 
         List<ElectricField> electricFieldList = new ArrayList<>();
         ElectricField electricField1 = new ElectricField();
@@ -129,69 +148,192 @@ public class GenerateBackPassDataService {
         electricField3.setSign("FD0002");
         electricField3.setNetSubstationName("J00771");
 
+        ElectricField electricField5 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(99.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField2.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc5");
+        electricField3.setName("内蒙古中能融合测试站E");
+        electricField3.setStationCode("J00929");
+        electricField3.setSign("FD0005");
+        electricField3.setNetSubstationName("J00929");
+
+        ElectricField electricField6 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(50.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField2.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc6");
+        electricField3.setName("河南中能融合测试站F");
+        electricField3.setStationCode("J00930");
+        electricField3.setSign("FD0006");
+        electricField3.setNetSubstationName("J00930");
+
+        ElectricField electricField7 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(50.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField2.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc7");
+        electricField3.setName("天津中能融合测试站F");
+        electricField3.setStationCode("J00931");
+        electricField3.setSign("FD0007");
+        electricField3.setNetSubstationName("J00931");
+
         electricFieldList.add(electricField1);
         electricFieldList.add(electricField2);
         electricFieldList.add(electricField3);
+        electricFieldList.add(electricField5);
+        electricFieldList.add(electricField6);
+        electricFieldList.add(electricField7);
+
+        List<WindPowerReal15MinFD0001> windPowerReal15MinFD0001List = windPowerReal15MinFD0001Service.getAll(startTime, endTime);
+        List<WindPowerReal15MinFD0002> windPowerReal15MinFD0002List = windPowerReal15MinFD0002Service.getAll(startTime, endTime);
+        List<WindPowerReal15MinFD0003> windPowerReal15MinFD0003List = windPowerReal15MinFD0003Service.getAll(startTime, endTime);
+        List<WindPowerReal15MinFD0005> windPowerReal15MinFD0005List = windPowerReal15MinFD0005Service.getAll(startTime, endTime);
+        List<WindPowerReal15MinFD0006> windPowerReal15MinFD0006List = windPowerReal15MinFD0006Service.getAll(startTime, endTime);
+        List<WindPowerReal15MinFD0007> windPowerReal15MinFD0007List = windPowerReal15MinFD0007Service.getAll(startTime, endTime);
         // 根据电站编号查询对应实际功率
         for (int i = 0; i < list.size(); i++) {
-            List<WindPowerReal15Min> windPowerReal15MinList = windPowerReal15MinService.getAll(startTime, endTime);
 
             for (ElectricField electricField : electricFieldList) {
                 // 判断场站标识是否跟数据库中的场站id相同
-                if (electricField.getSign().equals(list.get(i))) {
-                    String zxglPath = sysParameterService.getSysParameterAndStationCode("zxgl_config", "", electricField.getStationCode());
-
-                    if (!zxglPath.equals("")) {
-                        FileOutputStream fileOutputStream = null;
-                        try {
-                            log.info("开始生成【{}】实际功率json文件", electricField.getStationCode());
-                            String content = electricField.getStationCode() + "|" + startTime.getTime() + "|rp|";
-                            //为了确保无数据缺失,遍历时间
-                            long sTimeL = startTime.getTime();
-                            long eTimeL = endTime.getTime();
-                            for (long m = sTimeL; m < eTimeL; m += 900000l) {
-                                long finalI = m;
-                                List<WindPowerReal15Min> filterList = windPowerReal15MinList.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-
-                                if (filterList != null && filterList.size() > 0) {
-                                    content = content + filterList.get(0).getValue().toString() + "|";
-                                } else {
-                                    content = content + "-0.99|";
+                String zxglPath = sysParameterService.getSysParameterAndStationCode("zxgl_config", "", electricField.getStationCode());
+
+                if (!zxglPath.equals("")) {
+                    FileOutputStream fileOutputStream = null;
+                    try {
+                        log.info("开始生成【{}】实际功率json文件", electricField.getStationCode());
+                        String content = electricField.getStationCode() + "|" + startTime.getTime() + "|rp|";
+                        //为了确保无数据缺失,遍历时间
+                        long sTimeL = startTime.getTime();
+                        long eTimeL = endTime.getTime();
+                        for (long m = sTimeL; m < eTimeL; m += 900000l) {
+                            long finalI = m;
+                            List<? extends Serializable> filterList = new ArrayList<>();
+                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0001")) {
+                                filterList = windPowerReal15MinFD0001List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+                            }
+                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0002")) {
+                                filterList = windPowerReal15MinFD0002List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+                            }
+                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0003")) {
+                                filterList = windPowerReal15MinFD0003List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+                            }
+                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0005")) {
+                                filterList = windPowerReal15MinFD0005List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+                            }
+                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0006")) {
+                                filterList = windPowerReal15MinFD0006List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+                            }
+                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0007")) {
+                                filterList = windPowerReal15MinFD0007List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+                            }
+                            if (filterList != null && filterList.size() > 0) {
+                                try {
+                                    Method getValueMethod = filterList.get(0).getClass().getMethod("getValue");
+                                    Object value = getValueMethod.invoke(filterList.get(0));
+                                    content = content + value.toString() + "|";
+                                } catch (NoSuchMethodException e) {
+                                    throw new RuntimeException(e);
+                                } catch (IllegalAccessException e) {
+                                    throw new RuntimeException(e);
+                                } catch (InvocationTargetException e) {
+                                    throw new RuntimeException(e);
                                 }
 
-                            }
-                            for (int j = 0; j < 96; j++) {
+                            } else {
                                 content = content + "-0.99|";
                             }
-                            String zipContent = GzipUtil.zip(content).replace("\r\n", "");
 
-                            String taskNo = getTaskNo(electricField);
+                        }
+                        for (int j = 0; j < 96; j++) {
+                            content = content + "-0.99|";
+                        }
+                        String zipContent = GzipUtil.zip(content).replace("\r\n", "");
 
-                            JSONObject jsonObject = new JSONObject();
-                            jsonObject.putOnce("taskNo", taskNo);
-                            jsonObject.putOnce("taskType", "stationData-rp");
-                            jsonObject.putOnce("partNo", 1);
-                            jsonObject.putOnce("partTotal", 1);
-                            jsonObject.putOnce("data", zipContent);
+                        String taskNo = getTaskNo(electricField);
 
-                            String qrCodeContent = jsonObject.toString();
+                        JSONObject jsonObject = new JSONObject();
+                        jsonObject.putOnce("taskNo", taskNo);
+                        jsonObject.putOnce("taskType", "stationData-rp");
+                        jsonObject.putOnce("partNo", 1);
+                        jsonObject.putOnce("partTotal", 1);
+                        jsonObject.putOnce("data", zipContent);
 
-                            String fileName = electricField.getStationCode() + "-" + DateFormatUtils.format(new Date(), "yyyyMMddHHmm") + "-realpower.json";
+                        String qrCodeContent = jsonObject.toString();
 
-                            File file = new File(zxglPath + File.separator + fileName);
+                        String fileName = electricField.getStationCode() + "-" + DateFormatUtils.format(new Date(), "yyyyMMddHHmm") + "-realpower.json";
 
-                            fileOutputStream = new FileOutputStream(file);
-                            fileOutputStream.write(qrCodeContent.getBytes(Charset.forName("utf-8")));
-                            fileOutputStream.flush();
-                            fileOutputStream.close();
+                        File file = new File(zxglPath + File.separator + fileName);
 
-                            log.info("实际功率json文件【{}】生成成功", fileName);
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
+                        fileOutputStream = new FileOutputStream(file);
+                        fileOutputStream.write(qrCodeContent.getBytes(Charset.forName("utf-8")));
+                        fileOutputStream.flush();
+                        fileOutputStream.close();
 
+                        log.info("实际功率json文件【{}】生成成功", fileName);
+                    } catch (IOException e) {
+                        e.printStackTrace();
                     }
+
                 }
+
+//                if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0003")) {
+//                    String zxglPath = sysParameterService.getSysParameterAndStationCode("zxgl_config", "", electricField.getStationCode());
+//
+//                    if (!zxglPath.equals("")) {
+//                        FileOutputStream fileOutputStream = null;
+//                        try {
+//                            log.info("开始生成【{}】实际功率json文件", electricField.getStationCode());
+//                            String content = electricField.getStationCode() + "|" + startTime.getTime() + "|rp|";
+//                            //为了确保无数据缺失,遍历时间
+//                            long sTimeL = startTime.getTime();
+//                            long eTimeL = endTime.getTime();
+//                            for (long m = sTimeL; m < eTimeL; m += 900000l) {
+//                                long finalI = m;
+//                                List<WindPowerReal15MinFD0003> filterList = windPowerReal15MinFD0003List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
+//
+//                                if (filterList != null && filterList.size() > 0) {
+//                                    content = content + filterList.get(0).getValue().toString() + "|";
+//                                } else {
+//                                    content = content + "-0.99|";
+//                                }
+//
+//                            }
+//                            for (int j = 0; j < 96; j++) {
+//                                content = content + "-0.99|";
+//                            }
+//                            String zipContent = GzipUtil.zip(content).replace("\r\n", "");
+//
+//                            String taskNo = getTaskNo(electricField);
+//
+//                            JSONObject jsonObject = new JSONObject();
+//                            jsonObject.putOnce("taskNo", taskNo);
+//                            jsonObject.putOnce("taskType", "stationData-rp");
+//                            jsonObject.putOnce("partNo", 1);
+//                            jsonObject.putOnce("partTotal", 1);
+//                            jsonObject.putOnce("data", zipContent);
+//
+//                            String qrCodeContent = jsonObject.toString();
+//
+//                            String fileName = electricField.getStationCode() + "-" + DateFormatUtils.format(new Date(), "yyyyMMddHHmm") + "-realpower.json";
+//
+//                            File file = new File(zxglPath + File.separator + fileName);
+//
+//                            fileOutputStream = new FileOutputStream(file);
+//                            fileOutputStream.write(qrCodeContent.getBytes(Charset.forName("utf-8")));
+//                            fileOutputStream.flush();
+//                            fileOutputStream.close();
+//
+//                            log.info("实际功率json文件【{}】生成成功", fileName);
+//                        } catch (IOException e) {
+//                            e.printStackTrace();
+//                        }
+//
+//                    }
+//                }
             }
         }
 
@@ -246,80 +388,77 @@ public class GenerateBackPassDataService {
 //    }
 
 
-
-
-
     /**
      * 这几个表清除所有数据,在进行数据同步(基础信息表)
      */
 //    @Scheduled(cron = "0 30 0 * * ?")
-    @Scheduled(cron = "0 48 2 * * ?")
+//    @Scheduled(cron = "0 48 2 * * ?")
     public void synchronizeInfoData() {
         log.info("---------------------------开始同步基础信息---------------------------");
-        // 数据类型信息表
-        List<DataTypeInfo> dataTypeInfoList = dataTypeInfoService.get();
-        // 查询本地所有数据
-        List<DataTypeInfo> dataTypeInfos = dataTypeInfoService.getAll();
-        if (dataTypeInfos != null && dataTypeInfos.size() > 0) {
-            // 先删除数据
-            dataTypeInfoService.deleteAll();
-        }
-        // 将远端数据插入到本地
-        dataTypeInfoService.put(dataTypeInfoList);
+//        // 数据类型信息表
+//        List<DataTypeInfo> dataTypeInfoList = dataTypeInfoService.get();
+//        // 查询本地所有数据
+//        List<DataTypeInfo> dataTypeInfos = dataTypeInfoService.getAll();
+//        if (dataTypeInfos != null && dataTypeInfos.size() > 0) {
+//            // 先删除数据
+//            dataTypeInfoService.deleteAll();
+//        }
+//        // 将远端数据插入到本地
+//        dataTypeInfoService.put(dataTypeInfoList);
 
 
-        // 风电场基本信息表(厂商专供)
-        List<WindFarmInfoEncryption> windFarmInfoEncryptionList = windFarmInfoEncryptionService.get();
-        // 查询本地所有数据
-        List<WindFarmInfoEncryption> windFarmInfoEncryptions = windFarmInfoEncryptionService.getAll();
-        if (windFarmInfoEncryptions != null && windFarmInfoEncryptions.size() > 0) {
-            // 先删除数据
-            windFarmInfoEncryptionService.deleteAll();
-        }
-        windFarmInfoEncryptionService.put(windFarmInfoEncryptionList);
+//        // 风电场基本信息表(厂商专供)
+//        List<WindFarmInfoEncryption> windFarmInfoEncryptionList = windFarmInfoEncryptionService.get();
+//        // 查询本地所有数据
+//        List<WindFarmInfoEncryption> windFarmInfoEncryptions = windFarmInfoEncryptionService.getAll();
+//        if (windFarmInfoEncryptions != null && windFarmInfoEncryptions.size() > 0) {
+//            // 先删除数据
+//            windFarmInfoEncryptionService.deleteAll();
+//        }
+//        windFarmInfoEncryptionService.put(windFarmInfoEncryptionList);
 
 
-        // 测风塔信息
-        List<WindTowerInfo> windTowerInfoList = windTowerInfoService.get();
-        // 查询本地所有数据
-        List<WindTowerInfo> windTowerInfos = windTowerInfoService.getAll();
-        if (windTowerInfos != null && windTowerInfos.size() > 0) {
-            // 先删除数据
-            windTowerInfoService.deleteAll();
-        }
-        windTowerInfoService.put(windTowerInfoList);
+//        // 测风塔信息
+//        List<WindTowerInfo> windTowerInfoList = windTowerInfoService.get();
+//        // 查询本地所有数据
+//        List<WindTowerInfo> windTowerInfos = windTowerInfoService.getAll();
+//        if (windTowerInfos != null && windTowerInfos.size() > 0) {
+//            // 先删除数据
+//            windTowerInfoService.deleteAll();
+//        }
+//        windTowerInfoService.put(windTowerInfoList);
 
 
-        // 风电机组基本信息表
-        List<WindUnitInfo> windUnitInfoList = windUnitInfoService.get();
-        // 查询本地所有数据
-        List<WindUnitInfo> windUnitInfos = windUnitInfoService.getAll();
-        if (windUnitInfos != null && windUnitInfos.size() > 0) {
-            // 先删除数据
-            windUnitInfoService.deleteAll();
-        }
-        windUnitInfoService.put(windUnitInfoList);
+//        // 风电机组基本信息表
+//        List<WindUnitInfo> windUnitInfoList = windUnitInfoService.get();
+//        // 查询本地所有数据
+//        List<WindUnitInfo> windUnitInfos = windUnitInfoService.getAll();
+//        if (windUnitInfos != null && windUnitInfos.size() > 0) {
+//            // 先删除数据
+//            windUnitInfoService.deleteAll();
+//        }
+//        windUnitInfoService.put(windUnitInfoList);
 
 
-        // 风电机组型号基本信息表
-        List<WindUnitModelInfo> windUnitModelInfoList = windUnitModelInfoService.get();
-        // 查询本地所有数据
-        List<WindUnitModelInfo> windUnitModelInfos = windUnitModelInfoService.getAll();
-        if (windUnitModelInfos != null && windUnitModelInfos.size() > 0) {
-            // 先删除数据
-            windUnitModelInfoService.deleteAll();
-        }
-        windUnitModelInfoService.put(windUnitModelInfoList);
+//        // 风电机组型号基本信息表
+//        List<WindUnitModelInfo> windUnitModelInfoList = windUnitModelInfoService.get();
+//        // 查询本地所有数据
+//        List<WindUnitModelInfo> windUnitModelInfos = windUnitModelInfoService.getAll();
+//        if (windUnitModelInfos != null && windUnitModelInfos.size() > 0) {
+//            // 先删除数据
+//            windUnitModelInfoService.deleteAll();
+//        }
+//        windUnitModelInfoService.put(windUnitModelInfoList);
 
 
-        List<WindUnitModelWsAndPower> windUnitModelWsAndPowerList = windUnitModelWsAndPowerService.get();
-        // 查询本地所有数据
-        List<WindUnitModelWsAndPower> windUnitModelWsAndPowers = windUnitModelWsAndPowerService.getAll();
-        if (windUnitModelWsAndPowers != null && windUnitModelWsAndPowers.size() > 0) {
-            // 先删除数据
-            windUnitModelWsAndPowerService.deleteAll();
-        }
-        windUnitModelWsAndPowerService.put(windUnitModelWsAndPowerList);
+//        List<WindUnitModelWsAndPower> windUnitModelWsAndPowerList = windUnitModelWsAndPowerService.get();
+//        // 查询本地所有数据
+//        List<WindUnitModelWsAndPower> windUnitModelWsAndPowers = windUnitModelWsAndPowerService.getAll();
+//        if (windUnitModelWsAndPowers != null && windUnitModelWsAndPowers.size() > 0) {
+//            // 先删除数据
+//            windUnitModelWsAndPowerService.deleteAll();
+//        }
+//        windUnitModelWsAndPowerService.put(windUnitModelWsAndPowerList);
 
         log.info("---------------------------同步基础信息结束---------------------------");
 
@@ -329,7 +468,7 @@ public class GenerateBackPassDataService {
      * 这几个表每天同步昨天的数据
      */
     @Scheduled(cron = "0 48 2 * * ?")
-    public void synchronizeRealData(){
+    public void synchronizeRealData() {
         log.info("---------------------------开始同步昨日数据---------------------------");
 
         long time = System.currentTimeMillis() - 86400000l;
@@ -338,24 +477,39 @@ public class GenerateBackPassDataService {
         Date startTime = DateTimeUtil.getDayStartTime(time);
         Date endTime = DateTimeUtil.getDayLastTime(time);
 
-        List<WindTowerCdqResultCover> windTowerCdqResultCoverList = windTowerCdqResultCoverService.get(startTime, endTime);
-        windTowerCdqResultCoverService.put(windTowerCdqResultCoverList);
+//        List<WindTowerCdqResultCover> windTowerCdqResultCoverList = windTowerCdqResultCoverService.get(startTime, endTime);
+//        windTowerCdqResultCoverService.put(windTowerCdqResultCoverList);
+//
+//        List<WindPowerCdqResultCover> windPowerCdqResultCoverList = windPowerCdqResultCoverService.get(startTime, endTime);
+//        windPowerCdqResultCoverService.put(windPowerCdqResultCoverList);
+//
+//        List<WindPowerDqResultCover> windPowerDqResultCoverList = windPowerDqResultCoverService.get(startTime, endTime);
+//        windPowerDqResultCoverService.put(windPowerDqResultCoverList);
+
+        List<WindPowerReal15MinFD0001> windPowerReal15MinFD0001List = windPowerReal15MinFD0001Service.get(startTime, endTime);
+        windPowerReal15MinFD0001Service.put(windPowerReal15MinFD0001List);
 
-        List<WindPowerCdqResultCover> windPowerCdqResultCoverList = windPowerCdqResultCoverService.get(startTime, endTime);
-        windPowerCdqResultCoverService.put(windPowerCdqResultCoverList);
+        List<WindPowerReal15MinFD0002> windPowerReal15MinFD0002List = windPowerReal15MinFD0002Service.get(startTime, endTime);
+        windPowerReal15MinFD0002Service.put(windPowerReal15MinFD0002List);
 
-        List<WindPowerDqResultCover> windPowerDqResultCoverList = windPowerDqResultCoverService.get(startTime, endTime);
-        windPowerDqResultCoverService.put(windPowerDqResultCoverList);
+        List<WindPowerReal15MinFD0003> windPowerReal15MinFD0003List = windPowerReal15MinFD0003Service.get(startTime, endTime);
+        windPowerReal15MinFD0003Service.put(windPowerReal15MinFD0003List);
 
-        List<WindPowerReal15Min> windPowerReal15MinList = windPowerReal15MinService.get(startTime, endTime);
-        windPowerReal15MinService.put(windPowerReal15MinList);
+        List<WindPowerReal15MinFD0005> windPowerReal15MinFD0005List = windPowerReal15MinFD0005Service.get(startTime, endTime);
+        windPowerReal15MinFD0005Service.put(windPowerReal15MinFD0005List);
 
-        List<WindTower15Min> windTower15MinList = windTower15MinService.get(startTime, endTime);
-        windTower15MinService.put(windTower15MinList);
+        List<WindPowerReal15MinFD0006> windPowerReal15MinFD0006List = windPowerReal15MinFD0006Service.get(startTime, endTime);
+        windPowerReal15MinFD0006Service.put(windPowerReal15MinFD0006List);
 
+        List<WindPowerReal15MinFD0007> windPowerReal15MinFD0007List = windPowerReal15MinFD0007Service.get(startTime, endTime);
+        windPowerReal15MinFD0007Service.put(windPowerReal15MinFD0007List);
 
-        List<WindTowerDqResultCover> windTowerDqResultCoverList = windTowerDqResultCoverService.get(startTime, endTime);
-        windTowerDqResultCoverService.put(windTowerDqResultCoverList);
+//        List<WindTower15Min> windTower15MinList = windTower15MinService.get(startTime, endTime);
+//        windTower15MinService.put(windTower15MinList);
+//
+//
+//        List<WindTowerDqResultCover> windTowerDqResultCoverList = windTowerDqResultCoverService.get(startTime, endTime);
+//        windTowerDqResultCoverService.put(windTowerDqResultCoverList);
 
         log.info("---------------------------同步昨日数据结束---------------------------");
 

+ 53 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0001Service.java

@@ -0,0 +1,53 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0001;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverFD0001Service extends IService<JiaYueWindPowerCdqResultCoverFD0001> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerCdqResultCoverFD0001> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     * 执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+}

+ 50 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0002Service.java

@@ -0,0 +1,50 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0002;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverFD0002Service extends IService<JiaYueWindPowerCdqResultCoverFD0002> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverFD0002> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+}

+ 50 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0003Service.java

@@ -0,0 +1,50 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0003;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverFD0003Service extends IService<JiaYueWindPowerCdqResultCoverFD0003> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverFD0003> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+}

+ 50 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0005Service.java

@@ -0,0 +1,50 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0005;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverFD0005Service extends IService<JiaYueWindPowerCdqResultCoverFD0005> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverFD0005> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+}

+ 50 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0006Service.java

@@ -0,0 +1,50 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0006;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverFD0006Service extends IService<JiaYueWindPowerCdqResultCoverFD0006> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverFD0006> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+}

+ 50 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0007Service.java

@@ -0,0 +1,50 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverFD0007;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverFD0007Service extends IService<JiaYueWindPowerCdqResultCoverFD0007> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverFD0007> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+}

+ 61 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0001Service.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0001;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerDqResultCoverFD0001Service extends IService<JiaYueWindPowerDqResultCoverFD0001> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0001> get();
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0001> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerDqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCovers);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0001> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析短期数据
+     */
+
+    void saveDq(List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverList, String stationCode);
+
+    /**
+     * @param stationCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0001> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime);
+}

+ 61 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0002Service.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0002;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerDqResultCoverFD0002Service extends IService<JiaYueWindPowerDqResultCoverFD0002> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0002> get();
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0002> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerDqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCovers);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0002> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析短期数据
+     */
+
+    void saveDq(List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverList, String stationCode);
+
+    /**
+     * @param stationCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0002> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime);
+}

+ 61 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0003Service.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0003;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerDqResultCoverFD0003Service extends IService<JiaYueWindPowerDqResultCoverFD0003> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0003> get();
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0003> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerDqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCovers);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0003> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析短期数据
+     */
+
+    void saveDq(List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverList, String stationCode);
+
+    /**
+     * @param stationCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0003> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime);
+}

+ 61 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0005Service.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0005;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerDqResultCoverFD0005Service extends IService<JiaYueWindPowerDqResultCoverFD0005> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0005> get();
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0005> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerDqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCovers);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0005> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析短期数据
+     */
+
+    void saveDq(List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverList, String stationCode);
+
+    /**
+     * @param stationCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0005> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime);
+}

+ 61 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0006Service.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0006;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerDqResultCoverFD0006Service extends IService<JiaYueWindPowerDqResultCoverFD0006> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0006> get();
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0006> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerDqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCovers);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0006> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析短期数据
+     */
+
+    void saveDq(List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverList, String stationCode);
+
+    /**
+     * @param stationCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0006> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime);
+}

+ 61 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0007Service.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0007;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerDqResultCoverFD0007Service extends IService<JiaYueWindPowerDqResultCoverFD0007> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0007> get();
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0007> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerDqResultCovers
+     * @return
+     */
+    int put(List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCovers);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0007> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析短期数据
+     */
+
+    void saveDq(List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverList, String stationCode);
+
+    /**
+     * @param stationCode
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<JiaYueWindPowerDqResultCoverFD0007> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0001Service.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0001;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverFD0001Service extends IService<JiaYueWindPowerNwpResultCoverFD0001> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0001> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0001> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0001> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0002Service.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0002;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverFD0002Service extends IService<JiaYueWindPowerNwpResultCoverFD0002> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0002> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0002> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0002> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0003Service.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0003;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverFD0003Service extends IService<JiaYueWindPowerNwpResultCoverFD0003> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0003> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0003> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0003> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0005Service.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0005;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverFD0005Service extends IService<JiaYueWindPowerNwpResultCoverFD0005> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0005> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0005> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0005> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0006Service.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0006;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverFD0006Service extends IService<JiaYueWindPowerNwpResultCoverFD0006> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0006> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0006> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0006> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0007Service.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0007;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverFD0007Service extends IService<JiaYueWindPowerNwpResultCoverFD0007> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0007> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0007> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverFD0007> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0001Service.java

@@ -0,0 +1,51 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0001;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface WindPowerReal15MinFD0001Service extends IService<WindPowerReal15MinFD0001> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0001> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<WindPowerReal15MinFD0001> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0001> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0001> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<WindPowerReal15MinFD0001> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0002Service.java

@@ -0,0 +1,51 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface WindPowerReal15MinFD0002Service extends IService<WindPowerReal15MinFD0002> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0002> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<WindPowerReal15MinFD0002> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0002> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0002> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<WindPowerReal15MinFD0002> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0003Service.java

@@ -0,0 +1,51 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0003;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface WindPowerReal15MinFD0003Service extends IService<WindPowerReal15MinFD0003> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0003> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<WindPowerReal15MinFD0003> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0003> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0003> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<WindPowerReal15MinFD0003> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0005Service.java

@@ -0,0 +1,51 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0005;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface WindPowerReal15MinFD0005Service extends IService<WindPowerReal15MinFD0005> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0005> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<WindPowerReal15MinFD0005> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0005> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0005> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<WindPowerReal15MinFD0005> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0006Service.java

@@ -0,0 +1,51 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0006;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface WindPowerReal15MinFD0006Service extends IService<WindPowerReal15MinFD0006> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0006> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<WindPowerReal15MinFD0006> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0006> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0006> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<WindPowerReal15MinFD0006> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0007Service.java

@@ -0,0 +1,51 @@
+package com.jiayue.ipfcst.client.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0007;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface WindPowerReal15MinFD0007Service extends IService<WindPowerReal15MinFD0007> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0007> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<WindPowerReal15MinFD0007> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0007> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<WindPowerReal15MinFD0007> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<WindPowerReal15MinFD0007> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 34 - 4
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/an/DownloadService.java

@@ -1,6 +1,5 @@
 package com.jiayue.ipfcst.client.service.an;
 
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jiayue.ipfcst.client.dto.ParsingConstant;
 import com.jiayue.ipp.common.data.entity.an.ParsingChannel;
 import com.jiayue.ipp.common.data.entity.an.ParsingLog;
@@ -76,9 +75,40 @@ public class DownloadService {
         parsingUrl3.setId("722af308253fcd6eff67959c7f76eaf8");
         parsingUrl3.setDelFlag("0");
 
+        ParsingUrl parsingUrl5 = new ParsingUrl();
+        parsingUrl5.setCId("722af308253fcd6eff67959c7f76eaf5");
+        parsingUrl5.setForecastManufactor("SYJY");
+        parsingUrl5.setUrl("/home/syjy/F_data/new/J00929");
+        parsingUrl5.setUrlStatus("1");
+        parsingUrl5.setStationCode("J00929");
+        parsingUrl5.setId("722af308253fcd6eff67959c7f76eaf5");
+        parsingUrl5.setDelFlag("0");
+
+        ParsingUrl parsingUrl6 = new ParsingUrl();
+        parsingUrl6.setCId("722af308253fcd6eff67959c7f76eaf6");
+        parsingUrl6.setForecastManufactor("SYJY");
+        parsingUrl6.setUrl("/home/syjy/F_data/new/J00930");
+        parsingUrl6.setUrlStatus("1");
+        parsingUrl6.setStationCode("J00930");
+        parsingUrl6.setId("722af308253fcd6eff67959c7f76eaf6");
+        parsingUrl6.setDelFlag("0");
+
+        ParsingUrl parsingUrl7 = new ParsingUrl();
+        parsingUrl7.setCId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrl7.setForecastManufactor("SYJY");
+        parsingUrl7.setUrl("/home/syjy/F_data/new/J00931");
+        parsingUrl7.setUrlStatus("1");
+        parsingUrl7.setStationCode("J00931");
+        parsingUrl7.setId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrl7.setDelFlag("0");
+
+
         parsingUrls.add(parsingUrl1);
         parsingUrls.add(parsingUrl2);
         parsingUrls.add(parsingUrl3);
+        parsingUrls.add(parsingUrl5);
+        parsingUrls.add(parsingUrl6);
+        parsingUrls.add(parsingUrl7);
 
         String dateDir = DateFormatUtils.format(new Date(), "yyyyMMdd");
         String dayStr = new SimpleDateFormat("yyyyMMdd").format(new Date());
@@ -96,7 +126,7 @@ public class DownloadService {
                 dirFile.mkdirs();
             }
             File[] files = dirFile.listFiles();
-            log.info("扫描路径:{},文件数:{}",path,files.length);
+            log.info("扫描路径:{},文件数:{}", path, files.length);
             //遍历文件
             for (File file : files) {
                 String fileName = file.getName();
@@ -118,7 +148,7 @@ public class DownloadService {
 
                     try {
                         File file1 = new File(success + File.separator + fileName);
-                        if(file1.exists()){
+                        if (file1.exists()) {
                             file1.delete();
                         }
                         FileUtils.moveFile(file, new File(success + File.separator + fileName));
@@ -130,7 +160,7 @@ public class DownloadService {
                 } else {
                     try {
                         File file1 = new File(failDir + File.separator + fileName);
-                        if(file1.exists()){
+                        if (file1.exists()) {
                             file1.delete();
                         }
                         FileUtils.moveFile(file, new File(failDir + File.separator + fileName));

+ 12 - 4
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/ElectricFieldServiceImpl.java

@@ -1,7 +1,6 @@
 package com.jiayue.ipfcst.client.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jiayue.ipfcst.client.aop.WR;
 import com.jiayue.ipfcst.client.mapper.ElectricFieldMapper;
 import com.jiayue.ipfcst.client.service.ElectricFieldService;
 import com.jiayue.ipp.common.data.entity.ElectricField;
@@ -22,7 +21,7 @@ import java.util.List;
 @Data
 @Service
 public class ElectricFieldServiceImpl extends ServiceImpl<ElectricFieldMapper, ElectricField> implements ElectricFieldService {
-//    @Autowired
+    //    @Autowired
 //    RemoteUnitService remoteUnitService;
     @Resource
     ElectricFieldMapper electricFieldMapper;
@@ -71,9 +70,9 @@ public class ElectricFieldServiceImpl extends ServiceImpl<ElectricFieldMapper, E
 //        ElectricField electricField = electricFieldMapper.selectByStationCode(stationCode);
 //        return electricField.getSign();
         String sign = "";
-        switch (stationCode){
+        switch (stationCode) {
             case "J00770":
-                sign="FD0001";
+                sign = "FD0001";
                 break;
             case "J00771":
                 sign = "FD0002";
@@ -81,6 +80,15 @@ public class ElectricFieldServiceImpl extends ServiceImpl<ElectricFieldMapper, E
             case "J00772":
                 sign = "FD0003";
                 break;
+            case "J00929":
+                sign = "FD0005";
+                break;
+            case "J00930":
+                sign = "FD0006";
+                break;
+            case "J00931":
+                sign = "FD0007";
+                break;
             default:
                 break;
         }

+ 332 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0001ServiceImpl.java

@@ -0,0 +1,332 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapperFD0001;
+import com.jiayue.ipfcst.client.service.*;
+import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipp.common.data.entity.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class JiaYueWindPowerCdqResultCoverFD0001ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0001, JiaYueWindPowerCdqResultCoverFD0001> implements JiaYueWindPowerCdqResultCoverFD0001Service {
+    @Resource
+    private JiaYueWindPowerCdqResultCoverMapperFD0001 jiaYueWindPowerCdqResultCoverMapperFD0001;
+
+    @Autowired
+    private ElectricFieldService electricFieldService;
+
+    @Autowired
+    private SysParameterService sysParameterService;
+
+
+    @Autowired
+    private WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service;
+
+    @Autowired
+    private JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service;
+
+    @Autowired
+    private JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service;
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0001> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0001.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCoverFD0001List) {
+        if (jiaYueWindPowerCdqResultCoverFD0001List != null && jiaYueWindPowerCdqResultCoverFD0001List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0001List, jiaYueWindPowerCdqResultCoverFD0001List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0001List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0001.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+//        ElectricField electricField1 = new ElectricField();
+//        electricField1.setBelongForecastManufactor("SYJY");
+//        electricField1.setCapacity(new BigDecimal(30.0000));
+//        electricField1.setElectricFieldTypeEnum("2");
+//        electricField1.setForecastManufactor("SYJY");
+//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+//        electricField1.setName("天津中能融合测试站A");
+//        electricField1.setStationCode("J00770");
+//        electricField1.setSign("FD0001");
+//        electricField1.setNetSubstationName("J00770");
+
+//        ElectricField electricField2 = new ElectricField();
+//        electricField2.setBelongForecastManufactor("SYJY");
+//        electricField2.setCapacity(new BigDecimal(12.0000));
+//        electricField2.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+//        electricField2.setName("天津中能融合测试站C");
+//        electricField2.setStationCode("J00772");
+//        electricField2.setSign("FD0003");
+//        electricField2.setNetSubstationName("J00772");
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(20.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("天津中能融合测试站A");
+        electricField3.setStationCode("J00770");
+        electricField3.setSign("FD0001");
+        electricField3.setNetSubstationName("J00770");
+
+//        electricFieldList.add(electricField1);
+//        electricFieldList.add(electricField2);
+        electricFieldList.add(electricField3);
+
+        electricFieldList.forEach(e -> {
+            String stationCode = e.getSign();
+            // 根据场站类型执行相应超短期预测
+            try {
+                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+                Long startTime = calTime + 15 * 1000 * 60L;
+                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+                Integer forecastPoints = Integer.parseInt(llcdq_point);
+                Integer forecastMinutes = (forecastPoints - 1) * 15;
+                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes + 1).getTime();
+
+                // 查询该时间段内的短期预测功率
+                List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverFD0001List = jiaYueWindPowerDqResultCoverFD0001Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(startTime), new Date(endTime));
+
+
+//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+//            // 判断短期数据是否缺点
+//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+//                    // 缺失时间点
+//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+//                    } else {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+//                    }
+//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//                }
+//            }
+//            if (!addForecastPowerShortTermList.isEmpty()) {
+//                // 保存短期预测
+//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+//                // 将补齐的预测功率追加到查询预测功率结果集中
+//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//            }
+
+                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                    // 光伏电站
+//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+                // 风力电场
+                this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0001List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCoverFD0002List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0001 jiaYueWindPowerCdqResultCoverFD0001;
+        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+        BigDecimal stPower, ustPower, ustPowers;
+        // 查询当前时间点标记时间前10分钟的可用功率
+        Date currentTime = new Date(System.currentTimeMillis());
+        Date startTime = DateUtils.addMinutes(currentTime, -10);
+        Date endTime = DateUtils.addMinutes(currentTime, 1);
+        // 场站编号转换为FD000?
+        String objId = electricFieldService.numberToIdentification(stationCode);
+        List<WindPowerReal15MinFD0001> windPowerReal15MinList = windPowerReal15MinFD0001Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0001> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0001> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0001Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0001::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0001 = new JiaYueWindPowerCdqResultCoverFD0001();
+                jiaYueWindPowerCdqResultCoverFD0001.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0001.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0001.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0001.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0001.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0001.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0001.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0001.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0001.setActivePower(capacity.floatValue());
+                    } else if (ustPower.doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0001.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0001.setActivePower(ustPower.floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0001.setActivePower(ustPowers.floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverFD0002List.add(jiaYueWindPowerCdqResultCoverFD0001);
+            }
+        } else {
+            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+            // 短期乘以系数
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                jiaYueWindPowerCdqResultCoverFD0001 = new JiaYueWindPowerCdqResultCoverFD0001();
+                jiaYueWindPowerCdqResultCoverFD0001.setDataDate(new Date());
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0001.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0001.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0001.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0001.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0001.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0001.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0001.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0002List.add(jiaYueWindPowerCdqResultCoverFD0001);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0002List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0002List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+
+        jiaYueWindPowerCdqResultCoverFD0001Service.get();
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0001.deleteByDateTime(startTime, endTime, stationCode);
+    }
+
+    /**
+     * 将Date格式转换为Time格式
+     *
+     * @param utilDate
+     * @return
+     */
+    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+        // 使用 SimpleDateFormat 提取时间部分
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        String timeString = timeFormat.format(utilDate);
+        // 将提取的时间部分转换为 MySQL TIME 类型
+        return Time.valueOf(timeString);
+    }
+
+}

+ 332 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0002ServiceImpl.java

@@ -0,0 +1,332 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapperFD0002;
+import com.jiayue.ipfcst.client.service.*;
+import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipp.common.data.entity.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0002, JiaYueWindPowerCdqResultCoverFD0002> implements JiaYueWindPowerCdqResultCoverFD0002Service {
+    @Resource
+    private JiaYueWindPowerCdqResultCoverMapperFD0002 jiaYueWindPowerCdqResultCoverMapperFD0002;
+
+    @Autowired
+    private ElectricFieldService electricFieldService;
+
+    @Autowired
+    private SysParameterService sysParameterService;
+
+
+    @Autowired
+    private WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service;
+
+    @Autowired
+    private JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service;
+
+    @Autowired
+    private JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service;
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0002> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0002.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverFD0002List) {
+        if (jiaYueWindPowerCdqResultCoverFD0002List != null && jiaYueWindPowerCdqResultCoverFD0002List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0002List, jiaYueWindPowerCdqResultCoverFD0002List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0002List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0002.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+//        ElectricField electricField1 = new ElectricField();
+//        electricField1.setBelongForecastManufactor("SYJY");
+//        electricField1.setCapacity(new BigDecimal(30.0000));
+//        electricField1.setElectricFieldTypeEnum("2");
+//        electricField1.setForecastManufactor("SYJY");
+//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+//        electricField1.setName("天津中能融合测试站A");
+//        electricField1.setStationCode("J00770");
+//        electricField1.setSign("FD0001");
+//        electricField1.setNetSubstationName("J00770");
+
+//        ElectricField electricField2 = new ElectricField();
+//        electricField2.setBelongForecastManufactor("SYJY");
+//        electricField2.setCapacity(new BigDecimal(12.0000));
+//        electricField2.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+//        electricField2.setName("天津中能融合测试站C");
+//        electricField2.setStationCode("J00772");
+//        electricField2.setSign("FD0003");
+//        electricField2.setNetSubstationName("J00772");
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(20.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("中能融合测试站B");
+        electricField3.setStationCode("J00771");
+        electricField3.setSign("FD0002");
+        electricField3.setNetSubstationName("J00771");
+
+//        electricFieldList.add(electricField1);
+//        electricFieldList.add(electricField2);
+        electricFieldList.add(electricField3);
+
+        electricFieldList.forEach(e -> {
+            String stationCode = e.getSign();
+            // 根据场站类型执行相应超短期预测
+            try {
+                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+                Long startTime = calTime + 15 * 1000 * 60L;
+                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+                Integer forecastPoints = Integer.parseInt(llcdq_point);
+                Integer forecastMinutes = (forecastPoints - 1) * 15;
+                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes + 1).getTime();
+
+                // 查询该时间段内的短期预测功率
+                List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverFD0002List = jiaYueWindPowerDqResultCoverFD0002Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(startTime), new Date(endTime));
+
+
+//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+//            // 判断短期数据是否缺点
+//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+//                    // 缺失时间点
+//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+//                    } else {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+//                    }
+//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//                }
+//            }
+//            if (!addForecastPowerShortTermList.isEmpty()) {
+//                // 保存短期预测
+//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+//                // 将补齐的预测功率追加到查询预测功率结果集中
+//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//            }
+
+                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                    // 光伏电站
+//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+                // 风力电场
+                this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0002List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverFD0002List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0002 jiaYueWindPowerCdqResultCoverFD0002;
+        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+        BigDecimal stPower, ustPower, ustPowers;
+        // 查询当前时间点标记时间前10分钟的可用功率
+        Date currentTime = new Date(System.currentTimeMillis());
+        Date startTime = DateUtils.addMinutes(currentTime, -10);
+        Date endTime = DateUtils.addMinutes(currentTime, 1);
+        // 场站编号转换为FD000?
+        String objId = electricFieldService.numberToIdentification(stationCode);
+        List<WindPowerReal15MinFD0002> windPowerReal15MinList = windPowerReal15MinFD0002Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0002> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0002> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0002Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0002::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0002 = new JiaYueWindPowerCdqResultCoverFD0002();
+                jiaYueWindPowerCdqResultCoverFD0002.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0002.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0002.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0002.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0002.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0002.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0002.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0002.setActivePower(capacity.floatValue());
+                    } else if (ustPower.doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0002.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0002.setActivePower(ustPower.floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0002.setActivePower(ustPowers.floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverFD0002List.add(jiaYueWindPowerCdqResultCoverFD0002);
+            }
+        } else {
+            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+            // 短期乘以系数
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                jiaYueWindPowerCdqResultCoverFD0002 = new JiaYueWindPowerCdqResultCoverFD0002();
+                jiaYueWindPowerCdqResultCoverFD0002.setDataDate(new Date());
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0002.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0002.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0002.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0002.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0002.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0002.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0002List.add(jiaYueWindPowerCdqResultCoverFD0002);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0002List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0002List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+
+        jiaYueWindPowerCdqResultCoverFD0002Service.get();
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0002.deleteByDateTime(startTime, endTime, stationCode);
+    }
+
+    /**
+     * 将Date格式转换为Time格式
+     *
+     * @param utilDate
+     * @return
+     */
+    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+        // 使用 SimpleDateFormat 提取时间部分
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        String timeString = timeFormat.format(utilDate);
+        // 将提取的时间部分转换为 MySQL TIME 类型
+        return Time.valueOf(timeString);
+    }
+
+}

+ 332 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0003ServiceImpl.java

@@ -0,0 +1,332 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapperFD0003;
+import com.jiayue.ipfcst.client.service.*;
+import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipp.common.data.entity.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class JiaYueWindPowerCdqResultCoverFD0003ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0003, JiaYueWindPowerCdqResultCoverFD0003> implements JiaYueWindPowerCdqResultCoverFD0003Service {
+    @Resource
+    private JiaYueWindPowerCdqResultCoverMapperFD0003 jiaYueWindPowerCdqResultCoverMapperFD0003;
+
+    @Autowired
+    private ElectricFieldService electricFieldService;
+
+    @Autowired
+    private SysParameterService sysParameterService;
+
+
+    @Autowired
+    private WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service;
+
+    @Autowired
+    private JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service;
+
+    @Autowired
+    private JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service;
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0003> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0003.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverFD0003List) {
+        if (jiaYueWindPowerCdqResultCoverFD0003List != null && jiaYueWindPowerCdqResultCoverFD0003List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0003List, jiaYueWindPowerCdqResultCoverFD0003List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0003List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0003.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+//        ElectricField electricField1 = new ElectricField();
+//        electricField1.setBelongForecastManufactor("SYJY");
+//        electricField1.setCapacity(new BigDecimal(30.0000));
+//        electricField1.setElectricFieldTypeEnum("2");
+//        electricField1.setForecastManufactor("SYJY");
+//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+//        electricField1.setName("天津中能融合测试站A");
+//        electricField1.setStationCode("J00770");
+//        electricField1.setSign("FD0001");
+//        electricField1.setNetSubstationName("J00770");
+
+        ElectricField electricField2 = new ElectricField();
+        electricField2.setBelongForecastManufactor("SYJY");
+        electricField2.setCapacity(new BigDecimal(12.0000));
+        electricField2.setElectricFieldTypeEnum("2");
+        electricField2.setForecastManufactor("SYJY");
+        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+        electricField2.setName("天津中能融合测试站C");
+        electricField2.setStationCode("J00772");
+        electricField2.setSign("FD0003");
+        electricField2.setNetSubstationName("J00772");
+
+//        ElectricField electricField3 = new ElectricField();
+//        electricField3.setBelongForecastManufactor("SYJY");
+//        electricField3.setCapacity(new BigDecimal(20.0000));
+//        electricField3.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+//        electricField3.setName("中能融合测试站B");
+//        electricField3.setStationCode("J00771");
+//        electricField3.setSign("FD0002");
+//        electricField3.setNetSubstationName("J00771");
+
+//        electricFieldList.add(electricField1);
+        electricFieldList.add(electricField2);
+//        electricFieldList.add(electricField3);
+
+        electricFieldList.forEach(e -> {
+            String stationCode = e.getSign();
+            // 根据场站类型执行相应超短期预测
+            try {
+                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+                Long startTime = calTime + 15 * 1000 * 60L;
+                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+                Integer forecastPoints = Integer.parseInt(llcdq_point);
+                Integer forecastMinutes = (forecastPoints - 1) * 15;
+                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes + 1).getTime();
+
+                // 查询该时间段内的短期预测功率
+                List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverFD0003List = jiaYueWindPowerDqResultCoverFD0003Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(startTime), new Date(endTime));
+
+
+//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+//            // 判断短期数据是否缺点
+//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+//                    // 缺失时间点
+//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+//                    } else {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+//                    }
+//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//                }
+//            }
+//            if (!addForecastPowerShortTermList.isEmpty()) {
+//                // 保存短期预测
+//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+//                // 将补齐的预测功率追加到查询预测功率结果集中
+//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//            }
+
+                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                    // 光伏电站
+//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+                // 风力电场
+                this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0003List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverFD0003List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0003 jiaYueWindPowerCdqResultCoverFD0003;
+        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+        BigDecimal stPower, ustPower, ustPowers;
+        // 查询当前时间点标记时间前10分钟的可用功率
+        Date currentTime = new Date(System.currentTimeMillis());
+        Date startTime = DateUtils.addMinutes(currentTime, -10);
+        Date endTime = DateUtils.addMinutes(currentTime, 1);
+        // 场站编号转换为FD000?
+        String objId = electricFieldService.numberToIdentification(stationCode);
+        List<WindPowerReal15MinFD0003> windPowerReal15MinList = windPowerReal15MinFD0003Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0003> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0003> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0003Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0003::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0003 = new JiaYueWindPowerCdqResultCoverFD0003();
+                jiaYueWindPowerCdqResultCoverFD0003.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0003.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0003.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0003.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0003.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0003.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0003.setActivePower(capacity.floatValue());
+                    } else if (ustPower.doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0003.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0003.setActivePower(ustPower.floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0003.setActivePower(ustPowers.floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverFD0003List.add(jiaYueWindPowerCdqResultCoverFD0003);
+            }
+        } else {
+            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+            // 短期乘以系数
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                jiaYueWindPowerCdqResultCoverFD0003 = new JiaYueWindPowerCdqResultCoverFD0003();
+                jiaYueWindPowerCdqResultCoverFD0003.setDataDate(new Date());
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0003.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0003.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0003.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0003.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0003.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0003List.add(jiaYueWindPowerCdqResultCoverFD0003);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0003List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0003List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+
+        jiaYueWindPowerCdqResultCoverFD0003Service.get();
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0003.deleteByDateTime(startTime, endTime, stationCode);
+    }
+
+    /**
+     * 将Date格式转换为Time格式
+     *
+     * @param utilDate
+     * @return
+     */
+    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+        // 使用 SimpleDateFormat 提取时间部分
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        String timeString = timeFormat.format(utilDate);
+        // 将提取的时间部分转换为 MySQL TIME 类型
+        return Time.valueOf(timeString);
+    }
+
+}

+ 332 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0005ServiceImpl.java

@@ -0,0 +1,332 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapperFD0005;
+import com.jiayue.ipfcst.client.service.*;
+import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipp.common.data.entity.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class JiaYueWindPowerCdqResultCoverFD0005ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0005, JiaYueWindPowerCdqResultCoverFD0005> implements JiaYueWindPowerCdqResultCoverFD0005Service {
+    @Resource
+    private JiaYueWindPowerCdqResultCoverMapperFD0005 jiaYueWindPowerCdqResultCoverMapperFD0005;
+
+    @Autowired
+    private ElectricFieldService electricFieldService;
+
+    @Autowired
+    private SysParameterService sysParameterService;
+
+
+    @Autowired
+    private WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service;
+
+    @Autowired
+    private JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service;
+
+    @Autowired
+    private JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service;
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0005> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0005.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCoverFD0005List) {
+        if (jiaYueWindPowerCdqResultCoverFD0005List != null && jiaYueWindPowerCdqResultCoverFD0005List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0005List, jiaYueWindPowerCdqResultCoverFD0005List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0005List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0005.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+//        ElectricField electricField1 = new ElectricField();
+//        electricField1.setBelongForecastManufactor("SYJY");
+//        electricField1.setCapacity(new BigDecimal(30.0000));
+//        electricField1.setElectricFieldTypeEnum("2");
+//        electricField1.setForecastManufactor("SYJY");
+//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+//        electricField1.setName("天津中能融合测试站A");
+//        electricField1.setStationCode("J00770");
+//        electricField1.setSign("FD0001");
+//        electricField1.setNetSubstationName("J00770");
+
+//        ElectricField electricField2 = new ElectricField();
+//        electricField2.setBelongForecastManufactor("SYJY");
+//        electricField2.setCapacity(new BigDecimal(12.0000));
+//        electricField2.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+//        electricField2.setName("天津中能融合测试站C");
+//        electricField2.setStationCode("J00772");
+//        electricField2.setSign("FD0003");
+//        electricField2.setNetSubstationName("J00772");
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(20.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("内蒙古中能融合测试站E");
+        electricField3.setStationCode("J00929");
+        electricField3.setSign("FD0005");
+        electricField3.setNetSubstationName("J00929");
+
+//        electricFieldList.add(electricField1);
+//        electricFieldList.add(electricField2);
+        electricFieldList.add(electricField3);
+
+        electricFieldList.forEach(e -> {
+            String stationCode = e.getSign();
+            // 根据场站类型执行相应超短期预测
+            try {
+                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+                Long startTime = calTime + 15 * 1000 * 60L;
+                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+                Integer forecastPoints = Integer.parseInt(llcdq_point);
+                Integer forecastMinutes = (forecastPoints - 1) * 15;
+                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes + 1).getTime();
+
+                // 查询该时间段内的短期预测功率
+                List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverFD0005List = jiaYueWindPowerDqResultCoverFD0005Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(startTime), new Date(endTime));
+
+
+//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+//            // 判断短期数据是否缺点
+//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+//                    // 缺失时间点
+//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+//                    } else {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+//                    }
+//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//                }
+//            }
+//            if (!addForecastPowerShortTermList.isEmpty()) {
+//                // 保存短期预测
+//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+//                // 将补齐的预测功率追加到查询预测功率结果集中
+//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//            }
+
+                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                    // 光伏电站
+//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+                // 风力电场
+                this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0005List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCoverFD0005List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0005 jiaYueWindPowerCdqResultCoverFD0005;
+        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+        BigDecimal stPower, ustPower, ustPowers;
+        // 查询当前时间点标记时间前10分钟的可用功率
+        Date currentTime = new Date(System.currentTimeMillis());
+        Date startTime = DateUtils.addMinutes(currentTime, -10);
+        Date endTime = DateUtils.addMinutes(currentTime, 1);
+        // 场站编号转换为FD000?
+        String objId = electricFieldService.numberToIdentification(stationCode);
+        List<WindPowerReal15MinFD0005> windPowerReal15MinList = windPowerReal15MinFD0005Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0005> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0005> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0005Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0005::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0005 = new JiaYueWindPowerCdqResultCoverFD0005();
+                jiaYueWindPowerCdqResultCoverFD0005.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0005.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0005.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0005.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0005.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0005.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0005.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0005.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0005.setActivePower(capacity.floatValue());
+                    } else if (ustPower.doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0005.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0005.setActivePower(ustPower.floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0005.setActivePower(ustPowers.floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverFD0005List.add(jiaYueWindPowerCdqResultCoverFD0005);
+            }
+        } else {
+            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+            // 短期乘以系数
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                jiaYueWindPowerCdqResultCoverFD0005 = new JiaYueWindPowerCdqResultCoverFD0005();
+                jiaYueWindPowerCdqResultCoverFD0005.setDataDate(new Date());
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0005.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0005.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0005.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0005.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0005.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0005.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0005.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0005List.add(jiaYueWindPowerCdqResultCoverFD0005);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0005List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0005List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+
+        jiaYueWindPowerCdqResultCoverFD0005Service.get();
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0005.deleteByDateTime(startTime, endTime, stationCode);
+    }
+
+    /**
+     * 将Date格式转换为Time格式
+     *
+     * @param utilDate
+     * @return
+     */
+    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+        // 使用 SimpleDateFormat 提取时间部分
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        String timeString = timeFormat.format(utilDate);
+        // 将提取的时间部分转换为 MySQL TIME 类型
+        return Time.valueOf(timeString);
+    }
+
+}

+ 332 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0006ServiceImpl.java

@@ -0,0 +1,332 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapperFD0006;
+import com.jiayue.ipfcst.client.service.*;
+import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipp.common.data.entity.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class JiaYueWindPowerCdqResultCoverFD0006ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0006, JiaYueWindPowerCdqResultCoverFD0006> implements JiaYueWindPowerCdqResultCoverFD0006Service {
+    @Resource
+    private JiaYueWindPowerCdqResultCoverMapperFD0006 jiaYueWindPowerCdqResultCoverMapperFD0006;
+
+    @Autowired
+    private ElectricFieldService electricFieldService;
+
+    @Autowired
+    private SysParameterService sysParameterService;
+
+
+    @Autowired
+    private WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service;
+
+    @Autowired
+    private JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service;
+
+    @Autowired
+    private JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service;
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0006> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0006.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCoverFD0006List) {
+        if (jiaYueWindPowerCdqResultCoverFD0006List != null && jiaYueWindPowerCdqResultCoverFD0006List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0006List, jiaYueWindPowerCdqResultCoverFD0006List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0006List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0006.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+//        ElectricField electricField1 = new ElectricField();
+//        electricField1.setBelongForecastManufactor("SYJY");
+//        electricField1.setCapacity(new BigDecimal(30.0000));
+//        electricField1.setElectricFieldTypeEnum("2");
+//        electricField1.setForecastManufactor("SYJY");
+//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+//        electricField1.setName("天津中能融合测试站A");
+//        electricField1.setStationCode("J00770");
+//        electricField1.setSign("FD0001");
+//        electricField1.setNetSubstationName("J00770");
+
+//        ElectricField electricField2 = new ElectricField();
+//        electricField2.setBelongForecastManufactor("SYJY");
+//        electricField2.setCapacity(new BigDecimal(12.0000));
+//        electricField2.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+//        electricField2.setName("天津中能融合测试站C");
+//        electricField2.setStationCode("J00772");
+//        electricField2.setSign("FD0003");
+//        electricField2.setNetSubstationName("J00772");
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(20.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("河南中能融合测试站F");
+        electricField3.setStationCode("J00930");
+        electricField3.setSign("FD0006");
+        electricField3.setNetSubstationName("J00930");
+
+//        electricFieldList.add(electricField1);
+//        electricFieldList.add(electricField2);
+        electricFieldList.add(electricField3);
+
+        electricFieldList.forEach(e -> {
+            String stationCode = e.getSign();
+            // 根据场站类型执行相应超短期预测
+            try {
+                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+                Long startTime = calTime + 15 * 1000 * 60L;
+                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+                Integer forecastPoints = Integer.parseInt(llcdq_point);
+                Integer forecastMinutes = (forecastPoints - 1) * 15;
+                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes + 1).getTime();
+
+                // 查询该时间段内的短期预测功率
+                List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverFD0006List = jiaYueWindPowerDqResultCoverFD0006Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(startTime), new Date(endTime));
+
+
+//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+//            // 判断短期数据是否缺点
+//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+//                    // 缺失时间点
+//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+//                    } else {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+//                    }
+//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//                }
+//            }
+//            if (!addForecastPowerShortTermList.isEmpty()) {
+//                // 保存短期预测
+//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+//                // 将补齐的预测功率追加到查询预测功率结果集中
+//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//            }
+
+                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                    // 光伏电站
+//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+                // 风力电场
+                this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0006List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCoverFD0006List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0006 jiaYueWindPowerCdqResultCoverFD0006;
+        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+        BigDecimal stPower, ustPower, ustPowers;
+        // 查询当前时间点标记时间前10分钟的可用功率
+        Date currentTime = new Date(System.currentTimeMillis());
+        Date startTime = DateUtils.addMinutes(currentTime, -10);
+        Date endTime = DateUtils.addMinutes(currentTime, 1);
+        // 场站编号转换为FD000?
+        String objId = electricFieldService.numberToIdentification(stationCode);
+        List<WindPowerReal15MinFD0006> windPowerReal15MinList = windPowerReal15MinFD0006Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0006> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0006> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0006Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0006::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0006 = new JiaYueWindPowerCdqResultCoverFD0006();
+                jiaYueWindPowerCdqResultCoverFD0006.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0006.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0006.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0006.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0006.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0006.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0006.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0006.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0006.setActivePower(capacity.floatValue());
+                    } else if (ustPower.doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0006.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0006.setActivePower(ustPower.floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0006.setActivePower(ustPowers.floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverFD0006List.add(jiaYueWindPowerCdqResultCoverFD0006);
+            }
+        } else {
+            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+            // 短期乘以系数
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                jiaYueWindPowerCdqResultCoverFD0006 = new JiaYueWindPowerCdqResultCoverFD0006();
+                jiaYueWindPowerCdqResultCoverFD0006.setDataDate(new Date());
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0006.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0006.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0006.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0006.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0006.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0006.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0006.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0006List.add(jiaYueWindPowerCdqResultCoverFD0006);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0006List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0006List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+
+        jiaYueWindPowerCdqResultCoverFD0006Service.get();
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0006.deleteByDateTime(startTime, endTime, stationCode);
+    }
+
+    /**
+     * 将Date格式转换为Time格式
+     *
+     * @param utilDate
+     * @return
+     */
+    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+        // 使用 SimpleDateFormat 提取时间部分
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        String timeString = timeFormat.format(utilDate);
+        // 将提取的时间部分转换为 MySQL TIME 类型
+        return Time.valueOf(timeString);
+    }
+
+}

+ 332 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0007ServiceImpl.java

@@ -0,0 +1,332 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapperFD0007;
+import com.jiayue.ipfcst.client.service.*;
+import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipp.common.data.entity.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0007, JiaYueWindPowerCdqResultCoverFD0007> implements JiaYueWindPowerCdqResultCoverFD0007Service {
+    @Resource
+    private JiaYueWindPowerCdqResultCoverMapperFD0007 jiaYueWindPowerCdqResultCoverMapperFD0007;
+
+    @Autowired
+    private ElectricFieldService electricFieldService;
+
+    @Autowired
+    private SysParameterService sysParameterService;
+
+
+    @Autowired
+    private WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service;
+
+    @Autowired
+    private JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service;
+
+    @Autowired
+    private JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service;
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0007> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0007.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCoverFD0007List) {
+        if (jiaYueWindPowerCdqResultCoverFD0007List != null && jiaYueWindPowerCdqResultCoverFD0007List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0007List, jiaYueWindPowerCdqResultCoverFD0007List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0007List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0007.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+//        ElectricField electricField1 = new ElectricField();
+//        electricField1.setBelongForecastManufactor("SYJY");
+//        electricField1.setCapacity(new BigDecimal(30.0000));
+//        electricField1.setElectricFieldTypeEnum("2");
+//        electricField1.setForecastManufactor("SYJY");
+//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+//        electricField1.setName("天津中能融合测试站A");
+//        electricField1.setStationCode("J00770");
+//        electricField1.setSign("FD0001");
+//        electricField1.setNetSubstationName("J00770");
+
+//        ElectricField electricField2 = new ElectricField();
+//        electricField2.setBelongForecastManufactor("SYJY");
+//        electricField2.setCapacity(new BigDecimal(12.0000));
+//        electricField2.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+//        electricField2.setName("天津中能融合测试站C");
+//        electricField2.setStationCode("J00772");
+//        electricField2.setSign("FD0003");
+//        electricField2.setNetSubstationName("J00772");
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(20.0000));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("天津中能融合测试站F");
+        electricField3.setStationCode("J00391");
+        electricField3.setSign("FD0007");
+        electricField3.setNetSubstationName("J00391");
+
+//        electricFieldList.add(electricField1);
+//        electricFieldList.add(electricField2);
+        electricFieldList.add(electricField3);
+
+        electricFieldList.forEach(e -> {
+            String stationCode = e.getSign();
+            // 根据场站类型执行相应超短期预测
+            try {
+                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+                Long startTime = calTime + 15 * 1000 * 60L;
+                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+                Integer forecastPoints = Integer.parseInt(llcdq_point);
+                Integer forecastMinutes = (forecastPoints - 1) * 15;
+                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes + 1).getTime();
+
+                // 查询该时间段内的短期预测功率
+                List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverFD0007List = jiaYueWindPowerDqResultCoverFD0007Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(startTime), new Date(endTime));
+
+
+//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+//            // 判断短期数据是否缺点
+//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+//                    // 缺失时间点
+//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+//                    } else {
+//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+//                    }
+//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//                }
+//            }
+//            if (!addForecastPowerShortTermList.isEmpty()) {
+//                // 保存短期预测
+//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+//                // 将补齐的预测功率追加到查询预测功率结果集中
+//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//            }
+
+                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                    // 光伏电站
+//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+                // 风力电场
+                this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0007List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCoverFD0007List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0007 jiaYueWindPowerCdqResultCoverFD0007;
+        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+        BigDecimal stPower, ustPower, ustPowers;
+        // 查询当前时间点标记时间前10分钟的可用功率
+        Date currentTime = new Date(System.currentTimeMillis());
+        Date startTime = DateUtils.addMinutes(currentTime, -10);
+        Date endTime = DateUtils.addMinutes(currentTime, 1);
+        // 场站编号转换为FD000?
+        String objId = electricFieldService.numberToIdentification(stationCode);
+        List<WindPowerReal15MinFD0007> windPowerReal15MinList = windPowerReal15MinFD0007Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0007> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0007> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0007Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0007::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0007 = new JiaYueWindPowerCdqResultCoverFD0007();
+                jiaYueWindPowerCdqResultCoverFD0007.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0007.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0007.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0007.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0007.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0007.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0007.setActivePower(capacity.floatValue());
+                    } else if (ustPower.doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0007.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0007.setActivePower(ustPower.floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0007.setActivePower(ustPowers.floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverFD0007List.add(jiaYueWindPowerCdqResultCoverFD0007);
+            }
+        } else {
+            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+            // 短期乘以系数
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                jiaYueWindPowerCdqResultCoverFD0007 = new JiaYueWindPowerCdqResultCoverFD0007();
+                jiaYueWindPowerCdqResultCoverFD0007.setDataDate(new Date());
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0007.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0007.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0007.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0007.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0007.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0007List.add(jiaYueWindPowerCdqResultCoverFD0007);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0007List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0007List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+
+        jiaYueWindPowerCdqResultCoverFD0007Service.get();
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0007.deleteByDateTime(startTime, endTime, stationCode);
+    }
+
+    /**
+     * 将Date格式转换为Time格式
+     *
+     * @param utilDate
+     * @return
+     */
+    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+        // 使用 SimpleDateFormat 提取时间部分
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        String timeString = timeFormat.format(utilDate);
+        // 将提取的时间部分转换为 MySQL TIME 类型
+        return Time.valueOf(timeString);
+    }
+
+}

+ 465 - 325
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverServiceImpl.java

@@ -1,331 +1,471 @@
-package com.jiayue.ipfcst.client.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jiayue.ipfcst.client.aop.WR;
-import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapper;
-import com.jiayue.ipfcst.client.service.*;
-import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
-import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
-import com.jiayue.ipp.common.data.entity.*;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.time.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.sql.Time;
-import java.text.SimpleDateFormat;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Service
-@Slf4j
-public class JiaYueWindPowerCdqResultCoverServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapper, JiaYueWindPowerCdqResultCover> implements JiaYueWindPowerCdqResultCoverService {
-    @Resource
-    private JiaYueWindPowerCdqResultCoverMapper jiaYueWindPowerCdqResultCoverMapper;
-
-    @Autowired
-    private ElectricFieldService electricFieldService;
-
-    @Autowired
-    private SysParameterService sysParameterService;
-
-
-    @Autowired
-    private WindPowerReal15MinService windPowerReal15MinService;
-
-    @Autowired
-    private JiaYueWindPowerDqResultCoverService jiaYueWindPowerDqResultCoverService;
-
-    @Autowired
-    private JiaYueWindPowerCdqResultCoverService jiaYueWindPowerCdqResultCoverService;
-
-    @Override
-    @WR("W")
-    public List<JiaYueWindPowerCdqResultCover> get() {
-     List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
-         return  jiaYueWindPowerCdqResultCovers;
-    }
-
-    @Override
-    @WR("R")
-    public int put(List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers) {
-        if (jiaYueWindPowerCdqResultCovers != null && jiaYueWindPowerCdqResultCovers.size() >0 ){
-            this.saveBatch(jiaYueWindPowerCdqResultCovers,jiaYueWindPowerCdqResultCovers.size());
-        }
-        return jiaYueWindPowerCdqResultCovers.size();
-    }
-
+//package com.jiayue.ipfcst.client.service.impl;
+//
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.jiayue.ipfcst.client.aop.WR;
+//import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerCdqResultCoverMapper;
+//import com.jiayue.ipfcst.client.service.*;
+//import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
+//import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+//import com.jiayue.ipp.common.data.entity.*;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang3.time.DateUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//
+//
+//import javax.annotation.Resource;
+//import java.math.BigDecimal;
+//import java.sql.Time;
+//import java.text.SimpleDateFormat;
+//import java.time.Instant;
+//import java.time.LocalDateTime;
+//import java.time.ZoneId;
+//import java.util.*;
+//import java.util.stream.Collectors;
+//
+//@Service
+//@Slf4j
+//public class JiaYueWindPowerCdqResultCoverServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapper, JiaYueWindPowerCdqResultCover> implements JiaYueWindPowerCdqResultCoverService {
+//    @Resource
+//    private JiaYueWindPowerCdqResultCoverMapper jiaYueWindPowerCdqResultCoverMapper;
+//
+//    @Autowired
+//    private ElectricFieldService electricFieldService;
+//
+//    @Autowired
+//    private SysParameterService sysParameterService;
+//
+//
+//    @Autowired
+//    private WindPowerReal15MinService windPowerReal15MinService;
+//
+//    @Autowired
+//    private JiaYueWindPowerDqResultCoverService jiaYueWindPowerDqResultCoverService;
+//
+//    @Autowired
+//    private JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service;
+//
+//    @Autowired
+//    private JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service;
+//
+//    @Autowired
+//    private JiaYueWindPowerCdqResultCoverService jiaYueWindPowerCdqResultCoverService;
+//
+//    @Autowired
+//    private JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service;
+//
+//    @Autowired
+//    private JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service;
+//
 //    @Override
-//    public List<JiaYueWindPowerCdqResultCover> getAll() {
-//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
-//        return  jiaYueWindPowerCdqResultCovers;
+//    @WR("W")
+//    public List<JiaYueWindPowerCdqResultCover> get() {
+//     List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//         return  jiaYueWindPowerCdqResultCovers;
 //    }
-
-    @Override
-    @WR("R")
-    public int deleteAll() {
-
-        return jiaYueWindPowerCdqResultCoverMapper.deleteAll();
-    }
-
-
-    /**
-     * 执行超短期预测
-     */
-    public void executeForecast() {
-
-        List<ElectricField> electricFieldList = new ArrayList<>();
-        ElectricField electricField1 = new ElectricField();
-        electricField1.setBelongForecastManufactor("SYJY");
-        electricField1.setCapacity(new BigDecimal(30.0000));
-        electricField1.setElectricFieldTypeEnum("2");
-        electricField1.setForecastManufactor("SYJY");
-        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
-        electricField1.setName("天津中能融合测试站A");
-        electricField1.setStationCode("J00770");
-        electricField1.setSign("FD0001");
-        electricField1.setNetSubstationName("J00770");
-
-        ElectricField electricField2 = new ElectricField();
-        electricField2.setBelongForecastManufactor("SYJY");
-        electricField2.setCapacity(new BigDecimal(12.0000));
-        electricField2.setElectricFieldTypeEnum("2");
-        electricField2.setForecastManufactor("SYJY");
-        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
-        electricField2.setName("天津中能融合测试站C");
-        electricField2.setStationCode("J00772");
-        electricField2.setSign("FD0003");
-        electricField2.setNetSubstationName("J00772");
-
-        ElectricField electricField3 = new ElectricField();
-        electricField3.setBelongForecastManufactor("SYJY");
-        electricField3.setCapacity(new BigDecimal(20.0000));
-        electricField3.setElectricFieldTypeEnum("2");
-        electricField2.setForecastManufactor("SYJY");
-        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
-        electricField3.setName("中能融合测试站B");
-        electricField3.setStationCode("J00771");
-        electricField3.setSign("FD0002");
-        electricField3.setNetSubstationName("J00771");
-
-        electricFieldList.add(electricField1);
-        electricFieldList.add(electricField2);
-        electricFieldList.add(electricField3);
-
-        electricFieldList.forEach(e -> {
-            String stationCode = e.getSign();
-            // 根据场站类型执行相应超短期预测
-            try {
-                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
-                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
-                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
-                Long startTime = calTime + 15 * 1000 * 60L;
-                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
-                Integer forecastPoints = Integer.parseInt(llcdq_point);
-                Integer forecastMinutes = (forecastPoints-1) * 15;
-                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
-                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes+1).getTime();
-
-                // 查询该时间段内的短期预测功率
-                List<JiaYueWindPowerDqResultCover> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverService.findByObjIdAndStartTimeAndEndTime(stationCode,new Date(startTime), new Date(endTime));
-
-
-//            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
-//            // 判断短期数据是否缺点
-//            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
-//                if (forecastPowerShortTermsMap.get(tempTime) == null) {
-//                    // 缺失时间点
-//                    ForecastPowerShortTerm forecastPowerShortTerms = null;
-//                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
-//                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
-//                    } else {
-//                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
-//                    }
-//                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+//
+//    @Override
+//    @WR("R")
+//    public int put(List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers) {
+//        if (jiaYueWindPowerCdqResultCovers != null && jiaYueWindPowerCdqResultCovers.size() >0 ){
+//            this.saveBatch(jiaYueWindPowerCdqResultCovers,jiaYueWindPowerCdqResultCovers.size());
+//        }
+//        return jiaYueWindPowerCdqResultCovers.size();
+//    }
+//
+////    @Override
+////    public List<JiaYueWindPowerCdqResultCover> getAll() {
+////        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+////        return  jiaYueWindPowerCdqResultCovers;
+////    }
+//
+//    @Override
+//    @WR("R")
+//    public int deleteAll() {
+//
+//        return jiaYueWindPowerCdqResultCoverMapper.deleteAll();
+//    }
+//
+//
+//    /**
+//     * 执行超短期预测
+//     */
+//    public void executeForecast() {
+//
+//        List<ElectricField> electricFieldList = new ArrayList<>();
+////        ElectricField electricField1 = new ElectricField();
+////        electricField1.setBelongForecastManufactor("SYJY");
+////        electricField1.setCapacity(new BigDecimal(30.0000));
+////        electricField1.setElectricFieldTypeEnum("2");
+////        electricField1.setForecastManufactor("SYJY");
+////        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
+////        electricField1.setName("天津中能融合测试站A");
+////        electricField1.setStationCode("J00770");
+////        electricField1.setSign("FD0001");
+////        electricField1.setNetSubstationName("J00770");
+//
+//        ElectricField electricField2 = new ElectricField();
+//        electricField2.setBelongForecastManufactor("SYJY");
+//        electricField2.setCapacity(new BigDecimal(12.0000));
+//        electricField2.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
+//        electricField2.setName("天津中能融合测试站C");
+//        electricField2.setStationCode("J00772");
+//        electricField2.setSign("FD0003");
+//        electricField2.setNetSubstationName("J00772");
+//
+//        ElectricField electricField3 = new ElectricField();
+//        electricField3.setBelongForecastManufactor("SYJY");
+//        electricField3.setCapacity(new BigDecimal(20.0000));
+//        electricField3.setElectricFieldTypeEnum("2");
+//        electricField2.setForecastManufactor("SYJY");
+//        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+//        electricField3.setName("中能融合测试站B");
+//        electricField3.setStationCode("J00771");
+//        electricField3.setSign("FD0002");
+//        electricField3.setNetSubstationName("J00771");
+//
+////        electricFieldList.add(electricField1);
+//        electricFieldList.add(electricField2);
+//        electricFieldList.add(electricField3);
+//
+//        electricFieldList.forEach(e -> {
+//            String stationCode = e.getSign();
+//            // 根据场站类型执行相应超短期预测
+//            try {
+//                // 获取查询时间,从当前时间所处时间点标记时间开始查询,截至到96个时间点对应的标记时间
+//                List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverFD0002List = null;
+//                List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverFD0003List = null;
+//                String cdqUpMin = sysParameterService.getSysParameterAndStationCode("CDQ_UP_MIN", "0", stationCode);
+//                Long calTime = DateMomentUtil.getMomentTime(System.currentTimeMillis() + Integer.parseInt(cdqUpMin) * 1000 * 60, 2, 15 * 60 * 1000L);
+//                Long startTime = calTime + 15 * 1000 * 60L;
+//                String llcdq_point = sysParameterService.getSysParameterAndStationCode("FILE_LLCDQ_POINT", "40", stationCode);
+//                Integer forecastPoints = Integer.parseInt(llcdq_point);
+//                Integer forecastMinutes = (forecastPoints-1) * 15;
+//                // 结束时间增加15分钟为了防止文件先生成,实时表中最后一个时间点没有点位的问题
+//                Long endTime = DateUtils.addMinutes(new Date(startTime), forecastMinutes+1).getTime();
+//
+//                if (stationCode.equals("FD0002")){
+//                    // 查询该时间段内的短期预测功率
+//                    jiaYueWindPowerDqResultCoverFD0002List = jiaYueWindPowerDqResultCoverFD0002Service.findByObjIdAndStartTimeAndEndTime(stationCode,new Date(startTime), new Date(endTime));
+//
+//                }
+//                if (stationCode.equals("FD0003")){
+//                    // 查询该时间段内的短期预测功率
+//                  jiaYueWindPowerDqResultCoverFD0003List = jiaYueWindPowerDqResultCoverFD0003Service.findByObjIdAndStartTimeAndEndTime(stationCode,new Date(startTime), new Date(endTime));
+//
+//                }
+//
+//
+//
+////            List<ForecastPowerShortTerm> addForecastPowerShortTermList = new ArrayList<>();
+////            // 判断短期数据是否缺点
+////            for (Long tempTime = startTime; tempTime <= endTime; tempTime = tempTime + 15 * 60 * 1000L) {
+////                if (forecastPowerShortTermsMap.get(tempTime) == null) {
+////                    // 缺失时间点
+////                    ForecastPowerShortTerm forecastPowerShortTerms = null;
+////                    if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+////                        forecastPowerShortTerms = forecastPowerShortTermService.generateSolarPowerShortTerm(tempTime, openCapacityMap.get(tempTime), electricField);
+////                    } else {
+////                        forecastPowerShortTerms = forecastPowerShortTermService.generateWindPowerShortTerm(tempTime, openCapacityMap.get(tempTime));
+////                    }
+////                    addForecastPowerShortTermList.add(forecastPowerShortTerms);
+////                }
+////            }
+////            if (!addForecastPowerShortTermList.isEmpty()) {
+////                // 保存短期预测
+////                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
+////                // 将补齐的预测功率追加到查询预测功率结果集中
+////                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+////            }
+//
+//                log.info("执行超短期预测生成。。。。。。{}", stationCode);
+////                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+////                    // 光伏电站
+////                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
+////                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
+//                // 风力电场
+//                if (stationCode.equals("FD0002")){
+//                    this.executeForecastForWind(jiaYueWindPowerDqResultCoverFD0002List,null, e.getCapacity(), e.getStationCode());
 //                }
+//                if (stationCode.equals("FD0003")){
+//                    this.executeForecastForWind(null,jiaYueWindPowerDqResultCoverFD0003List, e.getCapacity(), e.getStationCode());
+//                }
+//
+////                } else {
+////                    log.error("场站类型非法!");
+////                }
+//
+//            } catch (Exception ex) {
+//                log.error("系统运行错误!", ex);
 //            }
-//            if (!addForecastPowerShortTermList.isEmpty()) {
-//                // 保存短期预测
-//                this.forecastPowerShortTermRepository.saveAll(addForecastPowerShortTermList);
-//                // 将补齐的预测功率追加到查询预测功率结果集中
-//                forecastPowerShortTermList.addAll(addForecastPowerShortTermList);
+//        });
+//    }
+//
+//
+//
+//
+//    /**
+//     * 执行风电场超短期预测
+//     *
+//     * @param jiaYueWindPowerDqResultCoverFD0002List || jiaYueWindPowerDqResultCoverFD0003List 短期预测结果集
+//     * @param capacity                   装机容量
+//     */
+//    @WR("W")
+//    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverFD0002List, final List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverFD0003List,final BigDecimal capacity, String stationCode) {
+//
+//        List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverFD0002ArrayList = new ArrayList<>();
+//        List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverFD0003ArrayList = new ArrayList<>();
+////        JiaYueWindPowerCdqResultCover jiaYueWindPowerCdqResultCover;
+//        JiaYueWindPowerCdqResultCoverFD0002 jiaYueWindPowerCdqResultCoverFD0002 = null;
+//        JiaYueWindPowerCdqResultCoverFD0003 jiaYueWindPowerCdqResultCoverFD0003 = null;
+//        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
+//        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
+//        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
+//        BigDecimal stPower, ustPower, ustPowers;
+//        // 查询当前时间点标记时间前10分钟的可用功率
+//        Date currentTime = new Date(System.currentTimeMillis());
+//        Date startTime = DateUtils.addMinutes(currentTime, -10);
+//        Date endTime = DateUtils.addMinutes(currentTime, 1);
+//        // 场站编号转换为FD000?
+//        String objId = electricFieldService.numberToIdentification(stationCode);
+//        List<WindPowerReal15Min> windPowerReal15MinList = windPowerReal15MinService.findByObjIdAndDateTime(objId, startTime, endTime);
+//        List<WindPowerReal15Min> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+//        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+//        if (stationCode.equals("FD0002")) {
+//            if (filterList.size() > 0) {
+//                // 获取当前时刻对应的短期
+//                List<JiaYueWindPowerDqResultCoverFD0002> currentForecastPowerShortTermFd0002List = null;
+//                List<JiaYueWindPowerDqResultCoverFD0003> currentForecastPowerShortTermFd0003List = null;
+//                Float currentForecastPowerValue = 0f;
+//                try {
+//                    Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+//
+//                        currentForecastPowerShortTermFd0002List = jiaYueWindPowerDqResultCoverFD0002Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+//                        if (currentForecastPowerShortTermFd0002List.size() > 0) {
+//                            currentForecastPowerValue = currentForecastPowerShortTermFd0002List.get(0).getValue();
+//                        } else {
+//                            // 当前时间没有对应的短期,用实际功率最近的一个替换
+//                            filterList.sort(Comparator.comparing(WindPowerReal15Min::getDateTime).reversed());
+//                            currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+//                        }
+//
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//
+//                BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+//                //可用-短期差值
+//                BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+//
+//                    for (int i = 0; i < jiaYueWindPowerDqResultCoverFD0002List.size(); i++) {
+//                        jiaYueWindPowerCdqResultCoverFD0002 = new JiaYueWindPowerCdqResultCoverFD0002();
+//                        jiaYueWindPowerCdqResultCoverFD0002.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverFD0002List.get(i).getPreDateTime()));
+//                        Long date = null;
+//                        try {
+//                            date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+//                        } catch (Exception e) {
+//                            throw new RuntimeException(e);
+//                        }
+//                        Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+//                        Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+//                        jiaYueWindPowerCdqResultCoverFD0002.setDataTime(nowTime);
+//                        jiaYueWindPowerCdqResultCoverFD0002.setDataType(jiaYueWindPowerDqResultCoverFD0002List.get(i).getDataType());
+//                        jiaYueWindPowerCdqResultCoverFD0002.setPreDateTime(jiaYueWindPowerDqResultCoverFD0002List.get(i).getPreDateTime());
+//                        jiaYueWindPowerCdqResultCoverFD0002.setDataFlg(jiaYueWindPowerDqResultCoverFD0002List.get(i).getDataFlg());
+//                        jiaYueWindPowerCdqResultCoverFD0002.setObjId(jiaYueWindPowerDqResultCoverFD0002List.get(i).getObjId());
+//                        jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+//                        stPower = new BigDecimal(jiaYueWindPowerDqResultCoverFD0002List.get(i).getValue());
+//                        //短期*系数
+//                        ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+//                        // 如果短期预测小于等于0,则超短期为0
+//                        if (stPower.floatValue() <= 0) {
+//                            jiaYueWindPowerCdqResultCoverFD0002.setValue(0.0f);
+//                        } else {
+//                            BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+//                            String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+//                            log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+//                            String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+//                            log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+//                            ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+//                            if (ustPower.doubleValue() > capacity.doubleValue()) {
+//                                // 如果超短期结果超出装机容量,则超短期结果为装机容量
+//                                jiaYueWindPowerCdqResultCoverFD0002.setValue(capacity.floatValue());
+//                            } else if (ustPower.doubleValue() < 0) {
+//                                // 如果超短期结果小于0,则超短期结果为0
+//                                jiaYueWindPowerCdqResultCoverFD0002.setValue(0f);
+//                            } else {
+//                                if (cdqjsfs.equals("1")) {
+//                                    jiaYueWindPowerCdqResultCoverFD0002.setValue(ustPower.floatValue());
+//                                } else {
+//                                    jiaYueWindPowerCdqResultCoverFD0002.setValue(ustPowers.floatValue());
+//                                }
+//                            }
+//                        }
+//                        jiaYueWindPowerCdqResultCoverFD0002ArrayList.add(jiaYueWindPowerCdqResultCoverFD0002);
+//                    }
+//
+//            } else {
+//                log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+//                // 短期乘以系数
+//                for (int i = 0; i < jiaYueWindPowerDqResultCoverFD0002List.size(); i++) {
+//                    stPower = new BigDecimal(jiaYueWindPowerDqResultCoverFD0002List.get(i).getValue());
+//                    ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+//                    jiaYueWindPowerCdqResultCoverFD0002 = new JiaYueWindPowerCdqResultCoverFD0002();
+//                    jiaYueWindPowerCdqResultCoverFD0002.setDataDate(new Date());
+//                    Long date = null;
+//                    try {
+//                        date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+//                    } catch (Exception e) {
+//                        throw new RuntimeException(e);
+//                    }
+//                    Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+//                    Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+//                    jiaYueWindPowerCdqResultCoverFD0002.setDataTime(nowTime);
+//                    jiaYueWindPowerCdqResultCoverFD0002.setDataType(jiaYueWindPowerDqResultCoverFD0002List.get(i).getDataType());
+//                    jiaYueWindPowerCdqResultCoverFD0002.setPreDateTime(jiaYueWindPowerDqResultCoverFD0002List.get(i).getPreDateTime());
+//                    jiaYueWindPowerCdqResultCoverFD0002.setDataFlg(jiaYueWindPowerDqResultCoverFD0002List.get(i).getDataFlg());
+//                    jiaYueWindPowerCdqResultCoverFD0002.setValue(ustPower.floatValue());
+//                    jiaYueWindPowerCdqResultCoverFD0002.setObjId(jiaYueWindPowerDqResultCoverFD0002List.get(i).getObjId());
+//                    jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+//                    jiaYueWindPowerCdqResultCoverFD0002ArrayList.add(jiaYueWindPowerCdqResultCoverFD0002);
+//                }
 //            }
-
-                log.info("执行超短期预测生成。。。。。。{}", stationCode);
-//                if (ElectricFieldTypeEnum.E1.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
-//                    // 光伏电站
-//                    this.executeForecastForlight(forecastPowerShortTermList, electricField.getCapacity());
-//                } else if (ElectricFieldTypeEnum.E2.compareTo(electricField.getElectricFieldTypeEnum()) == 0) {
-                // 风力电场
-                this.executeForecastForWind(jiaYueWindPowerDqResultCoverList, e.getCapacity(), e.getStationCode());
-//                } else {
-//                    log.error("场站类型非法!");
+//        }
+//        if (stationCode.equals("FD0003")) {
+//            if (filterList.size() > 0) {
+//                // 获取当前时刻对应的短期
+//                List<JiaYueWindPowerDqResultCoverFD0003> currentForecastPowerShortTermFd0003List = null;
+//                Float currentForecastPowerValue = 0f;
+//                try {
+//                    Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+//
+//                    currentForecastPowerShortTermFd0003List = jiaYueWindPowerDqResultCoverFD0003Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+//                    if (currentForecastPowerShortTermFd0003List.size() > 0) {
+//                        currentForecastPowerValue = currentForecastPowerShortTermFd0003List.get(0).getValue();
+//                    } else {
+//                        // 当前时间没有对应的短期,用实际功率最近的一个替换
+//                        filterList.sort(Comparator.comparing(WindPowerReal15Min::getDateTime).reversed());
+//                        currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+//                    }
+//
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//
+//                BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+//                //可用-短期差值
+//                BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+//
+//                for (int i = 0; i < jiaYueWindPowerDqResultCoverFD0003List.size(); i++) {
+//                    jiaYueWindPowerCdqResultCoverFD0003 = new JiaYueWindPowerCdqResultCoverFD0003();
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverFD0003List.get(i).getPreDateTime()));
+//                    Long date = null;
+//                    try {
+//                        date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+//                    } catch (Exception e) {
+//                        throw new RuntimeException(e);
+//                    }
+//                    Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+//                    Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataTime(nowTime);
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverFD0003List.get(i).getDataType());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setPreDateTime(jiaYueWindPowerDqResultCoverFD0003List.get(i).getPreDateTime());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverFD0003List.get(i).getDataFlg());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setObjId(jiaYueWindPowerDqResultCoverFD0003List.get(i).getObjId());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+//                    stPower = new BigDecimal(jiaYueWindPowerDqResultCoverFD0003List.get(i).getValue());
+//                    //短期*系数
+//                    ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+//                    // 如果短期预测小于等于0,则超短期为0
+//                    if (stPower.floatValue() <= 0) {
+//                        jiaYueWindPowerCdqResultCoverFD0003.setValue(0.0f);
+//                    } else {
+//                        BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+//                        String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+//                        log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+//                        String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+//                        log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+//                        ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+//                        if (ustPower.doubleValue() > capacity.doubleValue()) {
+//                            // 如果超短期结果超出装机容量,则超短期结果为装机容量
+//                            jiaYueWindPowerCdqResultCoverFD0003.setValue(capacity.floatValue());
+//                        } else if (ustPower.doubleValue() < 0) {
+//                            // 如果超短期结果小于0,则超短期结果为0
+//                            jiaYueWindPowerCdqResultCoverFD0003.setValue(0f);
+//                        } else {
+//                            if (cdqjsfs.equals("1")) {
+//                                jiaYueWindPowerCdqResultCoverFD0003.setValue(ustPower.floatValue());
+//                            } else {
+//                                jiaYueWindPowerCdqResultCoverFD0003.setValue(ustPowers.floatValue());
+//                            }
+//                        }
+//                    }
+//                    jiaYueWindPowerCdqResultCoverFD0003ArrayList.add(jiaYueWindPowerCdqResultCoverFD0003);
+//                }
+//
+//            } else {
+//                log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
+//                // 短期乘以系数
+//                for (int i = 0; i < jiaYueWindPowerDqResultCoverFD0003List.size(); i++) {
+//                    stPower = new BigDecimal(jiaYueWindPowerDqResultCoverFD0003List.get(i).getValue());
+//                    ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+//                    jiaYueWindPowerCdqResultCoverFD0003 = new JiaYueWindPowerCdqResultCoverFD0003();
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataDate(new Date());
+//                    Long date = null;
+//                    try {
+//                        date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+//                    } catch (Exception e) {
+//                        throw new RuntimeException(e);
+//                    }
+//                    Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+//                    Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataTime(nowTime);
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverFD0003List.get(i).getDataType());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setPreDateTime(jiaYueWindPowerDqResultCoverFD0003List.get(i).getPreDateTime());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverFD0003List.get(i).getDataFlg());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setValue(ustPower.floatValue());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setObjId(jiaYueWindPowerDqResultCoverFD0003List.get(i).getObjId());
+//                    jiaYueWindPowerCdqResultCoverFD0003.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+//                    jiaYueWindPowerCdqResultCoverFD0003ArrayList.add(jiaYueWindPowerCdqResultCoverFD0003);
 //                }
-
-            } catch (Exception ex) {
-                log.error("系统运行错误!", ex);
-            }
-        });
-    }
-
-
-
-
-    /**
-     * 执行风电场超短期预测
-     *
-     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
-     * @param capacity                   装机容量
-     */
-    @WR("W")
-    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCover> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
-
-        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCoverList = new ArrayList<>();
-        JiaYueWindPowerCdqResultCover jiaYueWindPowerCdqResultCover;
-        //获取系统参数cdqjsfs,超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式
-        String cdqjsfs = sysParameterService.getSysParameterAndStationCode("cdqjsfs", "1", stationCode);
-        log.info("参数cdqjsfs值为:" + cdqjsfs + ",超短期计算方式,0为默认乘系数的方式,1为根据可用功率计算的方式。");
-        BigDecimal stPower, ustPower, ustPowers;
-        // 查询当前时间点标记时间前10分钟的可用功率
-        Date currentTime = new Date(System.currentTimeMillis());
-        Date startTime = DateUtils.addMinutes(currentTime, -10);
-        Date endTime = DateUtils.addMinutes(currentTime, 1);
-        // 场站编号转换为FD000?
-        String objId = electricFieldService.numberToIdentification(stationCode);
-        List<WindPowerReal15Min> windPowerReal15MinList = windPowerReal15MinService.findByObjIdAndDateTime(objId, startTime, endTime);
-        List<WindPowerReal15Min> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
-        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
-
-        if (filterList.size() > 0) {
-            // 获取当前时刻对应的短期
-            List<JiaYueWindPowerDqResultCover> currentForecastPowerShortTermList;
-            Float currentForecastPowerValue = 0f;
-            try {
-                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
-                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverService.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
-                if (currentForecastPowerShortTermList.size() > 0) {
-                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getValue();
-                } else {
-                    // 当前时间没有对应的短期,用实际功率最近的一个替换
-                    filterList.sort(Comparator.comparing(WindPowerReal15Min::getDateTime).reversed());
-                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-
-            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
-            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
-            //可用-短期差值
-            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
-            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
-                jiaYueWindPowerCdqResultCover = new JiaYueWindPowerCdqResultCover();
-                jiaYueWindPowerCdqResultCover.setDataDate(DateMomentUtil.convertLocalDateTimeToDate(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime()));
-                Long date = null;
-                try {
-                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-
-                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
-                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
-                jiaYueWindPowerCdqResultCover.setDataTime(nowTime);
-                jiaYueWindPowerCdqResultCover.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
-                jiaYueWindPowerCdqResultCover.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
-                jiaYueWindPowerCdqResultCover.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCover.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCover.setCreateTime( LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
-                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getValue());
-                //短期*系数
-                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                // 如果短期预测小于等于0,则超短期为0
-                if (stPower.floatValue() <= 0) {
-                    jiaYueWindPowerCdqResultCover.setValue(0.0f);
-                } else {
-                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
-                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
-                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
-                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
-                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
-                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
-                        jiaYueWindPowerCdqResultCover.setValue(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
-                        // 如果超短期结果小于0,则超短期结果为0
-                        jiaYueWindPowerCdqResultCover.setValue(0f);
-                    } else {
-                        if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCover.setValue(ustPower.floatValue());
-                        } else {
-                            jiaYueWindPowerCdqResultCover.setValue(ustPowers.floatValue());
-                        }
-                    }
-                }
-                jiaYueWindPowerCdqResultCoverList.add(jiaYueWindPowerCdqResultCover);
-            }
-        } else {
-            log.info("库中没有可用,本次可用计算数据采用短期*系数的方式生成数据");
-            // 短期乘以系数
-            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
-                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getValue());
-                ustPower = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                jiaYueWindPowerCdqResultCover = new JiaYueWindPowerCdqResultCover();
-                jiaYueWindPowerCdqResultCover.setDataDate(new Date());
-                Long date = null;
-                try {
-                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
-                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
-                jiaYueWindPowerCdqResultCover.setDataTime(nowTime);
-                jiaYueWindPowerCdqResultCover.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
-                jiaYueWindPowerCdqResultCover.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
-                jiaYueWindPowerCdqResultCover.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCover.setValue(ustPower.floatValue());
-                jiaYueWindPowerCdqResultCover.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCover.setCreateTime( LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
-                jiaYueWindPowerCdqResultCoverList.add(jiaYueWindPowerCdqResultCover);
-            }
-        }
-
-        if (jiaYueWindPowerCdqResultCoverList.size() > 0) {
-           this.saveCdq(jiaYueWindPowerCdqResultCoverList,stationCode);
-        }
-    }
-
-    @Override
-    @WR("W")
-    public void saveCdq(List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCoverList, String stationCode) {
-
-        jiaYueWindPowerCdqResultCoverService.get();
-        this.saveBatch(jiaYueWindPowerCdqResultCoverList,jiaYueWindPowerCdqResultCoverList.size());
-    }
-
-    @Override
-    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
-        jiaYueWindPowerCdqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode);
-    }
-    /**
-     *  将Date格式转换为Time格式
-     * @param utilDate
-     * @return
-     */
-    public static Time convertUtilDateToMySQLTime(Date utilDate) {
-        // 使用 SimpleDateFormat 提取时间部分
-        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
-        String timeString = timeFormat.format(utilDate);
-        // 将提取的时间部分转换为 MySQL TIME 类型
-        return Time.valueOf(timeString);
-    }
-
-}
+//            }
+//            this.saveCdq(null,jiaYueWindPowerCdqResultCoverFD0003ArrayList,stationCode);
+//        }
+//
+//    }
+//
+//    @Override
+//    @WR("W")
+//    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverFD0002List,List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverFD0003List, String stationCode) {
+//        if (stationCode.equals("FD0002")){
+//            jiaYueWindPowerCdqResultCoverFD0002Service.get();
+//            jiaYueWindPowerCdqResultCoverFD0002Service.saveBatch(jiaYueWindPowerCdqResultCoverFD0002List,jiaYueWindPowerCdqResultCoverFD0002List.size());
+//        }else {
+//            jiaYueWindPowerCdqResultCoverFD0003Service.get();
+//            jiaYueWindPowerCdqResultCoverFD0003Service.saveBatch(jiaYueWindPowerCdqResultCoverFD0003List,jiaYueWindPowerCdqResultCoverFD0003List.size());
+//        }
+//
+//    }
+//
+//    @Override
+//    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+//        jiaYueWindPowerCdqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode);
+//    }
+//    /**
+//     *  将Date格式转换为Time格式
+//     * @param utilDate
+//     * @return
+//     */
+//    public static Time convertUtilDateToMySQLTime(Date utilDate) {
+//        // 使用 SimpleDateFormat 提取时间部分
+//        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+//        String timeString = timeFormat.format(utilDate);
+//        // 将提取的时间部分转换为 MySQL TIME 类型
+//        return Time.valueOf(timeString);
+//    }
+//
+//}

+ 85 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0001CoverServiceImpl.java

@@ -0,0 +1,85 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapperFD0001;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0001Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0001;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0001CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0001, JiaYueWindPowerDqResultCoverFD0001> implements JiaYueWindPowerDqResultCoverFD0001Service {
+    @Resource
+    private JiaYueWindPowerDqResultCoverMapperFD0001 jiaYueWindPowerDqResultCoverMapperFD0001;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0001> get() {
+        List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0001.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0001> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0001.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0001> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0001.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0001.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverList, String stationCode) {
+        Time startTime = jiaYueWindPowerDqResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerDqResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerDqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerDqResultCoverList, jiaYueWindPowerDqResultCoverList.size());
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0001> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        String endTimeStr = simpleDateFormat.format(endTime);
+
+
+        List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0001.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 85 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0002CoverServiceImpl.java

@@ -0,0 +1,85 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapperFD0002;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0002Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0002;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0002CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0002, JiaYueWindPowerDqResultCoverFD0002> implements JiaYueWindPowerDqResultCoverFD0002Service {
+    @Resource
+    private JiaYueWindPowerDqResultCoverMapperFD0002 jiaYueWindPowerDqResultCoverMapperFD0002;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0002> get() {
+        List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0002.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0002> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0002.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0002> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0002.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0002.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverList, String stationCode) {
+        Time startTime = jiaYueWindPowerDqResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerDqResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerDqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerDqResultCoverList, jiaYueWindPowerDqResultCoverList.size());
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0002> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        String endTimeStr = simpleDateFormat.format(endTime);
+
+
+        List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0002.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 85 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0003CoverServiceImpl.java

@@ -0,0 +1,85 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapperFD0003;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0003Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0003;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0003CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0003, JiaYueWindPowerDqResultCoverFD0003> implements JiaYueWindPowerDqResultCoverFD0003Service {
+    @Resource
+    private JiaYueWindPowerDqResultCoverMapperFD0003 jiaYueWindPowerDqResultCoverMapperFD0003;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0003> get() {
+        List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0003.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0003> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0003.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0003> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0003.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0003.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverList, String stationCode) {
+        Time startTime = jiaYueWindPowerDqResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerDqResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerDqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerDqResultCoverList, jiaYueWindPowerDqResultCoverList.size());
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0003> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        String endTimeStr = simpleDateFormat.format(endTime);
+
+
+        List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0003.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 85 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0005CoverServiceImpl.java

@@ -0,0 +1,85 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapperFD0005;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0005Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0005;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0005CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0005, JiaYueWindPowerDqResultCoverFD0005> implements JiaYueWindPowerDqResultCoverFD0005Service {
+    @Resource
+    private JiaYueWindPowerDqResultCoverMapperFD0005 jiaYueWindPowerDqResultCoverMapperFD0005;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0005> get() {
+        List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0005.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0005> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0005.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0005> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0005.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0005.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverList, String stationCode) {
+        Time startTime = jiaYueWindPowerDqResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerDqResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerDqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerDqResultCoverList, jiaYueWindPowerDqResultCoverList.size());
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0005> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        String endTimeStr = simpleDateFormat.format(endTime);
+
+
+        List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0005.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 85 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0006CoverServiceImpl.java

@@ -0,0 +1,85 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapperFD0006;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0006Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0006;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0006CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0006, JiaYueWindPowerDqResultCoverFD0006> implements JiaYueWindPowerDqResultCoverFD0006Service {
+    @Resource
+    private JiaYueWindPowerDqResultCoverMapperFD0006 jiaYueWindPowerDqResultCoverMapperFD0006;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0006> get() {
+        List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0006.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0006> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0006.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0006> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0006.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0006.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverList, String stationCode) {
+        Time startTime = jiaYueWindPowerDqResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerDqResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerDqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerDqResultCoverList, jiaYueWindPowerDqResultCoverList.size());
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0006> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        String endTimeStr = simpleDateFormat.format(endTime);
+
+
+        List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0006.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 85 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0007CoverServiceImpl.java

@@ -0,0 +1,85 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapperFD0007;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0007Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0007;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0007CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0007, JiaYueWindPowerDqResultCoverFD0007> implements JiaYueWindPowerDqResultCoverFD0007Service {
+    @Resource
+    private JiaYueWindPowerDqResultCoverMapperFD0007 jiaYueWindPowerDqResultCoverMapperFD0007;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0007> get() {
+        List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0007.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0007> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0007.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0007> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0007.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0007.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverList, String stationCode) {
+        Time startTime = jiaYueWindPowerDqResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerDqResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerDqResultCoverList.get(jiaYueWindPowerDqResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerDqResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerDqResultCoverList, jiaYueWindPowerDqResultCoverList.size());
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0007> findByObjIdAndStartTimeAndEndTime(String stationCode, Date startTime, Date endTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        String endTimeStr = simpleDateFormat.format(endTime);
+
+
+        List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0007.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 72 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0001CoverServiceImpl.java

@@ -0,0 +1,72 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerNwpResultCoverMapperFD0001;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverFD0001Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0001;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultFD0001CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperFD0001, JiaYueWindPowerNwpResultCoverFD0001> implements JiaYueWindPowerNwpResultCoverFD0001Service {
+    @Resource
+    private JiaYueWindPowerNwpResultCoverMapperFD0001 jiaYueWindPowerNwpResultCoverMapperFD0001;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0001> get() {
+        List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0001.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverFD0001> getAll() {
+        List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0001.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperFD0001.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverList, String stationCode) {
+
+        Time startTime = jiaYueWindPowerNwpResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerNwpResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerNwpResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerNwpResultCoverList, jiaYueWindPowerNwpResultCoverList.size());
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0001> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0001.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 72 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0002CoverServiceImpl.java

@@ -0,0 +1,72 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerNwpResultCoverMapperFD0002;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverFD0002Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0002;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultFD0002CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperFD0002, JiaYueWindPowerNwpResultCoverFD0002> implements JiaYueWindPowerNwpResultCoverFD0002Service {
+    @Resource
+    private JiaYueWindPowerNwpResultCoverMapperFD0002 jiaYueWindPowerNwpResultCoverMapperFD0002;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0002> get() {
+        List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0002.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverFD0002> getAll() {
+        List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0002.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperFD0002.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverList, String stationCode) {
+
+        Time startTime = jiaYueWindPowerNwpResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerNwpResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerNwpResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerNwpResultCoverList, jiaYueWindPowerNwpResultCoverList.size());
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0002> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0002.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 72 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0003CoverServiceImpl.java

@@ -0,0 +1,72 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerNwpResultCoverMapperFD0003;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverFD0003Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0003;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultFD0003CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperFD0003, JiaYueWindPowerNwpResultCoverFD0003> implements JiaYueWindPowerNwpResultCoverFD0003Service {
+    @Resource
+    private JiaYueWindPowerNwpResultCoverMapperFD0003 jiaYueWindPowerNwpResultCoverMapperFD0003;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0003> get() {
+        List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0003.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverFD0003> getAll() {
+        List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0003.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperFD0003.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverList, String stationCode) {
+
+//        Time startTime = jiaYueWindPowerNwpResultCoverList.get(0).getDataTime();
+//        Time endTime = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataTime();
+//
+//        Date dateDateStart = jiaYueWindPowerNwpResultCoverList.get(0).getDataDate();
+//        Date dateDateEnd = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerNwpResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerNwpResultCoverList, jiaYueWindPowerNwpResultCoverList.size());
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0003> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0003.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 72 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0005CoverServiceImpl.java

@@ -0,0 +1,72 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerNwpResultCoverMapperFD0005;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverFD0005Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0005;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultFD0005CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperFD0005, JiaYueWindPowerNwpResultCoverFD0005> implements JiaYueWindPowerNwpResultCoverFD0005Service {
+    @Resource
+    private JiaYueWindPowerNwpResultCoverMapperFD0005 jiaYueWindPowerNwpResultCoverMapperFD0005;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0005> get() {
+        List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0005.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverFD0005> getAll() {
+        List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0005.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperFD0005.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverList, String stationCode) {
+
+        Time startTime = jiaYueWindPowerNwpResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerNwpResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerNwpResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerNwpResultCoverList, jiaYueWindPowerNwpResultCoverList.size());
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0005> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0005.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 72 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0006CoverServiceImpl.java

@@ -0,0 +1,72 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerNwpResultCoverMapperFD0006;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverFD0006Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0006;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultFD0006CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperFD0006, JiaYueWindPowerNwpResultCoverFD0006> implements JiaYueWindPowerNwpResultCoverFD0006Service {
+    @Resource
+    private JiaYueWindPowerNwpResultCoverMapperFD0006 jiaYueWindPowerNwpResultCoverMapperFD0006;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0006> get() {
+        List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0006.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverFD0006> getAll() {
+        List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0006.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperFD0006.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverList, String stationCode) {
+
+        Time startTime = jiaYueWindPowerNwpResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerNwpResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerNwpResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerNwpResultCoverList, jiaYueWindPowerNwpResultCoverList.size());
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0006> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0006.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 72 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0007CoverServiceImpl.java

@@ -0,0 +1,72 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerNwpResultCoverMapperFD0007;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverFD0007Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverFD0007;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultFD0007CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperFD0007, JiaYueWindPowerNwpResultCoverFD0007> implements JiaYueWindPowerNwpResultCoverFD0007Service {
+    @Resource
+    private JiaYueWindPowerNwpResultCoverMapperFD0007 jiaYueWindPowerNwpResultCoverMapperFD0007;
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0007> get() {
+        List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0007.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverFD0007> getAll() {
+        List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0007.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperFD0007.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverList, String stationCode) {
+
+        Time startTime = jiaYueWindPowerNwpResultCoverList.get(0).getDataTime();
+        Time endTime = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataTime();
+
+        Date dateDateStart = jiaYueWindPowerNwpResultCoverList.get(0).getDataDate();
+        Date dateDateEnd = jiaYueWindPowerNwpResultCoverList.get(jiaYueWindPowerNwpResultCoverList.size() - 1).getDataDate();
+
+//        jiaYueWindPowerNwpResultCoverMapper.deleteByDateTime(startTime,endTime,stationCode,dateDateStart,dateDateEnd);
+        this.saveBatch(jiaYueWindPowerNwpResultCoverList, jiaYueWindPowerNwpResultCoverList.size());
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverFD0007> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperFD0007.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 24 - 1
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/SysParameterServiceImpl.java

@@ -2,7 +2,6 @@ package com.jiayue.ipfcst.client.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jiayue.ipfcst.client.aop.WR;
 import com.jiayue.ipfcst.client.mapper.SysParameterMapper;
 import com.jiayue.ipfcst.client.service.SysParameterService;
 import com.jiayue.ipp.common.data.entity.SysParameter;
@@ -58,9 +57,33 @@ public class SysParameterServiceImpl extends ServiceImpl<SysParameterMapper, Sys
         sysParameter2.setSysValue("/home/syjy/ipp/zxgl/new");
         sysParameter2.setStationCode("J00771");
         sysParameter2.setDelFlag("0");
+
+        SysParameter sysParameter5 = new SysParameter();
+        sysParameter5.setId("fdbe737a8eff1ad6f37fcf887d307fe5");
+        sysParameter5.setSysKey("zxgl_config");
+        sysParameter5.setSysValue("/home/syjy/ipp/zxgl/new");
+        sysParameter5.setStationCode("J00929");
+        sysParameter5.setDelFlag("0");
+
+        SysParameter sysParameter6 = new SysParameter();
+        sysParameter6.setId("fdbe737a8eff1ad6f37fcf887d307fe5");
+        sysParameter6.setSysKey("zxgl_config");
+        sysParameter6.setSysValue("/home/syjy/ipp/zxgl/new");
+        sysParameter6.setStationCode("J00930");
+        sysParameter6.setDelFlag("0");
+
+        SysParameter sysParameter7 = new SysParameter();
+        sysParameter7.setId("fdbe737a8eff1ad6f37fcf887d307fe5");
+        sysParameter7.setSysKey("zxgl_config");
+        sysParameter7.setSysValue("/home/syjy/ipp/zxgl/new");
+        sysParameter7.setStationCode("J00931");
+        sysParameter7.setDelFlag("0");
         sysParameterList.add(sysParameter);
         sysParameterList.add(sysParameter1);
         sysParameterList.add(sysParameter2);
+        sysParameterList.add(sysParameter5);
+        sysParameterList.add(sysParameter6);
+        sysParameterList.add(sysParameter7);
         List<SysParameter> collect = sysParameterList.stream().filter(s -> s.getSysKey().equals(sysKey) && s.getStationCode().equals(stationCode)).collect(Collectors.toList());
 
         if (collect.isEmpty()) {

+ 65 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0001ServiceImpl.java

@@ -0,0 +1,65 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0001Mapper;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0002Mapper;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0001Service;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0002Service;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0001;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WindPowerReal15MinFD0001ServiceImpl extends ServiceImpl<WindPowerReal15MinFD0001Mapper, WindPowerReal15MinFD0001> implements WindPowerReal15MinFD0001Service {
+    @Resource
+    private WindPowerReal15MinFD0001Mapper windPowerReal15MinFD0001Mapper;
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0001> get(Date startTime, Date endTime) {
+     List<WindPowerReal15MinFD0001> windPowerReal15MinList =  windPowerReal15MinFD0001Mapper.selectByTime(startTime, endTime);
+         return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<WindPowerReal15MinFD0001> windPowerReal15MinList) {
+        if (windPowerReal15MinList != null && windPowerReal15MinList.size() > 0){
+            this.saveBatch(windPowerReal15MinList,windPowerReal15MinList.size());
+        }
+        return windPowerReal15MinList.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0001> getAll() {
+        List<WindPowerReal15MinFD0001> windPowerReal15MinList =  windPowerReal15MinFD0001Mapper.selectList(null);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0001> getAll(Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0001> windPowerReal15MinList =  windPowerReal15MinFD0001Mapper.selectByTime(startTime,endTime);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+       return windPowerReal15MinFD0001Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0001> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0001> windPowerReal15MinList = windPowerReal15MinFD0001Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return windPowerReal15MinList;
+    }
+}

+ 62 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0002ServiceImpl.java

@@ -0,0 +1,62 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0002Mapper;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0002Service;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WindPowerReal15MinFD0002ServiceImpl extends ServiceImpl<WindPowerReal15MinFD0002Mapper, WindPowerReal15MinFD0002> implements WindPowerReal15MinFD0002Service {
+    @Resource
+    private WindPowerReal15MinFD0002Mapper windPowerReal15MinFD0002Mapper;
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0002> get(Date startTime, Date endTime) {
+     List<WindPowerReal15MinFD0002> windPowerReal15MinList =  windPowerReal15MinFD0002Mapper.selectByTime(startTime, endTime);
+         return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<WindPowerReal15MinFD0002> windPowerReal15MinList) {
+        if (windPowerReal15MinList != null && windPowerReal15MinList.size() > 0){
+            this.saveBatch(windPowerReal15MinList,windPowerReal15MinList.size());
+        }
+        return windPowerReal15MinList.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0002> getAll() {
+        List<WindPowerReal15MinFD0002> windPowerReal15MinList =  windPowerReal15MinFD0002Mapper.selectList(null);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0002> getAll(Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0002> windPowerReal15MinList =  windPowerReal15MinFD0002Mapper.selectByTime(startTime,endTime);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+       return windPowerReal15MinFD0002Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0002> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0002> windPowerReal15MinList = windPowerReal15MinFD0002Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return windPowerReal15MinList;
+    }
+}

+ 65 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0003ServiceImpl.java

@@ -0,0 +1,65 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0003Mapper;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinMapper;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0003Service;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinService;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15Min;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0003;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WindPowerReal15MinFD0003ServiceImpl extends ServiceImpl<WindPowerReal15MinFD0003Mapper, WindPowerReal15MinFD0003> implements WindPowerReal15MinFD0003Service {
+    @Resource
+    private WindPowerReal15MinFD0003Mapper windPowerReal15MinFD0003Mapper;
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0003> get(Date startTime, Date endTime) {
+     List<WindPowerReal15MinFD0003> windPowerReal15MinList =  windPowerReal15MinFD0003Mapper.selectByTime(startTime, endTime);
+         return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<WindPowerReal15MinFD0003> windPowerReal15MinList) {
+        if (windPowerReal15MinList != null && windPowerReal15MinList.size() > 0){
+            this.saveBatch(windPowerReal15MinList,windPowerReal15MinList.size());
+        }
+        return windPowerReal15MinList.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0003> getAll() {
+        List<WindPowerReal15MinFD0003> windPowerReal15MinList =  windPowerReal15MinFD0003Mapper.selectList(null);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0003> getAll(Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0003> windPowerReal15MinList =  windPowerReal15MinFD0003Mapper.selectByTime(startTime,endTime);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+       return windPowerReal15MinFD0003Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0003> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0003> windPowerReal15MinList = windPowerReal15MinFD0003Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return windPowerReal15MinList;
+    }
+}

+ 65 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0005ServiceImpl.java

@@ -0,0 +1,65 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0002Mapper;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0005Mapper;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0002Service;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0005Service;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0005;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WindPowerReal15MinFD0005ServiceImpl extends ServiceImpl<WindPowerReal15MinFD0005Mapper, WindPowerReal15MinFD0005> implements WindPowerReal15MinFD0005Service {
+    @Resource
+    private WindPowerReal15MinFD0005Mapper windPowerReal15MinFD0005Mapper;
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0005> get(Date startTime, Date endTime) {
+     List<WindPowerReal15MinFD0005> windPowerReal15MinList =  windPowerReal15MinFD0005Mapper.selectByTime(startTime, endTime);
+         return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<WindPowerReal15MinFD0005> windPowerReal15MinList) {
+        if (windPowerReal15MinList != null && windPowerReal15MinList.size() > 0){
+            this.saveBatch(windPowerReal15MinList,windPowerReal15MinList.size());
+        }
+        return windPowerReal15MinList.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0005> getAll() {
+        List<WindPowerReal15MinFD0005> windPowerReal15MinList =  windPowerReal15MinFD0005Mapper.selectList(null);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0005> getAll(Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0005> windPowerReal15MinList =  windPowerReal15MinFD0005Mapper.selectByTime(startTime,endTime);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+       return windPowerReal15MinFD0005Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0005> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0005> windPowerReal15MinList = windPowerReal15MinFD0005Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return windPowerReal15MinList;
+    }
+}

+ 65 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0006ServiceImpl.java

@@ -0,0 +1,65 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0002Mapper;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0006Mapper;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0002Service;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0006Service;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0006;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WindPowerReal15MinFD0006ServiceImpl extends ServiceImpl<WindPowerReal15MinFD0006Mapper, WindPowerReal15MinFD0006> implements WindPowerReal15MinFD0006Service {
+    @Resource
+    private WindPowerReal15MinFD0006Mapper windPowerReal15MinFD0006Mapper;
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0006> get(Date startTime, Date endTime) {
+     List<WindPowerReal15MinFD0006> windPowerReal15MinList =  windPowerReal15MinFD0006Mapper.selectByTime(startTime, endTime);
+         return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<WindPowerReal15MinFD0006> windPowerReal15MinList) {
+        if (windPowerReal15MinList != null && windPowerReal15MinList.size() > 0){
+            this.saveBatch(windPowerReal15MinList,windPowerReal15MinList.size());
+        }
+        return windPowerReal15MinList.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0006> getAll() {
+        List<WindPowerReal15MinFD0006> windPowerReal15MinList =  windPowerReal15MinFD0006Mapper.selectList(null);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0006> getAll(Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0006> windPowerReal15MinList =  windPowerReal15MinFD0006Mapper.selectByTime(startTime,endTime);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+       return windPowerReal15MinFD0006Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0006> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0006> windPowerReal15MinList = windPowerReal15MinFD0006Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return windPowerReal15MinList;
+    }
+}

+ 65 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0007ServiceImpl.java

@@ -0,0 +1,65 @@
+package com.jiayue.ipfcst.client.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ipfcst.client.aop.WR;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0002Mapper;
+import com.jiayue.ipfcst.client.mapper.WindPowerReal15MinFD0007Mapper;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0002Service;
+import com.jiayue.ipfcst.client.service.WindPowerReal15MinFD0007Service;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0002;
+import com.jiayue.ipp.common.data.entity.WindPowerReal15MinFD0007;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WindPowerReal15MinFD0007ServiceImpl extends ServiceImpl<WindPowerReal15MinFD0007Mapper, WindPowerReal15MinFD0007> implements WindPowerReal15MinFD0007Service {
+    @Resource
+    private WindPowerReal15MinFD0007Mapper windPowerReal15MinFD0007Mapper;
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0007> get(Date startTime, Date endTime) {
+     List<WindPowerReal15MinFD0007> windPowerReal15MinList =  windPowerReal15MinFD0007Mapper.selectByTime(startTime, endTime);
+         return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<WindPowerReal15MinFD0007> windPowerReal15MinList) {
+        if (windPowerReal15MinList != null && windPowerReal15MinList.size() > 0){
+            this.saveBatch(windPowerReal15MinList,windPowerReal15MinList.size());
+        }
+        return windPowerReal15MinList.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0007> getAll() {
+        List<WindPowerReal15MinFD0007> windPowerReal15MinList =  windPowerReal15MinFD0007Mapper.selectList(null);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public List<WindPowerReal15MinFD0007> getAll(Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0007> windPowerReal15MinList =  windPowerReal15MinFD0007Mapper.selectByTime(startTime,endTime);
+        return  windPowerReal15MinList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+
+       return windPowerReal15MinFD0007Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<WindPowerReal15MinFD0007> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<WindPowerReal15MinFD0007> windPowerReal15MinList = windPowerReal15MinFD0007Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return windPowerReal15MinList;
+    }
+}

+ 120 - 24
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingDqInfoServiceImpl.java

@@ -6,9 +6,7 @@ import com.jiayue.ipfcst.client.dto.FileParsingConfig;
 import com.jiayue.ipfcst.client.dto.ParsingConstant;
 import com.jiayue.ipfcst.client.mapper.JiaYueWindPowerDqResultCoverMapper;
 import com.jiayue.ipfcst.client.mapper.an.ParsingDqInfoMapper;
-import com.jiayue.ipfcst.client.service.ElectricFieldService;
-import com.jiayue.ipfcst.client.service.ForecastPowerShortTermHisService;
-import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverService;
+import com.jiayue.ipfcst.client.service.*;
 import com.jiayue.ipfcst.client.service.an.ParsingDqInfoService;
 import com.jiayue.ipfcst.client.service.an.ParsingInterface;
 import com.jiayue.ipfcst.client.utils.Constant;
@@ -16,16 +14,18 @@ import com.jiayue.ipfcst.client.utils.FieldUtil;
 import com.jiayue.ipfcst.client.utils.FileUtil;
 import com.jiayue.ipfcst.client.utils.PUtil;
 import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
-import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCover;
+import com.jiayue.ipp.common.data.entity.*;
 import com.jiayue.ipp.common.data.entity.an.ParsingDqInfo;
 import com.jiayue.ipp.common.data.entity.an.ParsingInfo;
 import com.jiayue.ipp.common.data.entity.an.ParsingUrl;
 import com.jiayue.ipp.common.data.enums.FileTypeEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.beanutils.PropertyUtils;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.sql.Time;
 import java.text.SimpleDateFormat;
@@ -50,6 +50,18 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
 
     private final JiaYueWindPowerDqResultCoverService jiaYueWindPowerDqResultCoverService;
 
+    private final JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service;
+
     private final ElectricFieldService electricFieldService;
 
     JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper;
@@ -69,14 +81,19 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
         String parsingStatus = ParsingConstant.FAIL;
 
         try {
-            List<JiaYueWindPowerDqResultCover> jiaYueWindPowerDqResultCoverList = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverFD0001List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverFD0002List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverFD0003List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverFD0005List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverFD0006List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverFD0007List = new ArrayList<>();
 
             ParsingDqInfo parsingDqInfo = new ParsingDqInfo();
             parsingDqInfo.setId("a6bef32fab9fb298528851f1d85c77f2");
             parsingDqInfo.setDataType("m");
             parsingDqInfo.setFileName("DQ_");
             parsingDqInfo.setGenDate("");
-            parsingDqInfo.setStationCode("J00770,J00771,J00772");
+            parsingDqInfo.setStationCode("J00770,J00771,J00772,J00929,J00930,J00931");
             parsingDqInfo.setDelFlag("0");
             parsingDqInfo.setForecastTime("1<=>2<=>date=<=>yyyy-MM-dd");
             parsingDqInfo.setFpValue("3-1538<=>5");
@@ -87,6 +104,12 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
 
             int hour = Integer.valueOf(fileNameHour);
 
+            if (hour == 1 || hour == 13) {
+                log.info("不需解析改时间点的文件!");
+                return parsingStatus += "不需解析改时间点的文件!";
+
+            }
+
             if (hour >= 1 && hour < 5) {
                 fileNameHour = "01";
             } else if (hour >= 5 && hour < 13) {
@@ -105,9 +128,30 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
             String fileDate = fileYear + "-" + fileMonth + "-" + fileDay;
 
             //判断文件名是否符合配置
+
             if (file.getName().contains(parsingDqInfo.getFileName())) {
                 // 根据文件名日期时间进行查询,看数据库中是否已存在相同的解析文件
-                List<JiaYueWindPowerDqResultCover> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverService.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                List<? extends Serializable> jiaYueWindPowerDqResultCovers = new ArrayList<>();
+                if (parsingUrl.getStationCode().equals("J00770")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0001Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00771")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0002Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00772")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0003Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00929")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0005Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00930")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0006Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00931")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0007Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+
+//                    List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0002Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                 if (jiaYueWindPowerDqResultCovers == null || jiaYueWindPowerDqResultCovers.size() == 0) {
                     List<String> fileContent = FileUtil.getFileContent(file);
                     if (parsingDqInfo.getDataType().equals(FieldUtil.MULTI)) {
@@ -117,7 +161,7 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
 
                         if (bigDecimals.size() > 0) {
 
-                            LocalDate genDate = parsingGenDate(parsingDqInfo.getGenDate(), fileContent);
+//                                LocalDate genDate = parsingGenDate(parsingDqInfo.getGenDate(), fileContent);
                             Long forecastTime = parsingForecastTime(parsingDqInfo.getForecastTime(), fileContent);
 
                             if (forecastTime != 0l) {
@@ -140,11 +184,56 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                                     Date da = simpleDateFormat.parse(fileDate);
 
                                     // 存入默认数据库(远端)
-                                    jiaYueWindPowerDqResultCoverList.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
-                                            new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString));
+                                    if (parsingUrl.getStationCode().equals("J00770")) {
+                                        jiaYueWindPowerDqResultCoverFD0001List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0001()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J00771")) {
+                                        jiaYueWindPowerDqResultCoverFD0002List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0002()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J00772")) {
+                                        jiaYueWindPowerDqResultCoverFD0003List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0003()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J00929")) {
+                                        jiaYueWindPowerDqResultCoverFD0005List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0005()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J00930")) {
+                                        jiaYueWindPowerDqResultCoverFD0006List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0006()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J00931")) {
+                                        jiaYueWindPowerDqResultCoverFD0007List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0007()));
+                                    }
+
+                                }
+                                if (parsingUrl.getStationCode().equals("J00770")) {
+                                    jiaYueWindPowerDqResultCoverFD0001Service.saveDq(jiaYueWindPowerDqResultCoverFD0001List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+
+                                }
+                                if (parsingUrl.getStationCode().equals("J00771")) {
+                                    jiaYueWindPowerDqResultCoverFD0002Service.saveDq(jiaYueWindPowerDqResultCoverFD0002List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+
+                                }
+                                if (parsingUrl.getStationCode().equals("J00772")) {
+                                    jiaYueWindPowerDqResultCoverFD0003Service.saveDq(jiaYueWindPowerDqResultCoverFD0003List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+
+                                }
+                                if (parsingUrl.getStationCode().equals("J00929")) {
+                                    jiaYueWindPowerDqResultCoverFD0005Service.saveDq(jiaYueWindPowerDqResultCoverFD0005List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+
+                                }
+                                if (parsingUrl.getStationCode().equals("J00930")) {
+                                    jiaYueWindPowerDqResultCoverFD0006Service.saveDq(jiaYueWindPowerDqResultCoverFD0006List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+
+                                }
+                                if (parsingUrl.getStationCode().equals("J00931")) {
+                                    jiaYueWindPowerDqResultCoverFD0007Service.saveDq(jiaYueWindPowerDqResultCoverFD0007List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                                 }
 
-                                jiaYueWindPowerDqResultCoverService.saveDq(jiaYueWindPowerDqResultCoverList, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
 
                                 log.info("解析DQ文件:{} 成功! O(∩_∩)O", file.getName());
                                 parsingStatus = FileTypeEnum.DQ.name();
@@ -162,12 +251,11 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                         log.info("dq暂无单行解析方式");
                     }
 
-                }else {
+                } else {
                     parsingStatus += "该时间点文件已经解析过,无需再次解析";
                     log.info("已经解析过相同时间点的文件无需再次解析");
                 }
             }
-
         } catch (Exception e) {
             parsingStatus += "解析短期数据失败";
             log.error("解析短期数据失败! /(ㄒoㄒ)/~~", e);
@@ -177,7 +265,6 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
 
     }
 
-
     //目前所知该类型在文件中只有s一种形式==》暂不支持m
     protected LocalDate parsingGenDate(String sign, List<String> fileContent) {
         LocalDate genDate = LocalDate.now();
@@ -294,15 +381,24 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
      * @param time
      * @return
      */
-    public JiaYueWindPowerDqResultCover jiaYueWindPowerDqResultCover(LocalDateTime localDateTime, String objId, Float bigDecimal, LocalDateTime creatTime, Date date, Time time) {
-        JiaYueWindPowerDqResultCover jiaYueWindPowerDqResultCover = new JiaYueWindPowerDqResultCover();
-        jiaYueWindPowerDqResultCover.setPreDateTime(localDateTime);
-        jiaYueWindPowerDqResultCover.setObjId(objId);
-        jiaYueWindPowerDqResultCover.setDataType("ACTIVE_POWER");
-        jiaYueWindPowerDqResultCover.setDataFlg("OTHER");
-        jiaYueWindPowerDqResultCover.setValue(bigDecimal);
-        jiaYueWindPowerDqResultCover.setDataDate(date);
-        jiaYueWindPowerDqResultCover.setDataTime(time);
-        return jiaYueWindPowerDqResultCover;
+
+    public <T extends Serializable> T jiaYueWindPowerDqResultCover(LocalDateTime localDateTime, String objId, Float bigDecimal, LocalDateTime creatTime, Date date, Time time, T targetType) {
+
+        try {
+            // 使用反射创建实体对象
+            PropertyUtils.setProperty(targetType, "preDateTime", localDateTime);
+            PropertyUtils.setProperty(targetType, "objId", objId);
+//            PropertyUtils.setProperty(targetType, "dataType", "ACTIVE_POWER");
+//            PropertyUtils.setProperty(targetType, "dataFlg", "OTHER");
+            PropertyUtils.setProperty(targetType, "activePower", bigDecimal);
+            PropertyUtils.setProperty(targetType, "dataDate", date);
+            PropertyUtils.setProperty(targetType, "dataTime", time);
+            PropertyUtils.setProperty(targetType, "createTime", LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 处理异常,例如日志记录或其他操作
+        }
+
+        return targetType;
     }
 }

+ 301 - 43
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingNwpInfoServiceImpl.java

@@ -5,8 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jiayue.ipfcst.client.dto.FileParsingConfig;
 import com.jiayue.ipfcst.client.dto.ParsingConstant;
 import com.jiayue.ipfcst.client.mapper.an.ParsingNwpInfoMapper;
-import com.jiayue.ipfcst.client.service.ElectricFieldService;
-import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverService;
+import com.jiayue.ipfcst.client.service.*;
 import com.jiayue.ipfcst.client.service.an.ParsingInterface;
 import com.jiayue.ipfcst.client.service.an.ParsingNwpInfoService;
 import com.jiayue.ipfcst.client.utils.Constant;
@@ -20,10 +19,12 @@ import com.jiayue.ipp.common.data.entity.an.ParsingUrl;
 import com.jiayue.ipp.common.data.enums.FileTypeEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.beanutils.PropertyUtils;
 import org.springframework.stereotype.Service;
 
 
 import java.io.File;
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.sql.Time;
 import java.text.SimpleDateFormat;
@@ -48,7 +49,18 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
 
     private final ParsingNwpInfoMapper parsingNwpInfoMapper;
 
-    private final JiaYueWindPowerNwpResultCoverService jiaYueWindPowerNwpResultCoverService;
+    private final JiaYueWindPowerNwpResultCoverFD0001Service jiaYueWindPowerNwpResultCoverFD0001Service;
+
+    private final JiaYueWindPowerNwpResultCoverFD0002Service jiaYueWindPowerNwpResultCoverFD0002Service;
+
+    private final JiaYueWindPowerNwpResultCoverFD0003Service jiaYueWindPowerNwpResultCoverFD0003Service;
+
+    private final JiaYueWindPowerNwpResultCoverFD0005Service jiaYueWindPowerNwpResultCoverFD0005Service;
+
+    private final JiaYueWindPowerNwpResultCoverFD0006Service jiaYueWindPowerNwpResultCoverFD0006Service;
+
+    private final JiaYueWindPowerNwpResultCoverFD0007Service jiaYueWindPowerNwpResultCoverFD0007Service;
+
 
     private final ElectricFieldService electricFieldService;
 
@@ -75,7 +87,7 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
             parsingNwpInfo1.setId("a6bef32fab9fb298528851f1d85c77f2");
             parsingNwpInfo1.setDataType("m");
             parsingNwpInfo1.setFileName("NWP_");
-            parsingNwpInfo1.setStationCode("J00770,J00771,J00772");
+            parsingNwpInfo1.setStationCode("J00770,J00771,J00772,J00929,J00930,J00931");
             parsingNwpInfo1.setDelFlag("0");
             parsingNwpInfo1.setPreTime("1<=>2<=>date=<=>yyyy-MM-dd");
 //            parsingNwpInfo1.setScDate();
@@ -106,7 +118,14 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
             parsingNwpInfo1.setWd100("3-1322<=>35");
             parsingNwpInfo1.setWd170("3-1322<=>36");
             parsingNwpInfos.add(parsingNwpInfo1);
-            List<JiaYueWindPowerNwpResultCover> jiaYueWindPowerNwpResultCoverList = new ArrayList<>();
+
+            List<JiaYueWindPowerNwpResultCoverFD0001> jiaYueWindPowerNwpResultCoverFD0001List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0002> jiaYueWindPowerNwpResultCoverFD0002List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0003> jiaYueWindPowerNwpResultCoverFD0003List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverFD0005List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverFD0006List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverFD0007List = new ArrayList<>();
+
 
             // 获取文件名中的日期时间进行判断
             String fileName = file.getName();
@@ -114,6 +133,13 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
 
             int hour = Integer.valueOf(fileNameHour);
 
+
+            if (hour == 1 || hour == 13) {
+                log.info("不需解析改时间点的文件!");
+                return parsingStatus += "不需解析改时间点的文件!";
+
+            }
+
             if (hour >= 1 && hour < 5) {
                 fileNameHour = "01";
             } else if (hour >= 5 && hour < 13) {
@@ -130,9 +156,30 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
             String fileMonth = fileName.substring(8, 10);
             String fileDay = fileName.substring(10, 12);
             String fileDate = fileYear + "-" + fileMonth + "-" + fileDay;
+
+
+
             //判断文件名是否符合配置
             if (file.getName().contains(parsingNwpInfo1.getFileName())) {
-                List<JiaYueWindPowerNwpResultCover> jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverService.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                List<? extends Serializable> jiaYueWindPowerNwpResultCovers = new ArrayList<>();
+                if (parsingUrl.getStationCode().equals("J00770")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0001Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00771")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0002Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00772")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0003Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00929")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0005Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00930")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0006Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J00931")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0007Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
                 if (jiaYueWindPowerNwpResultCovers == null || jiaYueWindPowerNwpResultCovers.size() == 0) {
 
                     List<String> fileContent = FileUtil.getFileContent(file);
@@ -181,13 +228,50 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                                 Date da = simpleDateFormat.parse(fileDate);
 
                                 // 存入默认数据库(远端)
-                                jiaYueWindPowerNwpResultCoverList.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
-                                        , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i));
+                                if (parsingUrl.getStationCode().equals("J00770")) {
+                                    jiaYueWindPowerNwpResultCoverFD0001List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverFD0001()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J00771")) {
+                                    jiaYueWindPowerNwpResultCoverFD0002List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverFD0002()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J00772")) {
+                                    jiaYueWindPowerNwpResultCoverFD0003List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverFD0003()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J00929")) {
+                                    jiaYueWindPowerNwpResultCoverFD0005List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverFD0005()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J00930")) {
+                                    jiaYueWindPowerNwpResultCoverFD0006List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverFD0006()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J00931")) {
+                                    jiaYueWindPowerNwpResultCoverFD0007List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, ts, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverFD0007()));
+                                }
                                 time += Constant.INTERVALTIME;
-//                                        time1+= Constant.INTERVALTIME;
                             }
-
-                            jiaYueWindPowerNwpResultCoverService.saveNwp(jiaYueWindPowerNwpResultCoverList, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            if (parsingUrl.getStationCode().equals("J00770")) {
+                                jiaYueWindPowerNwpResultCoverFD0001Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0001List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J00771")) {
+                                jiaYueWindPowerNwpResultCoverFD0002Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0002List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J00772")) {
+                                jiaYueWindPowerNwpResultCoverFD0003Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0003List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J00929")) {
+                                jiaYueWindPowerNwpResultCoverFD0005Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0005List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J00930")) {
+                                jiaYueWindPowerNwpResultCoverFD0006Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0006List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J00931")) {
+                                jiaYueWindPowerNwpResultCoverFD0007Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0007List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
                             parsingStatus = FileTypeEnum.NWP72.name();
                             log.info("解析Nwp文件:{} 成功! O(∩_∩)O", file.getName());
                         } else {
@@ -198,7 +282,7 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                         parsingStatus += "nwp暂无单行解析方式";
                         log.info("nwp暂无单行解析方式");
                     }
-                }else {
+                } else {
                     parsingStatus += "该时间点文件已经解析过,无需再次解析";
                     log.info("已经解析过相同时间点的文件无需再次解析");
                 }
@@ -295,37 +379,211 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
      * @param i
      * @return
      */
-    public JiaYueWindPowerNwpResultCover jiaYueWindPowerNwpResultCover(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
-                                                                       List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
-                                                                       List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i) {
-        JiaYueWindPowerNwpResultCover jiaYueWindPowerNwpResultCover = new JiaYueWindPowerNwpResultCover();
-        jiaYueWindPowerNwpResultCover.setPreDateTime(localDateTime);
-        jiaYueWindPowerNwpResultCover.setObjId(objId);
-        jiaYueWindPowerNwpResultCover.setDataType("ACTIVE_POWER");
-        jiaYueWindPowerNwpResultCover.setDataFlg("OTHER");
-        jiaYueWindPowerNwpResultCover.setDataDate(date);
-        jiaYueWindPowerNwpResultCover.setDataTime(time);
-        jiaYueWindPowerNwpResultCover.setPressure(valueSet(pressures, i));
-        jiaYueWindPowerNwpResultCover.setRh(valueSet(rhs, i));
-        jiaYueWindPowerNwpResultCover.setSwr(valueSet(swrs, i));
-        jiaYueWindPowerNwpResultCover.setT(valueSet(ts, i));
-        jiaYueWindPowerNwpResultCover.setWs10(valueSet(ws10s, i));
-        jiaYueWindPowerNwpResultCover.setWd10(valueSet(wd10s, i));
-        jiaYueWindPowerNwpResultCover.setWs30(valueSet(ws30s, i));
-        jiaYueWindPowerNwpResultCover.setWd30(valueSet(wd30s, i));
-        jiaYueWindPowerNwpResultCover.setWs50(valueSet(ws50s, i));
-        jiaYueWindPowerNwpResultCover.setWd50(valueSet(wd50s, i));
-        jiaYueWindPowerNwpResultCover.setWs70(valueSet(ws70s, i));
-        jiaYueWindPowerNwpResultCover.setWd70(valueSet(wd70s, i));
-        jiaYueWindPowerNwpResultCover.setWs80(valueSet(ws80s, i));
-        jiaYueWindPowerNwpResultCover.setWd80(valueSet(wd80s, i));
-        jiaYueWindPowerNwpResultCover.setWs90(valueSet(ws90s, i));
-        jiaYueWindPowerNwpResultCover.setWd90(valueSet(wd90s, i));
-        jiaYueWindPowerNwpResultCover.setWs100(valueSet(ws100s, i));
-        jiaYueWindPowerNwpResultCover.setWd100(valueSet(wd100s, i));
-        jiaYueWindPowerNwpResultCover.setWs170(valueSet(ws170s, i));
-        jiaYueWindPowerNwpResultCover.setWd170(valueSet(wd170s, i));
-        return jiaYueWindPowerNwpResultCover;
+    public <T extends Serializable> T jiaYueWindPowerNwpResultCover(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
+                                                                    List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
+                                                                    List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i, T targetType) {
+
+        try {
+            // 使用反射创建实体对象
+            PropertyUtils.setProperty(targetType, "preDateTime", localDateTime);
+            PropertyUtils.setProperty(targetType, "objId", objId);
+//            PropertyUtils.setProperty(targetType, "dataType", "ACTIVE_POWER");
+//            PropertyUtils.setProperty(targetType, "dataFlg", "OTHER");
+            PropertyUtils.setProperty(targetType, "dataDate", date);
+            PropertyUtils.setProperty(targetType, "dataDate", date);
+            PropertyUtils.setProperty(targetType, "dataTime", time);
+            PropertyUtils.setProperty(targetType, "p", valueSet(pressures, i));
+            PropertyUtils.setProperty(targetType, "h", valueSet(rhs, i));
+            PropertyUtils.setProperty(targetType, "swr", valueSet(swrs, i));
+            PropertyUtils.setProperty(targetType, "t", valueSet(ts, i));
+            PropertyUtils.setProperty(targetType, "ws_10", valueSet(ws10s, i));
+            PropertyUtils.setProperty(targetType, "wd_10", valueSet(wd10s, i));
+            PropertyUtils.setProperty(targetType, "ws_30", valueSet(ws30s, i));
+            PropertyUtils.setProperty(targetType, "wd_30", valueSet(wd30s, i));
+            PropertyUtils.setProperty(targetType, "ws_50", valueSet(ws50s, i));
+            PropertyUtils.setProperty(targetType, "wd_50", valueSet(wd50s, i));
+            PropertyUtils.setProperty(targetType, "ws_70", valueSet(ws70s, i));
+            PropertyUtils.setProperty(targetType, "wd_70", valueSet(wd70s, i));
+            PropertyUtils.setProperty(targetType, "ws_80", valueSet(ws80s, i));
+            PropertyUtils.setProperty(targetType, "wd_80", valueSet(wd80s, i));
+            PropertyUtils.setProperty(targetType, "ws_90", valueSet(ws90s, i));
+            PropertyUtils.setProperty(targetType, "wd_90", valueSet(wd90s, i));
+            PropertyUtils.setProperty(targetType, "ws_100", valueSet(ws100s, i));
+            PropertyUtils.setProperty(targetType, "wd_100", valueSet(wd100s, i));
+            PropertyUtils.setProperty(targetType, "ws_170", valueSet(ws170s, i));
+            PropertyUtils.setProperty(targetType, "wd_170", valueSet(wd170s, i));
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 处理异常,例如日志记录或其他操作
+        }
+        return targetType;
     }
 
+
+//    public JiaYueWindPowerNwpResultCoverFD0002 jiaYueWindPowerNwpResultCoverFD0002(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
+//                                                                             List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
+//                                                                             List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i) {
+//        JiaYueWindPowerNwpResultCoverFD0002 jiaYueWindPowerNwpResultCover = new JiaYueWindPowerNwpResultCoverFD0002();
+//        jiaYueWindPowerNwpResultCover.setPreDateTime(localDateTime);
+//        jiaYueWindPowerNwpResultCover.setObjId(objId);
+////        jiaYueWindPowerNwpResultCover.setDataType("ACTIVE_POWER");
+////        jiaYueWindPowerNwpResultCover.setDataFlg("OTHER");
+//        jiaYueWindPowerNwpResultCover.setDataDate(date);
+//        jiaYueWindPowerNwpResultCover.setDataTime(time);
+////        jiaYueWindPowerNwpResultCover.setPressure(valueSet(pressures, i));
+////        jiaYueWindPowerNwpResultCover.setRh(valueSet(rhs, i));
+//        jiaYueWindPowerNwpResultCover.setSwr(valueSet(swrs, i));
+//        jiaYueWindPowerNwpResultCover.setT(valueSet(ts, i));
+//        jiaYueWindPowerNwpResultCover.setWs10(valueSet(ws10s, i));
+//        jiaYueWindPowerNwpResultCover.setWd10(valueSet(wd10s, i));
+//        jiaYueWindPowerNwpResultCover.setWs30(valueSet(ws30s, i));
+//        jiaYueWindPowerNwpResultCover.setWd30(valueSet(wd30s, i));
+//        jiaYueWindPowerNwpResultCover.setWs50(valueSet(ws50s, i));
+//        jiaYueWindPowerNwpResultCover.setWd50(valueSet(wd50s, i));
+//        jiaYueWindPowerNwpResultCover.setWs70(valueSet(ws70s, i));
+//        jiaYueWindPowerNwpResultCover.setWd70(valueSet(wd70s, i));
+//        jiaYueWindPowerNwpResultCover.setWs80(valueSet(ws80s, i));
+//        jiaYueWindPowerNwpResultCover.setWd80(valueSet(wd80s, i));
+//        jiaYueWindPowerNwpResultCover.setWs90(valueSet(ws90s, i));
+//        jiaYueWindPowerNwpResultCover.setWd90(valueSet(wd90s, i));
+//        jiaYueWindPowerNwpResultCover.setWs100(valueSet(ws100s, i));
+//        jiaYueWindPowerNwpResultCover.setWd100(valueSet(wd100s, i));
+//        jiaYueWindPowerNwpResultCover.setWs170(valueSet(ws170s, i));
+//        jiaYueWindPowerNwpResultCover.setWd170(valueSet(wd170s, i));
+//        return jiaYueWindPowerNwpResultCover;
+//    }
+//
+//    public JiaYueWindPowerNwpResultCoverFD0003 jiaYueWindPowerNwpResultCoverFD0003(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
+//                                                                             List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
+//                                                                             List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i) {
+//        JiaYueWindPowerNwpResultCoverFD0003 jiaYueWindPowerNwpResultCover = new JiaYueWindPowerNwpResultCoverFD0003();
+//        jiaYueWindPowerNwpResultCover.setPreDateTime(localDateTime);
+//        jiaYueWindPowerNwpResultCover.setObjId(objId);
+////        jiaYueWindPowerNwpResultCover.setDataType("ACTIVE_POWER");
+////        jiaYueWindPowerNwpResultCover.setDataFlg("OTHER");
+//        jiaYueWindPowerNwpResultCover.setDataDate(date);
+//        jiaYueWindPowerNwpResultCover.setDataTime(time);
+////        jiaYueWindPowerNwpResultCover.setPressure(valueSet(pressures, i));
+////        jiaYueWindPowerNwpResultCover.setRh(valueSet(rhs, i));
+//        jiaYueWindPowerNwpResultCover.setSwr(valueSet(swrs, i));
+//        jiaYueWindPowerNwpResultCover.setT(valueSet(ts, i));
+//        jiaYueWindPowerNwpResultCover.setWs10(valueSet(ws10s, i));
+//        jiaYueWindPowerNwpResultCover.setWd10(valueSet(wd10s, i));
+//        jiaYueWindPowerNwpResultCover.setWs30(valueSet(ws30s, i));
+//        jiaYueWindPowerNwpResultCover.setWd30(valueSet(wd30s, i));
+//        jiaYueWindPowerNwpResultCover.setWs50(valueSet(ws50s, i));
+//        jiaYueWindPowerNwpResultCover.setWd50(valueSet(wd50s, i));
+//        jiaYueWindPowerNwpResultCover.setWs70(valueSet(ws70s, i));
+//        jiaYueWindPowerNwpResultCover.setWd70(valueSet(wd70s, i));
+//        jiaYueWindPowerNwpResultCover.setWs80(valueSet(ws80s, i));
+//        jiaYueWindPowerNwpResultCover.setWd80(valueSet(wd80s, i));
+//        jiaYueWindPowerNwpResultCover.setWs90(valueSet(ws90s, i));
+//        jiaYueWindPowerNwpResultCover.setWd90(valueSet(wd90s, i));
+//        jiaYueWindPowerNwpResultCover.setWs100(valueSet(ws100s, i));
+//        jiaYueWindPowerNwpResultCover.setWd100(valueSet(wd100s, i));
+//        jiaYueWindPowerNwpResultCover.setWs170(valueSet(ws170s, i));
+//        jiaYueWindPowerNwpResultCover.setWd170(valueSet(wd170s, i));
+//        return jiaYueWindPowerNwpResultCover;
+//    }
+//
+//    public JiaYueWindPowerNwpResultCoverFD0005 jiaYueWindPowerNwpResultCoverFD0005(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
+//                                                                             List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
+//                                                                             List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i) {
+//        JiaYueWindPowerNwpResultCoverFD0005 jiaYueWindPowerNwpResultCover = new JiaYueWindPowerNwpResultCoverFD0005();
+//        jiaYueWindPowerNwpResultCover.setPreDateTime(localDateTime);
+//        jiaYueWindPowerNwpResultCover.setObjId(objId);
+////        jiaYueWindPowerNwpResultCover.setDataType("ACTIVE_POWER");
+////        jiaYueWindPowerNwpResultCover.setDataFlg("OTHER");
+//        jiaYueWindPowerNwpResultCover.setDataDate(date);
+//        jiaYueWindPowerNwpResultCover.setDataTime(time);
+////        jiaYueWindPowerNwpResultCover.setPressure(valueSet(pressures, i));
+////        jiaYueWindPowerNwpResultCover.setRh(valueSet(rhs, i));
+//        jiaYueWindPowerNwpResultCover.setSwr(valueSet(swrs, i));
+//        jiaYueWindPowerNwpResultCover.setT(valueSet(ts, i));
+//        jiaYueWindPowerNwpResultCover.setWs10(valueSet(ws10s, i));
+//        jiaYueWindPowerNwpResultCover.setWd10(valueSet(wd10s, i));
+//        jiaYueWindPowerNwpResultCover.setWs30(valueSet(ws30s, i));
+//        jiaYueWindPowerNwpResultCover.setWd30(valueSet(wd30s, i));
+//        jiaYueWindPowerNwpResultCover.setWs50(valueSet(ws50s, i));
+//        jiaYueWindPowerNwpResultCover.setWd50(valueSet(wd50s, i));
+//        jiaYueWindPowerNwpResultCover.setWs70(valueSet(ws70s, i));
+//        jiaYueWindPowerNwpResultCover.setWd70(valueSet(wd70s, i));
+//        jiaYueWindPowerNwpResultCover.setWs80(valueSet(ws80s, i));
+//        jiaYueWindPowerNwpResultCover.setWd80(valueSet(wd80s, i));
+//        jiaYueWindPowerNwpResultCover.setWs90(valueSet(ws90s, i));
+//        jiaYueWindPowerNwpResultCover.setWd90(valueSet(wd90s, i));
+//        jiaYueWindPowerNwpResultCover.setWs100(valueSet(ws100s, i));
+//        jiaYueWindPowerNwpResultCover.setWd100(valueSet(wd100s, i));
+//        jiaYueWindPowerNwpResultCover.setWs170(valueSet(ws170s, i));
+//        jiaYueWindPowerNwpResultCover.setWd170(valueSet(wd170s, i));
+//        return jiaYueWindPowerNwpResultCover;
+//    }
+//
+//    public JiaYueWindPowerNwpResultCoverFD0006 jiaYueWindPowerNwpResultCoverFD0006(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
+//                                                                             List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
+//                                                                             List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i) {
+//        JiaYueWindPowerNwpResultCoverFD0006 jiaYueWindPowerNwpResultCover = new JiaYueWindPowerNwpResultCoverFD0006();
+//        jiaYueWindPowerNwpResultCover.setPreDateTime(localDateTime);
+//        jiaYueWindPowerNwpResultCover.setObjId(objId);
+////        jiaYueWindPowerNwpResultCover.setDataType("ACTIVE_POWER");
+////        jiaYueWindPowerNwpResultCover.setDataFlg("OTHER");
+//        jiaYueWindPowerNwpResultCover.setDataDate(date);
+//        jiaYueWindPowerNwpResultCover.setDataTime(time);
+////        jiaYueWindPowerNwpResultCover.setPressure(valueSet(pressures, i));
+////        jiaYueWindPowerNwpResultCover.setRh(valueSet(rhs, i));
+//        jiaYueWindPowerNwpResultCover.setSwr(valueSet(swrs, i));
+//        jiaYueWindPowerNwpResultCover.setT(valueSet(ts, i));
+//        jiaYueWindPowerNwpResultCover.setWs10(valueSet(ws10s, i));
+//        jiaYueWindPowerNwpResultCover.setWd10(valueSet(wd10s, i));
+//        jiaYueWindPowerNwpResultCover.setWs30(valueSet(ws30s, i));
+//        jiaYueWindPowerNwpResultCover.setWd30(valueSet(wd30s, i));
+//        jiaYueWindPowerNwpResultCover.setWs50(valueSet(ws50s, i));
+//        jiaYueWindPowerNwpResultCover.setWd50(valueSet(wd50s, i));
+//        jiaYueWindPowerNwpResultCover.setWs70(valueSet(ws70s, i));
+//        jiaYueWindPowerNwpResultCover.setWd70(valueSet(wd70s, i));
+//        jiaYueWindPowerNwpResultCover.setWs80(valueSet(ws80s, i));
+//        jiaYueWindPowerNwpResultCover.setWd80(valueSet(wd80s, i));
+//        jiaYueWindPowerNwpResultCover.setWs90(valueSet(ws90s, i));
+//        jiaYueWindPowerNwpResultCover.setWd90(valueSet(wd90s, i));
+//        jiaYueWindPowerNwpResultCover.setWs100(valueSet(ws100s, i));
+//        jiaYueWindPowerNwpResultCover.setWd100(valueSet(wd100s, i));
+//        jiaYueWindPowerNwpResultCover.setWs170(valueSet(ws170s, i));
+//        jiaYueWindPowerNwpResultCover.setWd170(valueSet(wd170s, i));
+//        return jiaYueWindPowerNwpResultCover;
+//    }
+//
+//    public JiaYueWindPowerNwpResultCoverFD0007 jiaYueWindPowerNwpResultCoverFD0007(LocalDateTime localDateTime, String objId, Date date, Time time, List<BigDecimal> pressures, List<BigDecimal> rhs, List<BigDecimal> swrs, List<BigDecimal> ts, List<BigDecimal> ws10s, List<BigDecimal> wd10s, List<BigDecimal> ws30s,
+//                                                                             List<BigDecimal> wd30s, List<BigDecimal> ws50s, List<BigDecimal> wd50s, List<BigDecimal> ws70s, List<BigDecimal> wd70s, List<BigDecimal> ws80s,
+//                                                                             List<BigDecimal> wd80s, List<BigDecimal> ws90s, List<BigDecimal> wd90s, List<BigDecimal> ws100s, List<BigDecimal> wd100s, List<BigDecimal> ws170s, List<BigDecimal> wd170s, Integer i) {
+//        JiaYueWindPowerNwpResultCoverFD0007 jiaYueWindPowerNwpResultCover = new JiaYueWindPowerNwpResultCoverFD0007();
+//        jiaYueWindPowerNwpResultCover.setPreDateTime(localDateTime);
+//        jiaYueWindPowerNwpResultCover.setObjId(objId);
+////        jiaYueWindPowerNwpResultCover.setDataType("ACTIVE_POWER");
+////        jiaYueWindPowerNwpResultCover.setDataFlg("OTHER");
+//        jiaYueWindPowerNwpResultCover.setDataDate(date);
+//        jiaYueWindPowerNwpResultCover.setDataTime(time);
+////        jiaYueWindPowerNwpResultCover.setPressure(valueSet(pressures, i));
+////        jiaYueWindPowerNwpResultCover.setRh(valueSet(rhs, i));
+//        jiaYueWindPowerNwpResultCover.setSwr(valueSet(swrs, i));
+//        jiaYueWindPowerNwpResultCover.setT(valueSet(ts, i));
+//        jiaYueWindPowerNwpResultCover.setWs10(valueSet(ws10s, i));
+//        jiaYueWindPowerNwpResultCover.setWd10(valueSet(wd10s, i));
+//        jiaYueWindPowerNwpResultCover.setWs30(valueSet(ws30s, i));
+//        jiaYueWindPowerNwpResultCover.setWd30(valueSet(wd30s, i));
+//        jiaYueWindPowerNwpResultCover.setWs50(valueSet(ws50s, i));
+//        jiaYueWindPowerNwpResultCover.setWd50(valueSet(wd50s, i));
+//        jiaYueWindPowerNwpResultCover.setWs70(valueSet(ws70s, i));
+//        jiaYueWindPowerNwpResultCover.setWd70(valueSet(wd70s, i));
+//        jiaYueWindPowerNwpResultCover.setWs80(valueSet(ws80s, i));
+//        jiaYueWindPowerNwpResultCover.setWd80(valueSet(wd80s, i));
+//        jiaYueWindPowerNwpResultCover.setWs90(valueSet(ws90s, i));
+//        jiaYueWindPowerNwpResultCover.setWd90(valueSet(wd90s, i));
+//        jiaYueWindPowerNwpResultCover.setWs100(valueSet(ws100s, i));
+//        jiaYueWindPowerNwpResultCover.setWd100(valueSet(wd100s, i));
+//        jiaYueWindPowerNwpResultCover.setWs170(valueSet(ws170s, i));
+//        jiaYueWindPowerNwpResultCover.setWd170(valueSet(wd170s, i));
+//        return jiaYueWindPowerNwpResultCover;
+//    }
+
 }

+ 78 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverFD0002.java

@@ -0,0 +1,78 @@
+package com.jiayue.ipp.common.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.sql.Time;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * jiayue_FD0002_zdata_wind_power_cdq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0002_zdata_wind_power_cdq_result")
+public class JiaYueWindPowerCdqResultCoverFD0002 {
+    private static final long serialVersionUID = 1L;
+
+
+//    /**
+//     * 主键ID
+//     */
+//    @TableId(value = "id",type = IdType.INPUT)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+//    /**
+//     *  数据类型
+//     */
+//    private String dataType;
+//
+//
+//    /**
+//     *  预测类型
+//     */
+//    private String dataFlg;
+
+    /**
+     *  起报日期
+     */
+    private Date dataDate;
+
+
+    /**
+     *  起报时间
+     */
+    private Time dataTime;
+
+    /**
+     *  预测时间
+     */
+    private LocalDateTime preDateTime;
+
+    /**
+     *  值
+     */
+    private Float activePower;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+
+}

+ 78 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverFD0003.java

@@ -0,0 +1,78 @@
+package com.jiayue.ipp.common.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.sql.Time;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * jiayue_FD0003_zdata_wind_power_cdq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0003_zdata_wind_power_cdq_result")
+public class JiaYueWindPowerCdqResultCoverFD0003 {
+    private static final long serialVersionUID = 1L;
+
+
+//    /**
+//     * 主键ID
+//     */
+//    @TableId(value = "id",type = IdType.INPUT)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+//    /**
+//     *  数据类型
+//     */
+//    private String dataType;
+//
+//
+//    /**
+//     *  预测类型
+//     */
+//    private String dataFlg;
+
+    /**
+     *  起报日期
+     */
+    private Date dataDate;
+
+
+    /**
+     *  起报时间
+     */
+    private Time dataTime;
+
+    /**
+     *  预测时间
+     */
+    private LocalDateTime preDateTime;
+
+    /**
+     *  值
+     */
+    private Float activePower;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+
+}

+ 79 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverFD0002.java

@@ -0,0 +1,79 @@
+package com.jiayue.ipp.common.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.io.Serializable;
+import java.sql.Time;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * jiayue_FD0002_zdata_wind_power_dq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0002_zdata_wind_power_dq_result")
+public class JiaYueWindPowerDqResultCoverFD0002 implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+//    /**
+//     * 主键ID
+//     */
+//    @Id
+//    @GeneratedValue(strategy = GenerationType.IDENTITY)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+//    /**
+//     *  数据类型
+//     */
+//    private String dataType;
+//
+//
+//    /**
+//     *  预测类型
+//     */
+//    private String dataFlg;
+
+    /**
+     *  起报日期
+     */
+    private Date dataDate;
+
+
+    /**
+     *  起报时间
+     */
+    private Time dataTime;
+
+    /**
+     *  预测时间
+     */
+    private LocalDateTime preDateTime;
+
+    /**
+     *  值
+     */
+    private Float activePower;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}

+ 79 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverFD0003.java

@@ -0,0 +1,79 @@
+package com.jiayue.ipp.common.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.io.Serializable;
+import java.sql.Time;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * jiayue_FD0003_zdata_wind_power_dq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0003_zdata_wind_power_dq_result")
+public class JiaYueWindPowerDqResultCoverFD0003 implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+//    /**
+//     * 主键ID
+//     */
+//    @Id
+//    @GeneratedValue(strategy = GenerationType.IDENTITY)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+//    /**
+//     *  数据类型
+//     */
+//    private String dataType;
+//
+//
+//    /**
+//     *  预测类型
+//     */
+//    private String dataFlg;
+
+    /**
+     *  起报日期
+     */
+    private Date dataDate;
+
+
+    /**
+     *  起报时间
+     */
+    private Time dataTime;
+
+    /**
+     *  预测时间
+     */
+    private LocalDateTime preDateTime;
+
+    /**
+     *  值
+     */
+    private Float activePower;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}

+ 62 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0002.java

@@ -0,0 +1,62 @@
+package com.jiayue.ipp.common.data.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * zdata_FD0002_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("zdata_FD0002_wind_power_real_15min")
+public class WindPowerReal15MinFD0002 implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+//    /**
+//     * 主键ID
+//     */
+//    @Id
+//    @GeneratedValue(strategy = GenerationType.IDENTITY)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+    /**
+     *  数据类型
+     */
+    private String dataType;
+
+
+    /**
+     *  日期
+     */
+    private LocalDateTime dateTime;
+
+    /**
+     *  值
+     */
+    private Float value;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+//    /**
+//     *  更新时间
+//     */
+//    private LocalDateTime updateTime;
+
+}

+ 61 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0003.java

@@ -0,0 +1,61 @@
+package com.jiayue.ipp.common.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * zdata_FD0003_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("zdata_FD0003_wind_power_real_15min")
+public class WindPowerReal15MinFD0003 implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+//
+//    /**
+//     * 主键ID
+//     */
+//    @Id
+//    @GeneratedValue(strategy = GenerationType.IDENTITY)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+    /**
+     *  数据类型
+     */
+    private String dataType;
+
+
+    /**
+     *  日期
+     */
+    private LocalDateTime dateTime;
+
+    /**
+     *  值
+     */
+    private Float value;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+//    /**
+//     *  更新时间
+//     */
+//    private LocalDateTime updateTime;
+
+}