Selaa lähdekoodia

中能融合最新代码,新增FD0029和FD0030

fanxiaoyu 1 vuosi sitten
vanhempi
commit
cd2bbcdd75
49 muutettua tiedostoa jossa 3652 lisäystä ja 471 poistoa
  1. 9 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/Schedule/ParsingJob.java
  2. 2 2
      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/JiaYueWindPowerCdqResultCoverMapperFD0029.java
  4. 38 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0030.java
  5. 1 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0002.java
  6. 1 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0003.java
  7. 2 2
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0004.java
  8. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0029.java
  9. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0030.java
  10. 37 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperFD0029.java
  11. 37 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperFD0030.java
  12. 31 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/WindPowerReal15MinFD0029Mapper.java
  13. 31 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/WindPowerReal15MinFD0030Mapper.java
  14. 311 403
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/GenerateBackPassDataService.java
  15. 53 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0029Service.java
  16. 53 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerCdqResultCoverFD0030Service.java
  17. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0029Service.java
  18. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerDqResultCoverFD0030Service.java
  19. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0029Service.java
  20. 52 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/JiaYueWindPowerNwpResultCoverFD0030Service.java
  21. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0029Service.java
  22. 51 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/WindPowerReal15MinFD0030Service.java
  23. 20 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/an/DownloadService.java
  24. 6 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/ElectricFieldServiceImpl.java
  25. 55 8
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0001ServiceImpl.java
  26. 56 9
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0002ServiceImpl.java
  27. 55 8
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0003ServiceImpl.java
  28. 54 8
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0004ServiceImpl.java
  29. 55 8
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0005ServiceImpl.java
  30. 54 8
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0006ServiceImpl.java
  31. 54 9
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0007ServiceImpl.java
  32. 407 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0029ServiceImpl.java
  33. 409 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0030ServiceImpl.java
  34. 95 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0029CoverServiceImpl.java
  35. 95 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerDqResultFD0030CoverServiceImpl.java
  36. 74 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0029CoverServiceImpl.java
  37. 74 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerNwpResultFD0030CoverServiceImpl.java
  38. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0029ServiceImpl.java
  39. 63 0
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/WindPowerReal15MinFD0030ServiceImpl.java
  40. 33 2
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingDqInfoServiceImpl.java
  41. 28 1
      ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/an/ParsingNwpInfoServiceImpl.java
  42. 82 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverFD0029.java
  43. 82 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerCdqResultCoverFD0030.java
  44. 84 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverFD0029.java
  45. 84 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerDqResultCoverFD0030.java
  46. 180 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerNwpResultCoverFD0029.java
  47. 180 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/JiaYueWindPowerNwpResultCoverFD0030.java
  48. 68 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0029.java
  49. 62 0
      ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0030.java

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

