Bläddra i källkod

优化实际功率回传及新增场站

fanxiaoyu 10 månader sedan
förälder
incheckning
2a3ea46c89
40 ändrade filer med 3184 tillägg och 28 borttagningar
  1. 7 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/ParsingJob.java
  2. 1 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/Task.java
  3. 38 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperGF0012.java
  4. 38 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperGF0013.java
  5. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperGF0012.java
  6. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperGF0013.java
  7. 37 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperGF0012.java
  8. 38 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperGF0013.java
  9. 31 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/PvPowerReal15MinGF0012Mapper.java
  10. 31 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/PvPowerReal15MinGF0013Mapper.java
  11. 225 21
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/GenerateBackPassDataService.java
  12. 53 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverGF0012Service.java
  13. 53 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverGF0013Service.java
  14. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverGF0012Service.java
  15. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverGF0013Service.java
  16. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverGF0012Service.java
  17. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverGF0013Service.java
  18. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/PvPowerReal15MinGF0012Service.java
  19. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/PvPowerReal15MinGF0013Service.java
  20. 20 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/an/DownloadService.java
  21. 6 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/ElectricFieldServiceImpl.java
  22. 1 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverGF0002ServiceImpl.java
  23. 413 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverGF0012ServiceImpl.java
  24. 413 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverGF0013ServiceImpl.java
  25. 95 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultGF0012CoverServiceImpl.java
  26. 95 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultGF0013CoverServiceImpl.java
  27. 74 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultGF0012CoverServiceImpl.java
  28. 74 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultGF0013CoverServiceImpl.java
  29. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/PvPowerReal15MinGF0012ServiceImpl.java
  30. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/PvPowerReal15MinGF0013ServiceImpl.java
  31. 34 3
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingDqInfoServiceImpl.java
  32. 29 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingNwpInfoServiceImpl.java
  33. 82 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverGF0012.java
  34. 82 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverGF0013.java
  35. 84 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverGF0012.java
  36. 84 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverGF0013.java
  37. 180 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerNwpResultCoverGF0012.java
  38. 180 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerNwpResultCoverGF0013.java
  39. 62 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/PvPowerReal15MinGF0012.java
  40. 62 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/PvPowerReal15MinGF0013.java

+ 7 - 1
ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/ParsingJob.java