@@ -10,6 +10,7 @@ import com.jiayue.ipp.common.data.enums.an.UseStatusEnum;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -38,8 +39,10 @@ public class ParsingJob {
     private  final JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service;
     private  final JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service;
     private  final JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service;
+    private  final JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service;
+    private  final JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service;
 
-    public ParsingJob(ParsingChannelService parsingChannelService,DownloadService downloadService,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service,JiaYueWindPowerCdqResultCoverFD0004Service jiaYueWindPowerCdqResultCoverFD0004Service,JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service,JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service,JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service){
+    public ParsingJob(ParsingChannelService parsingChannelService,DownloadService downloadService,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service,JiaYueWindPowerCdqResultCoverFD0004Service jiaYueWindPowerCdqResultCoverFD0004Service,JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service,JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service,JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service,JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service,JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service){
         this.parsingChannelService = parsingChannelService;
         this.downloadService = downloadService;
         this.jiaYueWindPowerCdqResultCoverFD0001Service = jiaYueWindPowerCdqResultCoverFD0001Service;
@@ -49,6 +52,8 @@ public class ParsingJob {
         this.jiaYueWindPowerCdqResultCoverFD0005Service = jiaYueWindPowerCdqResultCoverFD0005Service;
         this.jiaYueWindPowerCdqResultCoverFD0006Service = jiaYueWindPowerCdqResultCoverFD0006Service;
         this.jiaYueWindPowerCdqResultCoverFD0007Service = jiaYueWindPowerCdqResultCoverFD0007Service;
+        this.jiaYueWindPowerCdqResultCoverFD0029Service = jiaYueWindPowerCdqResultCoverFD0029Service;
+        this.jiaYueWindPowerCdqResultCoverFD0030Service = jiaYueWindPowerCdqResultCoverFD0030Service;
     }
 
     //    @Scheduled(fixedRate = 900000)
@@ -82,6 +87,7 @@ public class ParsingJob {
     /**
      * 超短期生成定时任务
      */
+    @Async
     @Scheduled(cron = "35 0,15,30,45 * * * ? ")
 //    @Scheduled(fixedRate = 60000)
     public void ultraShortTermApi() {
@@ -92,5 +98,7 @@ public class ParsingJob {
         jiaYueWindPowerCdqResultCoverFD0005Service.executeForecast();
         jiaYueWindPowerCdqResultCoverFD0006Service.executeForecast();
         jiaYueWindPowerCdqResultCoverFD0007Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0029Service.executeForecast();
+        jiaYueWindPowerCdqResultCoverFD0030Service.executeForecast();
     }
 }

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

@@ -194,7 +194,7 @@ public class Task {
             //移动文件到相应反向隔离目录,向内网传输
             if (Constant.filedownLoadList.size() > 0) {
                 for (String fpath : Constant.filedownLoadList) {
-                    int startIndex = fpath.indexOf("J00");
+                    int startIndex = fpath.indexOf("J0");
                     int endIndex = startIndex + 6;
                     String result = fpath.substring(startIndex, endIndex);
                     UtilTools.mvFile(fpath, fxglFilePath + File.separator + result + File.separator + "new");
@@ -600,7 +600,7 @@ public class Task {
     }
 
 
-    @Scheduled(fixedRate = 60000l)
+//    @Scheduled(fixedRate = 60000l)
     public void realPowerForQr() {
 
         File zxglPathFile = new File(zxglPath + File.separator + "new");

+ 38 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0029.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.JiaYueWindPowerCdqResultCoverFD0029;
+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 JiaYueWindPowerCdqResultCoverMapperFD0029 extends BaseMapper<JiaYueWindPowerCdqResultCoverFD0029> {
+
+    @Delete("DELETE FROM jiayue_FD0029_zdata_wind_power_cdq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0029_zdata_wind_power_cdq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerCdqResultCoverFD0029> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Delete("DELETE FROM jiayue_FD0029_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_FD0029_zdata_wind_power_cdq_result WHERE DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerCdqResultCoverFD0029> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+    @Select("SELECT * FROM jiayue_FD0029_zdata_wind_power_cdq_result WHERE PRE_DATE_TIME = #{dateSubString} ORDER BY CREATE_TIME DESC LIMIT 1")
+    JiaYueWindPowerCdqResultCoverFD0029 selectByDataDate(@Param("dateSubString") String dateSubString);
+
+}

+ 38 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerCdqResultCoverMapperFD0030.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.JiaYueWindPowerCdqResultCoverFD0030;
+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 JiaYueWindPowerCdqResultCoverMapperFD0030 extends BaseMapper<JiaYueWindPowerCdqResultCoverFD0030> {
+
+    @Delete("DELETE FROM jiayue_FD0030_zdata_wind_power_cdq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0030_zdata_wind_power_cdq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerCdqResultCoverFD0030> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Delete("DELETE FROM jiayue_FD0030_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_FD0030_zdata_wind_power_cdq_result WHERE DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerCdqResultCoverFD0030> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+    @Select("SELECT * FROM jiayue_FD0030_zdata_wind_power_cdq_result WHERE PRE_DATE_TIME = #{dateSubString} ORDER BY CREATE_TIME DESC LIMIT 1")
+    JiaYueWindPowerCdqResultCoverFD0030 selectByDataDate(@Param("dateSubString") String dateSubString);
+
+}

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

@@ -45,6 +45,6 @@ public interface JiaYueWindPowerDqResultCoverMapperFD0002 extends BaseMapper<Jia
     @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
     List<JiaYueWindPowerDqResultCoverFD0002> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
 
-    @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 960")
+    @Select("SELECT * FROM jiayue_FD0002_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
     List<JiaYueWindPowerDqResultCoverFD0002> selectByDataDate(@Param("date") String date);
 }

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

@@ -45,7 +45,7 @@ public interface JiaYueWindPowerDqResultCoverMapperFD0003 extends BaseMapper<Jia
     @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
     List<JiaYueWindPowerDqResultCoverFD0003> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
 
-    @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 960")
+    @Select("SELECT * FROM jiayue_FD0003_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
     List<JiaYueWindPowerDqResultCoverFD0003> selectByDataDate(@Param("date") String date);
 
 }

+ 2 - 2
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0004.java

@@ -25,7 +25,7 @@ public interface JiaYueWindPowerDqResultCoverMapperFD0004 extends BaseMapper<Jia
     int deleteAll();
 
     @Select("SELECT * FROM jiayue_FD0004_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
-    List<JiaYueWindPowerDqResultCoverFD0003> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+    List<JiaYueWindPowerDqResultCoverFD0004> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
 
     @Delete("DELETE FROM jiayue_FD0004_zdata_wind_power_dq_result where DATA_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId} AND DATA_DATE BETWEEN #{dateDateStart} AND #{dateDateEnd}")
@@ -46,7 +46,7 @@ public interface JiaYueWindPowerDqResultCoverMapperFD0004 extends BaseMapper<Jia
     @Select("SELECT * FROM jiayue_FD0004_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
     List<JiaYueWindPowerDqResultCoverFD0004> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
 
-    @Select("SELECT * FROM jiayue_FD0004_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 960")
+    @Select("SELECT * FROM jiayue_FD0004_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
     List<JiaYueWindPowerDqResultCoverFD0004> selectByDataDate(@Param("date") String date);
 
 }

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0029.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.JiaYueWindPowerDqResultCoverFD0029;
+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 JiaYueWindPowerDqResultCoverMapperFD0029 extends BaseMapper<JiaYueWindPowerDqResultCoverFD0029> {
+
+    @Delete("DELETE FROM jiayue_FD0029_zdata_wind_power_dq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0029_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerDqResultCoverFD0029> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_FD0029_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_FD0029_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<JiaYueWindPowerDqResultCoverFD0029> selectByTimeAndObjId(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_FD0029_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerDqResultCoverFD0029> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_FD0029_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
+    List<JiaYueWindPowerDqResultCoverFD0029> selectByDataDate(@Param("date") String date);
+
+}

+ 52 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerDqResultCoverMapperFD0030.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.JiaYueWindPowerDqResultCoverFD0030;
+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 JiaYueWindPowerDqResultCoverMapperFD0030 extends BaseMapper<JiaYueWindPowerDqResultCoverFD0030> {
+
+    @Delete("DELETE FROM jiayue_FD0030_zdata_wind_power_dq_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0030_zdata_wind_power_dq_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerDqResultCoverFD0030> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_FD0030_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_FD0030_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<JiaYueWindPowerDqResultCoverFD0030> selectByTimeAndObjId(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_FD0030_zdata_wind_power_dq_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerDqResultCoverFD0030> selectByDataDateDateTime(@Param("fileDate") String fileDate, @Param("fileTime") String fileTime, @Param("objId") String objId);
+
+
+    @Select("SELECT * FROM jiayue_FD0030_zdata_wind_power_dq_result WHERE DATA_TIME = '05:00:00' AND  DATA_DATE = #{date} ORDER BY CREATE_TIME LIMIT 96")
+    List<JiaYueWindPowerDqResultCoverFD0030> selectByDataDate(@Param("date") String date);
+
+}

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

+ 37 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/mapper/JiaYueWindPowerNwpResultCoverMapperFD0030.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.JiaYueWindPowerNwpResultCoverFD0030;
+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 JiaYueWindPowerNwpResultCoverMapperFD0030 extends BaseMapper<JiaYueWindPowerNwpResultCoverFD0030> {
+
+    @Delete("DELETE FROM jiayue_FD0030_zdata_nwp_result")
+    int deleteAll();
+
+    @Select("SELECT * FROM jiayue_FD0030_zdata_nwp_result WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<JiaYueWindPowerNwpResultCoverFD0030> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+
+    @Delete("DELETE FROM jiayue_FD0030_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_FD0030_zdata_nwp_result WHERE DATA_DATE = #{fileDate} AND DATA_TIME = #{fileTime} AND OBJ_ID = #{objId}")
+    List<JiaYueWindPowerNwpResultCoverFD0030> 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/WindPowerReal15MinFD0029Mapper.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.WindPowerReal15MinFD0029;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * zdata_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface WindPowerReal15MinFD0029Mapper extends BaseMapper<WindPowerReal15MinFD0029> {
+
+    @Delete("DELETE FROM zdata_FD0029_wind_power_real_15min")
+    int deleteAll();
+
+    @Select("SELECT * FROM zdata_FD0029_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<WindPowerReal15MinFD0029> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Select("SELECT * FROM zdata_FD0029_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<WindPowerReal15MinFD0029> 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/WindPowerReal15MinFD0030Mapper.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.WindPowerReal15MinFD0030;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * zdata_wind_power_real_15min
+ *
+ * @author fxy
+ * @date 2023-08-01 15:48:48
+ */
+@Mapper
+public interface WindPowerReal15MinFD0030Mapper extends BaseMapper<WindPowerReal15MinFD0030> {
+
+    @Delete("DELETE FROM zdata_FD0030_wind_power_real_15min")
+    int deleteAll();
+
+    @Select("SELECT * FROM zdata_FD0030_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime}")
+    List<WindPowerReal15MinFD0030> selectByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @Select("SELECT * FROM zdata_FD0030_wind_power_real_15min WHERE DATE_TIME BETWEEN #{startTime} AND #{endTime} AND OBJ_ID = #{objId}")
+    List<WindPowerReal15MinFD0030> selectByTimeAndObjId(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("objId") String objId);
+
+}

+ 311 - 403
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/GenerateBackPassDataService.java

@@ -18,11 +18,15 @@ import com.jiayue.ipp.common.data.entity.*;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 import java.io.*;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
 import java.util.Date;
@@ -36,6 +40,7 @@ import java.util.stream.Collectors;
  */
 @Service
 @Slf4j
+@EnableAsync
 public class GenerateBackPassDataService {
     private final WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service;
 
@@ -51,6 +56,10 @@ public class GenerateBackPassDataService {
 
     private final WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service;
 
+    private final WindPowerReal15MinFD0029Service windPowerReal15MinFD0029Service;
+
+    private final WindPowerReal15MinFD0030Service windPowerReal15MinFD0030Service;
+
     private static final String IMAGE_TYPE = "jpg";
     private static final String PLACE = "-0.99|";
     private static final Long oneDay = 3600 * 24 * 1000L - 1000L;
@@ -70,6 +79,10 @@ public class GenerateBackPassDataService {
 
     private final JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service;
 
+    private final JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service;
+
     private final JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service;
 
     private final JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service;
@@ -84,13 +97,16 @@ public class GenerateBackPassDataService {
 
     private final JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service;
 
+    private final JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service;
+
+    private final JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service;
 
     public GenerateBackPassDataService(WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service,WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service,WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service,WindPowerReal15MinFD0004Service windPowerReal15MinFD0004Service,WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service,
-                                       WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service,WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,
+                                       WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service,WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service,WindPowerReal15MinFD0029Service windPowerReal15MinFD0029Service,WindPowerReal15MinFD0030Service windPowerReal15MinFD0030Service,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,
                                        JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service,
-                                       JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,
+                                       JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service,JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service,JiaYueWindPowerCdqResultCoverFD0001Service jiaYueWindPowerCdqResultCoverFD0001Service,JiaYueWindPowerCdqResultCoverFD0002Service jiaYueWindPowerCdqResultCoverFD0002Service,
                                        JiaYueWindPowerCdqResultCoverFD0003Service jiaYueWindPowerCdqResultCoverFD0003Service,JiaYueWindPowerCdqResultCoverFD0004Service jiaYueWindPowerCdqResultCoverFD0004Service,JiaYueWindPowerCdqResultCoverFD0005Service jiaYueWindPowerCdqResultCoverFD0005Service,JiaYueWindPowerCdqResultCoverFD0006Service jiaYueWindPowerCdqResultCoverFD0006Service,
-                                       JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service){
+                                       JiaYueWindPowerCdqResultCoverFD0007Service jiaYueWindPowerCdqResultCoverFD0007Service,JiaYueWindPowerCdqResultCoverFD0029Service jiaYueWindPowerCdqResultCoverFD0029Service,JiaYueWindPowerCdqResultCoverFD0030Service jiaYueWindPowerCdqResultCoverFD0030Service){
         this.windPowerReal15MinFD0001Service = windPowerReal15MinFD0001Service;
         this.windPowerReal15MinFD0002Service = windPowerReal15MinFD0002Service;
         this.windPowerReal15MinFD0003Service = windPowerReal15MinFD0003Service;
@@ -98,6 +114,8 @@ public class GenerateBackPassDataService {
         this.windPowerReal15MinFD0005Service = windPowerReal15MinFD0005Service;
         this.windPowerReal15MinFD0006Service = windPowerReal15MinFD0006Service;
         this.windPowerReal15MinFD0007Service = windPowerReal15MinFD0007Service;
+        this.windPowerReal15MinFD0029Service = windPowerReal15MinFD0029Service;
+        this.windPowerReal15MinFD0030Service = windPowerReal15MinFD0030Service;
         this.jiaYueWindPowerDqResultCoverFD0001Service = jiaYueWindPowerDqResultCoverFD0001Service;
         this.jiaYueWindPowerDqResultCoverFD0002Service = jiaYueWindPowerDqResultCoverFD0002Service;
         this.jiaYueWindPowerDqResultCoverFD0003Service = jiaYueWindPowerDqResultCoverFD0003Service;
@@ -105,6 +123,8 @@ public class GenerateBackPassDataService {
         this.jiaYueWindPowerDqResultCoverFD0005Service = jiaYueWindPowerDqResultCoverFD0005Service;
         this.jiaYueWindPowerDqResultCoverFD0006Service = jiaYueWindPowerDqResultCoverFD0006Service;
         this.jiaYueWindPowerDqResultCoverFD0007Service = jiaYueWindPowerDqResultCoverFD0007Service;
+        this.jiaYueWindPowerDqResultCoverFD0029Service = jiaYueWindPowerDqResultCoverFD0029Service;
+        this.jiaYueWindPowerDqResultCoverFD0030Service = jiaYueWindPowerDqResultCoverFD0030Service;
         this.jiaYueWindPowerCdqResultCoverFD0001Service = jiaYueWindPowerCdqResultCoverFD0001Service;
         this.jiaYueWindPowerCdqResultCoverFD0002Service = jiaYueWindPowerCdqResultCoverFD0002Service;
         this.jiaYueWindPowerCdqResultCoverFD0003Service = jiaYueWindPowerCdqResultCoverFD0003Service;
@@ -112,284 +132,121 @@ public class GenerateBackPassDataService {
         this.jiaYueWindPowerCdqResultCoverFD0004Service = jiaYueWindPowerCdqResultCoverFD0004Service;
         this.jiaYueWindPowerCdqResultCoverFD0006Service = jiaYueWindPowerCdqResultCoverFD0006Service;
         this.jiaYueWindPowerCdqResultCoverFD0007Service = jiaYueWindPowerCdqResultCoverFD0007Service;
+        this.jiaYueWindPowerCdqResultCoverFD0029Service = jiaYueWindPowerCdqResultCoverFD0029Service;
+        this.jiaYueWindPowerCdqResultCoverFD0030Service = jiaYueWindPowerCdqResultCoverFD0030Service;
     }
+
     /**
-     * 生成实际功率json文件
+     *  每天凌晨一点零五分生成回传短期、超短期。实际功率数据
+     * @return
      */
-//    @Scheduled(cron = "0 48 1 * * ?")
-//    public void genRealPowerDataJsonFile() {
-//
-//        long time = System.currentTimeMillis() - 86400000l;
-//        // 获取startTime和endTime
-//        Date startTime = DateTimeUtil.getDayStartTime(time);
-//        Date endTime = DateTimeUtil.getDayLastTime(time);
-//
-//        List list = new ArrayList();
-//        list.add("FD0001");
-//        list.add("FD0002");
-//        list.add("FD0003");
-//        list.add("FD0005");
-//        list.add("FD0006");
-//        list.add("FD0007");
-//
-//        List<ElectricField> electricFieldList = new ArrayList<>();
-//        ElectricField electricField1 = new ElectricField();
-//        electricField1.setBelongForecastManufactor("SYJY");
-//        electricField1.setCapacity(new BigDecimal(30.0000));
-//        electricField1.setElectricFieldTypeEnum("2");
-//        electricField1.setForecastManufactor("SYJY");
-//        electricField1.setId("138c6aebdf6ddc792495bc35fa3e4adb");
-//        electricField1.setName("天津中能融合测试站A");
-//        electricField1.setStationCode("J00770");
-//        electricField1.setSign("FD0001");
-//        electricField1.setNetSubstationName("J00770");
-//
-//        ElectricField electricField2 = new ElectricField();
-//        electricField2.setBelongForecastManufactor("SYJY");
-//        electricField2.setCapacity(new BigDecimal(12.0000));
-//        electricField2.setElectricFieldTypeEnum("2");
-//        electricField2.setForecastManufactor("SYJY");
-//        electricField2.setId("30a9f02678beb7101e628d7c7e22c5d6");
-//        electricField2.setName("天津中能融合测试站C");
-//        electricField2.setStationCode("J00942");
-//        electricField2.setSign("FD0003");
-//        electricField2.setNetSubstationName("J00942");
-//
-//        ElectricField electricField3 = new ElectricField();
-//        electricField3.setBelongForecastManufactor("SYJY");
-//        electricField3.setCapacity(new BigDecimal(20.0000));
-//        electricField3.setElectricFieldTypeEnum("2");
-//        electricField2.setForecastManufactor("SYJY");
-//        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
-//        electricField3.setName("中能融合测试站B");
-//        electricField3.setStationCode("J00941");
-//        electricField3.setSign("FD0002");
-//        electricField3.setNetSubstationName("J00941");
-//
-//        ElectricField electricField5 = new ElectricField();
-//        electricField3.setBelongForecastManufactor("SYJY");
-//        electricField3.setCapacity(new BigDecimal(99.0000));
-//        electricField3.setElectricFieldTypeEnum("2");
-//        electricField2.setForecastManufactor("SYJY");
-//        electricField3.setId("d712c1ef348714a5afafcf130c256cc5");
-//        electricField3.setName("内蒙古中能融合测试站E");
-//        electricField3.setStationCode("J00929");
-//        electricField3.setSign("FD0005");
-//        electricField3.setNetSubstationName("J00929");
-//
-//        ElectricField electricField6 = new ElectricField();
-//        electricField3.setBelongForecastManufactor("SYJY");
-//        electricField3.setCapacity(new BigDecimal(50.0000));
-//        electricField3.setElectricFieldTypeEnum("2");
-//        electricField2.setForecastManufactor("SYJY");
-//        electricField3.setId("d712c1ef348714a5afafcf130c256cc6");
-//        electricField3.setName("河南中能融合测试站F");
-//        electricField3.setStationCode("J00930");
-//        electricField3.setSign("FD0006");
-//        electricField3.setNetSubstationName("J00930");
-//
-//        ElectricField electricField7 = new ElectricField();
-//        electricField3.setBelongForecastManufactor("SYJY");
-//        electricField3.setCapacity(new BigDecimal(50.0000));
-//        electricField3.setElectricFieldTypeEnum("2");
-//        electricField2.setForecastManufactor("SYJY");
-//        electricField3.setId("d712c1ef348714a5afafcf130c256cc7");
-//        electricField3.setName("天津中能融合测试站F");
-//        electricField3.setStationCode("J00931");
-//        electricField3.setSign("FD0007");
-//        electricField3.setNetSubstationName("J00931");
-//
-//        electricFieldList.add(electricField1);
-//        electricFieldList.add(electricField2);
-//        electricFieldList.add(electricField3);
-//        electricFieldList.add(electricField5);
-//        electricFieldList.add(electricField6);
-//        electricFieldList.add(electricField7);
-//
-//        List<WindPowerReal15MinFD0001> windPowerReal15MinFD0001List = windPowerReal15MinFD0001Service.getAll(startTime, endTime);
-//        List<WindPowerReal15MinFD0002> windPowerReal15MinFD0002List = windPowerReal15MinFD0002Service.getAll(startTime, endTime);
-//        List<WindPowerReal15MinFD0003> windPowerReal15MinFD0003List = windPowerReal15MinFD0003Service.getAll(startTime, endTime);
-//        List<WindPowerReal15MinFD0005> windPowerReal15MinFD0005List = windPowerReal15MinFD0005Service.getAll(startTime, endTime);
-//        List<WindPowerReal15MinFD0006> windPowerReal15MinFD0006List = windPowerReal15MinFD0006Service.getAll(startTime, endTime);
-//        List<WindPowerReal15MinFD0007> windPowerReal15MinFD0007List = windPowerReal15MinFD0007Service.getAll(startTime, endTime);
-//        // 根据电站编号查询对应实际功率
-//        for (int i = 0; i < list.size(); i++) {
-//
-//            for (ElectricField electricField : electricFieldList) {
-//                // 判断场站标识是否跟数据库中的场站id相同
-//                String zxglPath = sysParameterService.getSysParameterAndStationCode("zxgl_config", "", electricField.getStationCode());
-//
-//                if (!zxglPath.equals("")) {
-//                    FileOutputStream fileOutputStream = null;
-//                    try {
-//                        log.info("开始生成【{}】实际功率json文件", electricField.getStationCode());
-//                        String content = electricField.getStationCode() + "|" + startTime.getTime() + "|rp|";
-//                        //为了确保无数据缺失,遍历时间
-//                        long sTimeL = startTime.getTime();
-//                        long eTimeL = endTime.getTime();
-//                        for (long m = sTimeL; m < eTimeL; m += 900000l) {
-//                            long finalI = m;
-//                            List<? extends Serializable> filterList = new ArrayList<>();
-//                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0001")) {
-//                                filterList = windPowerReal15MinFD0001List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-//                            }
-//                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0002")) {
-//                                filterList = windPowerReal15MinFD0002List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-//                            }
-//                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0003")) {
-//                                filterList = windPowerReal15MinFD0003List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-//                            }
-//                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0005")) {
-//                                filterList = windPowerReal15MinFD0005List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-//                            }
-//                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0006")) {
-//                                filterList = windPowerReal15MinFD0006List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-//                            }
-//                            if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0007")) {
-//                                filterList = windPowerReal15MinFD0007List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-//                            }
-//                            if (filterList != null && filterList.size() > 0) {
-//                                try {
-//                                    Method getValueMethod = filterList.get(0).getClass().getMethod("getValue");
-//                                    Object value = getValueMethod.invoke(filterList.get(0));
-//                                    content = content + value.toString() + "|";
-//                                } catch (NoSuchMethodException e) {
-//                                    throw new RuntimeException(e);
-//                                } catch (IllegalAccessException e) {
-//                                    throw new RuntimeException(e);
-//                                } catch (InvocationTargetException e) {
-//                                    throw new RuntimeException(e);
-//                                }
-//
-//                            } else {
-//                                content = content + "-0.99|";
-//                            }
-//
-//                        }
-//                        for (int j = 0; j < 96; j++) {
-//                            content = content + "-0.99|";
-//                        }
-//                        String zipContent = GzipUtil.zip(content).replace("\r\n", "");
-//
-//                        String taskNo = getTaskNo(electricField);
-//
-//                        JSONObject jsonObject = new JSONObject();
-//                        jsonObject.putOnce("taskNo", taskNo);
-//                        jsonObject.putOnce("taskType", "stationData-rp");
-//                        jsonObject.putOnce("partNo", 1);
-//                        jsonObject.putOnce("partTotal", 1);
-//                        jsonObject.putOnce("data", zipContent);
-//
-//                        String qrCodeContent = jsonObject.toString();
-//
-//                        String fileName = electricField.getStationCode() + "-" + DateFormatUtils.format(new Date(), "yyyyMMddHHmm") + "-realpower.json";
+    @Scheduled(cron = "0 50 11 * * *")
+    @Async
+    public Map<String, Object> generateQRCode() {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            List<ElectricField> electricFieldList = new ArrayList<>();
+            ElectricField electricField = new ElectricField();
+            electricField.setStationCode("J00770");
+            electricField.setSign("FD0001");
+
+            ElectricField electricField2 = new ElectricField();
+            electricField2.setStationCode("J00941");
+            electricField2.setSign("FD0002");
+
+            ElectricField electricField3 = new ElectricField();
+            electricField3.setStationCode("J00942");
+            electricField3.setSign("FD0003");
+
+
+            // 新增宁夏吴忠石窖沟电站
+            ElectricField electricField4 = new ElectricField();
+            electricField4.setStationCode("J00988");
+            electricField4.setSign("FD0004");
+
+            ElectricField electricField5 = new ElectricField();
+            electricField5.setStationCode("J00929");
+            electricField5.setSign("FD0005");
+
+            ElectricField electricField6 = new ElectricField();
+            electricField6.setStationCode("J00930");
+            electricField6.setSign("FD0006");
+
+
+            ElectricField electricField7 = new ElectricField();
+            electricField7.setStationCode("J00931");
+            electricField7.setSign("FD0007");
+
+            ElectricField electricField29 = new ElectricField();
+            electricField29.setStationCode("J01034");
+            electricField29.setSign("FD0029");
+
+            ElectricField electricField30 = new ElectricField();
+            electricField30.setStationCode("J01033");
+            electricField30.setSign("FD0030");
+
+            electricFieldList.add(electricField);
+            electricFieldList.add(electricField2);
+            electricFieldList.add(electricField3);
+            electricFieldList.add(electricField4);
+            electricFieldList.add(electricField5);
+            electricFieldList.add(electricField6);
+            electricFieldList.add(electricField7);
+            electricFieldList.add(electricField29);
+            electricFieldList.add(electricField30);
 //
-//                        File file = new File(zxglPath + File.separator + fileName);
+//            // 开始日期和结束日期
+//            LocalDate startDate = LocalDate.of(2024, 6, 11);
+//            LocalDate endDate = LocalDate.of(2024, 6, 26);
 //
-//                        fileOutputStream = new FileOutputStream(file);
-//                        fileOutputStream.write(qrCodeContent.getBytes(Charset.forName("utf-8")));
-//                        fileOutputStream.flush();
-//                        fileOutputStream.close();
+//            // 存储结果的列表
+//            List<Date> dateList = new ArrayList<>();
 //
-//                        log.info("实际功率json文件【{}】生成成功", fileName);
-//                    } catch (IOException e) {
-//                        e.printStackTrace();
-//                    }
+//            // 遍历日期范围
+//            LocalDate currentDate = startDate;
+//            while (!currentDate.isAfter(endDate)) {
+//                // 获取当天的00:00
+//                LocalDateTime startOfDay = currentDate.atStartOfDay();
 //
-//                }
+//                // 转换为Date
+//                Date startOfDayDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
 //
-////                if (electricField.getSign().equals(list.get(i)) && list.get(i).equals("FD0003")) {
-////                    String zxglPath = sysParameterService.getSysParameterAndStationCode("zxgl_config", "", electricField.getStationCode());
-////
-////                    if (!zxglPath.equals("")) {
-////                        FileOutputStream fileOutputStream = null;
-////                        try {
-////                            log.info("开始生成【{}】实际功率json文件", electricField.getStationCode());
-////                            String content = electricField.getStationCode() + "|" + startTime.getTime() + "|rp|";
-////                            //为了确保无数据缺失,遍历时间
-////                            long sTimeL = startTime.getTime();
-////                            long eTimeL = endTime.getTime();
-////                            for (long m = sTimeL; m < eTimeL; m += 900000l) {
-////                                long finalI = m;
-////                                List<WindPowerReal15MinFD0003> filterList = windPowerReal15MinFD0003List.stream().filter(p -> Timestamp.valueOf(p.getDateTime()).getTime() == finalI).collect(Collectors.toList());
-////
-////                                if (filterList != null && filterList.size() > 0) {
-////                                    content = content + filterList.get(0).getValue().toString() + "|";
-////                                } else {
-////                                    content = content + "-0.99|";
-////                                }
-////
-////                            }
-////                            for (int j = 0; j < 96; j++) {
-////                                content = content + "-0.99|";
-////                            }
-////                            String zipContent = GzipUtil.zip(content).replace("\r\n", "");
-////
-////                            String taskNo = getTaskNo(electricField);
-////
-////                            JSONObject jsonObject = new JSONObject();
-////                            jsonObject.putOnce("taskNo", taskNo);
-////                            jsonObject.putOnce("taskType", "stationData-rp");
-////                            jsonObject.putOnce("partNo", 1);
-////                            jsonObject.putOnce("partTotal", 1);
-////                            jsonObject.putOnce("data", zipContent);
-////
-////                            String qrCodeContent = jsonObject.toString();
-////
-////                            String fileName = electricField.getStationCode() + "-" + DateFormatUtils.format(new Date(), "yyyyMMddHHmm") + "-realpower.json";
-////
-////                            File file = new File(zxglPath + File.separator + fileName);
-////
-////                            fileOutputStream = new FileOutputStream(file);
-////                            fileOutputStream.write(qrCodeContent.getBytes(Charset.forName("utf-8")));
-////                            fileOutputStream.flush();
-////                            fileOutputStream.close();
-////
-////                            log.info("实际功率json文件【{}】生成成功", fileName);
-////                        } catch (IOException e) {
-////                            e.printStackTrace();
-////                        }
-////
-////                    }
-////                }
+//                // 添加到列表中
+//                dateList.add(startOfDayDate);
+//                currentDate = currentDate.plusDays(1);
 //            }
-//        }
-//
-//
-//    }
-    @Scheduled(fixedRate = 60000L)
-    public void realPowerForQr() {
-
-        String zxglPath = "/home/syjy/huichuan";
-
-        File zxglPathFile = new File(zxglPath + File.separator + "new");
 
-        log.info("开始扫描正向隔离回传目录{}", zxglPathFile.getPath());
-        String bakPath = zxglPath + File.separator + "bak";
-        if (zxglPathFile.exists()) {
+//            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);
+                }
+//            }
+            log.info("任务执行完成!");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("生成二维码失败");
+            // 处理生成二维码失败的情况
+        }
+        return map;
+    }
 
-            for (String s : zxglPathFile.list()) {
 
-                List<String> list;
-                File file = null;
-                try {
-                    file = new File(zxglPathFile.getPath() + File.separator + s);
-                    list = EfileUtil.getFileContent(file);
-                    TaskResultRequestVO taskResultRequestVO = new TaskResultRequestVO();
-                    log.info("开始回传二维码数据,文件名:{}", file.getName());
-                    taskResultRequestVO.setTaskResult(String.join("", list));
-                    String url = "https://api.jiayuepowertech.com:8080/task/result";
-                    // 构造请求对象
-                    HttpRequest request = HttpRequest.put(url).body(JsonBeanUtil.beanToJson(taskResultRequestVO));
-                    // 发送请求并获取响应对象
-                    HttpResponse response = request.execute();
-                    log.info("回传二维码数据状态=》{}", response.body());
-                    FileUtils.moveFile(file, new File(bakPath + File.separator + file.getName()));
-                } catch (Exception e) {
-                    log.info("回传二维码数据失败,文件名:{}", file.getName());
-                    e.printStackTrace();
-                }
-            }
+    public void prettyPrintJson(String json) {
+        try {
+            TaskResultRequestVO taskResultRequestVO = new TaskResultRequestVO();
+            log.info("开始回传二维码数据,文件名:{}");
+            taskResultRequestVO.setTaskResult(String.join("", json));
+            String url = "https://api.jiayuepowertech.com:8080/task/result";
+            // 构造请求对象
+            HttpRequest request = HttpRequest.put(url).body(JsonBeanUtil.beanToJson(taskResultRequestVO));
+            // 发送请求并获取响应对象
+            HttpResponse response = request.execute();
+            log.info("回传二维码数据状态=》{}", response.body());
+        } catch (Exception e) {
+            log.info("回传二维码数据失败");
+            e.printStackTrace();
         }
     }
 
@@ -430,7 +287,7 @@ public class GenerateBackPassDataService {
 
 
             //短期
-            List<String> st = generateShortTermContent(startTime.getTime(), endTime.getTime(), electricField);
+            List<String> st = generateShortTermContent(startTime.getTime()- 3600 * 24 * 1000L, endTime.getTime()- 3600 * 24 * 1000L, electricField);
             //二维码名字
             StringBuilder name = new StringBuilder("E1短期");
             dqMap.put(name.toString(), st);
@@ -473,14 +330,47 @@ public class GenerateBackPassDataService {
         //T00003-rp|2023-04-14
         stringBuilder.append(electricField.getStationCode()).append("-").append("rp").append("|").append(sdf.format(startTime)).append("|");
 
-        List<WindPowerReal15MinFD0001> windPowerReal15MinFD0001List = windPowerReal15MinFD0001Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-        List<WindPowerReal15MinFD0002> windPowerReal15MinFD0002List = windPowerReal15MinFD0002Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-        List<WindPowerReal15MinFD0003> windPowerReal15MinFD0003List = windPowerReal15MinFD0003Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-        List<WindPowerReal15MinFD0004> windPowerReal15MinFD0004List = windPowerReal15MinFD0004Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-        List<WindPowerReal15MinFD0005> windPowerReal15MinFD0005List = windPowerReal15MinFD0005Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-        List<WindPowerReal15MinFD0006> windPowerReal15MinFD0006List = windPowerReal15MinFD0006Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-        List<WindPowerReal15MinFD0007> windPowerReal15MinFD0007List = windPowerReal15MinFD0007Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
-
+        List<WindPowerReal15MinFD0001> windPowerReal15MinFD0001List = new ArrayList<>();
+        List<WindPowerReal15MinFD0002> windPowerReal15MinFD0002List = new ArrayList<>();
+        List<WindPowerReal15MinFD0003> windPowerReal15MinFD0003List = new ArrayList<>();
+        List<WindPowerReal15MinFD0004> windPowerReal15MinFD0004List = new ArrayList<>();
+        List<WindPowerReal15MinFD0005> windPowerReal15MinFD0005List = new ArrayList<>();
+        List<WindPowerReal15MinFD0006> windPowerReal15MinFD0006List = new ArrayList<>();
+        List<WindPowerReal15MinFD0007> windPowerReal15MinFD0007List = new ArrayList<>();
+        List<WindPowerReal15MinFD0029> windPowerReal15MinFD0029List = new ArrayList<>();
+        List<WindPowerReal15MinFD0030> windPowerReal15MinFD0030List = new ArrayList<>();
+
+        switch (electricField.getSign()){
+            case "FD0001":
+                windPowerReal15MinFD0001List = windPowerReal15MinFD0001Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0002":
+                windPowerReal15MinFD0002List = windPowerReal15MinFD0002Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0003":
+                windPowerReal15MinFD0003List = windPowerReal15MinFD0003Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0004":
+                windPowerReal15MinFD0004List = windPowerReal15MinFD0004Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0005":
+                windPowerReal15MinFD0005List = windPowerReal15MinFD0005Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0006":
+                windPowerReal15MinFD0006List = windPowerReal15MinFD0006Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0007":
+                windPowerReal15MinFD0007List = windPowerReal15MinFD0007Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0029":
+                windPowerReal15MinFD0029List = windPowerReal15MinFD0029Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            case "FD0030":
+                windPowerReal15MinFD0030List = windPowerReal15MinFD0030Service.getAll(new Date(startTime), new Date(startTime + 24 * 60 * 60 * 1000L - 1000));
+                break;
+            default:
+                break;
+        }
 
         for (long stepTime = startTime; stepTime <= endTime; stepTime = stepTime + timeStep) {
             long finalTime = stepTime;
@@ -493,7 +383,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0002")) {
-                List<WindPowerReal15MinFD0002> filterList = windPowerReal15MinFD0002List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<WindPowerReal15MinFD0002> filterList = windPowerReal15MinFD0002List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
                 if (!filterList.isEmpty()) {
                     content.append(filterList.get(0).getValue()).append("|");
                 } else {
@@ -501,7 +391,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0003")) {
-                List<WindPowerReal15MinFD0003> filterList = windPowerReal15MinFD0003List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<WindPowerReal15MinFD0003> filterList = windPowerReal15MinFD0003List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
                 if (!filterList.isEmpty()) {
                     content.append(filterList.get(0).getValue()).append("|");
                 } else {
@@ -509,7 +399,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0004")) {
-                List<WindPowerReal15MinFD0004> filterList = windPowerReal15MinFD0004List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<WindPowerReal15MinFD0004> filterList = windPowerReal15MinFD0004List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
                 if (!filterList.isEmpty()) {
                     content.append(filterList.get(0).getValue()).append("|");
                 } else {
@@ -517,7 +407,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0005")) {
-                List<WindPowerReal15MinFD0005> filterList = windPowerReal15MinFD0005List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<WindPowerReal15MinFD0005> filterList = windPowerReal15MinFD0005List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
                 if (!filterList.isEmpty()) {
                     content.append(filterList.get(0).getValue()).append("|");
                 } else {
@@ -525,7 +415,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0006")) {
-                List<WindPowerReal15MinFD0006> filterList = windPowerReal15MinFD0006List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<WindPowerReal15MinFD0006> filterList = windPowerReal15MinFD0006List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
                 if (!filterList.isEmpty()) {
                     content.append(filterList.get(0).getValue()).append("|");
                 } else {
@@ -533,13 +423,30 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0007")) {
-                List<WindPowerReal15MinFD0007> filterList = windPowerReal15MinFD0007List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<WindPowerReal15MinFD0007> filterList = windPowerReal15MinFD0007List.stream().filter(p -> p.getDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() * 1000L == finalTime).collect(Collectors.toList());
+                if (!filterList.isEmpty()) {
+                    content.append(filterList.get(0).getValue()).append("|");
+                } else {
+                    content.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());
+                if (!filterList.isEmpty()) {
+                    content.append(filterList.get(0).getActivePower()).append("|");
+                } else {
+                    content.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());
                 if (!filterList.isEmpty()) {
                     content.append(filterList.get(0).getValue()).append("|");
                 } else {
                     content.append(PLACE);
                 }
             }
+
         }
 
         stringBuilder.append(content);
@@ -578,7 +485,7 @@ public class GenerateBackPassDataService {
         StringBuilder name = new StringBuilder("E1");
 
         content.append(electricField.getStationCode()).append("-").append("st").append("-").append(name).append("|");
-        List<Long> lDate = DateMomentUtil.getEveryDay(startTime, startTime + 24 * 60 * 60 * 1000 - 1000L);
+        List<Long> lDate = DateMomentUtil.getEveryDay(startTime+24 * 60 * 60 * 1000 , startTime + 48 * 60 * 60 * 1000 - 1000L);
         for (int i = 0; i < lDate.size(); i++) {
             content.append(sdf.format(lDate.get(i)));
             if (i != lDate.size() - 1) {
@@ -588,14 +495,47 @@ public class GenerateBackPassDataService {
             }
         }
 
-        List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverFD0001List = jiaYueWindPowerDqResultCoverFD0001Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverFD0002List = jiaYueWindPowerDqResultCoverFD0002Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverFD0003List = jiaYueWindPowerDqResultCoverFD0003Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerDqResultCoverFD0004> jiaYueWindPowerDqResultCoverFD0004List = jiaYueWindPowerDqResultCoverFD0004Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverFD0005List = jiaYueWindPowerDqResultCoverFD0005Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverFD0006List = jiaYueWindPowerDqResultCoverFD0006Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverFD0007List = jiaYueWindPowerDqResultCoverFD0007Service.findByDataDate(new Date(startTime));
-
+        List<JiaYueWindPowerDqResultCoverFD0001> jiaYueWindPowerDqResultCoverFD0001List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0002> jiaYueWindPowerDqResultCoverFD0002List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0003> jiaYueWindPowerDqResultCoverFD0003List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0004> jiaYueWindPowerDqResultCoverFD0004List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverFD0005List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverFD0006List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverFD0007List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverFD0029List = new ArrayList<>();
+        List<JiaYueWindPowerDqResultCoverFD0030> jiaYueWindPowerDqResultCoverFD0030List = new ArrayList<>();
+
+        switch (electricField.getSign()){
+            case "FD0001":
+                jiaYueWindPowerDqResultCoverFD0001List = jiaYueWindPowerDqResultCoverFD0001Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0002":
+                jiaYueWindPowerDqResultCoverFD0002List = jiaYueWindPowerDqResultCoverFD0002Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0003":
+                jiaYueWindPowerDqResultCoverFD0003List = jiaYueWindPowerDqResultCoverFD0003Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0004":
+                jiaYueWindPowerDqResultCoverFD0004List = jiaYueWindPowerDqResultCoverFD0004Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0005":
+                jiaYueWindPowerDqResultCoverFD0005List = jiaYueWindPowerDqResultCoverFD0005Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0006":
+                jiaYueWindPowerDqResultCoverFD0006List = jiaYueWindPowerDqResultCoverFD0006Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0007":
+                jiaYueWindPowerDqResultCoverFD0007List = jiaYueWindPowerDqResultCoverFD0007Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0029":
+                jiaYueWindPowerDqResultCoverFD0029List = jiaYueWindPowerDqResultCoverFD0029Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0030":
+                jiaYueWindPowerDqResultCoverFD0030List = jiaYueWindPowerDqResultCoverFD0030Service.findByDataDate(new Date(startTime));
+                break;
+            default:
+                break;
+        }
 
         for (long stepTime = startTime; stepTime <= endTime; stepTime = stepTime + timeStep) {
             long finalTime = stepTime;
@@ -608,7 +548,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0002")) {
-                List<JiaYueWindPowerDqResultCoverFD0002> filterList = jiaYueWindPowerDqResultCoverFD0002List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<JiaYueWindPowerDqResultCoverFD0002> filterList = jiaYueWindPowerDqResultCoverFD0002List.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 {
@@ -616,7 +556,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0003")) {
-                List<JiaYueWindPowerDqResultCoverFD0003> filterList = jiaYueWindPowerDqResultCoverFD0003List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<JiaYueWindPowerDqResultCoverFD0003> filterList = jiaYueWindPowerDqResultCoverFD0003List.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 {
@@ -655,6 +595,22 @@ public class GenerateBackPassDataService {
                     content.append(PLACE);
                 }
             }
+            if (electricField.getSign().equals("FD0029")) {
+                List<JiaYueWindPowerDqResultCoverFD0029> filterList = jiaYueWindPowerDqResultCoverFD0029List.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("FD0030")) {
+                List<JiaYueWindPowerDqResultCoverFD0030> filterList = jiaYueWindPowerDqResultCoverFD0030List.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);
+                }
+            }
         }
 
 
@@ -702,13 +658,47 @@ public class GenerateBackPassDataService {
                 content.append("|");
             }
         }
-        List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCoverFD0001List = jiaYueWindPowerCdqResultCoverFD0001Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverFD0002List = jiaYueWindPowerCdqResultCoverFD0002Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverFD0003List = jiaYueWindPowerCdqResultCoverFD0003Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerCdqResultCoverFD0004> jiaYueWindPowerCdqResultCoverFD0004List = jiaYueWindPowerCdqResultCoverFD0004Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCoverFD0005List = jiaYueWindPowerCdqResultCoverFD0005Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCoverFD0006List = jiaYueWindPowerCdqResultCoverFD0006Service.findByDataDate(new Date(startTime));
-        List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCoverFD0007List = jiaYueWindPowerCdqResultCoverFD0007Service.findByDataDate(new Date(startTime));
+        List<JiaYueWindPowerCdqResultCoverFD0001> jiaYueWindPowerCdqResultCoverFD0001List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0002> jiaYueWindPowerCdqResultCoverFD0002List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0003> jiaYueWindPowerCdqResultCoverFD0003List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0004> jiaYueWindPowerCdqResultCoverFD0004List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0005> jiaYueWindPowerCdqResultCoverFD0005List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0006> jiaYueWindPowerCdqResultCoverFD0006List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0007> jiaYueWindPowerCdqResultCoverFD0007List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0029> jiaYueWindPowerCdqResultCoverFD0029List = new ArrayList<>();
+        List<JiaYueWindPowerCdqResultCoverFD0030> jiaYueWindPowerCdqResultCoverFD0030List = new ArrayList<>();
+
+        switch (electricField.getSign()){
+            case "FD0001":
+                jiaYueWindPowerCdqResultCoverFD0001List = jiaYueWindPowerCdqResultCoverFD0001Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0002":
+                jiaYueWindPowerCdqResultCoverFD0002List = jiaYueWindPowerCdqResultCoverFD0002Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0003":
+                jiaYueWindPowerCdqResultCoverFD0003List = jiaYueWindPowerCdqResultCoverFD0003Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0004":
+                jiaYueWindPowerCdqResultCoverFD0004List = jiaYueWindPowerCdqResultCoverFD0004Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0005":
+                jiaYueWindPowerCdqResultCoverFD0005List = jiaYueWindPowerCdqResultCoverFD0005Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0006":
+                jiaYueWindPowerCdqResultCoverFD0006List = jiaYueWindPowerCdqResultCoverFD0006Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0007":
+                jiaYueWindPowerCdqResultCoverFD0007List = jiaYueWindPowerCdqResultCoverFD0007Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0029":
+                jiaYueWindPowerCdqResultCoverFD0029List = jiaYueWindPowerCdqResultCoverFD0029Service.findByDataDate(new Date(startTime));
+                break;
+            case "FD0030":
+                jiaYueWindPowerCdqResultCoverFD0030List = jiaYueWindPowerCdqResultCoverFD0030Service.findByDataDate(new Date(startTime));
+                break;
+            default:
+                break;
+        }
 
         for (long stepTime = startTime; stepTime <= endTime; stepTime = stepTime + timeStep) {
             long finalTime = stepTime;
@@ -721,7 +711,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0002")) {
-                List<JiaYueWindPowerCdqResultCoverFD0002> filterList = jiaYueWindPowerCdqResultCoverFD0002List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<JiaYueWindPowerCdqResultCoverFD0002> filterList = jiaYueWindPowerCdqResultCoverFD0002List.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 {
@@ -729,7 +719,7 @@ public class GenerateBackPassDataService {
                 }
             }
             if (electricField.getSign().equals("FD0003")) {
-                List<JiaYueWindPowerCdqResultCoverFD0003> filterList = jiaYueWindPowerCdqResultCoverFD0003List.stream().filter(p -> p.getPreDateTime().atZone(ZoneId.systemDefault()).toEpochSecond() == finalTime).collect(Collectors.toList());
+                List<JiaYueWindPowerCdqResultCoverFD0003> filterList = jiaYueWindPowerCdqResultCoverFD0003List.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 {
@@ -768,6 +758,22 @@ public class GenerateBackPassDataService {
                     content.append(PLACE);
                 }
             }
+            if (electricField.getSign().equals("FD0029")) {
+                List<JiaYueWindPowerCdqResultCoverFD0029> filterList = jiaYueWindPowerCdqResultCoverFD0029List.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("FD0030")) {
+                List<JiaYueWindPowerCdqResultCoverFD0030> filterList = jiaYueWindPowerCdqResultCoverFD0030List.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);
@@ -798,81 +804,6 @@ public class GenerateBackPassDataService {
     }
 
     /**
-     *  每天凌晨一点零五分生成回传短期、超短期。实际功率数据
-     * @return
-     */
-    @Scheduled(cron = "0 5 1 * * *")
-    public Map<String, Object> generateQRCode() {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            // 定时调用
-            Calendar startyesterday = Calendar.getInstance();
-            startyesterday.add(Calendar.DAY_OF_MONTH, -1);
-            startyesterday.set(Calendar.HOUR_OF_DAY, 0);
-            startyesterday.set(Calendar.MINUTE, 0);
-            startyesterday.set(Calendar.SECOND, 0);
-            startyesterday.set(Calendar.MILLISECOND, 0);
-
-            Calendar endyesterday = Calendar.getInstance();
-            endyesterday.add(Calendar.DAY_OF_MONTH, -1);
-            endyesterday.set(Calendar.HOUR_OF_DAY, 23);
-            endyesterday.set(Calendar.MINUTE, 59);
-            endyesterday.set(Calendar.SECOND, 59);
-            endyesterday.set(Calendar.MILLISECOND, 999);
-
-            List<ElectricField> electricFieldList = new ArrayList<>();
-            ElectricField electricField = new ElectricField();
-            electricField.setStationCode("J00770");
-            electricField.setSign("FD0001");
-
-            ElectricField electricField2 = new ElectricField();
-            electricField2.setStationCode("J00941");
-            electricField2.setSign("FD0002");
-
-            ElectricField electricField3 = new ElectricField();
-            electricField3.setStationCode("J00942");
-            electricField3.setSign("FD0003");
-
-
-            // 新增宁夏吴忠石窖沟电站
-            ElectricField electricField4 = new ElectricField();
-            electricField4.setStationCode("J00988");
-            electricField4.setSign("FD0004");
-
-            ElectricField electricField5 = new ElectricField();
-            electricField5.setStationCode("J00929");
-            electricField5.setSign("FD0005");
-
-            ElectricField electricField6 = new ElectricField();
-            electricField6.setStationCode("J00930");
-            electricField6.setSign("FD0006");
-
-
-            ElectricField electricField7 = new ElectricField();
-            electricField7.setStationCode("J00931");
-            electricField7.setSign("FD0007");
-
-            electricFieldList.add(electricField);
-            electricFieldList.add(electricField2);
-            electricFieldList.add(electricField3);
-            electricFieldList.add(electricField4);
-            electricFieldList.add(electricField5);
-            electricFieldList.add(electricField6);
-            electricFieldList.add(electricField7);
-
-            for (int i = 0; i < electricFieldList.size(); i++) {
-                map = generateQR(electricFieldList.get(i));
-                toJson(map);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.error("生成二维码失败");
-            // 处理生成二维码失败的情况
-        }
-        return map;
-    }
-
-    /**
      *  生成回传短期、超短期、实际功率json文件
      * @param map
      */
@@ -894,30 +825,7 @@ public class GenerateBackPassDataService {
                 } catch (JsonProcessingException e) {
                     e.printStackTrace();
                 }
-                String fileName = null;
-//                    if (entry1.getKey().contains("超短期")) {
-//                        if (entry1.getKey().contains("点数")) {
-//                            fileName = entry.getKey() + "_Point" + entry1.getKey().substring(4, 6) + "_" + System.currentTimeMillis() + ".json";
-//                        } else {
-//                            fileName = entry.getKey() + "_Avg_" + System.currentTimeMillis() + ".json";
-//                        }
-//                    } else if (entry1.getKey().contains("中期")) {
-//                        if (entry1.getKey().contains("平均值")) {
-//                            fileName = entry.getKey() + "_Avg_" + System.currentTimeMillis() + ".json";
-//                        } else {
-//                            fileName = entry.getKey() + "_" + System.currentTimeMillis() + ".json";
-//                        }
-//                    } else {
-                fileName = entry.getKey() + "_" + System.currentTimeMillis() + ".json";
-//                    }
-
-                String filePath = "/home/syjy/huichuan/new/" + fileName;
-                //写入文件
-                try (FileWriter fileWriter = new FileWriter(filePath)) {
-                    fileWriter.write(prettyPrintJson);
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
+                this.prettyPrintJson(prettyPrintJson);
             });
         });
 //        }

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

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

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

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

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

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

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

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

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

@@ -111,6 +111,24 @@ public class DownloadService {
         parsingUrl7.setId("722af308253fcd6eff67959c7f76eaf7");
         parsingUrl7.setDelFlag("0");
 
+        ParsingUrl parsingUrl29 = new ParsingUrl();
+        parsingUrl29.setCId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrl29.setForecastManufactor("SYJY");
+        parsingUrl29.setUrl("/home/syjy/F_data/new/J01034");
+        parsingUrl29.setUrlStatus("1");
+        parsingUrl29.setStationCode("J01034");
+        parsingUrl29.setId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrl29.setDelFlag("0");
+
+        ParsingUrl parsingUrl30 = new ParsingUrl();
+        parsingUrl30.setCId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrl30.setForecastManufactor("SYJY");
+        parsingUrl30.setUrl("/home/syjy/F_data/new/J01033");
+        parsingUrl30.setUrlStatus("1");
+        parsingUrl30.setStationCode("J01033");
+        parsingUrl30.setId("722af308253fcd6eff67959c7f76eaf7");
+        parsingUrl30.setDelFlag("0");
+
 
         parsingUrls.add(parsingUrl1);
         parsingUrls.add(parsingUrl2);
@@ -119,6 +137,8 @@ public class DownloadService {
         parsingUrls.add(parsingUrl5);
         parsingUrls.add(parsingUrl6);
         parsingUrls.add(parsingUrl7);
+        parsingUrls.add(parsingUrl29);
+        parsingUrls.add(parsingUrl30);
 
         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

@@ -91,6 +91,12 @@ public class ElectricFieldServiceImpl extends ServiceImpl<ElectricFieldMapper, E
             case "J00931":
                 sign = "FD0007";
                 break;
+            case "J01034":
+                sign = "FD0029";
+                break;
+            case "J01033":
+                sign = "FD0030";
+                break;
             default:
                 break;
         }

+ 55 - 8
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0001ServiceImpl.java

@@ -12,8 +12,10 @@ 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.*;
@@ -32,13 +34,19 @@ public class JiaYueWindPowerCdqResultCoverFD0001ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service;
 
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
-    public JiaYueWindPowerCdqResultCoverFD0001ServiceImpl(JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service, JiaYueWindPowerCdqResultCoverMapperFD0001 jiaYueWindPowerCdqResultCoverMapperFD0001, ElectricFieldService electricFieldService, SysParameterService sysParameterService, WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service){
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0001ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service, JiaYueWindPowerCdqResultCoverMapperFD0001 jiaYueWindPowerCdqResultCoverMapperFD0001, ElectricFieldService electricFieldService, SysParameterService sysParameterService, WindPowerReal15MinFD0001Service windPowerReal15MinFD0001Service){
         this.jiaYueWindPowerCdqResultCoverMapperFD0001 = jiaYueWindPowerCdqResultCoverMapperFD0001;
         this.electricFieldService = electricFieldService;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0001Service = windPowerReal15MinFD0001Service;
         this.jiaYueWindPowerDqResultCoverFD0001Service = jiaYueWindPowerDqResultCoverFD0001Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
     }
     @Override
     @WR("W")
@@ -209,7 +217,7 @@ public class JiaYueWindPowerCdqResultCoverFD0001ServiceImpl extends ServiceImpl<
                 jiaYueWindPowerCdqResultCoverFD0001.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0001.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
                 jiaYueWindPowerCdqResultCoverFD0001.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0001.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0001.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
                 jiaYueWindPowerCdqResultCoverFD0001.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
                 stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
                 //短期*系数
@@ -224,20 +232,25 @@ public class JiaYueWindPowerCdqResultCoverFD0001ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0001.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0001.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0001.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0001.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0001.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0001.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0001.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0001List.add(jiaYueWindPowerCdqResultCoverFD0001);
             }
         } else {
@@ -262,15 +275,18 @@ public class JiaYueWindPowerCdqResultCoverFD0001ServiceImpl extends ServiceImpl<
                     jiaYueWindPowerCdqResultCoverFD0001.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);
                 jiaYueWindPowerCdqResultCoverFD0001.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0001.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0001.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0001.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0001.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0001.setActivePower(new BigDecimal(value[0]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0001.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0001.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0001.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0001.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0001List.add(jiaYueWindPowerCdqResultCoverFD0001);
             }
@@ -362,4 +378,35 @@ public class JiaYueWindPowerCdqResultCoverFD0001ServiceImpl extends ServiceImpl<
         date = calendar.getTime();
         return date;
     }
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
 }

+ 56 - 9
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0002ServiceImpl.java

@@ -12,8 +12,10 @@ 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.*;
@@ -32,13 +34,19 @@ public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service;
 
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
-    public JiaYueWindPowerCdqResultCoverFD0002ServiceImpl(JiaYueWindPowerCdqResultCoverMapperFD0002 jiaYueWindPowerCdqResultCoverMapperFD0002,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service){
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0002ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerCdqResultCoverMapperFD0002 jiaYueWindPowerCdqResultCoverMapperFD0002,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0002Service windPowerReal15MinFD0002Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service){
         this.jiaYueWindPowerCdqResultCoverMapperFD0002 = jiaYueWindPowerCdqResultCoverMapperFD0002;
         this.electricFieldService = electricFieldService;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0002Service = windPowerReal15MinFD0002Service;
         this.jiaYueWindPowerDqResultCoverFD0002Service = jiaYueWindPowerDqResultCoverFD0002Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
     }
     @Override
     @WR("W")
@@ -240,12 +248,13 @@ public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<
                 Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
                 Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
                 jiaYueWindPowerCdqResultCoverFD0002.setDataTime(nowTime);
-                jiaYueWindPowerCdqResultCoverFD0002.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0002.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
 //                jiaYueWindPowerCdqResultCoverFD0002.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0002.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0002.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
                 jiaYueWindPowerCdqResultCoverFD0002.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                //短期
                 stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
                 //短期*系数
                 ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -259,20 +268,24 @@ public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0002.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0002.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0002.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0002.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0002.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0002.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0002.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0002List.add(jiaYueWindPowerCdqResultCoverFD0002);
             }
         } else {
@@ -297,6 +310,7 @@ public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<
                     jiaYueWindPowerCdqResultCoverFD0002.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);
@@ -304,9 +318,9 @@ public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<
 //                jiaYueWindPowerCdqResultCoverFD0002.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0002.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0002.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0002.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0002.setActivePower(new BigDecimal(value[0]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0002.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0002.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0002.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0002.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0002List.add(jiaYueWindPowerCdqResultCoverFD0002);
             }
@@ -384,4 +398,37 @@ public class JiaYueWindPowerCdqResultCoverFD0002ServiceImpl extends ServiceImpl<
         return date;
     }
 
+
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
+
 }

+ 55 - 8
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0003ServiceImpl.java

@@ -12,8 +12,10 @@ 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.*;
@@ -32,13 +34,19 @@ public class JiaYueWindPowerCdqResultCoverFD0003ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service;
 
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
-    public JiaYueWindPowerCdqResultCoverFD0003ServiceImpl(JiaYueWindPowerCdqResultCoverMapperFD0003 jiaYueWindPowerCdqResultCoverMapperFD0003,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service,JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service){
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0003ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerCdqResultCoverMapperFD0003 jiaYueWindPowerCdqResultCoverMapperFD0003,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0003Service windPowerReal15MinFD0003Service,JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service){
         this.jiaYueWindPowerCdqResultCoverMapperFD0003 = jiaYueWindPowerCdqResultCoverMapperFD0003;
         this.electricFieldService = electricFieldService;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0003Service = windPowerReal15MinFD0003Service;
         this.jiaYueWindPowerDqResultCoverFD0003Service = jiaYueWindPowerDqResultCoverFD0003Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
     }
     @Override
     @WR("W")
@@ -239,7 +247,7 @@ public class JiaYueWindPowerCdqResultCoverFD0003ServiceImpl extends ServiceImpl<
                 Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
                 Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
                 jiaYueWindPowerCdqResultCoverFD0003.setDataTime(nowTime);
-                jiaYueWindPowerCdqResultCoverFD0003.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0003.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0003.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
@@ -258,20 +266,25 @@ public class JiaYueWindPowerCdqResultCoverFD0003ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0003.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0003.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0003.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0003.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0003.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0003.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0003.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0003List.add(jiaYueWindPowerCdqResultCoverFD0003);
             }
         } else {
@@ -297,15 +310,18 @@ public class JiaYueWindPowerCdqResultCoverFD0003ServiceImpl extends ServiceImpl<
                     jiaYueWindPowerCdqResultCoverFD0003.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);
                 jiaYueWindPowerCdqResultCoverFD0003.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0003.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0003.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0003.setActivePower(new BigDecimal(value[0]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0003.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0003.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0003.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0003.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0003List.add(jiaYueWindPowerCdqResultCoverFD0003);
             }
@@ -384,4 +400,35 @@ public class JiaYueWindPowerCdqResultCoverFD0003ServiceImpl extends ServiceImpl<
         date = calendar.getTime();
         return date;
     }
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
 }

+ 54 - 8
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0004ServiceImpl.java

@@ -13,8 +13,10 @@ 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.*;
@@ -34,15 +36,21 @@ public class JiaYueWindPowerCdqResultCoverFD0004ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service;
 
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
+    private final OverhaulPlanService overhaulPlanService;
 
 
-    public JiaYueWindPowerCdqResultCoverFD0004ServiceImpl(JiaYueWindPowerCdqResultCoverMapperFD0004 jiaYueWindPowerCdqResultCoverMapperFD0004,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0004Service windPowerReal15MinFD0004Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service){
+
+
+    public JiaYueWindPowerCdqResultCoverFD0004ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerCdqResultCoverMapperFD0004 jiaYueWindPowerCdqResultCoverMapperFD0004,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0004Service windPowerReal15MinFD0004Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service){
         this.jiaYueWindPowerCdqResultCoverMapperFD0004 = jiaYueWindPowerCdqResultCoverMapperFD0004;
         this.electricFieldService = electricFieldService;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0004Service = windPowerReal15MinFD0004Service;
         this.jiaYueWindPowerDqResultCoverFD0004Service = jiaYueWindPowerDqResultCoverFD0004Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
 
     }
 
@@ -245,7 +253,7 @@ public class JiaYueWindPowerCdqResultCoverFD0004ServiceImpl extends ServiceImpl<
                 Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
                 Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
                 jiaYueWindPowerCdqResultCoverFD0004.setDataTime(nowTime);
-                jiaYueWindPowerCdqResultCoverFD0004.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0004.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0004.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
@@ -264,20 +272,25 @@ public class JiaYueWindPowerCdqResultCoverFD0004ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0004.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0004.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0004.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0004.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0004.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0004.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0004.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0004List.add(jiaYueWindPowerCdqResultCoverFD0004);
             }
         } else {
@@ -303,15 +316,17 @@ public class JiaYueWindPowerCdqResultCoverFD0004ServiceImpl extends ServiceImpl<
                     jiaYueWindPowerCdqResultCoverFD0004.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);
                 jiaYueWindPowerCdqResultCoverFD0004.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0004.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0003.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0004.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0004.setActivePower(new BigDecimal(value[0]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0004.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0004.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0004.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0004.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0004List.add(jiaYueWindPowerCdqResultCoverFD0004);
             }
@@ -390,4 +405,35 @@ public class JiaYueWindPowerCdqResultCoverFD0004ServiceImpl extends ServiceImpl<
         date = calendar.getTime();
         return date;
     }
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
 }

+ 55 - 8
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0005ServiceImpl.java

@@ -12,8 +12,10 @@ 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.*;
@@ -32,12 +34,18 @@ public class JiaYueWindPowerCdqResultCoverFD0005ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service;
 
-    public JiaYueWindPowerCdqResultCoverFD0005ServiceImpl(JiaYueWindPowerCdqResultCoverMapperFD0005 jiaYueWindPowerCdqResultCoverMapperFD0005,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service){
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
+
+    private final OverhaulPlanService overhaulPlanService;
+
+    public JiaYueWindPowerCdqResultCoverFD0005ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerCdqResultCoverMapperFD0005 jiaYueWindPowerCdqResultCoverMapperFD0005,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0005Service windPowerReal15MinFD0005Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service){
         this.jiaYueWindPowerCdqResultCoverMapperFD0005 = jiaYueWindPowerCdqResultCoverMapperFD0005;
         this.electricFieldService = electricFieldService;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0005Service = windPowerReal15MinFD0005Service;
         this.jiaYueWindPowerDqResultCoverFD0005Service = jiaYueWindPowerDqResultCoverFD0005Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
     }
     @Override
     @WR("W")
@@ -242,7 +250,7 @@ public class JiaYueWindPowerCdqResultCoverFD0005ServiceImpl extends ServiceImpl<
                 jiaYueWindPowerCdqResultCoverFD0005.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0005.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
                 jiaYueWindPowerCdqResultCoverFD0005.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0005.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0005.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
                 jiaYueWindPowerCdqResultCoverFD0005.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
                 stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
                 //短期*系数
@@ -257,20 +265,26 @@ public class JiaYueWindPowerCdqResultCoverFD0005ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0005.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0005.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0005.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0005.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0005.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0005.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0005.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0005List.add(jiaYueWindPowerCdqResultCoverFD0005);
             }
         } else {
@@ -296,15 +310,17 @@ public class JiaYueWindPowerCdqResultCoverFD0005ServiceImpl extends ServiceImpl<
                     jiaYueWindPowerCdqResultCoverFD0005.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);
                 jiaYueWindPowerCdqResultCoverFD0005.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0005.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0005.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0005.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0005.setActivePower(ustPower.floatValue());
-                jiaYueWindPowerCdqResultCoverFD0005.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0005.setActivePower(new BigDecimal(value[0]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0005.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0005.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0005.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0005List.add(jiaYueWindPowerCdqResultCoverFD0005);
             }
@@ -383,4 +399,35 @@ public class JiaYueWindPowerCdqResultCoverFD0005ServiceImpl extends ServiceImpl<
         date = calendar.getTime();
         return date;
     }
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
 }

+ 54 - 8
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0006ServiceImpl.java

@@ -12,8 +12,10 @@ 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.*;
@@ -32,13 +34,19 @@ public class JiaYueWindPowerCdqResultCoverFD0006ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service;
 
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
-    public JiaYueWindPowerCdqResultCoverFD0006ServiceImpl(JiaYueWindPowerCdqResultCoverMapperFD0006 jiaYueWindPowerCdqResultCoverMapperFD0006,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service){
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0006ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerCdqResultCoverMapperFD0006 jiaYueWindPowerCdqResultCoverMapperFD0006,ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0006Service windPowerReal15MinFD0006Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service){
         this.electricFieldService = electricFieldService;
         this.jiaYueWindPowerCdqResultCoverMapperFD0006 = jiaYueWindPowerCdqResultCoverMapperFD0006;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0006Service = windPowerReal15MinFD0006Service;
         this.jiaYueWindPowerDqResultCoverFD0006Service = jiaYueWindPowerDqResultCoverFD0006Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
     }
     @Override
     @WR("W")
@@ -239,7 +247,7 @@ public class JiaYueWindPowerCdqResultCoverFD0006ServiceImpl extends ServiceImpl<
                 jiaYueWindPowerCdqResultCoverFD0006.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0006.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0006.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
-                jiaYueWindPowerCdqResultCoverFD0006.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0006.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
 //                jiaYueWindPowerCdqResultCoverFD0006.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
                 jiaYueWindPowerCdqResultCoverFD0006.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
                 jiaYueWindPowerCdqResultCoverFD0006.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
@@ -256,20 +264,25 @@ public class JiaYueWindPowerCdqResultCoverFD0006ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0006.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0006.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0006.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0006.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0006.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0006.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0006.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0006List.add(jiaYueWindPowerCdqResultCoverFD0006);
             }
         } else {
@@ -294,15 +307,17 @@ public class JiaYueWindPowerCdqResultCoverFD0006ServiceImpl extends ServiceImpl<
                     jiaYueWindPowerCdqResultCoverFD0006.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);
                 jiaYueWindPowerCdqResultCoverFD0006.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0006.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0006.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0006.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0006.setActivePower(ustPower.floatValue());
+                jiaYueWindPowerCdqResultCoverFD0006.setActivePower(new BigDecimal(value[0]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0006.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
-                jiaYueWindPowerCdqResultCoverFD0006.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0006.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0006.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0006List.add(jiaYueWindPowerCdqResultCoverFD0006);
             }
@@ -383,4 +398,35 @@ public class JiaYueWindPowerCdqResultCoverFD0006ServiceImpl extends ServiceImpl<
         date = calendar.getTime();
         return date;
     }
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
 }

+ 54 - 9
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0007ServiceImpl.java

@@ -12,8 +12,10 @@ 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.*;
@@ -32,13 +34,19 @@ public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<
 
     private final JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service;
 
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
-    public JiaYueWindPowerCdqResultCoverFD0007ServiceImpl(JiaYueWindPowerCdqResultCoverMapperFD0007 jiaYueWindPowerCdqResultCoverMapperFD0007, ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service,JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service){
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0007ServiceImpl(OverhaulPlanService overhaulPlanService,WindFarmInfoEncryptionService windFarmInfoEncryptionService,JiaYueWindPowerCdqResultCoverMapperFD0007 jiaYueWindPowerCdqResultCoverMapperFD0007, ElectricFieldService electricFieldService,SysParameterService sysParameterService,WindPowerReal15MinFD0007Service windPowerReal15MinFD0007Service,JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service){
         this.jiaYueWindPowerCdqResultCoverMapperFD0007 = jiaYueWindPowerCdqResultCoverMapperFD0007;
         this.electricFieldService = electricFieldService;
         this.sysParameterService = sysParameterService;
         this.windPowerReal15MinFD0007Service = windPowerReal15MinFD0007Service;
         this.jiaYueWindPowerDqResultCoverFD0007Service = jiaYueWindPowerDqResultCoverFD0007Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
     }
 
     @Override
@@ -240,7 +248,7 @@ public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<
                 jiaYueWindPowerCdqResultCoverFD0007.setDataTime(nowTime);
 //                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0007.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
-                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
 //                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
                 jiaYueWindPowerCdqResultCoverFD0007.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
                 jiaYueWindPowerCdqResultCoverFD0007.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
@@ -257,20 +265,25 @@ public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<
                     String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
                     log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
                     ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
-                    if (ustPower.doubleValue() > capacity.doubleValue()) {
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
                         // 如果超短期结果超出装机容量,则超短期结果为装机容量
                         jiaYueWindPowerCdqResultCoverFD0007.setActivePower(capacity.floatValue());
-                    } else if (ustPower.doubleValue() < 0) {
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
                         // 如果超短期结果小于0,则超短期结果为0
                         jiaYueWindPowerCdqResultCoverFD0007.setActivePower(0f);
                     } else {
                         if (cdqjsfs.equals("1")) {
-                            jiaYueWindPowerCdqResultCoverFD0007.setActivePower(ustPower.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0007.setActivePower(new BigDecimal(value[0]).floatValue());
                         } else {
-                            jiaYueWindPowerCdqResultCoverFD0007.setActivePower(ustPowers.floatValue());
+                            jiaYueWindPowerCdqResultCoverFD0007.setActivePower(new BigDecimal(aa[0]).floatValue());
                         }
                     }
+                    jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(new BigDecimal(value[1]).floatValue());
                 }
+
                 jiaYueWindPowerCdqResultCoverFD0007List.add(jiaYueWindPowerCdqResultCoverFD0007);
             }
         } else {
@@ -294,6 +307,7 @@ public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<
                 } else {
                     jiaYueWindPowerCdqResultCoverFD0007.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);
@@ -301,9 +315,9 @@ public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<
 //                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
                 jiaYueWindPowerCdqResultCoverFD0007.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
 //                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
-                jiaYueWindPowerCdqResultCoverFD0007.setActivePower(ustPower.floatValue());
-                jiaYueWindPowerCdqResultCoverFD0007.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
-                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+                jiaYueWindPowerCdqResultCoverFD0007.setActivePower(new BigDecimal(value[0]).floatValue());
+                jiaYueWindPowerCdqResultCoverFD0007.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(new BigDecimal(value[1]).floatValue());
                 jiaYueWindPowerCdqResultCoverFD0007.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
                 jiaYueWindPowerCdqResultCoverFD0007List.add(jiaYueWindPowerCdqResultCoverFD0007);
             }
@@ -383,4 +397,35 @@ public class JiaYueWindPowerCdqResultCoverFD0007ServiceImpl extends ServiceImpl<
         date = calendar.getTime();
         return date;
     }
+
+    public String openCap(LocalDateTime localDateTime,String objId,float bigDecimal){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
 }

+ 407 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0029ServiceImpl.java

@@ -0,0 +1,407 @@
+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.JiaYueWindPowerCdqResultCoverMapperFD0029;
+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 JiaYueWindPowerCdqResultCoverFD0029ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0029, JiaYueWindPowerCdqResultCoverFD0029> implements JiaYueWindPowerCdqResultCoverFD0029Service {
+    private final JiaYueWindPowerCdqResultCoverMapperFD0029 jiaYueWindPowerCdqResultCoverMapperFD0029;
+
+    private final ElectricFieldService electricFieldService;
+
+    private final SysParameterService sysParameterService;
+
+    private final WindPowerReal15MinFD0029Service windPowerReal15MinFD0029Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service;
+
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
+
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0029ServiceImpl(OverhaulPlanService overhaulPlanService, WindFarmInfoEncryptionService windFarmInfoEncryptionService, JiaYueWindPowerCdqResultCoverMapperFD0029 jiaYueWindPowerCdqResultCoverMapperFD0029, ElectricFieldService electricFieldService, SysParameterService sysParameterService, WindPowerReal15MinFD0029Service windPowerReal15MinFD0029Service, JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service){
+        this.jiaYueWindPowerCdqResultCoverMapperFD0029 = jiaYueWindPowerCdqResultCoverMapperFD0029;
+        this.electricFieldService = electricFieldService;
+        this.sysParameterService = sysParameterService;
+        this.windPowerReal15MinFD0029Service = windPowerReal15MinFD0029Service;
+        this.jiaYueWindPowerDqResultCoverFD0029Service = jiaYueWindPowerDqResultCoverFD0029Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0029> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0029> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0029.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0029> jiaYueWindPowerCdqResultCoverFD0029List) {
+        if (jiaYueWindPowerCdqResultCoverFD0029List != null && jiaYueWindPowerCdqResultCoverFD0029List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0029List, jiaYueWindPowerCdqResultCoverFD0029List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0029List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0029.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(130));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("江西省吉安市遂川县红木岭村风电场");
+        electricField3.setName("天津中能融合测试站F");
+        electricField3.setStationCode("J01034");
+        electricField3.setSign("FD0029");
+        electricField3.setNetSubstationName("J01034");
+        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<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverFD0029List = jiaYueWindPowerDqResultCoverFD0029Service.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(jiaYueWindPowerDqResultCoverFD0029List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0029> jiaYueWindPowerCdqResultCoverFD0029List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0029 jiaYueWindPowerCdqResultCoverFD0029;
+        //获取系统参数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<WindPowerReal15MinFD0029> windPowerReal15MinList = windPowerReal15MinFD0029Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0029> filterList = windPowerReal15MinList.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<JiaYueWindPowerDqResultCoverFD0029> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0029Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0029::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++) {
+                jiaYueWindPowerCdqResultCoverFD0029 = new JiaYueWindPowerCdqResultCoverFD0029();
+                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) {
+                    jiaYueWindPowerCdqResultCoverFD0029.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverFD0029.setDataDate(new Date());
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0029.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0029.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0029.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0029.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0029.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0029.setActivePower(capacity.floatValue());
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0029.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0029.setActivePower(new BigDecimal(value[0]).floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0029.setActivePower(new BigDecimal(aa[0]).floatValue());
+                        }
+                    }
+                    jiaYueWindPowerCdqResultCoverFD0029.setOpenCap(new BigDecimal(value[1]).floatValue());
+                }
+
+                jiaYueWindPowerCdqResultCoverFD0029List.add(jiaYueWindPowerCdqResultCoverFD0029);
+            }
+        } 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);
+                jiaYueWindPowerCdqResultCoverFD0029 = new JiaYueWindPowerCdqResultCoverFD0029();
+                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) {
+                    jiaYueWindPowerCdqResultCoverFD0029.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverFD0029.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);
+                jiaYueWindPowerCdqResultCoverFD0029.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0029.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0029.setActivePower(new BigDecimal(value[0]).floatValue());
+                jiaYueWindPowerCdqResultCoverFD0029.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0029.setOpenCap(new BigDecimal(value[1]).floatValue());
+                jiaYueWindPowerCdqResultCoverFD0029.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0029List.add(jiaYueWindPowerCdqResultCoverFD0029);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0029List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0029List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0029> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0029.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<JiaYueWindPowerCdqResultCoverFD0029> findByDataDate(Date startTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        List<JiaYueWindPowerCdqResultCoverFD0029> jiaYueWindPowerCdqResultCoverFD0029List = 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);
+            JiaYueWindPowerCdqResultCoverFD0029 jiaYueWindPowerCdqResultCoverFD0029 = jiaYueWindPowerCdqResultCoverMapperFD0029.selectByDataDate(dateSubString);
+            if (null != jiaYueWindPowerCdqResultCoverFD0029){
+                jiaYueWindPowerCdqResultCoverFD0029List.add(jiaYueWindPowerCdqResultCoverFD0029);
+            }
+        }
+        return jiaYueWindPowerCdqResultCoverFD0029List;
+    }
+
+
+
+    /**
+     * 判断时间戳是否是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){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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;
+    }
+}

+ 409 - 0
ipp-client/src/main/java/com/jiayue/ipfcst/client/service/impl/JiaYueWindPowerCdqResultCoverFD0030ServiceImpl.java

@@ -0,0 +1,409 @@
+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.JiaYueWindPowerCdqResultCoverMapperFD0030;
+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 JiaYueWindPowerCdqResultCoverFD0030ServiceImpl extends ServiceImpl<JiaYueWindPowerCdqResultCoverMapperFD0030, JiaYueWindPowerCdqResultCoverFD0030> implements JiaYueWindPowerCdqResultCoverFD0030Service {
+    private final JiaYueWindPowerCdqResultCoverMapperFD0030 jiaYueWindPowerCdqResultCoverMapperFD0030;
+
+    private final ElectricFieldService electricFieldService;
+
+    private final SysParameterService sysParameterService;
+
+    private final WindPowerReal15MinFD0030Service windPowerReal15MinFD0030Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service;
+
+    private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
+
+    private final OverhaulPlanService overhaulPlanService;
+
+
+    public JiaYueWindPowerCdqResultCoverFD0030ServiceImpl(OverhaulPlanService overhaulPlanService, WindFarmInfoEncryptionService windFarmInfoEncryptionService, JiaYueWindPowerCdqResultCoverMapperFD0030 jiaYueWindPowerCdqResultCoverMapperFD0030, ElectricFieldService electricFieldService, SysParameterService sysParameterService, WindPowerReal15MinFD0030Service windPowerReal15MinFD0030Service, JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service){
+        this.jiaYueWindPowerCdqResultCoverMapperFD0030 = jiaYueWindPowerCdqResultCoverMapperFD0030;
+        this.electricFieldService = electricFieldService;
+        this.sysParameterService = sysParameterService;
+        this.windPowerReal15MinFD0030Service = windPowerReal15MinFD0030Service;
+        this.jiaYueWindPowerDqResultCoverFD0030Service = jiaYueWindPowerDqResultCoverFD0030Service;
+        this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
+        this.overhaulPlanService = overhaulPlanService;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerCdqResultCoverFD0030> get() {
+        List<JiaYueWindPowerCdqResultCoverFD0030> jiaYueWindPowerCdqResultCovers = jiaYueWindPowerCdqResultCoverMapperFD0030.selectList(null);
+        return jiaYueWindPowerCdqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerCdqResultCoverFD0030> jiaYueWindPowerCdqResultCoverFD0030List) {
+        if (jiaYueWindPowerCdqResultCoverFD0030List != null && jiaYueWindPowerCdqResultCoverFD0030List.size() > 0) {
+            this.saveBatch(jiaYueWindPowerCdqResultCoverFD0030List, jiaYueWindPowerCdqResultCoverFD0030List.size());
+        }
+        return jiaYueWindPowerCdqResultCoverFD0030List.size();
+    }
+
+//    @Override
+//    public List<JiaYueWindPowerCdqResultCover> getAll() {
+//        List<JiaYueWindPowerCdqResultCover> jiaYueWindPowerCdqResultCovers =  jiaYueWindPowerCdqResultCoverMapper.selectList(null);
+//        return  jiaYueWindPowerCdqResultCovers;
+//    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+
+        return jiaYueWindPowerCdqResultCoverMapperFD0030.deleteAll();
+    }
+
+
+    /**
+     * 执行超短期预测
+     */
+    public void executeForecast() {
+
+        List<ElectricField> electricFieldList = new ArrayList<>();
+
+        ElectricField electricField3 = new ElectricField();
+        electricField3.setBelongForecastManufactor("SYJY");
+        electricField3.setCapacity(new BigDecimal(126));
+        electricField3.setElectricFieldTypeEnum("2");
+        electricField3.setForecastManufactor("SYJY");
+        electricField3.setId("d712c1ef348714a5afafcf130c256cc9");
+        electricField3.setName("江西省赣州市定南县126MW风电场");
+
+        electricField3.setStationCode("J01033");
+        electricField3.setSign("FD0030");
+        electricField3.setNetSubstationName("J01033");
+
+        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<JiaYueWindPowerDqResultCoverFD0030> jiaYueWindPowerDqResultCoverFD0030List = jiaYueWindPowerDqResultCoverFD0030Service.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(jiaYueWindPowerDqResultCoverFD0030List, e.getCapacity(), e.getStationCode());
+//                } else {
+//                    log.error("场站类型非法!");
+//                }
+
+            } catch (Exception ex) {
+                log.error("系统运行错误!", ex);
+            }
+        });
+    }
+
+
+    /**
+     * 执行风电场超短期预测
+     *
+     * @param jiaYueWindPowerDqResultCoverList 短期预测结果集
+     * @param capacity                         装机容量
+     */
+    @WR("W")
+    public void executeForecastForWind(final List<JiaYueWindPowerDqResultCoverFD0030> jiaYueWindPowerDqResultCoverList, final BigDecimal capacity, String stationCode) {
+
+        List<JiaYueWindPowerCdqResultCoverFD0030> jiaYueWindPowerCdqResultCoverFD0030List = new ArrayList<>();
+        JiaYueWindPowerCdqResultCoverFD0030 jiaYueWindPowerCdqResultCoverFD0030;
+        //获取系统参数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<WindPowerReal15MinFD0030> windPowerReal15MinList = windPowerReal15MinFD0030Service.findByObjIdAndDateTime(objId, startTime, endTime);
+        List<WindPowerReal15MinFD0030> filterList = windPowerReal15MinList.stream().filter(t -> Float.compare(Float.valueOf(t.getValue()), Float.valueOf("-1")) > 0).collect(Collectors.toList());
+        String coe = sysParameterService.getSysParameterAndStationCode("CDQ_COE", "1.05", stationCode);
+
+        if (filterList.size() > 0) {
+            // 获取当前时刻对应的短期
+            List<JiaYueWindPowerDqResultCoverFD0030> currentForecastPowerShortTermList;
+            Float currentForecastPowerValue = 0f;
+            try {
+                Long currentMoment = DateMomentUtil.getMomentTime(currentTime.getTime(), 1, 15 * 60 * 1000L);
+                currentForecastPowerShortTermList = jiaYueWindPowerDqResultCoverFD0030Service.findByObjIdAndStartTimeAndEndTime(stationCode, new Date(currentMoment), new Date(currentMoment));
+                if (currentForecastPowerShortTermList.size() > 0) {
+                    currentForecastPowerValue = currentForecastPowerShortTermList.get(0).getActivePower();
+                } else {
+                    // 当前时间没有对应的短期,用实际功率最近的一个替换
+                    filterList.sort(Comparator.comparing(WindPowerReal15MinFD0030::getDateTime).reversed());
+                    currentForecastPowerValue = filterList.get(0).getValue().floatValue();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            BigDecimal sumAbleValue = filterList.stream().map(s -> new BigDecimal(s.getValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal averageAbleValue = sumAbleValue.divide(new BigDecimal(filterList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            //可用-短期差值
+            BigDecimal deviationValue = averageAbleValue.subtract(new BigDecimal(currentForecastPowerValue));
+            for (int i = 0; i < jiaYueWindPowerDqResultCoverList.size(); i++) {
+                jiaYueWindPowerCdqResultCoverFD0030 = new JiaYueWindPowerCdqResultCoverFD0030();
+                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) {
+                    jiaYueWindPowerCdqResultCoverFD0030.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverFD0030.setDataDate(new Date());
+                }
+
+                Date nowDate = DateTimeUtil.getMomentTimeFor15Minute(date);
+                Time nowTime = this.convertUtilDateToMySQLTime(nowDate);
+                jiaYueWindPowerCdqResultCoverFD0030.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0030.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setOpenCap(jiaYueWindPowerDqResultCoverList.get(i).getOpenCap());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0030.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0030.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));                //短期
+                stPower = new BigDecimal(jiaYueWindPowerDqResultCoverList.get(i).getActivePower());
+                //短期*系数
+                ustPowers = stPower.multiply(new BigDecimal(coe)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                // 如果短期预测小于等于0,则超短期为0
+                if (stPower.floatValue() <= 0) {
+                    jiaYueWindPowerCdqResultCoverFD0030.setActivePower(0.0f);
+                } else {
+                    BigDecimal xzjdq = deviationValue.add(stPower).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    String cdqjsfsZbxz = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbxz", "0.4", stationCode);
+                    log.debug("参数cdqjsfsZbxz值为:" + cdqjsfsZbxz + ",超短期计算方式,可用和短期的差值加短期占比。");
+                    String cdqjsfsZbdq = sysParameterService.getSysParameterAndStationCode("cdqjsfsZbdq", "0.6", stationCode);
+                    log.debug("参数cdqjsfsZbdq值为:" + cdqjsfsZbdq + ",超短期计算方式,短期占比。");
+                    ustPower = xzjdq.multiply(new BigDecimal(cdqjsfsZbxz)).setScale(2, BigDecimal.ROUND_HALF_UP).add(stPower.multiply(new BigDecimal(cdqjsfsZbdq)).setScale(2, BigDecimal.ROUND_HALF_UP));
+
+                    String[] value = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPower.floatValue()).split(":");
+                    String[] aa = this.openCap(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime(),objId,ustPowers.floatValue()).split(":");
+                    if (new BigDecimal(value[0]).doubleValue() > capacity.doubleValue()) {
+                        // 如果超短期结果超出装机容量,则超短期结果为装机容量
+                        jiaYueWindPowerCdqResultCoverFD0030.setActivePower(capacity.floatValue());
+                    } else if (new BigDecimal(value[0]).doubleValue()< 0) {
+                        // 如果超短期结果小于0,则超短期结果为0
+                        jiaYueWindPowerCdqResultCoverFD0030.setActivePower(0f);
+                    } else {
+                        if (cdqjsfs.equals("1")) {
+                            jiaYueWindPowerCdqResultCoverFD0030.setActivePower(new BigDecimal(value[0]).floatValue());
+                        } else {
+                            jiaYueWindPowerCdqResultCoverFD0030.setActivePower(new BigDecimal(aa[0]).floatValue());
+                        }
+                    }
+                    jiaYueWindPowerCdqResultCoverFD0030.setOpenCap(new BigDecimal(value[1]).floatValue());
+                }
+
+                jiaYueWindPowerCdqResultCoverFD0030List.add(jiaYueWindPowerCdqResultCoverFD0030);
+            }
+        } 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);
+                jiaYueWindPowerCdqResultCoverFD0030 = new JiaYueWindPowerCdqResultCoverFD0030();
+                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) {
+                    jiaYueWindPowerCdqResultCoverFD0030.setDataDate(this.nextDay(new Date()));
+                } else {
+                    jiaYueWindPowerCdqResultCoverFD0030.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);
+                jiaYueWindPowerCdqResultCoverFD0030.setDataTime(nowTime);
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataType(jiaYueWindPowerDqResultCoverList.get(i).getDataType());
+                jiaYueWindPowerCdqResultCoverFD0030.setPreDateTime(jiaYueWindPowerDqResultCoverList.get(i).getPreDateTime());
+//                jiaYueWindPowerCdqResultCoverFD0007.setDataFlg(jiaYueWindPowerDqResultCoverList.get(i).getDataFlg());
+                jiaYueWindPowerCdqResultCoverFD0030.setActivePower(new BigDecimal(value[0]).floatValue());
+                jiaYueWindPowerCdqResultCoverFD0030.setObjId(jiaYueWindPowerDqResultCoverList.get(i).getObjId());
+                jiaYueWindPowerCdqResultCoverFD0030.setOpenCap(new BigDecimal(value[1]).floatValue());
+                jiaYueWindPowerCdqResultCoverFD0030.setCreateTime(LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
+                jiaYueWindPowerCdqResultCoverFD0030List.add(jiaYueWindPowerCdqResultCoverFD0030);
+            }
+        }
+
+        if (jiaYueWindPowerCdqResultCoverFD0030List.size() > 0) {
+            this.saveCdq(jiaYueWindPowerCdqResultCoverFD0030List, stationCode);
+        }
+    }
+
+    @Override
+    @WR("W")
+    public void saveCdq(List<JiaYueWindPowerCdqResultCoverFD0030> jiaYueWindPowerCdqResultCoverList, String stationCode) {
+        this.saveBatch(jiaYueWindPowerCdqResultCoverList, jiaYueWindPowerCdqResultCoverList.size());
+    }
+
+    @Override
+    public void deleteByDateTime(LocalDateTime startTime, LocalDateTime endTime, String stationCode) {
+        jiaYueWindPowerCdqResultCoverMapperFD0030.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<JiaYueWindPowerCdqResultCoverFD0030> findByDataDate(Date startTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        List<JiaYueWindPowerCdqResultCoverFD0030> jiaYueWindPowerCdqResultCoverFD0030List = 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);
+            JiaYueWindPowerCdqResultCoverFD0030 jiaYueWindPowerCdqResultCoverFD0030 = jiaYueWindPowerCdqResultCoverMapperFD0030.selectByDataDate(dateSubString);
+            if (null != jiaYueWindPowerCdqResultCoverFD0030){
+                jiaYueWindPowerCdqResultCoverFD0030List.add(jiaYueWindPowerCdqResultCoverFD0030);
+            }
+        }
+        return jiaYueWindPowerCdqResultCoverFD0030List;
+    }
+
+
+
+    /**
+     * 判断时间戳是否是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){
+        // 查询场站并网容量
+        WindFarmInfoEncryption windFarmInfoEncryption = windFarmInfoEncryptionService.getCap(objId);
+        float cap = windFarmInfoEncryption.getCap();
+        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/JiaYueWindPowerDqResultFD0029CoverServiceImpl.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.JiaYueWindPowerDqResultCoverMapperFD0029;
+import com.jiayue.ipfcst.client.service.JiaYueWindPowerDqResultCoverFD0029Service;
+import com.jiayue.ipp.common.data.entity.JiaYueWindPowerDqResultCoverFD0029;
+import org.springframework.stereotype.Service;
+
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class JiaYueWindPowerDqResultFD0029CoverServiceImpl extends ServiceImpl<JiaYueWindPowerDqResultCoverMapperFD0029, JiaYueWindPowerDqResultCoverFD0029> implements JiaYueWindPowerDqResultCoverFD0029Service {
+    private final JiaYueWindPowerDqResultCoverMapperFD0029 jiaYueWindPowerDqResultCoverMapperFD0029;
+
+    public JiaYueWindPowerDqResultFD0029CoverServiceImpl(JiaYueWindPowerDqResultCoverMapperFD0029 jiaYueWindPowerDqResultCoverMapperFD0029){
+        this.jiaYueWindPowerDqResultCoverMapperFD0029 = jiaYueWindPowerDqResultCoverMapperFD0029;
+    }
+
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0029> get() {
+        List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0029.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+    @WR("W")
+    public List<JiaYueWindPowerDqResultCoverFD0029> getByDataDateAndDateTime(String fileDate, String fileTime, String objId) {
+        List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0029.selectByDataDateDateTime(fileDate, fileTime, objId);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+//    @WR("R")
+    public int put(List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCovers) {
+        if (jiaYueWindPowerDqResultCovers != null && jiaYueWindPowerDqResultCovers.size() > 0) {
+            this.saveBatch(jiaYueWindPowerDqResultCovers, jiaYueWindPowerDqResultCovers.size());
+        }
+        return jiaYueWindPowerDqResultCovers.size();
+    }
+
+    @Override
+//    @WR("R")
+    public List<JiaYueWindPowerDqResultCoverFD0029> getAll() {
+        List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverMapperFD0029.selectList(null);
+        return jiaYueWindPowerDqResultCovers;
+    }
+
+    @Override
+//    @WR("R")
+    public int deleteAll() {
+        return jiaYueWindPowerDqResultCoverMapperFD0029.deleteAll();
+    }
+
+
+    @Override
+    @WR("W")
+    public void saveDq(List<JiaYueWindPowerDqResultCoverFD0029> 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<JiaYueWindPowerDqResultCoverFD0029> 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<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0029.selectByTimeAndObjId(startTimeStr, endTimeStr, stationCode);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+    @Override
+    public List<JiaYueWindPowerDqResultCoverFD0029> findByDataDate(Date startTime) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String startTimeStr = simpleDateFormat.format(startTime);
+        List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverList = jiaYueWindPowerDqResultCoverMapperFD0029.selectByDataDate(startTimeStr);
+        return jiaYueWindPowerDqResultCoverList;
+    }
+
+}

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

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

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

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

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

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

@@ -62,13 +62,17 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
 
     private final JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service;
 
+    private final JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service;
+
+    private final JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service;
+
     private final ElectricFieldService electricFieldService;
 
     private final JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper;
 
     private final WindFarmInfoEncryptionService windFarmInfoEncryptionService;
 
-    public ParsingDqInfoServiceImpl(OverhaulPlanService overhaulPlanService,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service,JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,ElectricFieldService electricFieldService,JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper,WindFarmInfoEncryptionService windFarmInfoEncryptionService){
+    public ParsingDqInfoServiceImpl(OverhaulPlanService overhaulPlanService,JiaYueWindPowerDqResultCoverFD0001Service jiaYueWindPowerDqResultCoverFD0001Service,JiaYueWindPowerDqResultCoverFD0002Service jiaYueWindPowerDqResultCoverFD0002Service,JiaYueWindPowerDqResultCoverFD0003Service jiaYueWindPowerDqResultCoverFD0003Service,JiaYueWindPowerDqResultCoverFD0004Service jiaYueWindPowerDqResultCoverFD0004Service,JiaYueWindPowerDqResultCoverFD0005Service jiaYueWindPowerDqResultCoverFD0005Service,JiaYueWindPowerDqResultCoverFD0006Service jiaYueWindPowerDqResultCoverFD0006Service,JiaYueWindPowerDqResultCoverFD0007Service jiaYueWindPowerDqResultCoverFD0007Service,JiaYueWindPowerDqResultCoverFD0029Service jiaYueWindPowerDqResultCoverFD0029Service,JiaYueWindPowerDqResultCoverFD0030Service jiaYueWindPowerDqResultCoverFD0030Service,ElectricFieldService electricFieldService,JiaYueWindPowerDqResultCoverMapper jiaYueWindPowerDqResultCoverMapper,WindFarmInfoEncryptionService windFarmInfoEncryptionService){
         this.overhaulPlanService = overhaulPlanService;
         this.jiaYueWindPowerDqResultCoverFD0001Service = jiaYueWindPowerDqResultCoverFD0001Service;
         this.jiaYueWindPowerDqResultCoverFD0002Service = jiaYueWindPowerDqResultCoverFD0002Service;
@@ -77,6 +81,8 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
         this.jiaYueWindPowerDqResultCoverFD0005Service = jiaYueWindPowerDqResultCoverFD0005Service;
         this.jiaYueWindPowerDqResultCoverFD0006Service = jiaYueWindPowerDqResultCoverFD0006Service;
         this.jiaYueWindPowerDqResultCoverFD0007Service = jiaYueWindPowerDqResultCoverFD0007Service;
+        this.jiaYueWindPowerDqResultCoverFD0029Service = jiaYueWindPowerDqResultCoverFD0029Service;
+        this.jiaYueWindPowerDqResultCoverFD0030Service = jiaYueWindPowerDqResultCoverFD0030Service;
         this.electricFieldService = electricFieldService;
         this.jiaYueWindPowerDqResultCoverMapper = jiaYueWindPowerDqResultCoverMapper;
         this.windFarmInfoEncryptionService = windFarmInfoEncryptionService;
@@ -104,13 +110,15 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
             List<JiaYueWindPowerDqResultCoverFD0005> jiaYueWindPowerDqResultCoverFD0005List = new ArrayList<>();
             List<JiaYueWindPowerDqResultCoverFD0006> jiaYueWindPowerDqResultCoverFD0006List = new ArrayList<>();
             List<JiaYueWindPowerDqResultCoverFD0007> jiaYueWindPowerDqResultCoverFD0007List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0029> jiaYueWindPowerDqResultCoverFD0029List = new ArrayList<>();
+            List<JiaYueWindPowerDqResultCoverFD0030> jiaYueWindPowerDqResultCoverFD0030List = 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");
+            parsingDqInfo.setStationCode("J00770,J00941,J00942,J00988,J00929,J00930,J00931,J01033,J01034");
             parsingDqInfo.setDelFlag("0");
             parsingDqInfo.setForecastTime("1<=>2<=>date=<=>yyyy-MM-dd");
             parsingDqInfo.setFpValue("3-1538<=>5");
@@ -168,12 +176,21 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                 if (parsingUrl.getStationCode().equals("J00931")) {
                     jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0007Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                 }
+                if (parsingUrl.getStationCode().equals("J01034")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0029Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J01033")) {
+                    jiaYueWindPowerDqResultCovers = jiaYueWindPowerDqResultCoverFD0030Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
 
                 if (jiaYueWindPowerDqResultCovers == null || jiaYueWindPowerDqResultCovers.size() == 0) {
                     List<String> fileContent = FileUtil.getFileContent(file);
                     if (parsingDqInfo.getDataType().equals(FieldUtil.MULTI)) {
                         List<BigDecimal> bigDecimals;
                         if (parsingDqInfo.getFpValue() != null) ;
+                        if (fileContent.size()<=1443){
+                            parsingDqInfo.setFpValue("3-1442<=>5");
+                        }
                         bigDecimals = parsingFpValue(parsingDqInfo.getFpValue(), fileContent);
 
                         if (bigDecimals.size() > 0) {
@@ -229,6 +246,14 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                                         jiaYueWindPowerDqResultCoverFD0007List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
                                                 new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0007()));
                                     }
+                                    if (parsingUrl.getStationCode().equals("J01034")) {
+                                        jiaYueWindPowerDqResultCoverFD0029List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0029()));
+                                    }
+                                    if (parsingUrl.getStationCode().equals("J01033")) {
+                                        jiaYueWindPowerDqResultCoverFD0030List.add(this.jiaYueWindPowerDqResultCover(combinedDateTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()), bigDecimal.floatValue(),
+                                                new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(), da, timeString, new JiaYueWindPowerDqResultCoverFD0030()));
+                                    }
 
                                 }
                                 if (parsingUrl.getStationCode().equals("J00770")) {
@@ -258,6 +283,12 @@ public class ParsingDqInfoServiceImpl extends ServiceImpl<ParsingDqInfoMapper, P
                                 if (parsingUrl.getStationCode().equals("J00931")) {
                                     jiaYueWindPowerDqResultCoverFD0007Service.saveDq(jiaYueWindPowerDqResultCoverFD0007List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                                 }
+                                if (parsingUrl.getStationCode().equals("J01034")) {
+                                    jiaYueWindPowerDqResultCoverFD0029Service.saveDq(jiaYueWindPowerDqResultCoverFD0029List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J01033")) {
+                                    jiaYueWindPowerDqResultCoverFD0030Service.saveDq(jiaYueWindPowerDqResultCoverFD0030List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                                }
                                 log.info("解析DQ文件:{} 成功! O(∩_∩)O", file.getName());
                                 parsingStatus = FileTypeEnum.DQ.name();
                             } else {

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

@@ -64,6 +64,10 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
 
     private final JiaYueWindPowerNwpResultCoverFD0007Service jiaYueWindPowerNwpResultCoverFD0007Service;
 
+    private final JiaYueWindPowerNwpResultCoverFD0029Service jiaYueWindPowerNwpResultCoverFD0029Service;
+
+    private final JiaYueWindPowerNwpResultCoverFD0030Service jiaYueWindPowerNwpResultCoverFD0030Service;
+
 
     private final ElectricFieldService electricFieldService;
 
@@ -90,7 +94,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");
+            parsingNwpInfo1.setStationCode("J00770,J00941,J00942,J00988,J00929,J00930,J00931,J01033,J01034");
             parsingNwpInfo1.setDelFlag("0");
             parsingNwpInfo1.setPreTime("1<=>2<=>date=<=>yyyy-MM-dd");
 //            parsingNwpInfo1.setScDate();
@@ -129,6 +133,8 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
             List<JiaYueWindPowerNwpResultCoverFD0005> jiaYueWindPowerNwpResultCoverFD0005List = new ArrayList<>();
             List<JiaYueWindPowerNwpResultCoverFD0006> jiaYueWindPowerNwpResultCoverFD0006List = new ArrayList<>();
             List<JiaYueWindPowerNwpResultCoverFD0007> jiaYueWindPowerNwpResultCoverFD0007List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0029> jiaYueWindPowerNwpResultCoverFD0029List = new ArrayList<>();
+            List<JiaYueWindPowerNwpResultCoverFD0030> jiaYueWindPowerNwpResultCoverFD0030List = new ArrayList<>();
 
 
             // 获取文件名中的日期时间进行判断
@@ -187,6 +193,13 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                 if (parsingUrl.getStationCode().equals("J00931")) {
                     jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0007Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                 }
+                if (parsingUrl.getStationCode().equals("J01034")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0029Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+                if (parsingUrl.getStationCode().equals("J01033")) {
+                    jiaYueWindPowerNwpResultCovers = jiaYueWindPowerNwpResultCoverFD0030Service.getByDataDateAndDateTime(fileDate, fileTime, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                }
+
                 if (jiaYueWindPowerNwpResultCovers == null || jiaYueWindPowerNwpResultCovers.size() == 0) {
 
                     List<String> fileContent = FileUtil.getFileContent(file);
@@ -266,6 +279,14 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                                     jiaYueWindPowerNwpResultCoverFD0007List.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 JiaYueWindPowerNwpResultCoverFD0007()));
                                 }
+                                if (parsingUrl.getStationCode().equals("J01034")) {
+                                    jiaYueWindPowerNwpResultCoverFD0029List.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 JiaYueWindPowerNwpResultCoverFD0029()));
+                                }
+                                if (parsingUrl.getStationCode().equals("J01033")) {
+                                    jiaYueWindPowerNwpResultCoverFD0030List.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 JiaYueWindPowerNwpResultCoverFD0030()));
+                                }
                                 time += Constant.INTERVALTIME;
                             }
                             if (parsingUrl.getStationCode().equals("J00770")) {
@@ -289,6 +310,12 @@ public class ParsingNwpInfoServiceImpl extends ServiceImpl<ParsingNwpInfoMapper,
                             if (parsingUrl.getStationCode().equals("J00931")) {
                                 jiaYueWindPowerNwpResultCoverFD0007Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0007List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
                             }
+                            if (parsingUrl.getStationCode().equals("J01034")) {
+                                jiaYueWindPowerNwpResultCoverFD0029Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0029List, electricFieldService.numberToIdentification(parsingUrl.getStationCode()));
+                            }
+                            if (parsingUrl.getStationCode().equals("J01033")) {
+                                jiaYueWindPowerNwpResultCoverFD0030Service.saveNwp(jiaYueWindPowerNwpResultCoverFD0030List, 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/JiaYueWindPowerCdqResultCoverFD0029.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_FD0029_zdata_wind_power_cdq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0029_zdata_wind_power_cdq_result")
+public class JiaYueWindPowerCdqResultCoverFD0029 {
+    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/JiaYueWindPowerCdqResultCoverFD0030.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_FD0030_zdata_wind_power_cdq_result")
+public class JiaYueWindPowerCdqResultCoverFD0030 {
+    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/JiaYueWindPowerDqResultCoverFD0029.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_FD0029_zdata_wind_power_dq_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0029_zdata_wind_power_dq_result")
+public class JiaYueWindPowerDqResultCoverFD0029 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/JiaYueWindPowerDqResultCoverFD0030.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_FD0030_zdata_wind_power_dq_result")
+public class JiaYueWindPowerDqResultCoverFD0030 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/JiaYueWindPowerNwpResultCoverFD0029.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_FD0029_zdata_nwp_result
+ *
+ *  @author fxy
+ *  @date 2023-08-01 15:48:48
+ */
+@Data
+@TableName("jiayue_FD0029_zdata_nwp_result")
+public class JiaYueWindPowerNwpResultCoverFD0029 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/JiaYueWindPowerNwpResultCoverFD0030.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_FD0030_zdata_nwp_result")
+public class JiaYueWindPowerNwpResultCoverFD0030 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;
+
+}

+ 68 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0029.java

@@ -0,0 +1,68 @@
+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_FD0007_wind_power_real_15min")
+public class WindPowerReal15MinFD0029 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;
+
+    /**
+     *  原始DQ
+     */
+    private Float dQ;
+
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}

+ 62 - 0
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/WindPowerReal15MinFD0030.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_FD0007_wind_power_real_15min")
+public class WindPowerReal15MinFD0030 implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+//    /**
+//     * 主键ID
+//     */
+//    @Id
+//    @GeneratedValue(strategy = GenerationType.IDENTITY)
+//    private BigInteger id;
+
+
+    /**
+     *  对象标识
+     */
+    private String objId;
+
+
+    /**
+     *  数据类型
+     */
+    private String dataType;
+
+
+    /**
+     *  日期
+     */
+    private LocalDateTime dateTime;
+
+    /**
+     *  值
+     */
+    private Float value;
+
+    /**
+     *  入库时间
+     */
+    private LocalDateTime createTime;
+
+
+    /**
+     *  更新时间
+     */
+    private LocalDateTime updateTime;
+
+}