@@ -44,8 +44,10 @@ public class ParsingJob {
     private  final JiaYueWindPowerCdqResultCoverFD0031Service jiaYueWindPowerCdqResultCoverFD0031Service;
     private final JiaYueWindPowerCdqResultCoverGF0001Service jiaYueWindPowerCdqResultCoverGF0001Service;
     private final JiaYueWindPowerCdqResultCoverGF0002Service jiaYueWindPowerCdqResultCoverGF0002Service;
+    private final JiaYueWindPowerCdqResultCoverGF0012Service jiaYueWindPowerCdqResultCoverGF0012Service;
+    private final JiaYueWindPowerCdqResultCoverGF0013Service jiaYueWindPowerCdqResultCoverGF0013Service;
 
-    public ParsingJob(ParsingChannelService parsingChannelService,DownloadService downloadService,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service,JiaYueWindPowerCdqResultCoverFD0004Service jiaYueWindPowerCdqResultCoverFD0004Service,JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service,JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service,JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service,JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service,JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service,JiaYueWindPowerCdqResultCoverFD0031Service jiaYueWindPowerCdqResultCoverFD0031Service,JiaYueWindPowerCdqResultCoverGF0001Service jiaYueWindPowerCdqResultCoverGF0001Service,JiaYueWindPowerCdqResultCoverGF0002Service jiaYueWindPowerCdqResultCoverGF0002Service){
+    public ParsingJob(ParsingChannelService parsingChannelService,DownloadService downloadService,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service,JiaYueWindPowerCdqResultCoverFD0004Service jiaYueWindPowerCdqResultCoverFD0004Service,JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service,JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service,JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service,JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service,JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service,JiaYueWindPowerCdqResultCoverFD0031Service jiaYueWindPowerCdqResultCoverFD0031Service,JiaYueWindPowerCdqResultCoverGF0001Service jiaYueWindPowerCdqResultCoverGF0001Service,JiaYueWindPowerCdqResultCoverGF0002Service jiaYueWindPowerCdqResultCoverGF0002Service,JiaYueWindPowerCdqResultCoverGF0012Service jiaYueWindPowerCdqResultCoverGF0012Service,JiaYueWindPowerCdqResultCoverGF0013Service jiaYueWindPowerCdqResultCoverGF0013Service){
         this.parsingChannelService = parsingChannelService;
         this.downloadService = downloadService;
         this.jiaYueWindPowerCdqResultCoverFD0001Service = jiaYueWindPowerCdqResultCoverFD0001Service;
@@ -60,6 +62,8 @@ public class ParsingJob {
         this.jiaYueWindPowerCdqResultCoverFD0031Service = jiaYueWindPowerCdqResultCoverFD0031Service;
         this.jiaYueWindPowerCdqResultCoverGF0001Service = jiaYueWindPowerCdqResultCoverGF0001Service;
         this.jiaYueWindPowerCdqResultCoverGF0002Service = jiaYueWindPowerCdqResultCoverGF0002Service;
+        this.jiaYueWindPowerCdqResultCoverGF0012Service = jiaYueWindPowerCdqResultCoverGF0012Service;
+        this.jiaYueWindPowerCdqResultCoverGF0013Service = jiaYueWindPowerCdqResultCoverGF0013Service;
     }
 
     //    @Scheduled(fixedRate = 900000)
@@ -109,5 +113,7 @@ public class ParsingJob {
         jiaYueWindPowerCdqResultCoverFD0031Service.executeForecast();
         jiaYueWindPowerCdqResultCoverGF0001Service.executeForecast();
         jiaYueWindPowerCdqResultCoverGF0002Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverGF0012Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverGF0013Service.executeForecast();
     }
 }

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

@@ -119,7 +119,7 @@ public class Task {
      */
     @Async
 //    @Scheduled(fixedRate = 6000)
-    @Scheduled(initialDelay = 45 * 1000, fixedRateString = "60000")
+    @Scheduled(initialDelay = 45 * 1000, fixedRateString = "300000")
     void v3DataFilesDownload() {
         if ("否".equals(Constant.cacheClientConfig.getDqAndNwpFileTask())) {
             log.info("气象文件下载任务已关闭");

+ 38 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperGF0012.java

@@ -0,0 +1,38 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverGF0012;
+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 JiaYueWindPowerCdqResultCoverMapperGF0012 extends BaseMapper<JiaYueWindPowerCdqResultCoverGF0012> {
+
+    @Delete("DELETE FROM jiayue_GF0012_zdata_wind_power_cdq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_GF0012_zdata_wind_power_cdq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerCdqResultCoverGF0012> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Delete("DELETE FROM jiayue_GF0012_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_GF0012_zdata_wind_power_cdq_result WHERE DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerCdqResultCoverGF0012> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+    @Select("SELECT * FROM jiayue_GF0012_zdata_wind_power_cdq_result WHERE PRE_DATE_TIME = #{dateSubString} ORDER BY CREATE_TIME DESC LIMIT 1")
+    JiaYueWindPowerCdqResultCoverGF0012 selectByDataDate(@Param("dateSubString") String dateSubString);
+
+}

+ 38 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperGF0013.java

@@ -0,0 +1,38 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerCdqResultCoverGF0013;
+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 JiaYueWindPowerCdqResultCoverMapperGF0013 extends BaseMapper<JiaYueWindPowerCdqResultCoverGF0013> {
+
+    @Delete("DELETE FROM jiayue_GF0013_zdata_wind_power_cdq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_GF0013_zdata_wind_power_cdq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerCdqResultCoverGF0013> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Delete("DELETE FROM jiayue_GF0013_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_GF0013_zdata_wind_power_cdq_result WHERE DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerCdqResultCoverGF0013> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+    @Select("SELECT * FROM jiayue_GF0013_zdata_wind_power_cdq_result WHERE PRE_DATE_TIME = #{dateSubString} ORDER BY CREATE_TIME DESC LIMIT 1")
+    JiaYueWindPowerCdqResultCoverGF0013 selectByDataDate(@Param("dateSubString") String dateSubString);
+
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperGF0012.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverGF0012;
+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 JiaYueWindPowerDqResultCoverMapperGF0012 extends BaseMapper<JiaYueWindPowerDqResultCoverGF0012> {
+
+    @Delete("DELETE FROM jiayue_GF0012_zdata_wind_power_dq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_GF0012_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerDqResultCoverGF0012> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_GF0012_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_GF0012_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<JiaYueWindPowerDqResultCoverGF0012> selectByTimeAndObjId(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_GF0012_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerDqResultCoverGF0012> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_GF0012_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
+    List<JiaYueWindPowerDqResultCoverGF0012> selectByDataDate(@Param("date") String date);
+
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperGF0013.java

@@ -0,0 +1,52 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverGF0013;
+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 JiaYueWindPowerDqResultCoverMapperGF0013 extends BaseMapper<JiaYueWindPowerDqResultCoverGF0013> {
+
+    @Delete("DELETE FROM jiayue_GF0013_zdata_wind_power_dq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_GF0013_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerDqResultCoverGF0013> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_GF0013_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_GF0013_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<JiaYueWindPowerDqResultCoverGF0013> selectByTimeAndObjId(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_GF0013_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerDqResultCoverGF0013> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_GF0013_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
+    List<JiaYueWindPowerDqResultCoverGF0013> selectByDataDate(@Param("date") String date);
+
+}

+ 37 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperGF0012.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.JiaYueWindPowerNwpResultCoverGF0012;
+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_FD0030_zdata_nwp_result
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface JiaYueWindPowerNwpResultCoverMapperGF0012 extends BaseMapper<JiaYueWindPowerNwpResultCoverGF0012> {
+
+    @Delete("DELETE FROM jiayue_GF0012_zdata_nwp_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_GF0012_zdata_nwp_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerNwpResultCoverGF0012> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_GF0012_zdata_nwp_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 * FROM jiayue_GF0012_zdata_nwp_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerNwpResultCoverGF0012> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime,@Param("objId") String objId);
+
+}

+ 38 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperGF0013.java

@@ -0,0 +1,38 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverGF0012;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverGF0013;
+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_FD0030_zdata_nwp_result
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface JiaYueWindPowerNwpResultCoverMapperGF0013 extends BaseMapper<JiaYueWindPowerNwpResultCoverGF0013> {
+
+    @Delete("DELETE FROM jiayue_GF0013_zdata_nwp_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_GF0013_zdata_nwp_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerNwpResultCoverGF0013> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_GF0013_zdata_nwp_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 * FROM jiayue_GF0013_zdata_nwp_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerNwpResultCoverGF0013> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime,@Param("objId") String objId);
+
+}

+ 31 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/PvPowerReal15MinGF0012Mapper.java

@@ -0,0 +1,31 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.PvPowerReal15MinGF0012;
+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_GF0002_pv_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface PvPowerReal15MinGF0012Mapper extends BaseMapper<PvPowerReal15MinGF0012> {
+
+    @Delete("DELETE FROM zdata_GF0012_pv_power_real_15min")
+    int deleteAll();
+
+    @Select("SELECT * FROM zdata_GF0012_pv_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<PvPowerReal15MinGF0012> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Select("SELECT * FROM zdata_GF0012_pv_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<PvPowerReal15MinGF0012> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 31 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/PvPowerReal15MinGF0013Mapper.java

@@ -0,0 +1,31 @@
+package com.jiayue.ipfcst.client.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ipp.common.data.entity.PvPowerReal15MinGF0013;
+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_GF0002_pv_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface PvPowerReal15MinGF0013Mapper extends BaseMapper<PvPowerReal15MinGF0013> {
+
+    @Delete("DELETE FROM zdata_GF0013_pv_power_real_15min")
+    int deleteAll();
+
+    @Select("SELECT * FROM zdata_GF0013_pv_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<PvPowerReal15MinGF0013> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Select("SELECT * FROM zdata_GF0013_pv_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<PvPowerReal15MinGF0013> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 225 - 21
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/GenerateBackPassDataService.java

@@ -23,7 +23,11 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 import java.io.*;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
 import java.util.Date;
@@ -63,6 +67,10 @@ public class GenerateBackPassDataService {
 
     private final PvPowerReal15MinGF0002Service pvPowerReal15MinGF0002Service;
 
+    private final PvPowerReal15MinGF0012Service pvPowerReal15MinGF0012Service;
+
+    private final PvPowerReal15MinGF0013Service pvPowerReal15MinGF0013Service;
+
     private static final String IMAGE_TYPE = "jpg";
     private static final String PLACE = "-0.99|";
     private static final Long oneDay = 3600 * 24 * 1000L - 1000L;
@@ -92,6 +100,10 @@ public class GenerateBackPassDataService {
 
     private final JiaYueWindPowerDqResultCoverGF0002Service jiaYueWindPowerDqResultCoverGF0002Service;
 
+    private final JiaYueWindPowerDqResultCoverGF0012Service jiaYueWindPowerDqResultCoverGF0012Service;
+
+    private final JiaYueWindPowerDqResultCoverGF0013Service jiaYueWindPowerDqResultCoverGF0013Service;
+
     private final JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service;
 
     private final JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service;
@@ -116,10 +128,14 @@ public class GenerateBackPassDataService {
 
     private final JiaYueWindPowerCdqResultCoverGF0002Service jiaYueWindPowerCdqResultCoverGF0002Service;
 
-    public GenerateBackPassDataService(PvPowerReal15MinGF0001Service pvPowerReal15MinGF0001Service,PvPowerReal15MinGF0002Service pvPowerReal15MinGF0002Service,WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service,WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service,WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service,WindPowerReal15MinFD0004Service windPowerReal15MinFD0004Service,WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service,
-                                       WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service,WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service,WindPowerReal15MinFD0029Service windPowerReal15MinFD0029Service,WindPowerReal15MinFD0030Service windPowerReal15MinFD0030Service,WindPowerReal15MinFD0031Service windPowerReal15MinFD0031Service,JiaYueWindPowerDqResultCoverGF0001Service jiaYueWindPowerDqResultCoverGF0001Service,JiaYueWindPowerDqResultCoverGF0002Service jiaYueWindPowerDqResultCoverGF0002Service,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,
+    private final JiaYueWindPowerCdqResultCoverGF0012Service jiaYueWindPowerCdqResultCoverGF0012Service;
+
+    private final JiaYueWindPowerCdqResultCoverGF0013Service jiaYueWindPowerCdqResultCoverGF0013Service;
+
+    public GenerateBackPassDataService(PvPowerReal15MinGF0001Service pvPowerReal15MinGF0001Service,PvPowerReal15MinGF0002Service pvPowerReal15MinGF0002Service,PvPowerReal15MinGF0012Service pvPowerReal15MinGF0012Service,PvPowerReal15MinGF0013Service pvPowerReal15MinGF0013Service,WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service,WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service,WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service,WindPowerReal15MinFD0004Service windPowerReal15MinFD0004Service,WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service,
+                                       WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service,WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service,WindPowerReal15MinFD0029Service windPowerReal15MinFD0029Service,WindPowerReal15MinFD0030Service windPowerReal15MinFD0030Service,WindPowerReal15MinFD0031Service windPowerReal15MinFD0031Service,JiaYueWindPowerDqResultCoverGF0001Service jiaYueWindPowerDqResultCoverGF0001Service,JiaYueWindPowerDqResultCoverGF0002Service jiaYueWindPowerDqResultCoverGF0002Service,JiaYueWindPowerDqResultCoverGF0012Service jiaYueWindPowerDqResultCoverGF0012Service,JiaYueWindPowerDqResultCoverGF0013Service jiaYueWindPowerDqResultCoverGF0013Service,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,
                                        JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service,
-                                       JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service,JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service,JiaYueWindPowerDqResultCoverFD0031Service jiaYueWindPowerDqResultCoverFD0031Service,JiaYueWindPowerCdqResultCoverGF0001Service jiaYueWindPowerCdqResultCoverGF0001Service,JiaYueWindPowerCdqResultCoverGF0002Service jiaYueWindPowerCdqResultCoverGF0002Service,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,
+                                       JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service,JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service,JiaYueWindPowerDqResultCoverFD0031Service jiaYueWindPowerDqResultCoverFD0031Service,JiaYueWindPowerCdqResultCoverGF0001Service jiaYueWindPowerCdqResultCoverGF0001Service,JiaYueWindPowerCdqResultCoverGF0002Service jiaYueWindPowerCdqResultCoverGF0002Service,JiaYueWindPowerCdqResultCoverGF0012Service jiaYueWindPowerCdqResultCoverGF0012Service,JiaYueWindPowerCdqResultCoverGF0013Service jiaYueWindPowerCdqResultCoverGF0013Service,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,
                                        JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service,JiaYueWindPowerCdqResultCoverFD0004Service jiaYueWindPowerCdqResultCoverFD0004Service,JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service,JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service,
                                        JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service,JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service,JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service,JiaYueWindPowerCdqResultCoverFD0031Service jiaYueWindPowerCdqResultCoverFD0031Service){
         this.windPowerReal15MinFD0001Service = windPowerReal15MinFD0001Service;
@@ -134,6 +150,8 @@ public class GenerateBackPassDataService {
         this.windPowerReal15MinFD0031Service = windPowerReal15MinFD0031Service;
         this.pvPowerReal15MinGF0001Service = pvPowerReal15MinGF0001Service;
         this.pvPowerReal15MinGF0002Service = pvPowerReal15MinGF0002Service;
+        this.pvPowerReal15MinGF0012Service = pvPowerReal15MinGF0012Service;
+        this.pvPowerReal15MinGF0013Service = pvPowerReal15MinGF0013Service;
         this.jiaYueWindPowerDqResultCoverFD0001Service = jiaYueWindPowerDqResultCoverFD0001Service;
         this.jiaYueWindPowerDqResultCoverFD0002Service = jiaYueWindPowerDqResultCoverFD0002Service;
         this.jiaYueWindPowerDqResultCoverFD0003Service = jiaYueWindPowerDqResultCoverFD0003Service;
@@ -146,6 +164,8 @@ public class GenerateBackPassDataService {
         this.jiaYueWindPowerDqResultCoverFD0031Service = jiaYueWindPowerDqResultCoverFD0031Service;
         this.jiaYueWindPowerDqResultCoverGF0001Service = jiaYueWindPowerDqResultCoverGF0001Service;
         this.jiaYueWindPowerDqResultCoverGF0002Service = jiaYueWindPowerDqResultCoverGF0002Service;
+        this.jiaYueWindPowerDqResultCoverGF0012Service = jiaYueWindPowerDqResultCoverGF0012Service;
+        this.jiaYueWindPowerDqResultCoverGF0013Service = jiaYueWindPowerDqResultCoverGF0013Service;
         this.jiaYueWindPowerCdqResultCoverFD0001Service = jiaYueWindPowerCdqResultCoverFD0001Service;
         this.jiaYueWindPowerCdqResultCoverFD0002Service = jiaYueWindPowerCdqResultCoverFD0002Service;
         this.jiaYueWindPowerCdqResultCoverFD0003Service = jiaYueWindPowerCdqResultCoverFD0003Service;
@@ -158,13 +178,15 @@ public class GenerateBackPassDataService {
         this.jiaYueWindPowerCdqResultCoverFD0031Service = jiaYueWindPowerCdqResultCoverFD0031Service;
         this.jiaYueWindPowerCdqResultCoverGF0001Service = jiaYueWindPowerCdqResultCoverGF0001Service;
         this.jiaYueWindPowerCdqResultCoverGF0002Service = jiaYueWindPowerCdqResultCoverGF0002Service;
+        this.jiaYueWindPowerCdqResultCoverGF0012Service = jiaYueWindPowerCdqResultCoverGF0012Service;
+        this.jiaYueWindPowerCdqResultCoverGF0013Service = jiaYueWindPowerCdqResultCoverGF0013Service;
     }
 
     /**
      *  每天凌晨一点零五分生成回传短期、超短期。实际功率数据
      * @return
      */
-    @Scheduled(cron = "0 5 1,3 * * *")
+    @Scheduled(cron = "0 5 1,12,18 * * *")
     @Async
     public Map<String, Object> generateQRCode() {
         Map<String, Object> map = new HashMap<>();
@@ -221,6 +243,14 @@ public class GenerateBackPassDataService {
             electricFieldGF0002.setStationCode("J01057");
             electricFieldGF0002.setSign("GF0002");
 
+            ElectricField electricFieldGF0012 = new ElectricField();
+            electricFieldGF0012.setStationCode("J01061");
+            electricFieldGF0012.setSign("GF0012");
+
+            ElectricField electricFieldGF0013 = new ElectricField();
+            electricFieldGF0013.setStationCode("J01062");
+            electricFieldGF0013.setSign("GF0013");
+
             electricFieldList.add(electricField);
             electricFieldList.add(electricField2);
             electricFieldList.add(electricField3);
@@ -233,10 +263,12 @@ public class GenerateBackPassDataService {
             electricFieldList.add(electricField31);
             electricFieldList.add(electricFieldGF0001);
             electricFieldList.add(electricFieldGF0002);
+            electricFieldList.add(electricFieldGF0012);
+            electricFieldList.add(electricFieldGF0013);
 //
 //            // 开始日期和结束日期
-//            LocalDate startDate = LocalDate.of(2024, 6, 11);
-//            LocalDate endDate = LocalDate.of(2024, 6, 26);
+//            LocalDate startDate = LocalDate.of(2024, 1, 2);
+//            LocalDate endDate = LocalDate.of(2024, 8, 13);
 //
 //            // 存储结果的列表
 //            List<Date> dateList = new ArrayList<>();
@@ -254,12 +286,13 @@ public class GenerateBackPassDataService {
 //                dateList.add(startOfDayDate);
 //                currentDate = currentDate.plusDays(1);
 //            }
-
+//
 //            for (int i = 0; i < dateList.size(); i++) {
                 for (int j = 0; j < electricFieldList.size(); j++) {
 //                    map = generateQR(electricFieldList.get(j), dateList.get(i));
                     map = generateQR(electricFieldList.get(j));
                     toJson(map);
+//                    Thread.sleep(1000);
                 }
 //            }
             log.info("任务执行完成!");
@@ -307,10 +340,10 @@ public class GenerateBackPassDataService {
      */
     public Map<String, Object> generateQR(ElectricField electricField) {
 
-        Long time = new Date().getTime() - 3600 * 24 * 1000L;
+        Long time = new Date().getTime() - 60 * 60 * 24 * 1000L;
         // 获取昨日开始时间结束时间
         Date startTime = new Date(TimeUtils.getDayStartTime(time));
-        Date endTime = new Date(startTime.getTime() + 3600 * 24 * 1000L * 10 - 1000L);
+        Date endTime = new Date(startTime.getTime() + 60 * 60 * 24 * 1000L  - 1000L);
 
         Map<String, Object> map = new HashMap<>();
 
@@ -381,6 +414,8 @@ public class GenerateBackPassDataService {
         List<WindPowerReal15MinFD0031> windPowerReal15MinFD0031List = new ArrayList<>();
         List<PvPowerReal15MinGF0001> pvPowerReal15MinGF0001List = new ArrayList<>();
         List<PvPowerReal15MinGF0002> pvPowerReal15MinGF0002List = new ArrayList<>();
+        List<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List = new ArrayList<>();
+        List<PvPowerReal15MinGF0013> pvPowerReal15MinGF0013List = new ArrayList<>();
 
         switch (electricField.getSign()){
             case "FD0001":
@@ -419,6 +454,13 @@ public class GenerateBackPassDataService {
             case "GF0002":
                 pvPowerReal15MinGF0002List = pvPowerReal15MinGF0002Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
                 break;
+            case "GF0012":
+                pvPowerReal15MinGF0012List = pvPowerReal15MinGF0012Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "GF0013":
+                pvPowerReal15MinGF0013List = pvPowerReal15MinGF0013Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+
             default:
                 break;
         }
@@ -427,98 +469,212 @@ public class GenerateBackPassDataService {
             long finalTime = stepTime;
             if (electricField.getSign().equals("FD0001")) {
                 List<WindPowerReal15MinFD0001> filterList = windPowerReal15MinFD0001List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0001 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0002")) {
                 List<WindPowerReal15MinFD0002> filterList = windPowerReal15MinFD0002List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0002 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0003")) {
                 List<WindPowerReal15MinFD0003> filterList = windPowerReal15MinFD0003List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0003 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0004")) {
                 List<WindPowerReal15MinFD0004> filterList = windPowerReal15MinFD0004List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0004 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0005")) {
                 List<WindPowerReal15MinFD0005> filterList = windPowerReal15MinFD0005List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0005 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0006")) {
                 List<WindPowerReal15MinFD0006> filterList = windPowerReal15MinFD0006List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0006 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0007")) {
                 List<WindPowerReal15MinFD0007> filterList = windPowerReal15MinFD0007List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0007 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0029")) {
                 List<WindPowerReal15MinFD0029> filterList = windPowerReal15MinFD0029List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0029 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getActivePower()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getActivePower()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getActivePower()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0030")) {
                 List<WindPowerReal15MinFD0030> filterList = windPowerReal15MinFD0030List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0030 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("FD0031")) {
                 List<WindPowerReal15MinFD0031> filterList = windPowerReal15MinFD0031List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (WindPowerReal15MinFD0031 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getValue()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getValue()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("GF0001")) {
                 List<PvPowerReal15MinGF0001> filterList = pvPowerReal15MinGF0001List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (PvPowerReal15MinGF0001 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getActivePower()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getActivePower()).append("|");
+                   content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                   instContent.append(filterList.get(0).getActivePower()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
             if (electricField.getSign().equals("GF0002")) {
                 List<PvPowerReal15MinGF0002> filterList = pvPowerReal15MinGF0002List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (PvPowerReal15MinGF0002 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getActivePower()));
+                }
                 if (!filterList.isEmpty()) {
-                    content.append(filterList.get(0).getActivePower()).append("|");
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.append(PLACE);
+                    instContent.append(PLACE);
+                }
+            }
+            if (electricField.getSign().equals("GF0012")) {
+                List<PvPowerReal15MinGF0012> filterList = pvPowerReal15MinGF0012List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (PvPowerReal15MinGF0012 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getActivePower()));
+                }
+                if (!filterList.isEmpty()) {
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getActivePower()).append("|");
                 } else {
                     content.append(PLACE);
+                    instContent.append(PLACE);
+                }
+            }
+            if (electricField.getSign().equals("GF0013")) {
+                List<PvPowerReal15MinGF0013> filterList = pvPowerReal15MinGF0013List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                BigDecimal avg = new BigDecimal(0);
+                //取前15分钟的平均值 13:30取13:16-13:30的平均值
+                for (PvPowerReal15MinGF0013 p : filterList) {
+                    avg = avg.add(new BigDecimal(p.getActivePower()));
+                }
+                if (!filterList.isEmpty()) {
+                    content.append(avg.divide(new BigDecimal(filterList.size()), 2, RoundingMode.HALF_UP)).append("|");
+                    instContent.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.append(PLACE);
+                    instContent.append(PLACE);
                 }
             }
         }
@@ -581,6 +737,8 @@ public class GenerateBackPassDataService {
         List<JiaYueWindPowerDqResultCoverFD0031> jiaYueWindPowerDqResultCoverFD0031List = new ArrayList<>();
         List<JiaYueWindPowerDqResultCoverGF0001> jiaYueWindPowerDqResultCoverGF0001List = new ArrayList<>();
         List<JiaYueWindPowerDqResultCoverGF0002> jiaYueWindPowerDqResultCoverGF0002List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverGF0012List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverGF0013List = new ArrayList<>();
 
         switch (electricField.getSign()){
             case "FD0001":
@@ -619,6 +777,12 @@ public class GenerateBackPassDataService {
             case "GF0002":
                 jiaYueWindPowerDqResultCoverGF0002List = jiaYueWindPowerDqResultCoverGF0002Service.findByDataDate(new Date(startTime));
                 break;
+            case "GF0012":
+                jiaYueWindPowerDqResultCoverGF0012List = jiaYueWindPowerDqResultCoverGF0012Service.findByDataDate(new Date(startTime));
+                break;
+            case "GF0013":
+                jiaYueWindPowerDqResultCoverGF0013List = jiaYueWindPowerDqResultCoverGF0013Service.findByDataDate(new Date(startTime));
+                break;
             default:
                 break;
         }
@@ -721,6 +885,22 @@ public class GenerateBackPassDataService {
                     content.append(PLACE);
                 }
             }
+            if (electricField.getSign().equals("GF0012")) {
+                List<JiaYueWindPowerDqResultCoverGF0012> filterList = jiaYueWindPowerDqResultCoverGF0012List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                if (!filterList.isEmpty()) {
+                    content.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.append(PLACE);
+                }
+            }
+            if (electricField.getSign().equals("GF0013")) {
+                List<JiaYueWindPowerDqResultCoverGF0013> filterList = jiaYueWindPowerDqResultCoverGF0013List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                if (!filterList.isEmpty()) {
+                    content.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.append(PLACE);
+                }
+            }
         }
 
 
@@ -780,6 +960,8 @@ public class GenerateBackPassDataService {
         List<JiaYueWindPowerCdqResultCoverFD0031> jiaYueWindPowerCdqResultCoverFD0031List = new ArrayList<>();
         List<JiaYueWindPowerCdqResultCoverGF0001> jiaYueWindPowerCdqResultCoverGF0001List = new ArrayList<>();
         List<JiaYueWindPowerCdqResultCoverGF0002> jiaYueWindPowerCdqResultCoverGF0002List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCoverGF0012List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCoverGF0013List = new ArrayList<>();
 
         switch (electricField.getSign()){
             case "FD0001":
@@ -818,6 +1000,12 @@ public class GenerateBackPassDataService {
             case "GF0002":
                 jiaYueWindPowerCdqResultCoverGF0002List = jiaYueWindPowerCdqResultCoverGF0002Service.findByDataDate(new Date(startTime));
                 break;
+            case "GF0012":
+                jiaYueWindPowerCdqResultCoverGF0012List = jiaYueWindPowerCdqResultCoverGF0012Service.findByDataDate(new Date(startTime));
+                break;
+            case "GF0013":
+                jiaYueWindPowerCdqResultCoverGF0013List = jiaYueWindPowerCdqResultCoverGF0013Service.findByDataDate(new Date(startTime));
+                break;
             default:
                 break;
         }
@@ -923,6 +1111,22 @@ public class GenerateBackPassDataService {
                     content.append(PLACE);
                 }
             }
+            if (electricField.getSign().equals("GF0012")) {
+                List<JiaYueWindPowerCdqResultCoverGF0012> filterList = jiaYueWindPowerCdqResultCoverGF0012List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                if (!filterList.isEmpty()) {
+                    content.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.append(PLACE);
+                }
+            }
+            if (electricField.getSign().equals("GF0013")) {
+                List<JiaYueWindPowerCdqResultCoverGF0013> filterList = jiaYueWindPowerCdqResultCoverGF0013List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                if (!filterList.isEmpty()) {
+                    content.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.append(PLACE);
+                }
+            }
         }
 
         List<String> qrCodeContents1 = GzipUtil.pubZipList(content.toString(), packSize);

+ 53 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverGF0012Service.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.JiaYueWindPowerCdqResultCoverGF0012;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverGF0012Service extends IService<JiaYueWindPowerCdqResultCoverGF0012> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverGF0012> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+    List<JiaYueWindPowerCdqResultCoverGF0012> findByDataDate(Date startTime);
+
+}

+ 53 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverGF0013Service.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.JiaYueWindPowerCdqResultCoverGF0013;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerCdqResultCoverGF0013Service extends IService<JiaYueWindPowerCdqResultCoverGF0013> {
+     /**
+      * 查询所有数据(远端)
+      * @return
+      */
+     List<JiaYueWindPowerCdqResultCoverGF0013> get();
+
+    /**
+     * 查询所有数据插入到本地
+      * @param jiaYueWindPowerCdqResultCovers
+     * @return
+     */
+     int put(List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCovers);
+
+//    /**
+//     * 查询所有数据(本地)
+//     * @return
+//     */
+//    List<JiaYueWindPowerCdqResultCover> getAll();
+
+    /**
+     *  删除所有数据(本地)
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     *  储存解析超短期数据
+     */
+
+    void saveCdq(List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCoverList, String stationCode);
+
+    /**
+     *  执行超短期数据预测
+     */
+    void executeForecast();
+
+    void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode);
+
+    List<JiaYueWindPowerCdqResultCoverGF0013> findByDataDate(Date startTime);
+
+}

+ 63 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverGF0012Service.java

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

+ 63 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverGF0013Service.java

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

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverGF0012Service.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.JiaYueWindPowerNwpResultCoverGF0012;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverGF0012Service extends IService<JiaYueWindPowerNwpResultCoverGF0012> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverGF0012> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverGF0012> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverGF0012> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverGF0013Service.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.JiaYueWindPowerNwpResultCoverGF0013;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface JiaYueWindPowerNwpResultCoverGF0013Service extends IService<JiaYueWindPowerNwpResultCoverGF0013> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverGF0013> get();
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param jiaYueWindPowerNwpResultCoverList
+     * @return
+     */
+    int put(List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerNwpResultCoverList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverGF0013> getAll();
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    /**
+     * 储存解析nwp数据
+     */
+
+    void saveNwp(List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerNwpResultCoverList, String stationCode);
+
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<JiaYueWindPowerNwpResultCoverGF0013> getByDataDateAndDateTime(String fileDate, String fileTime, String objId);
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/PvPowerReal15MinGF0012Service.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.PvPowerReal15MinGF0012;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface PvPowerReal15MinGF0012Service extends IService<PvPowerReal15MinGF0012> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<PvPowerReal15MinGF0012> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<PvPowerReal15MinGF0012> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<PvPowerReal15MinGF0012> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<PvPowerReal15MinGF0012> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<PvPowerReal15MinGF0012> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 51 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/PvPowerReal15MinGF0013Service.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.PvPowerReal15MinGF0013;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public interface PvPowerReal15MinGF0013Service extends IService<PvPowerReal15MinGF0013> {
+    /**
+     * 查询所有数据(远端)
+     *
+     * @return
+     */
+    List<PvPowerReal15MinGF0013> get(Date startTime, Date endTime);
+
+    /**
+     * 查询所有数据插入到本地
+     *
+     * @param windPowerReal15MinList
+     * @return
+     */
+    int put(List<PvPowerReal15MinGF0013> windPowerReal15MinList);
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<PvPowerReal15MinGF0013> getAll();
+
+    /**
+     * 查询所有数据(本地)
+     *
+     * @return
+     */
+    List<PvPowerReal15MinGF0013> getAll(Date startTime, Date endTime);
+
+    /**
+     * 删除所有数据(本地)
+     *
+     * @return
+     */
+    int deleteAll();
+
+    List<PvPowerReal15MinGF0013> findByObjIdAndDateTime(String ObjId, Date startTime, Date endTime);
+
+
+}

+ 20 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/an/DownloadService.java

@@ -156,6 +156,24 @@ public class DownloadService {
         parsingUrlGF02.setId("722af308253fcd6eff67959c7f76eaf7");
         parsingUrlGF02.setDelFlag("0");
 
+        ParsingUrl parsingUrlGF12 = new ParsingUrl();
+        parsingUrlGF12.setCId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrlGF12.setForecastManufactor("SYJY");
+        parsingUrlGF12.setUrl("/home/syjy/F_data/new/J01061");
+        parsingUrlGF12.setUrlStatus("1");
+        parsingUrlGF12.setStationCode("J01061");
+        parsingUrlGF12.setId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrlGF12.setDelFlag("0");
+
+        ParsingUrl parsingUrlGF13 = new ParsingUrl();
+        parsingUrlGF13.setCId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrlGF13.setForecastManufactor("SYJY");
+        parsingUrlGF13.setUrl("/home/syjy/F_data/new/J01062");
+        parsingUrlGF13.setUrlStatus("1");
+        parsingUrlGF13.setStationCode("J01062");
+        parsingUrlGF13.setId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrlGF13.setDelFlag("0");
+
 
 
         parsingUrls.add(parsingUrl1);
@@ -170,6 +188,8 @@ public class DownloadService {
         parsingUrls.add(parsingUrl31);
         parsingUrls.add(parsingUrlGF01);
         parsingUrls.add(parsingUrlGF02);
+        parsingUrls.add(parsingUrlGF12);
+        parsingUrls.add(parsingUrlGF13);
 
         String dateDir = DateFormatUtils.format(new Date(), "yyyyMMdd");
         String dayStr = new SimpleDateFormat("yyyyMMdd").format(new Date());

+ 6 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/ElectricFieldServiceImpl.java

@@ -106,6 +106,12 @@ public class ElectricFieldServiceImpl extends ServiceImpl<ElectricFieldMapper, E
             case "J01057":
                 sign = "GF0002";
                 break;
+            case "J01061":
+                sign = "GF0012";
+                break;
+            case "J01062":
+                sign = "GF0013";
+                break;
             default:
                 break;
         }

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

@@ -248,7 +248,7 @@ public class JiaYueWindPowerCdqResultCoverGF0002ServiceImpl extends ServiceImpl<
                 String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPowers.floatValue()).split(":");
 
                 // 如果短期预测小于等于0,则超短期为0
-                if (stPower.floatValue() > 0) {
+                if (stPower.floatValue() <= 0) {
                     jiaYueWindPowerCdqResultCoverGF0002.setActivePower(0.0f);
                 } else {
 

+ 413 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverGF0012ServiceImpl.java

@@ -0,0 +1,413 @@
+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.JiaYueWindPowerCdqResultCoverMapperGF0012;
+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.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+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 JiaYueWindPowerCdqResultCoverGF0012ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperGF0012, JiaYueWindPowerCdqResultCoverGF0012> implements JiaYueWindPowerCdqResultCoverGF0012Service {
+    private final JiaYueWindPowerCdqResultCoverMapperGF0012 jiaYueWindPowerCdqResultCoverMapperGF0012;
+
+    private final ElectricFieldService electricFieldService;
+
+    private final SysParameterService sysParameterService;
+
+    private final PvPowerReal15MinGF0012Service pvPowerReal15MinGF0012Service;
+
+    private final JiaYueWindPowerDqResultCoverGF0012Service jiaYueWindPowerDqResultCoverGF0012Service;
+
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
+
+    private final OverhaulPlanService overhaulPlanService;
+
+    private final PhotovoltaicFarmInfoService photovoltaicFarmInfoService;
+
+
+    public JiaYueWindPowerCdqResultCoverGF0012ServiceImpl(OverhaulPlanService overhaulPlanService, WindFarmInfoEncryptionService windFarmInfoEncryptionService, JiaYueWindPowerCdqResultCoverMapperGF0012 jiaYueWindPowerCdqResultCoverMapperGF0012, ElectricFieldService electricFieldService, SysParameterService sysParameterService, PvPowerReal15MinGF0012Service pvPowerReal15MinGF0012Service, JiaYueWindPowerDqResultCoverGF0012Service jiaYueWindPowerDqResultCoverGF0012Service, PhotovoltaicFarmInfoService photovoltaicFarmInfoService) {
+        this.jiaYueWindPowerCdqResultCoverMapperGF0012 = jiaYueWindPowerCdqResultCoverMapperGF0012;
+        this.electricFieldService = electricFieldService;
+        this.sysParameterService = sysParameterService;
+        this.pvPowerReal15MinGF0012Service = pvPowerReal15MinGF0012Service;
+        this.jiaYueWindPowerDqResultCoverGF0012Service = jiaYueWindPowerDqResultCoverGF0012Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
+        this.photovoltaicFarmInfoService = photovoltaicFarmInfoService;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverGF0012> get() {
+        List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperGF0012.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCoverGF0012List) {
+        if (jiaYueWindPowerCdqResultCoverGF0012List != null && jiaYueWindPowerCdqResultCoverGF0012List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverGF0012List, jiaYueWindPowerCdqResultCoverGF0012List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverGF0012List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperGF0012.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(100));
+        electricField3.setElectricFieldTypeEnum("1");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("江西省九江市共青城市帅家村分布式电站一期");
+        electricField3.setStationCode("J01061");
+        electricField3.setSign("GF0012");
+        electricField3.setNetSubstationName("J01061");
+
+        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<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverGF0012List = jiaYueWindPowerDqResultCoverGF0012Service.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(jiaYueWindPowerDqResultCoverGF0012List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCoverGF0012List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverGF0012 jiaYueWindPowerCdqResultCoverGF0012;
+        //获取系统参数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<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List = pvPowerReal15MinGF0012Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<PvPowerReal15MinGF0012> filterList = pvPowerReal15MinGF0012List.stream().filter(t -> Float.compare(Float.valueOf(t.getActivePower()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverGF0012> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverGF0012Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(PvPowerReal15MinGF0012::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getActivePower().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getActivePower())).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++) {
+                jiaYueWindPowerCdqResultCoverGF0012 = new JiaYueWindPowerCdqResultCoverGF0012();
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Boolean is = this.isMidnight(date);
+
+                if (is == true) {
+                    jiaYueWindPowerCdqResultCoverGF0012.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverGF0012.setDataDate(new Date());
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverGF0012.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverGF0012.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverGF0012.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverGF0012.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);
+
+                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));
+
+                String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPower.floatValue()).split(":");
+                String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPowers.floatValue()).split(":");
+
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverGF0012.setActivePower(0.0f);
+                } else {
+
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverGF0012.setActivePower(capacity.floatValue());
+                    } else if (new BigDecimal(value[0]).doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverGF0012.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverGF0012.setActivePower(new BigDecimal(value[0]).floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverGF0012.setActivePower(new BigDecimal(aa[0]).floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverGF0012.setOpenCap(new BigDecimal(value[1]).floatValue());
+                jiaYueWindPowerCdqResultCoverGF0012List.add(jiaYueWindPowerCdqResultCoverGF0012);
+            }
+        } 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);
+                jiaYueWindPowerCdqResultCoverGF0012 = new JiaYueWindPowerCdqResultCoverGF0012();
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Boolean is = this.isMidnight(date);
+
+                if (is == true) {
+                    jiaYueWindPowerCdqResultCoverGF0012.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverGF0012.setDataDate(new Date());
+                }
+                String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPower.floatValue()).split(":");
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverGF0012.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverGF0012.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverGF0012.setActivePower(new BigDecimal(value[0]).floatValue());
+                jiaYueWindPowerCdqResultCoverGF0012.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverGF0012.setOpenCap(new BigDecimal(value[1]).floatValue());
+                jiaYueWindPowerCdqResultCoverGF0012.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverGF0012List.add(jiaYueWindPowerCdqResultCoverGF0012);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverGF0012List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverGF0012List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperGF0012.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);
+    }
+
+    @Override
+    public List<JiaYueWindPowerCdqResultCoverGF0012> findByDataDate(Date startTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        List<JiaYueWindPowerCdqResultCoverGF0012> jiaYueWindPowerCdqResultCoverGF0012List = new ArrayList<>();
+
+        for (long time = startTime.getTime(); time < startTime.getTime() + 24 * 60 * 60 * 1000L - 1000; time = time + 15 * 60 * 1000L) {
+            Date date = new Date(time);
+            String dateSubString = simpleDateFormat.format(date);
+            JiaYueWindPowerCdqResultCoverGF0012 jiaYueWindPowerCdqResultCoverGF0012 = jiaYueWindPowerCdqResultCoverMapperGF0012.selectByDataDate(dateSubString);
+            if (null != jiaYueWindPowerCdqResultCoverGF0012) {
+                jiaYueWindPowerCdqResultCoverGF0012List.add(jiaYueWindPowerCdqResultCoverGF0012);
+            }
+        }
+        return jiaYueWindPowerCdqResultCoverGF0012List;
+    }
+
+
+    /**
+     * 判断时间戳是否是0点0分
+     *
+     * @param timestamp
+     * @return
+     */
+    public boolean isMidnight(long timestamp) {
+        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));
+        calendar.setTimeInMillis(timestamp);
+
+        boolean isMidnight = // 小时为0
+                calendar.get(Calendar.HOUR_OF_DAY) == 0 &&
+                        calendar.get(Calendar.MINUTE) == 0 // 分钟为0
+                        && calendar.get(Calendar.SECOND) == 0; // 秒为0
+        return isMidnight;
+    }
+
+    public Date nextDay(Date date) {
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(date);
+        calendar.add(calendar.DATE, 1);
+        date = calendar.getTime();
+        return date;
+    }
+
+    public String openCap(LocalDateTime localDateTime, String objId, float bigDecimal) {
+        // 查询场站并网容量
+        PhotovoltaicFarmInfo photovoltaicFarmInfo = photovoltaicFarmInfoService.getCap(objId);
+        // 跟任总沟通取报备侧容量
+        float cap = photovoltaicFarmInfo.getCapReport();
+        BigDecimal capValue = new BigDecimal(cap);
+        Instant incomingTime = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
+        Instant queryTime = null;
+
+        // 查询检修计划
+        List<OverhaulPlan> overhaulPlanList = overhaulPlanService.getOverhaulPlan(localDateTime, objId);
+        if (null != overhaulPlanList && overhaulPlanList.size() > 0) {
+            for (OverhaulPlan overhaulPlan : overhaulPlanList) {
+                // 判断手动停止时间是否在预测数据时间之后
+                if (null != overhaulPlan.getMcTime()) {
+                    queryTime = overhaulPlan.getMcTime().atZone(ZoneId.systemDefault()).toInstant();
+                    if (queryTime.isAfter(incomingTime)) {
+                        BigDecimal bigDecimal1 = overhaulPlan.getOverhaulCapactity().divide(capValue, 2, RoundingMode.HALF_UP);
+                        bigDecimal = new BigDecimal(bigDecimal).subtract(bigDecimal1.multiply(new BigDecimal(bigDecimal))).setScale(2, RoundingMode.HALF_UP).floatValue();
+                        cap = cap - overhaulPlan.getOverhaulCapactity().floatValue();
+                    }
+                } else {
+                    BigDecimal bigDecimal1 = overhaulPlan.getOverhaulCapactity().divide(capValue, 2, RoundingMode.HALF_UP);
+                    bigDecimal = new BigDecimal(bigDecimal).subtract(bigDecimal1.multiply(new BigDecimal(bigDecimal))).setScale(2, RoundingMode.HALF_UP).floatValue();
+                    cap = cap - overhaulPlan.getOverhaulCapactity().floatValue();
+                }
+            }
+        }
+        String str = bigDecimal + ":" + cap;
+        return str;
+    }
+}

+ 413 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverGF0013ServiceImpl.java

@@ -0,0 +1,413 @@
+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.JiaYueWindPowerCdqResultCoverMapperGF0013;
+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.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+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 JiaYueWindPowerCdqResultCoverGF0013ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperGF0013, JiaYueWindPowerCdqResultCoverGF0013> implements JiaYueWindPowerCdqResultCoverGF0013Service {
+    private final JiaYueWindPowerCdqResultCoverMapperGF0013 jiaYueWindPowerCdqResultCoverMapperGF0013;
+
+    private final ElectricFieldService electricFieldService;
+
+    private final SysParameterService sysParameterService;
+
+    private final PvPowerReal15MinGF0013Service pvPowerReal15MinGF0013Service;
+
+    private final JiaYueWindPowerDqResultCoverGF0013Service jiaYueWindPowerDqResultCoverGF0013Service;
+
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
+
+    private final OverhaulPlanService overhaulPlanService;
+
+    private final PhotovoltaicFarmInfoService photovoltaicFarmInfoService;
+
+
+    public JiaYueWindPowerCdqResultCoverGF0013ServiceImpl(OverhaulPlanService overhaulPlanService, WindFarmInfoEncryptionService windFarmInfoEncryptionService, JiaYueWindPowerCdqResultCoverMapperGF0013 jiaYueWindPowerCdqResultCoverMapperGF0013, ElectricFieldService electricFieldService, SysParameterService sysParameterService, PvPowerReal15MinGF0013Service pvPowerReal15MinGF0013Service, JiaYueWindPowerDqResultCoverGF0013Service jiaYueWindPowerDqResultCoverGF0013Service, PhotovoltaicFarmInfoService photovoltaicFarmInfoService) {
+        this.jiaYueWindPowerCdqResultCoverMapperGF0013 = jiaYueWindPowerCdqResultCoverMapperGF0013;
+        this.electricFieldService = electricFieldService;
+        this.sysParameterService = sysParameterService;
+        this.pvPowerReal15MinGF0013Service = pvPowerReal15MinGF0013Service;
+        this.jiaYueWindPowerDqResultCoverGF0013Service = jiaYueWindPowerDqResultCoverGF0013Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
+        this.photovoltaicFarmInfoService = photovoltaicFarmInfoService;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverGF0013> get() {
+        List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperGF0013.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCoverGF0013List) {
+        if (jiaYueWindPowerCdqResultCoverGF0013List != null && jiaYueWindPowerCdqResultCoverGF0013List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverGF0013List, jiaYueWindPowerCdqResultCoverGF0013List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverGF0013List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperGF0013.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(170));
+        electricField3.setElectricFieldTypeEnum("1");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("江西省九江市共青城市帅家村分布式电站二期");
+        electricField3.setStationCode("J01062");
+        electricField3.setSign("GF0013");
+        electricField3.setNetSubstationName("J01062");
+
+        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<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverGF0013List = jiaYueWindPowerDqResultCoverGF0013Service.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(jiaYueWindPowerDqResultCoverGF0013List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCoverGF0013List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverGF0013 jiaYueWindPowerCdqResultCoverGF0013;
+        //获取系统参数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<PvPowerReal15MinGF0013> pvPowerReal15MinGF0012List = pvPowerReal15MinGF0013Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<PvPowerReal15MinGF0013> filterList = pvPowerReal15MinGF0012List.stream().filter(t -> Float.compare(Float.valueOf(t.getActivePower()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverGF0013> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverGF0013Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(PvPowerReal15MinGF0013::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getActivePower().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getActivePower())).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++) {
+                jiaYueWindPowerCdqResultCoverGF0013 = new JiaYueWindPowerCdqResultCoverGF0013();
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Boolean is = this.isMidnight(date);
+
+                if (is == true) {
+                    jiaYueWindPowerCdqResultCoverGF0013.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverGF0013.setDataDate(new Date());
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverGF0013.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverGF0013.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverGF0013.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverGF0013.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);
+
+                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));
+
+                String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPower.floatValue()).split(":");
+                String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPowers.floatValue()).split(":");
+
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverGF0013.setActivePower(0.0f);
+                } else {
+
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverGF0013.setActivePower(capacity.floatValue());
+                    } else if (new BigDecimal(value[0]).doubleValue() < 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverGF0013.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverGF0013.setActivePower(new BigDecimal(value[0]).floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverGF0013.setActivePower(new BigDecimal(aa[0]).floatValue());
+                        }
+                    }
+                }
+                jiaYueWindPowerCdqResultCoverGF0013.setOpenCap(new BigDecimal(value[1]).floatValue());
+                jiaYueWindPowerCdqResultCoverGF0013List.add(jiaYueWindPowerCdqResultCoverGF0013);
+            }
+        } 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);
+                jiaYueWindPowerCdqResultCoverGF0013 = new JiaYueWindPowerCdqResultCoverGF0013();
+                Long date = null;
+                try {
+                    date = DateMomentUtil.getMomentTime(System.currentTimeMillis(), 2, 15 * 60 * 1000L);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                Boolean is = this.isMidnight(date);
+
+                if (is == true) {
+                    jiaYueWindPowerCdqResultCoverGF0013.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverGF0013.setDataDate(new Date());
+                }
+                String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(), objId, ustPower.floatValue()).split(":");
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverGF0013.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverGF0013.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverGF0013.setActivePower(new BigDecimal(value[0]).floatValue());
+                jiaYueWindPowerCdqResultCoverGF0013.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverGF0013.setOpenCap(new BigDecimal(value[1]).floatValue());
+                jiaYueWindPowerCdqResultCoverGF0013.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverGF0013List.add(jiaYueWindPowerCdqResultCoverGF0013);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverGF0013List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverGF0013List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperGF0013.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);
+    }
+
+    @Override
+    public List<JiaYueWindPowerCdqResultCoverGF0013> findByDataDate(Date startTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        List<JiaYueWindPowerCdqResultCoverGF0013> jiaYueWindPowerCdqResultCoverGF0013List = new ArrayList<>();
+
+        for (long time = startTime.getTime(); time < startTime.getTime() + 24 * 60 * 60 * 1000L - 1000; time = time + 15 * 60 * 1000L) {
+            Date date = new Date(time);
+            String dateSubString = simpleDateFormat.format(date);
+            JiaYueWindPowerCdqResultCoverGF0013 jiaYueWindPowerCdqResultCoverGF0013 = jiaYueWindPowerCdqResultCoverMapperGF0013.selectByDataDate(dateSubString);
+            if (null != jiaYueWindPowerCdqResultCoverGF0013) {
+                jiaYueWindPowerCdqResultCoverGF0013List.add(jiaYueWindPowerCdqResultCoverGF0013);
+            }
+        }
+        return jiaYueWindPowerCdqResultCoverGF0013List;
+    }
+
+
+    /**
+     * 判断时间戳是否是0点0分
+     *
+     * @param timestamp
+     * @return
+     */
+    public boolean isMidnight(long timestamp) {
+        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));
+        calendar.setTimeInMillis(timestamp);
+
+        boolean isMidnight = // 小时为0
+                calendar.get(Calendar.HOUR_OF_DAY) == 0 &&
+                        calendar.get(Calendar.MINUTE) == 0 // 分钟为0
+                        && calendar.get(Calendar.SECOND) == 0; // 秒为0
+        return isMidnight;
+    }
+
+    public Date nextDay(Date date) {
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(date);
+        calendar.add(calendar.DATE, 1);
+        date = calendar.getTime();
+        return date;
+    }
+
+    public String openCap(LocalDateTime localDateTime, String objId, float bigDecimal) {
+        // 查询场站并网容量
+        PhotovoltaicFarmInfo photovoltaicFarmInfo = photovoltaicFarmInfoService.getCap(objId);
+        // 跟任总沟通取报备侧容量
+        float cap = photovoltaicFarmInfo.getCapReport();
+        BigDecimal capValue = new BigDecimal(cap);
+        Instant incomingTime = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
+        Instant queryTime = null;
+
+        // 查询检修计划
+        List<OverhaulPlan> overhaulPlanList = overhaulPlanService.getOverhaulPlan(localDateTime, objId);
+        if (null != overhaulPlanList && overhaulPlanList.size() > 0) {
+            for (OverhaulPlan overhaulPlan : overhaulPlanList) {
+                // 判断手动停止时间是否在预测数据时间之后
+                if (null != overhaulPlan.getMcTime()) {
+                    queryTime = overhaulPlan.getMcTime().atZone(ZoneId.systemDefault()).toInstant();
+                    if (queryTime.isAfter(incomingTime)) {
+                        BigDecimal bigDecimal1 = overhaulPlan.getOverhaulCapactity().divide(capValue, 2, RoundingMode.HALF_UP);
+                        bigDecimal = new BigDecimal(bigDecimal).subtract(bigDecimal1.multiply(new BigDecimal(bigDecimal))).setScale(2, RoundingMode.HALF_UP).floatValue();
+                        cap = cap - overhaulPlan.getOverhaulCapactity().floatValue();
+                    }
+                } else {
+                    BigDecimal bigDecimal1 = overhaulPlan.getOverhaulCapactity().divide(capValue, 2, RoundingMode.HALF_UP);
+                    bigDecimal = new BigDecimal(bigDecimal).subtract(bigDecimal1.multiply(new BigDecimal(bigDecimal))).setScale(2, RoundingMode.HALF_UP).floatValue();
+                    cap = cap - overhaulPlan.getOverhaulCapactity().floatValue();
+                }
+            }
+        }
+        String str = bigDecimal + ":" + cap;
+        return str;
+    }
+}

+ 95 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultGF0012CoverServiceImpl.java

@@ -0,0 +1,95 @@
+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.JiaYueWindPowerDqResultCoverMapperGF0012;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverGF0012Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverGF0012;
+import org.springframework.stereotype.Service;
+
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultGF0012CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperGF0012, JiaYueWindPowerDqResultCoverGF0012> implements JiaYueWindPowerDqResultCoverGF0012Service {
+    private final JiaYueWindPowerDqResultCoverMapperGF0012 jiaYueWindPowerDqResultCoverMapperGF0012;
+
+    public JiaYueWindPowerDqResultGF0012CoverServiceImpl(JiaYueWindPowerDqResultCoverMapperGF0012 jiaYueWindPowerDqResultCoverMapperGF0012){
+        this.jiaYueWindPowerDqResultCoverMapperGF0012 = jiaYueWindPowerDqResultCoverMapperGF0012;
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverGF0012> get() {
+        List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperGF0012.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverGF0012> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperGF0012.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+//    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverGF0012> getAll() {
+        List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperGF0012.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperGF0012.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverGF0012> 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<JiaYueWindPowerDqResultCoverGF0012> 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<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperGF0012.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    public List<JiaYueWindPowerDqResultCoverGF0012> findByDataDate(Date startTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperGF0012.selectByDataDate(startTimeStr);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 95 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultGF0013CoverServiceImpl.java

@@ -0,0 +1,95 @@
+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.JiaYueWindPowerDqResultCoverMapperGF0013;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverGF0013Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverGF0013;
+import org.springframework.stereotype.Service;
+
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultGF0013CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperGF0013, JiaYueWindPowerDqResultCoverGF0013> implements JiaYueWindPowerDqResultCoverGF0013Service {
+    private final JiaYueWindPowerDqResultCoverMapperGF0013 jiaYueWindPowerDqResultCoverMapperGF0013;
+
+    public JiaYueWindPowerDqResultGF0013CoverServiceImpl(JiaYueWindPowerDqResultCoverMapperGF0013 jiaYueWindPowerDqResultCoverMapperGF0013){
+        this.jiaYueWindPowerDqResultCoverMapperGF0013 = jiaYueWindPowerDqResultCoverMapperGF0013;
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverGF0013> get() {
+        List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperGF0013.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverGF0013> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperGF0013.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+//    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverGF0013> getAll() {
+        List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperGF0013.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperGF0013.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverGF0013> 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<JiaYueWindPowerDqResultCoverGF0013> 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<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperGF0013.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    public List<JiaYueWindPowerDqResultCoverGF0013> findByDataDate(Date startTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperGF0013.selectByDataDate(startTimeStr);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

+ 74 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultGF0012CoverServiceImpl.java

@@ -0,0 +1,74 @@
+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.JiaYueWindPowerNwpResultCoverMapperGF0012;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverGF0012Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverGF0012;
+import org.springframework.stereotype.Service;
+
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultGF0012CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperGF0012, JiaYueWindPowerNwpResultCoverGF0012> implements JiaYueWindPowerNwpResultCoverGF0012Service {
+
+    private final JiaYueWindPowerNwpResultCoverMapperGF0012 jiaYueWindPowerNwpResultCoverMapperGF0012;
+
+    public JiaYueWindPowerNwpResultGF0012CoverServiceImpl(JiaYueWindPowerNwpResultCoverMapperGF0012 jiaYueWindPowerNwpResultCoverMapperGF0012){
+        this.jiaYueWindPowerNwpResultCoverMapperGF0012 = jiaYueWindPowerNwpResultCoverMapperGF0012;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverGF0012> get() {
+        List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperGF0012.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverGF0012> getAll() {
+        List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperGF0012.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperGF0012.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverGF0012> 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<JiaYueWindPowerNwpResultCoverGF0012> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperGF0012.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 74 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultGF0013CoverServiceImpl.java

@@ -0,0 +1,74 @@
+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.JiaYueWindPowerNwpResultCoverMapperGF0013;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerNwpResultCoverGF0013Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerNwpResultCoverGF0013;
+import org.springframework.stereotype.Service;
+
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerNwpResultGF0013CoverServiceImpl extends ServiceImpl<JiaYueWindPowerNwpResultCoverMapperGF0013, JiaYueWindPowerNwpResultCoverGF0013> implements JiaYueWindPowerNwpResultCoverGF0013Service {
+
+    private final JiaYueWindPowerNwpResultCoverMapperGF0013 jiaYueWindPowerNwpResultCoverMapperGF0013;
+
+    public JiaYueWindPowerNwpResultGF0013CoverServiceImpl(JiaYueWindPowerNwpResultCoverMapperGF0013 jiaYueWindPowerNwpResultCoverMapperGF0013){
+        this.jiaYueWindPowerNwpResultCoverMapperGF0013 = jiaYueWindPowerNwpResultCoverMapperGF0013;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerNwpResultCoverGF0013> get() {
+        List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperGF0013.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int put(List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+    @WR("R")
+    public List<JiaYueWindPowerNwpResultCoverGF0013> getAll() {
+        List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperGF0013.selectList(null);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+    @Override
+    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerNwpResultCoverMapperGF0013.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveNwp(List<JiaYueWindPowerNwpResultCoverGF0013> 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<JiaYueWindPowerNwpResultCoverGF0013> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerNwpResultCoverList = jiaYueWindPowerNwpResultCoverMapperGF0013.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerNwpResultCoverList;
+    }
+
+}

+ 63 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/PvPowerReal15MinGF0012ServiceImpl.java

@@ -0,0 +1,63 @@
+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.PvPowerReal15MinGF0012Mapper;
+import com.jiayue.ipfcst.client.service.PvPowerReal15MinGF0012Service;
+import com.jiayue.ipp.common.data.entity.PvPowerReal15MinGF0012;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class PvPowerReal15MinGF0012ServiceImpl extends ServiceImpl<PvPowerReal15MinGF0012Mapper, PvPowerReal15MinGF0012> implements PvPowerReal15MinGF0012Service {
+    private final PvPowerReal15MinGF0012Mapper pvPowerReal15MinGF0012Mapper;
+
+    public PvPowerReal15MinGF0012ServiceImpl(PvPowerReal15MinGF0012Mapper pvPowerReal15MinGF0012Mapper){
+        this.pvPowerReal15MinGF0012Mapper = pvPowerReal15MinGF0012Mapper;
+    }
+    @Override
+    @WR("W")
+    public List<PvPowerReal15MinGF0012> get(Date startTime, Date endTime) {
+     List<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List =  pvPowerReal15MinGF0012Mapper.selectByTime(startTime, endTime);
+         return  pvPowerReal15MinGF0012List;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List) {
+        if (pvPowerReal15MinGF0012List != null && pvPowerReal15MinGF0012List.size() > 0){
+            this.saveBatch(pvPowerReal15MinGF0012List, pvPowerReal15MinGF0012List.size());
+        }
+        return pvPowerReal15MinGF0012List.size();
+    }
+
+    @Override
+//    @WR("R")
+    public List<PvPowerReal15MinGF0012> getAll() {
+        List<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List =  pvPowerReal15MinGF0012Mapper.selectList(null);
+        return  pvPowerReal15MinGF0012List;
+    }
+
+    @Override
+//    @WR("R")
+    public List<PvPowerReal15MinGF0012> getAll(Date startTime, Date endTime) {
+        List<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List =  pvPowerReal15MinGF0012Mapper.selectByTime(startTime,endTime);
+        return  pvPowerReal15MinGF0012List;
+    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+
+       return pvPowerReal15MinGF0012Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<PvPowerReal15MinGF0012> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<PvPowerReal15MinGF0012> pvPowerReal15MinGF0012List = pvPowerReal15MinGF0012Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return pvPowerReal15MinGF0012List;
+    }
+}

+ 63 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/PvPowerReal15MinGF0013ServiceImpl.java

@@ -0,0 +1,63 @@
+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.PvPowerReal15MinGF0013Mapper;
+import com.jiayue.ipfcst.client.service.PvPowerReal15MinGF0013Service;
+import com.jiayue.ipp.common.data.entity.PvPowerReal15MinGF0013;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class PvPowerReal15MinGF0013ServiceImpl extends ServiceImpl<PvPowerReal15MinGF0013Mapper, PvPowerReal15MinGF0013> implements PvPowerReal15MinGF0013Service {
+    private final PvPowerReal15MinGF0013Mapper pvPowerReal15MinGF0013Mapper;
+
+    public PvPowerReal15MinGF0013ServiceImpl(PvPowerReal15MinGF0013Mapper pvPowerReal15MinGF0013Mapper){
+        this.pvPowerReal15MinGF0013Mapper = pvPowerReal15MinGF0013Mapper;
+    }
+    @Override
+    @WR("W")
+    public List<PvPowerReal15MinGF0013> get(Date startTime, Date endTime) {
+     List<PvPowerReal15MinGF0013> pvPowerReal15MinGF0013List =  pvPowerReal15MinGF0013Mapper.selectByTime(startTime, endTime);
+         return  pvPowerReal15MinGF0013List;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<PvPowerReal15MinGF0013> pvPowerReal15MinGF0013List) {
+        if (pvPowerReal15MinGF0013List != null && pvPowerReal15MinGF0013List.size() > 0){
+            this.saveBatch(pvPowerReal15MinGF0013List, pvPowerReal15MinGF0013List.size());
+        }
+        return pvPowerReal15MinGF0013List.size();
+    }
+
+    @Override
+//    @WR("R")
+    public List<PvPowerReal15MinGF0013> getAll() {
+        List<PvPowerReal15MinGF0013> pvPowerReal15MinGF0013List =  pvPowerReal15MinGF0013Mapper.selectList(null);
+        return  pvPowerReal15MinGF0013List;
+    }
+
+    @Override
+//    @WR("R")
+    public List<PvPowerReal15MinGF0013> getAll(Date startTime, Date endTime) {
+        List<PvPowerReal15MinGF0013> pvPowerReal15MinGF0013List =  pvPowerReal15MinGF0013Mapper.selectByTime(startTime,endTime);
+        return  pvPowerReal15MinGF0013List;
+    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+
+       return pvPowerReal15MinGF0013Mapper.deleteAll();
+    }
+
+    @Override
+    @WR("W")
+    public List<PvPowerReal15MinGF0013> findByObjIdAndDateTime(String objId, Date startTime, Date endTime) {
+        List<PvPowerReal15MinGF0013> pvPowerReal15MinGF0013List = pvPowerReal15MinGF0013Mapper.selectByTimeAndObjId(startTime,endTime,objId);
+        return pvPowerReal15MinGF0013List;
+    }
+}

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

@@ -71,6 +71,10 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
 
     private final JiaYueWindPowerDqResultCoverGF0002Service jiaYueWindPowerDqResultCoverGF0002Service;
 
+    private final JiaYueWindPowerDqResultCoverGF0012Service jiaYueWindPowerDqResultCoverGF0012Service;
+
+    private final JiaYueWindPowerDqResultCoverGF0013Service jiaYueWindPowerDqResultCoverGF0013Service;
+
     private final ElectricFieldService electricFieldService;
 
     private final JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper;
@@ -80,7 +84,7 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
     private final PhotovoltaicFarmInfoService photovoltaicFarmInfoService;
 
 
-    public ParsingDqInfoServiceImpl(OverhaulPlanService overhaulPlanService,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service,JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service,JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service,JiaYueWindPowerDqResultCoverFD0031Service jiaYueWindPowerDqResultCoverFD0031Service,ElectricFieldService electricFieldService,JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerDqResultCoverGF0001Service jiaYueWindPowerDqResultCoverGF0001Service,JiaYueWindPowerDqResultCoverGF0002Service jiaYueWindPowerDqResultCoverGF0002Service,PhotovoltaicFarmInfoService photovoltaicFarmInfoService){
+    public ParsingDqInfoServiceImpl(OverhaulPlanService overhaulPlanService,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service,JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service,JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service,JiaYueWindPowerDqResultCoverFD0031Service jiaYueWindPowerDqResultCoverFD0031Service,ElectricFieldService electricFieldService,JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerDqResultCoverGF0001Service jiaYueWindPowerDqResultCoverGF0001Service,JiaYueWindPowerDqResultCoverGF0002Service jiaYueWindPowerDqResultCoverGF0002Service,JiaYueWindPowerDqResultCoverGF0012Service jiaYueWindPowerDqResultCoverGF0012Service,JiaYueWindPowerDqResultCoverGF0013Service jiaYueWindPowerDqResultCoverGF0013Service,PhotovoltaicFarmInfoService photovoltaicFarmInfoService){
         this.overhaulPlanService = overhaulPlanService;
         this.jiaYueWindPowerDqResultCoverFD0001Service = jiaYueWindPowerDqResultCoverFD0001Service;
         this.jiaYueWindPowerDqResultCoverFD0002Service = jiaYueWindPowerDqResultCoverFD0002Service;
@@ -94,6 +98,8 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
         this.jiaYueWindPowerDqResultCoverFD0031Service = jiaYueWindPowerDqResultCoverFD0031Service;
         this.jiaYueWindPowerDqResultCoverGF0001Service = jiaYueWindPowerDqResultCoverGF0001Service;
         this.jiaYueWindPowerDqResultCoverGF0002Service = jiaYueWindPowerDqResultCoverGF0002Service;
+        this.jiaYueWindPowerDqResultCoverGF0012Service = jiaYueWindPowerDqResultCoverGF0012Service;
+        this.jiaYueWindPowerDqResultCoverGF0013Service = jiaYueWindPowerDqResultCoverGF0013Service;
         this.electricFieldService = electricFieldService;
         this.jiaYueWindPowerDqResultCoverMapper = jiaYueWindPowerDqResultCoverMapper;
         this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
@@ -127,13 +133,15 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
             List<JiaYueWindPowerDqResultCoverFD0031> jiaYueWindPowerDqResultCoverFD0031List = new ArrayList<>();
             List<JiaYueWindPowerDqResultCoverGF0001> jiaYueWindPowerDqResultCoverGF0001List = new ArrayList<>();
             List<JiaYueWindPowerDqResultCoverGF0002> jiaYueWindPowerDqResultCoverGF0002List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverGF0012> jiaYueWindPowerDqResultCoverGF0012List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverGF0013> jiaYueWindPowerDqResultCoverGF0013List = new ArrayList<>();
 
             ParsingDqInfo parsingDqInfo = new ParsingDqInfo();
             parsingDqInfo.setId("a6bef32fab9fb298528851f1d85c77f2");
             parsingDqInfo.setDataType("m");
             parsingDqInfo.setFileName("DQ_");
             parsingDqInfo.setGenDate("");
-            parsingDqInfo.setStationCode("J00770,J00941,J00942,J00988,J00929,J00930,J00931,J01033,J01034,J01043,J01056,J01057");
+            parsingDqInfo.setStationCode("J00770,J00941,J00942,J00988,J00929,J00930,J00931,J01033,J01034,J01043,J01056,J01057,J01061,J01062");
             parsingDqInfo.setDelFlag("0");
             parsingDqInfo.setForecastTime("1<=>2<=>date=<=>yyyy-MM-dd");
             parsingDqInfo.setFpValue("3-1538<=>5");
@@ -206,6 +214,12 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                 if (parsingUrl.getStationCode().equals("J01057")) {
                     jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverGF0002Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                 }
+                if (parsingUrl.getStationCode().equals("J01061")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverGF0012Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J01062")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverGF0013Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
 
                 if (jiaYueWindPowerDqResultCovers == null || jiaYueWindPowerDqResultCovers.size() == 0) {
                     List<String> fileContent = FileUtil.getFileContent(file);
@@ -215,6 +229,9 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                         if (fileContent.size()<=1443){
                             parsingDqInfo.setFpValue("3-1442<=>5");
                         }
+                        if (fileContent.size() <= 1347){
+                            parsingDqInfo.setFpValue("3-1346<=>5");
+                        }
                         bigDecimals = parsingFpValue(parsingDqInfo.getFpValue(), fileContent);
 
                         if (bigDecimals.size() > 0) {
@@ -290,6 +307,14 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                                         jiaYueWindPowerDqResultCoverGF0002List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
                                                 new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverGF0002()));
                                     }
+                                    if (parsingUrl.getStationCode().equals("J01061")) {
+                                        jiaYueWindPowerDqResultCoverGF0012List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverGF0012()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J01062")) {
+                                        jiaYueWindPowerDqResultCoverGF0013List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverGF0013()));
+                                    }
 
 
                                 }
@@ -335,6 +360,12 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                                 if (parsingUrl.getStationCode().equals("J01057")) {
                                     jiaYueWindPowerDqResultCoverGF0002Service.saveDq(jiaYueWindPowerDqResultCoverGF0002List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                                 }
+                                if (parsingUrl.getStationCode().equals("J01061")) {
+                                    jiaYueWindPowerDqResultCoverGF0012Service.saveDq(jiaYueWindPowerDqResultCoverGF0012List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J01062")) {
+                                    jiaYueWindPowerDqResultCoverGF0013Service.saveDq(jiaYueWindPowerDqResultCoverGF0013List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                                }
                                 log.info("解析DQ文件:{} 成功! O(∩_∩)O", file.getName());
                                 parsingStatus = FileTypeEnum.DQ.name();
                             } else {
@@ -488,7 +519,7 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
         WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
         PhotovoltaicFarmInfo photovoltaicFarmInfo = photovoltaicFarmInfoService.getCap(objId);
         float cap = 0.0f;
-        if (objId.equals("GF0001") || objId.equals("GF0002")){
+        if (objId.equals("GF0001") || objId.equals("GF0002")|| objId.equals("GF0012")|| objId.equals("GF0013")){
             cap = photovoltaicFarmInfo.getCapReport();
         }else {
             cap = windFarmInfoEncryption.getCap();

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

@@ -74,6 +74,10 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
 
     private final JiaYueWindPowerNwpResultCoverGF0002Service jiaYueWindPowerNwpResultCoverGF0002Service;
 
+    private final JiaYueWindPowerNwpResultCoverGF0012Service jiaYueWindPowerNwpResultCoverGF0012Service;
+
+    private final JiaYueWindPowerNwpResultCoverGF0013Service jiaYueWindPowerNwpResultCoverGF0013Service;
+
 
     private final ElectricFieldService electricFieldService;
 
@@ -100,7 +104,7 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
             parsingNwpInfo1.setId("a6bef32fab9fb298528851f1d85c77f2");
             parsingNwpInfo1.setDataType("m");
             parsingNwpInfo1.setFileName("NWP_");
-            parsingNwpInfo1.setStationCode("J00770,J00941,J00942,J00988,J00929,J00930,J00931,J01033,J01034,J01043,J01056,J01057");
+            parsingNwpInfo1.setStationCode("J00770,J00941,J00942,J00988,J00929,J00930,J00931,J01033,J01034,J01043,J01056,J01057,J01061,J01062");
             parsingNwpInfo1.setDelFlag("0");
             parsingNwpInfo1.setPreTime("1<=>2<=>date=<=>yyyy-MM-dd");
 //            parsingNwpInfo1.setScDate();
@@ -144,6 +148,8 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
             List<JiaYueWindPowerNwpResultCoverFD0031> jiaYueWindPowerNwpResultCoverFD0031List = new ArrayList<>();
             List<JiaYueWindPowerNwpResultCoverGF0001> jiaYueWindPowerNwpResultCoverGF0001List = new ArrayList<>();
             List<JiaYueWindPowerNwpResultCoverGF0002> jiaYueWindPowerNwpResultCoverGF0002List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverGF0012> jiaYueWindPowerNwpResultCoverGF0012List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverGF0013> jiaYueWindPowerNwpResultCoverGF0013List = new ArrayList<>();
 
 
             // 获取文件名中的日期时间进行判断
@@ -217,6 +223,14 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                 if (parsingUrl.getStationCode().equals("J01057")) {
                     jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverGF0002Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                 }
+                if (parsingUrl.getStationCode().equals("J01061")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverGF0012Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+
+                if (parsingUrl.getStationCode().equals("J01062")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverGF0013Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+
 
                 if (jiaYueWindPowerNwpResultCovers == null || jiaYueWindPowerNwpResultCovers.size() == 0) {
 
@@ -317,6 +331,14 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                                     jiaYueWindPowerNwpResultCoverGF0002List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
                                             , swrs, result, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverGF0002()));
                                 }
+                                if (parsingUrl.getStationCode().equals("J01061")) {
+                                    jiaYueWindPowerNwpResultCoverGF0012List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, result, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverGF0012()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J01062")) {
+                                    jiaYueWindPowerNwpResultCoverGF0013List.add(this.jiaYueWindPowerNwpResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), da, timeStr, pressures, rhs
+                                            , swrs, result, ws10s, wd10s, ws30s, wd30s, ws50s, wd50s, ws70s, wd70s, ws80s, wd80s, ws90s, wd90s, ws100s, wd100s, ws170s, wd170s, i, new JiaYueWindPowerNwpResultCoverGF0013()));
+                                }
                                 time += Constant.INTERVALTIME;
                             }
                             if (parsingUrl.getStationCode().equals("J00770")) {
@@ -355,6 +377,12 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                             if (parsingUrl.getStationCode().equals("J01057")) {
                                 jiaYueWindPowerNwpResultCoverGF0002Service.saveNwp(jiaYueWindPowerNwpResultCoverGF0002List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                             }
+                            if (parsingUrl.getStationCode().equals("J01061")) {
+                                jiaYueWindPowerNwpResultCoverGF0012Service.saveNwp(jiaYueWindPowerNwpResultCoverGF0012List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J01062")) {
+                                jiaYueWindPowerNwpResultCoverGF0013Service.saveNwp(jiaYueWindPowerNwpResultCoverGF0013List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
                             parsingStatus = FileTypeEnum.NWP72.name();
                             log.info("解析Nwp文件:{} 成功! O(∩_∩)O", file.getName());
                         } else {

+ 82 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverGF0012.java

@@ -0,0 +1,82 @@
+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_FD0030_zdata_wind_power_cdq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_GF0012_zdata_wind_power_cdq_result")
+public class JiaYueWindPowerCdqResultCoverGF0012 {
+    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;
+
+    /**
+     *  开机容量
+     */
+    private Float openCap;
+}

+ 82 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverGF0013.java

@@ -0,0 +1,82 @@
+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_FD0030_zdata_wind_power_cdq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_GF0013_zdata_wind_power_cdq_result")
+public class JiaYueWindPowerCdqResultCoverGF0013 {
+    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;
+
+    /**
+     *  开机容量
+     */
+    private Float openCap;
+}

+ 84 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverGF0012.java

@@ -0,0 +1,84 @@
+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_FD0030_zdata_wind_power_dq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_GF0012_zdata_wind_power_dq_result")
+public class JiaYueWindPowerDqResultCoverGF0012 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;
+
+    /**
+     *  开机容量
+     */
+    private Float openCap;
+}

+ 84 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverGF0013.java

@@ -0,0 +1,84 @@
+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_FD0030_zdata_wind_power_dq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_GF0013_zdata_wind_power_dq_result")
+public class JiaYueWindPowerDqResultCoverGF0013 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;
+
+    /**
+     *  开机容量
+     */
+    private Float openCap;
+}

+ 180 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerNwpResultCoverGF0012.java

@@ -0,0 +1,180 @@
+package com.jiayue.ipp.common.data.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * jiayue_FD0030_zdata_nwp_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_GF0012_zdata_nwp_result")
+public class JiaYueWindPowerNwpResultCoverGF0012 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 BigDecimal t;
+
+    /**
+     *  湿度
+     */
+    private BigDecimal h;
+
+    /**
+     *  短波辐射
+     */
+    private BigDecimal swr;
+
+    /**
+     *  气压
+     */
+    private BigDecimal p;
+
+
+    /**
+     *  10米风速
+     */
+    private BigDecimal ws_10;
+
+    /**
+     *  30米风速
+     */
+    private BigDecimal ws_30;
+
+    /**
+     *  50米风速
+     */
+    private BigDecimal ws_50;
+
+    /**
+     *  70米风速
+     */
+    private BigDecimal ws_70;
+
+    /**
+     *  80米风速
+     */
+    private BigDecimal ws_80;
+
+    /**
+     *  90米风速
+     */
+    private BigDecimal ws_90;
+
+    /**
+     *  100米风速
+     */
+    private BigDecimal ws_100;
+
+    /**
+     *  170米风速
+     */
+    private BigDecimal ws_170;
+
+    /**
+     *  10米风向
+     */
+    private BigDecimal wd_10;
+
+    /**
+     *  30米风向
+     */
+    private BigDecimal wd_30;
+
+    /**
+     *  50米风向
+     */
+    private BigDecimal wd_50;
+
+    /**
+     *  70米风向
+     */
+    private BigDecimal wd_70;
+
+    /**
+     *  80米风向
+     */
+    private BigDecimal wd_80;
+
+    /**
+     *  90米风向
+     */
+    private BigDecimal wd_90;
+
+    /**
+     *  100米风向
+     */
+    private BigDecimal wd_100;
+
+    /**
+     *  170米风向
+     */
+    private BigDecimal wd_170;
+
+
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}

+ 180 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerNwpResultCoverGF0013.java

@@ -0,0 +1,180 @@
+package com.jiayue.ipp.common.data.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * jiayue_FD0030_zdata_nwp_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_GF0013_zdata_nwp_result")
+public class JiaYueWindPowerNwpResultCoverGF0013 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 BigDecimal t;
+
+    /**
+     *  湿度
+     */
+    private BigDecimal h;
+
+    /**
+     *  短波辐射
+     */
+    private BigDecimal swr;
+
+    /**
+     *  气压
+     */
+    private BigDecimal p;
+
+
+    /**
+     *  10米风速
+     */
+    private BigDecimal ws_10;
+
+    /**
+     *  30米风速
+     */
+    private BigDecimal ws_30;
+
+    /**
+     *  50米风速
+     */
+    private BigDecimal ws_50;
+
+    /**
+     *  70米风速
+     */
+    private BigDecimal ws_70;
+
+    /**
+     *  80米风速
+     */
+    private BigDecimal ws_80;
+
+    /**
+     *  90米风速
+     */
+    private BigDecimal ws_90;
+
+    /**
+     *  100米风速
+     */
+    private BigDecimal ws_100;
+
+    /**
+     *  170米风速
+     */
+    private BigDecimal ws_170;
+
+    /**
+     *  10米风向
+     */
+    private BigDecimal wd_10;
+
+    /**
+     *  30米风向
+     */
+    private BigDecimal wd_30;
+
+    /**
+     *  50米风向
+     */
+    private BigDecimal wd_50;
+
+    /**
+     *  70米风向
+     */
+    private BigDecimal wd_70;
+
+    /**
+     *  80米风向
+     */
+    private BigDecimal wd_80;
+
+    /**
+     *  90米风向
+     */
+    private BigDecimal wd_90;
+
+    /**
+     *  100米风向
+     */
+    private BigDecimal wd_100;
+
+    /**
+     *  170米风向
+     */
+    private BigDecimal wd_170;
+
+
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}

+ 62 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/PvPowerReal15MinGF0012.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_FD0007_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("zdata_GF0012_pv_power_real_15min")
+public class PvPowerReal15MinGF0012 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 activePower;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}

+ 62 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/PvPowerReal15MinGF0013.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_FD0007_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("zdata_GF0012_pv_power_real_15min")
+public class PvPowerReal15MinGF0013 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 activePower;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}