Browse Source

Merge remote-tracking branch 'origin/master'

wangchangsheng 2 years ago
parent
commit
290719dffc
47 changed files with 4981 additions and 519 deletions
  1. 2 1
      common/src/main/java/com/gyee/common/contant/ContantXk.java
  2. 14 10
      realtime/generationXK-service/src/main/java/com/gyee/generation/GenerationMain.java
  3. 48 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/init/CacheContext.java
  4. 4 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittMonthMainMapper.java
  5. 4 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittMonthSubMapper.java
  6. 4 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittYearMainMapper.java
  7. 4 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittYearSubMapper.java
  8. 6 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittingMainMapper.java
  9. 7 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittingSubMapper.java
  10. 8 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingMapper.java
  11. 5 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingMonthMapper.java
  12. 4 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingYearMapper.java
  13. 4 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtPowerCurveFittingMapper.java
  14. 2 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtmttrMtbfDayMapper.java
  15. 86 3
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/EquipmentInfo4Service.java
  16. 280 204
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/PowerCurveFittingByTimeService.java
  17. 1 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittMonthMainService.java
  18. 1 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittMonthSubService.java
  19. 1 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittYearMainService.java
  20. 1 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittYearSubService.java
  21. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittingMainService.java
  22. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittingSubService.java
  23. 2 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingMonthService.java
  24. 4 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingService.java
  25. 2 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingYearService.java
  26. 1 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtPowerCurveFittingService.java
  27. 11 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittMonthMainServiceImpl.java
  28. 11 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittMonthSubServiceImpl.java
  29. 10 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittYearMainServiceImpl.java
  30. 10 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittYearSubServiceImpl.java
  31. 13 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittingMainServiceImpl.java
  32. 13 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittingSubServiceImpl.java
  33. 10 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtCurveFittingMonthServiceImpl.java
  34. 11 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtCurveFittingServiceImpl.java
  35. 10 3
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtCurveFittingYearServiceImpl.java
  36. 11 2
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtPowerCurveFittingServiceImpl.java
  37. 123 123
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/initalcache/CacheService.java
  38. 284 110
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/CycleCalculationService.java
  39. 80 33
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/RealtimeService.java
  40. 2932 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/RegionCalService.java
  41. 923 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/RegionCalreService.java
  42. 1 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/StatusService.java
  43. 1 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/util/realtimesource/EdosUtil.java
  44. 1 0
      realtime/generationXK-service/src/main/resources/application-dev.yml
  45. 2 2
      realtime/generationXK-service/src/main/resources/application-xk.yml
  46. 1 1
      realtime/generationXK-service/src/main/resources/application.yml
  47. 22 1
      realtime/generationXK-service/src/test/java/com/gyee/generation/GenerationTest.java

+ 2 - 1
common/src/main/java/com/gyee/common/contant/ContantXk.java

@@ -13,7 +13,7 @@ public class ContantXk {
     public static final String  GLYCJRZT= "GLYCJRZT";//场站功率预测接入状态
     public static final String  QXZJRZT= "QXZJRZT";//场站测风塔接入状态
     public static final String  SSPJFS= "SSPJFS";//场站实时平均风速
-    public static final String  SSPJGZD= "SSPJGZD";//场站实时平均光照度
+    public static final String  SSPJGZD = "SSPJGZD";
     public static final String  SSZGL= "SSZGL";//场站实时总功率
     public static final String  SSZLLGL= "SSZLLGL";//场站实时总理论功率
     public static final String  SSZBZGL= "SSZBZGL";//场站实时总保证功率
@@ -84,6 +84,7 @@ public class ContantXk {
     public static final String  NZFDL= "NZFDL";//年增发电量
     public static final String  NQFDL= "NQFDL";//年欠发电量
     public static final String  PJFS15= "PJFS15";//15分钟平均风速
+    public static final String  PJGZD15= "PJGZD15";//15分钟光照度
     public static final String  PJGL15= "PJGL15";//15分钟平均功率
     public static final String  FDL15= "FDL15";//15分钟发电量
     public static final String  KYDL15= "KYDL15";//15分钟可用电量

+ 14 - 10
realtime/generationXK-service/src/main/java/com/gyee/generation/GenerationMain.java

@@ -1,9 +1,13 @@
 package com.gyee.generation;
 
+import com.gyee.common.util.DateUtils;
+import com.gyee.generation.service.PowerCurveFittingByTimeService;
+import com.gyee.generation.util.SpringUtils;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+import java.util.Calendar;
 import java.util.Date;
 
 /**
@@ -110,16 +114,16 @@ public class GenerationMain {
 
 //        EquipmentInfoDayTopService equipmentInfoDayTopService= SpringUtils.getBean("equipmentInfoDayTopService");
 //        equipmentInfoDayTopService.calEquipmentInfoDayTop(new Date());
-//        Calendar c=Calendar.getInstance();
-//        c.set(Calendar.MONTH,7);
-//        c.set(Calendar.DAY_OF_MONTH,31);
-//        PowerCurveFittingByTimeService powerCurveFittingByTimeService= SpringUtils.getBean("powerCurveFittingByTimeService");
-////        powerCurveFittingByTimeService.cureFittingDay(c.getTime());
-//        powerCurveFittingByTimeService.cureFittingMonth(c.getTime());
-////        powerCurveFittingByTimeService.cureFittingYear(c.getTime());
-//        Date end=new Date();
-//        System.out.println("执行用时"+ DateUtils.secondsDiff(date,end) +"秒");
-//        System.out.println("计算完成");
+        Calendar c=Calendar.getInstance();
+        c.set(Calendar.MONTH,7);
+        c.set(Calendar.DAY_OF_MONTH,31);
+        PowerCurveFittingByTimeService powerCurveFittingByTimeService= SpringUtils.getBean("powerCurveFittingByTimeService");
+//        powerCurveFittingByTimeService.cureFittingDay(c.getTime());
+        powerCurveFittingByTimeService.cureFittingMonth(c.getTime(),"0");
+//        powerCurveFittingByTimeService.cureFittingYear(c.getTime());
+        Date end=new Date();
+        System.out.println("执行用时"+ DateUtils.secondsDiff(date,end) +"秒");
+        System.out.println("计算完成");
 //
 //        CacheService cacheService= SpringUtils.getBean("cacheService");
 //        cacheService.initRedisCache();

+ 48 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/init/CacheContext.java

@@ -34,6 +34,7 @@ public class CacheContext implements CommandLineRunner {
     private IProBasicLineService proBasicLineService;
     @Resource
     private IProBasicProjectService proBasicProjectService;
+
     @Resource
     private IProBasicPowerstationService proBasicWindpowerstationService;
     @Resource
@@ -71,6 +72,7 @@ public class CacheContext implements CommandLineRunner {
 
     public static List<ProBasicSquare> sqls = new ArrayList<>();
     public static List<ProBasicPowerstation>  wpls = new ArrayList<>();
+    public static List<ProBasicPowerstation>  zwpls = new ArrayList<>();
     public static List<ProBasicCompany>  cpls = new ArrayList<>();
     public static List<ProBasicRegion>  rgls = new ArrayList<>();
     public static Map<String,ProBasicProject> pjmap = new HashMap<>();
@@ -98,6 +100,8 @@ public class CacheContext implements CommandLineRunner {
     public static Map<String,Map<String, ProBasicPowerstationPoint>> propointmap =new HashMap<>();
     public static Map<String,Map<String, ProBasicPowerstationPoint>> wppointmap =new HashMap<>();
     public static Map<String,Map<String, ProBasicPowerstationPoint>> subwppointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> companypointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> regionpointmap =new HashMap<>();
 
 
     public static Map<String,Map<Double,Double>> zbzglMap = new HashMap<>();
@@ -167,7 +171,31 @@ public class CacheContext implements CommandLineRunner {
             for(ProBasicCompany sq:cpls)
             {
                 cpmap.put(sq.getId(),sq);
+
+                if (redisService.hasKey(sq.getId()+"0")){
+                    String cp0String = redisService.get(sq.getId()+"0");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    companypointmap.put(sq.getId()+"0",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getId()+"-1")){
+                    String cp1String = redisService.get(sq.getId()+"-1");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    companypointmap.put(sq.getId()+"-1",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getId()+"-2")){
+                    String cp2String = redisService.get(sq.getId()+"-2");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    companypointmap.put(sq.getId()+"-2",stringWindpowerstationpointnewMap);
+                }
+
+
+
+
             }
+
         }
 
 
@@ -177,6 +205,25 @@ public class CacheContext implements CommandLineRunner {
             for(ProBasicRegion sq:rgls)
             {
                 rgmap.put(sq.getId(),sq);
+
+                if (redisService.hasKey(sq.getId()+"0")){
+                    String cp0String = redisService.get(sq.getId()+"0");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    regionpointmap.put(sq.getId()+"0",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getId()+"-1")){
+                    String cp1String = redisService.get(sq.getId()+"-1");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    regionpointmap.put(sq.getId()+"-1",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getId()+"-2")){
+                    String cp2String = redisService.get(sq.getId()+"-2");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    regionpointmap.put(sq.getId()+"-2",stringWindpowerstationpointnewMap);
+                }
             }
         }
 
@@ -346,7 +393,7 @@ public class CacheContext implements CommandLineRunner {
         });
 
 
-
+        zwpls = proBasicWindpowerstationService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());;
         wpls = proBasicWindpowerstationService.list().stream().filter(i->runWpids.contains(i.getId()) && i.getIsAble()==1).collect(Collectors.toList());;
         meterpoints = proBasicMeterPointService.list().stream().filter(i->runWpids.contains(i.getWindpowerstationId()) && i.getIsAble()==1).collect(Collectors.toList());
         meterpoints.stream().forEach(meterpoint -> {

+ 4 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittMonthMainMapper.java

@@ -2,6 +2,8 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconCurveFittMonthMain;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconCurveFittMonthMainMapper extends BaseMapper<ProEconCurveFittMonthMain> {
 
+    @Delete(" delete from pro_econ_curve_fitt_month_main where year=#{year} and month=#{month}")
+    public int deleteProEconCurveFittMonthSubByMonth(@Param(value = "year") String year, @Param(value = "month") String month);
 }

+ 4 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittMonthSubMapper.java

@@ -2,6 +2,8 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconCurveFittMonthSub;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconCurveFittMonthSubMapper extends BaseMapper<ProEconCurveFittMonthSub> {
 
+    @Delete(" delete from pro_econ_curve_fitt_month_sub where year=#{year} and month=#{month}")
+    public int deleteProEconCurveFittMonthSubByMonth(@Param(value = "year") String year, @Param(value = "month") String month);
 }

+ 4 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittYearMainMapper.java

@@ -2,6 +2,8 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconCurveFittYearMain;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2022-11-07
  */
 public interface ProEconCurveFittYearMainMapper extends BaseMapper<ProEconCurveFittYearMain> {
-
+    @Delete(" delete from pro_econ_curve_fitt_year_main where year=#{year}")
+    public int deleteProEconCurveFittYearMainByYear(@Param(value = "year") String year);
 }

+ 4 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittYearSubMapper.java

@@ -2,6 +2,8 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconCurveFittYearSub;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2022-11-07
  */
 public interface ProEconCurveFittYearSubMapper extends BaseMapper<ProEconCurveFittYearSub> {
-
+    @Delete(" delete from pro_econ_curve_fitt_year_sub where year=#{year}")
+    public int deleteProEconCurveFittYearSubByYear(@Param(value = "year") String year);
 }

+ 6 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittingMainMapper.java

@@ -2,6 +2,10 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconCurveFittingMain;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
 
 /**
  * <p>
@@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconCurveFittingMainMapper extends BaseMapper<ProEconCurveFittingMain> {
 
+    @Delete(" delete from pro_econ_curve_fitting_main where recordDate=#{recordDate} ")
+    public int deleteProEconCurveFittingMainByDay(@Param(value = "recordDate") Date recordDate);
 }

+ 7 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittingSubMapper.java

@@ -2,6 +2,10 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconCurveFittingSub;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
 
 /**
  * <p>
@@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconCurveFittingSubMapper extends BaseMapper<ProEconCurveFittingSub> {
 
+
+    @Delete(" delete from pro_econ_curve_fitting_sub where recordDate=#{recordDate} ")
+    public int deleteProEconCurveFittingSubByDay(@Param(value = "recordDate") Date recordDate);
 }

+ 8 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingMapper.java

@@ -1,7 +1,11 @@
 package com.gyee.generation.mapper.auto;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFitting;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.generation.model.auto.ProEconWtCurveFitting;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
 
 /**
  * <p>
@@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconWtCurveFittingMapper extends BaseMapper<ProEconWtCurveFitting> {
 
+    @Delete(" delete from pro_econ_wt_curve_fitting where recordDate=#{recordDate} ")
+    public int deleteProEconWtCurveFittingByDay(@Param(value = "recordDate") Date recordDate);
+
 }

+ 5 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingMonthMapper.java

@@ -1,7 +1,9 @@
 package com.gyee.generation.mapper.auto;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFittingMonth;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.generation.model.auto.ProEconWtCurveFittingMonth;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconWtCurveFittingMonthMapper extends BaseMapper<ProEconWtCurveFittingMonth> {
 
+    @Delete(" delete from pro_econ_wt_curve_fitting_month where year=#{year} and month=#{month}")
+    public int deleteProEconWtCurveFittingByMonth(@Param(value = "year") String year,@Param(value = "month") String month);
 }

+ 4 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingYearMapper.java

@@ -2,6 +2,8 @@ package com.gyee.generation.mapper.auto;
 
 import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconWtCurveFittingYearMapper extends BaseMapper<ProEconWtCurveFittingYear> {
 
+    @Delete(" delete from pro_econ_wt_curve_fitting_year where year=#{year}")
+    public int deleteProEconWtCurveFittingByYear(@Param(value = "year") String year);
 }

+ 4 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtPowerCurveFittingMapper.java

@@ -1,7 +1,8 @@
 package com.gyee.generation.mapper.auto;
 
-import com.gyee.generation.model.auto.ProEconWtPowerCurveFitting;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.generation.model.auto.ProEconWtPowerCurveFitting;
+import org.apache.ibatis.annotations.Delete;
 
 /**
  * <p>
@@ -13,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconWtPowerCurveFittingMapper extends BaseMapper<ProEconWtPowerCurveFitting> {
 
+    @Delete(" delete from pro_econ_wt_power_curve_fitting   ")
+    public int deleteProEconWtPowerCurveFitting();
 }

+ 2 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtmttrMtbfDayMapper.java

@@ -1,7 +1,7 @@
 package com.gyee.generation.mapper.auto;
 
-import com.gyee.generation.model.auto.ProEconWtmttrMtbfDay;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.generation.model.auto.ProEconWtmttrMtbfDay;
 
 /**
  * <p>
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProEconWtmttrMtbfDayMapper extends BaseMapper<ProEconWtmttrMtbfDay> {
 
+
 }

+ 86 - 3
realtime/generationXK-service/src/main/java/com/gyee/generation/service/EquipmentInfo4Service.java

@@ -34,10 +34,13 @@ public class EquipmentInfo4Service {
     private IProEconInOrOutSpeedTotalService proEconInOrOutSpeedTotalService;
 
     @Resource
-    private CoefficientService coefficientService;
+    private IProEconCurveFittingSubService proEconCurveFittingSubService;
 
     @Resource
-    private GoodnessOfFitService goodnessOfFitService;
+    private IProEconCurveFittMonthSubService proEconCurveFittMonthSubService;
+
+    @Resource
+    private IProEconCurveFittYearSubService proEconCurveFittYearSubService;
 
     @Resource
     private IProEconCurveFittingMainService proEconCurveFittingMainService;
@@ -386,9 +389,35 @@ public class EquipmentInfo4Service {
             pewp.setRgzxqjsl(100.0);
         }
 //**************************************************日三率统计****************************************************************/
-//**TODO-SL 缺少阶段性曲线偏差率**/
 
+        List<ProEconCurveFittingSub> pointls=proEconCurveFittingSubService.list().stream().filter(x-> x.getSpeed() !=null
+                && Double.valueOf(x.getSpeed())>=3.0
+                && Double.valueOf(x.getSpeed())<5.0
+                && x.getRecordDate().compareTo(begin) == 0
+                && x.getWindturbineId().equals(wt.getId())
+        ).collect(Collectors.toList());
+
+        DoubleSummaryStatistics summaryStatistics=pointls.stream().mapToDouble(ProEconCurveFittingSub::getDeviationRate1).summaryStatistics();
+        pewp.setR35mqxpcl(summaryStatistics.getAverage());
+
+          pointls=proEconCurveFittingSubService.list().stream().filter(x-> x.getSpeed() !=null
+              && Double.valueOf(x.getSpeed())>=5.0
+                && Double.valueOf(x.getSpeed())<11.0
+                && x.getRecordDate().compareTo(begin) == 0
+                && x.getWindturbineId().equals(wt.getId())
+        ).collect(Collectors.toList());
+
+        summaryStatistics=pointls.stream().mapToDouble(ProEconCurveFittingSub::getDeviationRate1).summaryStatistics();
+        pewp.setR511mqxpcl(summaryStatistics.getAverage());
 
+        pointls=proEconCurveFittingSubService.list().stream().filter(x-> x.getSpeed() !=null
+                && Double.valueOf(x.getSpeed())>=11.0
+                && x.getRecordDate().compareTo(begin) == 0
+                && x.getWindturbineId().equals(wt.getId())
+        ).collect(Collectors.toList());
+
+        summaryStatistics=pointls.stream().mapToDouble(ProEconCurveFittingSub::getDeviationRate1).summaryStatistics();
+        pewp.setR11mycqxpcl(summaryStatistics.getAverage());
 //*******************************************日信息统计*********************************************************/
 
 //*******************************************月信息统计*********************************************************/
@@ -579,8 +608,36 @@ public class EquipmentInfo4Service {
                 pewp.setYgzxqjsl(100.0);
             }
 //**************************************************月三率统计****************************************************************/
+            List<ProEconCurveFittMonthSub> monthpointls=proEconCurveFittMonthSubService.list().stream().filter(x-> x.getSpeed() !=null
+                    && Double.valueOf(x.getSpeed())>=3.0
+                    && Double.valueOf(x.getSpeed())<5.0
+                    && x.getYear().equals(year)
+                    && x.getMonth().equals(month)
+                    && x.getWindturbineId().equals(wt.getId())
+            ).collect(Collectors.toList());
 
+            summaryStatistics=monthpointls.stream().mapToDouble(ProEconCurveFittMonthSub::getDeviationRate1).summaryStatistics();
+            pewp.setY35mqxpcl(summaryStatistics.getAverage());
+            monthpointls=proEconCurveFittMonthSubService.list().stream().filter(x-> x.getSpeed() !=null
+                    && Double.valueOf(x.getSpeed())>=5.0
+                    && Double.valueOf(x.getSpeed())<11.0
+                    && x.getYear().equals(year)
+                    && x.getMonth().equals(month)
+                    && x.getWindturbineId().equals(wt.getId())
+            ).collect(Collectors.toList());
+
+            summaryStatistics=monthpointls.stream().mapToDouble(ProEconCurveFittMonthSub::getDeviationRate1).summaryStatistics();
+            pewp.setY511mqxpcl(summaryStatistics.getAverage());
 
+            monthpointls=proEconCurveFittMonthSubService.list().stream().filter(x-> x.getSpeed() !=null
+                    && Double.valueOf(x.getSpeed())>=11.0
+                    && x.getYear().equals(year)
+                    && x.getMonth().equals(month)
+                    && x.getWindturbineId().equals(wt.getId())
+            ).collect(Collectors.toList());
+
+            summaryStatistics=monthpointls.stream().mapToDouble(ProEconCurveFittMonthSub::getDeviationRate1).summaryStatistics();
+            pewp.setY11mycqxpcl(summaryStatistics.getAverage());
         }
 
 
@@ -765,7 +822,33 @@ public class EquipmentInfo4Service {
                 pewp.setNgzxqjsl(100.0);
             }
 //**************************************************年三率统计****************************************************************/
+            List<ProEconCurveFittYearSub> yearpointls=proEconCurveFittYearSubService.list().stream().filter(x-> x.getSpeed() !=null
+                    && Double.valueOf(x.getSpeed())>=3.0
+                    && Double.valueOf(x.getSpeed())<5.0
+                    && x.getYear().equals(year)
+                    && x.getWindturbineId().equals(wt.getId())
+            ).collect(Collectors.toList());
+
+            summaryStatistics=yearpointls.stream().mapToDouble(ProEconCurveFittYearSub::getDeviationRate1).summaryStatistics();
+            pewp.setN35mqxpcl(summaryStatistics.getAverage());
+            yearpointls=proEconCurveFittYearSubService.list().stream().filter(x-> x.getSpeed() !=null
+                    && Double.valueOf(x.getSpeed())>=5.0
+                    && Double.valueOf(x.getSpeed())<11.0
+                    && x.getYear().equals(year)
+                    && x.getWindturbineId().equals(wt.getId())
+            ).collect(Collectors.toList());
+
+            summaryStatistics=yearpointls.stream().mapToDouble(ProEconCurveFittYearSub::getDeviationRate1).summaryStatistics();
+            pewp.setN511mqxpcl(summaryStatistics.getAverage());
+
+            yearpointls=proEconCurveFittYearSubService.list().stream().filter(x-> x.getSpeed() !=null
+                    && Double.valueOf(x.getSpeed())>=11.0
+                    && x.getYear().equals(year)
+                     && x.getWindturbineId().equals(wt.getId())
+            ).collect(Collectors.toList());
 
+            summaryStatistics=yearpointls.stream().mapToDouble(ProEconCurveFittYearSub::getDeviationRate1).summaryStatistics();
+            pewp.setN11mycqxpcl(summaryStatistics.getAverage());
         }
 
     }

+ 280 - 204
realtime/generationXK-service/src/main/java/com/gyee/generation/service/PowerCurveFittingByTimeService.java

@@ -70,8 +70,9 @@ public class PowerCurveFittingByTimeService {
 
         Date begin = DateUtils.addDays(end, -6);
 
-
-
+        proEconWtCurveFittingService.deleteProEconWtCurveFittingByDay(DateUtils.truncate(recordDate));
+        proEconCurveFittingMainService.deleteProEconCurveFittingMainByDay(DateUtils.truncate(recordDate));
+        proEconCurveFittingSubService.deleteProEconCurveFittingSubByDay(DateUtils.truncate(recordDate));
         Map<String, CureFittingVo> windMap = new HashMap<>();
 
         //初始化风机装机容量
@@ -160,6 +161,7 @@ public class PowerCurveFittingByTimeService {
         }
 
 
+        List<ProEconCurveFittingMain> mainls=new ArrayList<>();
         for (String key : windMap.keySet()) {
 
             Double modelpower = 1500.0;
@@ -254,22 +256,23 @@ public class PowerCurveFittingByTimeService {
             //日---实际/标杆实际
             cfmday.setStandardDeviationRate(pcl(windMap.get(key).getRsjglPoints(), dayStandardPoints, modelpower));
 
-
-            proEconCurveFittingMainService.save(cfmday);
+            mainls.add(cfmday);
+            //proEconCurveFittingMainService.save(cfmday);
             //*********************************************当日曲线偏差记录**********************************************************/
-            pLCBuild(key, recordDate, windMap, modelpower, 3, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 4, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 5, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 6, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 7, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 8, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 9, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 10, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 11, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 12, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-            pLCBuild(key, recordDate, windMap, modelpower, 13, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
-
-
+            List<ProEconCurveFittingSub> subls=new ArrayList<>();
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 3, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 4, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 5, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 6, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 7, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 8, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 9, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 10, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 11, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 12, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+            subls.add(pLCBuild(key, recordDate, windMap, modelpower, 13, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
+
+            proEconCurveFittingSubService.saveBatch(subls);
 
             insertPoints(recordDate,  windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), key);
 
@@ -279,9 +282,10 @@ public class PowerCurveFittingByTimeService {
 
 
         }
+        proEconCurveFittingMainService.saveBatch(mainls);
     }
 
-    public void cureFittingMonth(Date recordDate) throws Exception {
+    public void cureFittingMonth(Date recordDate,String type) throws Exception {
         //日期变为昨天
         Date end = DateUtils.addDays(DateUtils.truncate(recordDate), -1);
 
@@ -290,6 +294,10 @@ public class PowerCurveFittingByTimeService {
         int day_year = c.get(Calendar.YEAR);
         int day_month = c.get(Calendar.MONTH) + 1;
 
+
+        proEconWtCurveFittingMonthService.deleteProEconWtCurveFittingByMonth(String.valueOf(day_year),String.valueOf(day_month));
+        proEconCurveFittMonthMainService.deleteProEconCurveFittMonthMainByMonth(String.valueOf(day_year),String.valueOf(day_month));
+        proEconCurveFittMonthSubService.deleteProEconCurveFittMonthSubByMonth(String.valueOf(day_year),String.valueOf(day_month));
         c.set(Calendar.DAY_OF_MONTH, 1);
         Date begin = c.getTime();
 
@@ -385,7 +393,7 @@ public class PowerCurveFittingByTimeService {
             windMap.get(key).setYzyglPoints(vos);
 
         }
-
+        List<ProEconCurveFittMonthMain> mainls=new ArrayList<>();
         for (String key : windMap.keySet()) {
 
             Double modelpower = 1500.0;
@@ -488,27 +496,31 @@ public class PowerCurveFittingByTimeService {
             //月---实际/标杆实际
             cfmmonth.setStandardDeviationRate(pcl(windMap.get(key).getYsjglPoints(), monthStandardPoints, modelpower));
 
-
-            proEconCurveFittMonthMainService.save(cfmmonth);
+            mainls.add(cfmmonth);
+           // proEconCurveFittMonthMainService.save(cfmmonth);
 
             //*********************************************当月曲线偏差记录**********************************************************/
-
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 3, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 4, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 5, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 6, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 7, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 8, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 9, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 10, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 11, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 12, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-            pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 13, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
-
-
+            List<ProEconCurveFittMonthSub> subls=new ArrayList<>();
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 3, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 4, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 5, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 6, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 7, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 8, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 9, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 10, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 11, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 12, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+            subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 13, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
+
+            proEconCurveFittMonthSubService.saveBatch(subls);
             insertPoints(stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
 
-            insertPoints2( windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
+            if(type.equals("1"))
+            {
+                insertPoints2( windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
+            }
+
 
             logger.info(key);
 //
@@ -516,7 +528,7 @@ public class PowerCurveFittingByTimeService {
 
 
         }
-
+        proEconCurveFittMonthMainService.saveBatch(mainls);
     }
 
 
@@ -530,6 +542,9 @@ public class PowerCurveFittingByTimeService {
         int day_year = c.get(Calendar.YEAR);
 
 
+        proEconWtCurveFittingYearService.deleteProEconWtCurveFittingByYear(String.valueOf(day_year));
+        proEconCurveFittYearMainService.deleteProEconCurveFittYearMainByYear(String.valueOf(day_year));
+        proEconCurveFittYearSubService.deleteProEconCurveFittYearSubByYear(String.valueOf(day_year));
         c.set(Calendar.DAY_OF_MONTH, 1);
         c.set(Calendar.MONTH, 0);
         Date begin = c.getTime();
@@ -608,21 +623,46 @@ public class PowerCurveFittingByTimeService {
             windMap.get(key).setNsjglPoints(new ArrayList<>());
             windMap.get(key).setNzyglPoints(new ArrayList<>());
 
-            if (windMap.get(key).getPointIdGL() == null || windMap.get(key).getPointIdFS() == null || windMap.get(key).getPointIdZT() == null) {
-                logger.info(key);
-                continue;
-            }
+//            if (windMap.get(key).getPointIdGL() == null || windMap.get(key).getPointIdFS() == null || windMap.get(key).getPointIdZT() == null) {
+//                logger.info(key);
+//                continue;
+//            }
 
 
             //拟合年功率曲线
-            curveFittingBuilder(begin, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
-            List<PointVo> vos = windMap.get(key).getNsjglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
-            windMap.get(key).setNsjglPoints(vos);
-            vos = windMap.get(key).getNzyglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
-            windMap.get(key).setNzyglPoints(vos);
-        }
+          //  curveFittingBuilder(begin, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
+
+            List<ProEconWtPowerCurveFitting> wtpowerls= proEconWtPowerCurveFittingService.list().stream().filter(i->i.getWindturbineId().equals(key)).sorted(Comparator.comparing(ProEconWtPowerCurveFitting::getSpeed)).collect(Collectors.toList());
+
+            List<PointVo> zyglls=new ArrayList<>();
+            List<PointVo> sjglls=new ArrayList<>();
+            if(!wtpowerls.isEmpty())
+            {
+
+                for(ProEconWtPowerCurveFitting wtp:wtpowerls)
+                {
+                    PointVo zyvo=new PointVo();
+                    zyvo.setX(wtp.getSpeed());
+                    zyvo.setY(wtp.getOptimalPower());
+                    zyglls.add(zyvo);
+
+                    PointVo sjvo=new PointVo();
+                    sjvo.setX(wtp.getSpeed());
+                    sjvo.setY(wtp.getActualPower());
+                    sjglls.add(sjvo);
+                }
+            }
+//            List<PointVo> vos = windMap.get(key).getNsjglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
+//            windMap.get(key).setNsjglPoints(vos);
+//            vos = windMap.get(key).getNzyglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
+//            windMap.get(key).setNzyglPoints(vos);
 
 
+            windMap.get(key).setNsjglPoints(sjglls);
+            windMap.get(key).setNzyglPoints(zyglls);
+        }
+
+        List<ProEconCurveFittYearMain> mainls=new ArrayList<>();
         for (String key : windMap.keySet()) {
 
             Double modelpower = 1500.0;
@@ -722,24 +762,24 @@ public class PowerCurveFittingByTimeService {
             //年---实际/标杆实际
             cfmyear.setStandardDeviationRate(pcl(windMap.get(key).getNsjglPoints(), yearStandardPoints, modelpower));
 
-
-            proEconCurveFittYearMainService.save(cfmyear);
+            mainls.add(cfmyear);
+           // proEconCurveFittYearMainService.save(cfmyear);
 
 //*********************************************当年曲线偏差记录**********************************************************/
-
-            pLCBuild(key, stringyear, windMap, modelpower, 3, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 4, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 5, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 6, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 7, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 8, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 9, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 10, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 11, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 12, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-            pLCBuild(key, stringyear, windMap, modelpower, 13, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
-
-
+            List<ProEconCurveFittYearSub> subls=new ArrayList<>();
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 3, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 4, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 5, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 6, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 7, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 8, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 9, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 10, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 11, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 12, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+            subls.add(pLCBuild(key, stringyear, windMap, modelpower, 13, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
+
+            proEconCurveFittYearSubService.saveBatch(subls);
             insertPoints(stringyear, windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
 
             logger.info(key);
@@ -748,10 +788,11 @@ public class PowerCurveFittingByTimeService {
 
 
         }
+        proEconCurveFittYearMainService.saveBatch(mainls);
     }
 
 
-    public void pLCBuild(String key, Date current, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
+    public ProEconCurveFittingSub pLCBuild(String key, Date current, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
                          List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
     ) {
 
@@ -788,11 +829,13 @@ public class PowerCurveFittingByTimeService {
         //日---实际/标杆实际
         cfms.setStandardDeviationRate(pcl2(windMap.get(key).getRsjglPoints(), lastStandardPoints, modelpower, speed));
 
-        proEconCurveFittingSubService.save(cfms);
+        return cfms;
+
+        //proEconCurveFittingSubService.save(cfms);
 //*********************************************当日曲线偏差子表记录**********************************************************/
     }
 
-    public void pLCBuild(String key, String stringyear, String stringmonth, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
+    public ProEconCurveFittMonthSub pLCBuild(String key, String stringyear, String stringmonth, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
                          List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
     ) {
         String speedStr = String.valueOf(speed);
@@ -833,11 +876,13 @@ public class PowerCurveFittingByTimeService {
         //月---实际/标杆实际
         cfmsmonth.setStandardDeviationRate(pcl2(windMap.get(key).getYsjglPoints(), lastStandardPoints, modelpower, speed));
 
-        proEconCurveFittMonthSubService.save(cfmsmonth);
+//        proEconCurveFittMonthSubService.save(cfmsmonth);
+
+        return cfmsmonth;
 //*********************************************当月曲线偏差子表记录**********************************************************/
     }
 
-    public void pLCBuild(String key, String stringyear, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
+    public ProEconCurveFittYearSub pLCBuild(String key, String stringyear, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
                          List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
     ) {
         String speedStr = String.valueOf(speed);
@@ -861,7 +906,7 @@ public class PowerCurveFittingByTimeService {
         cfmsyear.setYear(stringyear);
         cfmsyear.setSpeed(String.valueOf(speed));
 
-        proEconCurveFittYearSubService.save(cfmsyear);
+       // proEconCurveFittYearSubService.save(cfmsyear);
 
         //年---实际/最优
         cfmsyear.setDeviationRate1(pcl2(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower, speed));
@@ -876,7 +921,8 @@ public class PowerCurveFittingByTimeService {
         //年---实际/标杆实际
         cfmsyear.setStandardDeviationRate(pcl2(windMap.get(key).getYsjglPoints(), lastStandardPoints, modelpower, speed));
 
-        proEconCurveFittYearSubService.save(cfmsyear);
+//        proEconCurveFittYearSubService.save(cfmsyear);
+        return cfmsyear;
 //*********************************************当年曲线偏差子表记录**********************************************************/
     }
 
@@ -884,14 +930,15 @@ public class PowerCurveFittingByTimeService {
     private void insertPoints(Date current, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
 
         //*********************************************当日曲线偏差记录**********************************************************/
-        List<Long> wtcfidls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
-                i.getRecordDate().compareTo(current) == 0).map(ProEconWtCurveFitting::getId).collect(Collectors.toList());
-
-
-        for (int i = 0; i < wtcfidls.size(); i++) {
-            proEconWtCurveFittingService.removeByIds(wtcfidls);
-        }
+//        List<Long> wtcfidls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
+//                i.getRecordDate().compareTo(current) == 0).map(ProEconWtCurveFitting::getId).collect(Collectors.toList());
+//
+//
+//        for (int i = 0; i < wtcfidls.size(); i++) {
+//            proEconWtCurveFittingService.removeByIds(wtcfidls);
+//        }
 
+        List<ProEconWtCurveFitting> wtcfls=new ArrayList<>();
         if (sjglls.size() == zyglls.size()) {
             for (int i = 0; i < sjglls.size(); i++) {
                 ProEconWtCurveFitting item = new ProEconWtCurveFitting();
@@ -916,7 +963,8 @@ public class PowerCurveFittingByTimeService {
                     item.setOptimalPower(zyglls.get(i).getY());
                     item.setRecordDate(DateUtils.truncate(current));
 
-                    proEconWtCurveFittingService.save(item);
+                    wtcfls.add(item);
+                    //proEconWtCurveFittingService.save(item);
 
                 }
 
@@ -953,26 +1001,29 @@ public class PowerCurveFittingByTimeService {
 
                     item.setActualPower(sjglls.get(i).getY());
                     item.setRecordDate(current);
-                    proEconWtCurveFittingService.save(item);
+                    wtcfls.add(item);
+                    //proEconWtCurveFittingService.save(item);
                 }
 
             }
             //*********************************************当日曲线偏差记录**********************************************************/
         }
+        proEconWtCurveFittingService.saveBatch(wtcfls);
+
     }
 
 
     private void insertPoints(String year, String month, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
 
         //*********************************************当月曲线偏差记录**********************************************************/
-        List<Long> wtcfmmonthidls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
-                i.getYear().equals(year) && i.getMonth().equals(month)).map(ProEconWtCurveFittingMonth::getId).collect(Collectors.toList());
-
-
-        for (int i = 0; i < wtcfmmonthidls.size(); i++) {
-            proEconWtCurveFittingMonthService.removeByIds(wtcfmmonthidls);
-        }
-
+//        List<Long> wtcfmmonthidls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
+//                i.getYear().equals(year) && i.getMonth().equals(month)).map(ProEconWtCurveFittingMonth::getId).collect(Collectors.toList());
+//
+//
+//        for (int i = 0; i < wtcfmmonthidls.size(); i++) {
+//            proEconWtCurveFittingMonthService.removeByIds(wtcfmmonthidls);
+//        }
+        List<ProEconWtCurveFittingMonth> wtcfls=new ArrayList<>();
         if (sjglls.size() == zyglls.size()) {
             for (int i = 0; i < sjglls.size(); i++) {
                 ProEconWtCurveFittingMonth item = new ProEconWtCurveFittingMonth();
@@ -991,8 +1042,8 @@ public class PowerCurveFittingByTimeService {
                     item.setOptimalPower(zyglls.get(i).getY());
                     item.setYear(String.valueOf(year));
                     item.setMonth(String.valueOf(month));
-
-                    proEconWtCurveFittingMonthService.save(item);
+                    wtcfls.add(item);
+                   // proEconWtCurveFittingMonthService.save(item);
                 }
 
             }
@@ -1026,26 +1077,26 @@ public class PowerCurveFittingByTimeService {
 
                     item.setYear(String.valueOf(year));
                     item.setMonth(String.valueOf(month));
-
-                    proEconWtCurveFittingMonthService.save(item);
+                    wtcfls.add(item);
+                    //proEconWtCurveFittingMonthService.save(item);
                 }
 
             }
         }
         //*********************************************当月曲线偏差记录**********************************************************/
 
-
+        proEconWtCurveFittingMonthService.saveBatch(wtcfls);
     }
 
     private void insertPoints(String year,  List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
         //*********************************************当年曲线偏差记录**********************************************************/
-        List<Long> wtcfmyearidls = proEconWtCurveFittingYearService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
-                i.getYear().equals(year)).map(ProEconWtCurveFittingYear::getId).collect(Collectors.toList());
-
-        for (int i = 0; i < wtcfmyearidls.size(); i++) {
-            proEconWtCurveFittingYearService.removeByIds(wtcfmyearidls);
-        }
-
+//        List<Long> wtcfmyearidls = proEconWtCurveFittingYearService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
+//                i.getYear().equals(year)).map(ProEconWtCurveFittingYear::getId).collect(Collectors.toList());
+//
+//        for (int i = 0; i < wtcfmyearidls.size(); i++) {
+//            proEconWtCurveFittingYearService.removeByIds(wtcfmyearidls);
+//        }
+        List<ProEconWtCurveFittingYear> wtcfls=new ArrayList<>();
         if (sjglls.size() == zyglls.size()) {
             for (int i = 0; i < sjglls.size(); i++) {
                 ProEconWtCurveFittingYear item = new ProEconWtCurveFittingYear();
@@ -1063,8 +1114,8 @@ public class PowerCurveFittingByTimeService {
                     item.setActualPower(sjglls.get(i).getY());
                     item.setOptimalPower(zyglls.get(i).getY());
                     item.setYear(String.valueOf(year));
-
-                    proEconWtCurveFittingYearService.save(item);
+                    wtcfls.add(item);
+                   // proEconWtCurveFittingYearService.save(item);
                 }
 
             }
@@ -1097,26 +1148,31 @@ public class PowerCurveFittingByTimeService {
                     }
 
                     item.setYear(String.valueOf(year));
-
-                    proEconWtCurveFittingYearService.save(item);
+                    wtcfls.add(item);
+                    //proEconWtCurveFittingYearService.save(item);
                 }
 
             }
         }
         //*********************************************当年曲线偏差记录**********************************************************/
 
-
+        proEconWtCurveFittingYearService.saveBatch(wtcfls);
     }
     private void insertPoints2(List<PointVo> monthSjglls, List<PointVo> monthZyglls, String windturbineId) {
 
 
-        List<Integer> wtpcfidls = proEconWtPowerCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId)).map(ProEconWtPowerCurveFitting::getId).collect(Collectors.toList());
-
+//        List<Integer> wtpcfidls = proEconWtPowerCurveFittingService.list()
+//                .stream().filter(i -> i.getWindturbineId().equals(windturbineId))
+//                .map(ProEconWtPowerCurveFitting::getId).collect(Collectors.toList());
+//
+//
+//        for (int i = 0; i < wtpcfidls.size(); i++) {
+//            proEconWtPowerCurveFittingService.removeByIds(wtpcfidls);
+//        }
 
-        for (int i = 0; i < wtpcfidls.size(); i++) {
-            proEconWtPowerCurveFittingService.removeByIds(wtpcfidls);
-        }
+        proEconWtPowerCurveFittingService.deleteProEconWtPowerCurveFitting();
 
+        List<ProEconWtPowerCurveFitting> wtcfls=new ArrayList<>();
         if (monthSjglls.size() == monthZyglls.size()) {
             for (int i = 0; i < monthSjglls.size(); i++) {
                 ProEconWtPowerCurveFitting item = new ProEconWtPowerCurveFitting();
@@ -1141,8 +1197,8 @@ public class PowerCurveFittingByTimeService {
                     item.setActualPower(monthSjglls.get(i).getY());
                     item.setOptimalPower(monthZyglls.get(i).getY());
 
-
-                    proEconWtPowerCurveFittingService.save(item);
+                    wtcfls.add(item);
+                    //proEconWtPowerCurveFittingService.save(item);
                 }
 
             }
@@ -1180,12 +1236,14 @@ public class PowerCurveFittingByTimeService {
                         item.setOptimalPower(0.0);
                     }
 
-
-                    proEconWtPowerCurveFittingService.save(item);
+                    wtcfls.add(item);
+                    //proEconWtPowerCurveFittingService.save(item);
                 }
 
             }
         }
+
+        proEconWtPowerCurveFittingService.saveBatch(wtcfls);
     }
 
     private void yearBuildPoints(List<ProEconWtCurveFittingYear> data, List<PointVo> points) {
@@ -1284,97 +1342,115 @@ public class PowerCurveFittingByTimeService {
     }
 
     //todo-sl 添加数据筛选
-    private boolean filterData(PointData gl, PointData fs, PointData zt, double maxvalue, String windturbineId) throws Exception {
-//        if (StringUtils.notEmp(gl)) {
-//            //判定功率是否超过最大值
-//            if (gl.getPointValueInDouble() > maxvalue) {
-//                return false;
-//            }
-//        }
-//
-//        if (StringUtils.notEmp(fs)) {
-//            //判定功率是否超过最大值
-//            if (fs.getPointValueInDouble() > 25) {
-//                return false;
-//            }
-//        }
-//
-//        //判定状态不为运行的进行过滤
-//        if (zt.getPointValueInDouble() != 2) {
-//            return false;
-//        }
-//
-//
-//        //设置时间为10分钟前,10钟前有停机事件数据进行过滤
-//        Calendar c = Calendar.getInstance();
-//        c.setTimeInMillis(zt.getPointTime());
-//        Date end = c.getTime();
-//        c.add(Calendar.MINUTE, -10);
-//        Date bedin = c.getTime();
-//        List<PointData> points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
-//        if (!points.isEmpty()) {
-//            for (PointData p : points) {
-//                if (p.getPointValueInDouble() == 4) {
-//
-//                    return false;
-//                }
-//
-//            }
-//
-//        }
-//
-//        //设置时间为10分钟后,运行后10分钟数据进行过滤
-//        c = Calendar.getInstance();
-//        c.setTimeInMillis(zt.getPointTime());
-//        bedin = c.getTime();
-//        c.add(Calendar.MINUTE, 10);
-//        end = c.getTime();
-//        points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
-//        if (!points.isEmpty()) {
-//            for (PointData p : points) {
-//                if (p.getPointValueInDouble() != 2) {
-//                    return false;
-//
-//                }
-//
-//            }
-//
-//        }
-//        Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
-//        Map<String, ProBasicEquipmentPoint> wtpointmap = wtpAimap.get(windturbineId);
-//        //与保证功率进行对比,偏差大于25%的进行过滤
-//        List<String> pointid = new ArrayList<>();
-//
-//        pointid.add(wtpointmap.get(ContantXk.BZGL).getNemCode());
-//        List<PointData> value = edosUtil.getHistMatrix(pointid, gl.getPointTime() / 1000);
-//
-//
-//        if (null != value && value.size() > 0) {
-//            double bzgl = value.get(0).getPointValueInDouble();
-//            double sjgl = gl.getPointValueInDouble();
-//
-//            double temp = Math.abs(sjgl - bzgl);
-//            if (temp > sjgl * 0.25) {
-//                return false;
-//            }
-//        }
-//
-//        //欠发状态大于2过滤掉
-//        pointid = new ArrayList<>();
-//
-//        pointid.add(wtpointmap.get(ContantXk.LSQFZT).getNemCode());
-//        value = edosUtil.getHistMatrix(pointid, gl.getPointTime() / 1000);
-//        if (null != value && value.size() > 0) {
-//            double qfzt = value.get(0).getPointValueInDouble();
-//
-//            return !(qfzt > 2);
-//        }
+    private boolean filterData(PointData gl, PointData fs, PointData zt, double maxPower,double maxSpeed, String windturbineId) throws Exception {
+        if (StringUtils.notEmp(gl)) {
+            //判定功率是否超过最大值
+            if (gl.getPointValueInDouble() > maxPower) {
+                return false;
+            }
+        }
+
+        if (StringUtils.notEmp(fs)) {
+            //判定功率是否超过最大值
+            if (fs.getPointValueInDouble() > maxSpeed) {
+                return false;
+            }
+        }
+
+        //判定状态不为运行的进行过滤
+        if (zt.getPointValueInDouble() != 2) {
+            return false;
+        }
+
+
+        //设置时间为10分钟前,10钟前有停机事件数据进行过滤
+        Calendar c = Calendar.getInstance();
+        c.setTimeInMillis(zt.getPointTime());
+        Date end = c.getTime();
+        c.add(Calendar.MINUTE, -10);
+        Date bedin = c.getTime();
+        List<PointData> points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
+        if (!points.isEmpty()) {
+            for (PointData p : points) {
+                if (p.getPointValueInDouble() == 4) {
+
+                    return false;
+                }
+
+            }
+
+        }
+
+        //设置时间为10分钟后,运行后10分钟数据进行过滤
+
+        points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
+        if (!points.isEmpty()) {
+            for (PointData p : points) {
+                if (p.getPointValueInDouble() != 2) {
+                    return false;
+
+                }
+
+            }
+
+        }
+
+
+        Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
+        Map<String, ProBasicEquipmentPoint> wtpointmap = wtpAimap.get(windturbineId);
+
+
+        List<PointVo> bzPointls=new ArrayList<>();
+        List<PointVo> sjPointls=new ArrayList<>();
+
+        double modelpower=0.0;
+        if (CacheContext.wtmap.containsKey(windturbineId)) {
+            String modelid = CacheContext.wtmap.get(windturbineId).getModelId();
+            if (StringUtils.notEmp(modelid)) {
+                //获取保证功率曲线中的风速和功率
+                if (CacheContext.theoreticalPowerMap.containsKey(modelid)) {
+                    Map<Double,ProBasicModelPowerRd> theoreticalMap= CacheContext.theoreticalPowerMap.get(modelid);
+
+                    PointVo point = new PointVo();
+                    double speed=StringUtils.round(fs.getPointValueInDouble(),2);
+                    point.setX(speed);
+                    point.setY(theoreticalMap.get(speed).getEnsurePower());
+                    modelpower=point.getY();
+                    bzPointls.add(point);
+                }
+            }
+        }
+
+        PointVo point = new PointVo();
+        double speed=StringUtils.round(fs.getPointValueInDouble(),2);
+        double power=StringUtils.round(gl.getPointValueInDouble(),2);
+        point.setX(speed);
+        point.setY(power);
+        sjPointls.add(point);
+
+        //与保证功率进行对比,偏差大于25%的进行过滤
+        double value= pcl2( sjPointls, bzPointls, modelpower, speed);
+
+        if (value > Math.abs(0.25)) {
+            return false;
+        }
+
+        List<String> pointid = new ArrayList<>();
+        //欠发状态大于2过滤掉
+        pointid.add(wtpointmap.get(ContantXk.LSQFZT).getNemCode());
+        List<PointData> values = edosUtil.getHistMatrix(pointid, gl.getPointTime() / 1000);
+        if (null != values && values.size() > 0) {
+            double qfzt = values.get(0).getPointValueInDouble();
+
+            return !(qfzt > 2);
+        }
         return true;
     }
 
     //功率曲线拟合
     public void curveFittingBuilder(Date begin, Date end, int dimension, double scale, String pointIdGL, String pointIdFS, String pointIdZT, List<PointVo> sjglPoints, List<PointVo> zyglPoints, String windturbineId) throws Exception {
         double maxPower = windturbineCapacity.get(windturbineId) * 1.3;
+        double maxSpeed = 25;
         List<PointfVo> sjglnhpoints = new ArrayList<>();
         Map<Double, PointfVo> zyglnhpoints = new HashMap<>();
 
@@ -1390,7 +1466,7 @@ public class PowerCurveFittingByTimeService {
                 List<PointData> ztpoints = new ArrayList<>();
                 if (!glpointstemp.isEmpty() && !fspointstemp.isEmpty() && !ztpointstemp.isEmpty() && glpointstemp.size() == fspointstemp.size() && fspointstemp.size() == ztpointstemp.size()) {
                     for (int i = 0; i < glpointstemp.size(); i++) {
-                        if (filterData(glpointstemp.get(i), fspointstemp.get(i), ztpointstemp.get(i), maxPower, windturbineId)) {
+                        if (filterData(glpointstemp.get(i), fspointstemp.get(i), ztpointstemp.get(i), maxPower,maxSpeed, windturbineId)) {
                             glpoints.add(glpointstemp.get(i));
                             fspoints.add(fspointstemp.get(i));
                             ztpoints.add(ztpointstemp.get(i));
@@ -1525,11 +1601,11 @@ public class PowerCurveFittingByTimeService {
                 sjglnhpoints.add(new PointfVo(0.0, 0.0));
 
                 sjglnhpoints = sjglnhpoints.stream().filter(it -> it.getX() >= 3).sorted(Comparator.comparing(PointfVo::getX)).collect(Collectors.toList());
-                if (sjglnhpoints.stream().min(Comparator.comparing(PointfVo::getX)).isPresent()) {
-                    double  Xmax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getX();
-                    double  Ymax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getY();
-                    System.out.println("");
-                }
+//                if (sjglnhpoints.stream().min(Comparator.comparing(PointfVo::getX)).isPresent()) {
+//                    double  Xmax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getX();
+//                    double  Ymax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getY();
+//                    System.out.println("");
+//                }
 
                 List<PointVo> temp = LineUtil.buildLine(sjglnhpoints.stream().mapToDouble(PointfVo::getX).toArray(), sjglnhpoints.stream().mapToDouble(PointfVo::getY).toArray(), sjglnhpoints.size(), dimension, scale);
 

+ 1 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittMonthMainService.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconCurveFittMonthMainService extends IService<ProEconCurveFittMonthMain> {
 
+    public int deleteProEconCurveFittMonthMainByMonth(String year, String month);
 }

+ 1 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittMonthSubService.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconCurveFittMonthSubService extends IService<ProEconCurveFittMonthSub> {
 
+    public int deleteProEconCurveFittMonthSubByMonth(String year, String month);
 }

+ 1 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittYearMainService.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconCurveFittYearMainService extends IService<ProEconCurveFittYearMain> {
 
+    public int deleteProEconCurveFittYearMainByYear(String year);
 }

+ 1 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittYearSubService.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconCurveFittYearSubService extends IService<ProEconCurveFittYearSub> {
 
+    public int deleteProEconCurveFittYearSubByYear(String year);
 }

+ 3 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittingMainService.java

@@ -3,6 +3,8 @@ package com.gyee.generation.service.auto;
 import com.gyee.generation.model.auto.ProEconCurveFittingMain;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Date;
+
 /**
  * <p>
  * 风电机拟合曲线主表 服务类
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconCurveFittingMainService extends IService<ProEconCurveFittingMain> {
 
+    public int deleteProEconCurveFittingMainByDay(Date recodedate);
 }

+ 3 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittingSubService.java

@@ -3,6 +3,8 @@ package com.gyee.generation.service.auto;
 import com.gyee.generation.model.auto.ProEconCurveFittingSub;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Date;
+
 /**
  * <p>
  * 风电机拟合曲线子表 服务类
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconCurveFittingSubService extends IService<ProEconCurveFittingSub> {
 
+    public int deleteProEconCurveFittingSubByDay(Date recodedate);
 }

+ 2 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingMonthService.java

@@ -1,7 +1,7 @@
 package com.gyee.generation.service.auto;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFittingMonth;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.generation.model.auto.ProEconWtCurveFittingMonth;
 
 /**
  * <p>
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconWtCurveFittingMonthService extends IService<ProEconWtCurveFittingMonth> {
 
+    public int deleteProEconWtCurveFittingByMonth(String year, String month);
 }

+ 4 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingService.java

@@ -1,7 +1,9 @@
 package com.gyee.generation.service.auto;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFitting;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.generation.model.auto.ProEconWtCurveFitting;
+
+import java.util.Date;
 
 /**
  * <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconWtCurveFittingService extends IService<ProEconWtCurveFitting> {
 
+    public int deleteProEconWtCurveFittingByDay(Date recodedate);
 }

+ 2 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingYearService.java

@@ -1,7 +1,7 @@
 package com.gyee.generation.service.auto;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
 
 /**
  * <p>
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconWtCurveFittingYearService extends IService<ProEconWtCurveFittingYear> {
 
+    public int deleteProEconWtCurveFittingByYear(String year);
 }

+ 1 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtPowerCurveFittingService.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProEconWtPowerCurveFittingService extends IService<ProEconWtPowerCurveFitting> {
 
+    public int deleteProEconWtPowerCurveFitting();
 }

+ 11 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittMonthMainServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconCurveFittMonthMain;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconCurveFittMonthMainMapper;
+import com.gyee.generation.model.auto.ProEconCurveFittMonthMain;
 import com.gyee.generation.service.auto.IProEconCurveFittMonthMainService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机月拟合曲线主表 服务实现类
@@ -17,4 +19,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconCurveFittMonthMainServiceImpl extends ServiceImpl<ProEconCurveFittMonthMainMapper, ProEconCurveFittMonthMain> implements IProEconCurveFittMonthMainService {
 
+    @Resource
+    private ProEconCurveFittMonthMainMapper proEconCurveFittMonthMainMapper;
+    @Override
+    public int deleteProEconCurveFittMonthMainByMonth(String year, String month) {
+
+        return proEconCurveFittMonthMainMapper.deleteProEconCurveFittMonthSubByMonth(year,month);
+    }
 }

+ 11 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittMonthSubServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconCurveFittMonthSub;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconCurveFittMonthSubMapper;
+import com.gyee.generation.model.auto.ProEconCurveFittMonthSub;
 import com.gyee.generation.service.auto.IProEconCurveFittMonthSubService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机月拟合曲线子表 服务实现类
@@ -17,4 +19,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconCurveFittMonthSubServiceImpl extends ServiceImpl<ProEconCurveFittMonthSubMapper, ProEconCurveFittMonthSub> implements IProEconCurveFittMonthSubService {
 
+    @Resource
+    private ProEconCurveFittMonthSubMapper proEconCurveFittMonthSubMapper;
+    @Override
+    public int deleteProEconCurveFittMonthSubByMonth(String year, String month) {
+
+        return proEconCurveFittMonthSubMapper.deleteProEconCurveFittMonthSubByMonth(year,month);
+    }
 }

+ 10 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittYearMainServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconCurveFittYearMain;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconCurveFittYearMainMapper;
+import com.gyee.generation.model.auto.ProEconCurveFittYearMain;
 import com.gyee.generation.service.auto.IProEconCurveFittYearMainService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机年拟合曲线主表 服务实现类
@@ -17,4 +19,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconCurveFittYearMainServiceImpl extends ServiceImpl<ProEconCurveFittYearMainMapper, ProEconCurveFittYearMain> implements IProEconCurveFittYearMainService {
 
+    @Resource
+    private ProEconCurveFittYearMainMapper proEconCurveFittYearMainMapper;
+    @Override
+    public int deleteProEconCurveFittYearMainByYear(String year) {
+        return proEconCurveFittYearMainMapper.deleteProEconCurveFittYearMainByYear(year);
+    }
 }

+ 10 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittYearSubServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconCurveFittYearSub;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconCurveFittYearSubMapper;
+import com.gyee.generation.model.auto.ProEconCurveFittYearSub;
 import com.gyee.generation.service.auto.IProEconCurveFittYearSubService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机年拟合曲线子表 服务实现类
@@ -17,4 +19,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconCurveFittYearSubServiceImpl extends ServiceImpl<ProEconCurveFittYearSubMapper, ProEconCurveFittYearSub> implements IProEconCurveFittYearSubService {
 
+    @Resource
+    private ProEconCurveFittYearSubMapper proEconCurveFittYearSubMapper;
+    @Override
+    public int deleteProEconCurveFittYearSubByYear(String year) {
+        return proEconCurveFittYearSubMapper.deleteProEconCurveFittYearSubByYear(year);
+    }
 }

+ 13 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittingMainServiceImpl.java

@@ -1,11 +1,14 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconCurveFittingMain;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconCurveFittingMainMapper;
+import com.gyee.generation.model.auto.ProEconCurveFittingMain;
 import com.gyee.generation.service.auto.IProEconCurveFittingMainService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Date;
+
 /**
  * <p>
  * 风电机拟合曲线主表 服务实现类
@@ -17,4 +20,12 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconCurveFittingMainServiceImpl extends ServiceImpl<ProEconCurveFittingMainMapper, ProEconCurveFittingMain> implements IProEconCurveFittingMainService {
 
+
+    @Resource
+    private ProEconCurveFittingMainMapper proEconCurveFittingMainMapper;
+
+    @Override
+    public int deleteProEconCurveFittingMainByDay(Date recodedate) {
+        return  proEconCurveFittingMainMapper.deleteProEconCurveFittingMainByDay(recodedate);
+    }
 }

+ 13 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittingSubServiceImpl.java

@@ -1,11 +1,14 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconCurveFittingSub;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconCurveFittingSubMapper;
+import com.gyee.generation.model.auto.ProEconCurveFittingSub;
 import com.gyee.generation.service.auto.IProEconCurveFittingSubService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Date;
+
 /**
  * <p>
  * 风电机拟合曲线子表 服务实现类
@@ -17,4 +20,12 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconCurveFittingSubServiceImpl extends ServiceImpl<ProEconCurveFittingSubMapper, ProEconCurveFittingSub> implements IProEconCurveFittingSubService {
 
+
+    @Resource
+    private ProEconCurveFittingSubMapper proEconCurveFittingSubMapper;
+
+    @Override
+    public int deleteProEconCurveFittingSubByDay(Date recodedate) {
+        return  proEconCurveFittingSubMapper.deleteProEconCurveFittingSubByDay(recodedate);
+    }
 }

+ 10 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtCurveFittingMonthServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFittingMonth;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconWtCurveFittingMonthMapper;
+import com.gyee.generation.model.auto.ProEconWtCurveFittingMonth;
 import com.gyee.generation.service.auto.IProEconWtCurveFittingMonthService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机月拟合曲线 服务实现类
@@ -16,5 +18,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ProEconWtCurveFittingMonthServiceImpl extends ServiceImpl<ProEconWtCurveFittingMonthMapper, ProEconWtCurveFittingMonth> implements IProEconWtCurveFittingMonthService {
+    @Resource
+    private ProEconWtCurveFittingMonthMapper proEconWtCurveFittingMonthMapper;
+    @Override
+    public int deleteProEconWtCurveFittingByMonth(String year, String month) {
 
+        return proEconWtCurveFittingMonthMapper.deleteProEconWtCurveFittingByMonth(year,month);
+    }
 }

+ 11 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtCurveFittingServiceImpl.java

@@ -6,6 +6,9 @@ import com.gyee.generation.service.auto.IProEconWtCurveFittingService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Date;
+
 /**
  * <p>
  * 风电机拟合曲线 服务实现类
@@ -17,4 +20,12 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconWtCurveFittingServiceImpl extends ServiceImpl<ProEconWtCurveFittingMapper, ProEconWtCurveFitting> implements IProEconWtCurveFittingService {
 
+
+    @Resource
+    private ProEconWtCurveFittingMapper proEconWtCurveFittingMapper;
+
+    @Override
+    public int deleteProEconWtCurveFittingByDay(Date recodedate) {
+        return  proEconWtCurveFittingMapper.deleteProEconWtCurveFittingByDay(recodedate);
+    }
 }

+ 10 - 3
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtCurveFittingYearServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconWtCurveFittingYearMapper;
+import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
 import com.gyee.generation.service.auto.IProEconWtCurveFittingYearService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机年拟合曲线 服务实现类
@@ -16,5 +18,10 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ProEconWtCurveFittingYearServiceImpl extends ServiceImpl<ProEconWtCurveFittingYearMapper, ProEconWtCurveFittingYear> implements IProEconWtCurveFittingYearService {
-
+    @Resource
+    private ProEconWtCurveFittingYearMapper proEconWtCurveFittingYearMapper;
+    @Override
+    public int deleteProEconWtCurveFittingByYear(String year) {
+        return proEconWtCurveFittingYearMapper.deleteProEconWtCurveFittingByYear(year);
+    }
 }

+ 11 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconWtPowerCurveFittingServiceImpl.java

@@ -1,11 +1,13 @@
 package com.gyee.generation.service.auto.impl;
 
-import com.gyee.generation.model.auto.ProEconWtPowerCurveFitting;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.generation.mapper.auto.ProEconWtPowerCurveFittingMapper;
+import com.gyee.generation.model.auto.ProEconWtPowerCurveFitting;
 import com.gyee.generation.service.auto.IProEconWtPowerCurveFittingService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 风电机功率拟合曲线 服务实现类
@@ -17,4 +19,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProEconWtPowerCurveFittingServiceImpl extends ServiceImpl<ProEconWtPowerCurveFittingMapper, ProEconWtPowerCurveFitting> implements IProEconWtPowerCurveFittingService {
 
+    @Resource
+    private ProEconWtPowerCurveFittingMapper proEconWtPowerCurveFittingMapper;
+
+    @Override
+    public int deleteProEconWtPowerCurveFitting() {
+        return  proEconWtPowerCurveFittingMapper.deleteProEconWtPowerCurveFitting();
+    }
 }

+ 123 - 123
realtime/generationXK-service/src/main/java/com/gyee/generation/service/initalcache/CacheService.java

@@ -50,116 +50,116 @@ public class CacheService {
 
 
     public void initRedisCache(){
-        log.info("--------------------------redisWT");
-        List<ProBasicEquipment> windturbineList = windturbineService.list().stream().filter(i->i.getIsable().equals(1)).collect(Collectors.toList());
-        windturbineList.stream().forEach(i->{
-            Map<String, ProBasicEquipmentPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicEquipmentPoint> qw = new QueryWrapper<>();
-            qw.eq("windturbine_id",i.getId());
-            List<ProBasicEquipmentPoint> windturbinetestingpointai2List = windturbinetestingpointnewService.list(qw);
-            windturbinetestingpointai2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i.getId(),s);
-        });
-
-        log.info("--------------------------redisLN");
-        List<ProBasicLine> lineList = lineService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
-        lineList.stream().forEach(i->{
-            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
-            qw.eq("windpowerstation_id",i.getId());
-            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
-            windpowerstationtestingpoint2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i.getId(),s);
-        });
-
-        log.info("--------------------------redisPJ");
-        List<ProBasicProject> projectList = projectService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
-        projectList.stream().forEach(i->{
-            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
-            qw.eq("windpowerstation_id",i.getId());
-            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
-            windpowerstationtestingpoint2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i.getId(),s);
-        });
-
-        log.info("--------------------------redisSubWP");
-        List<ProBasicSubStation> subStationList = subStationService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
-        subStationList.stream().forEach(i->{
-            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
-            qw.eq("windpowerstation_id",i.getId());
-            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
-            windpowerstationtestingpoint2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i.getId(),s);
-        });
-
-        log.info("--------------------------redisWP");
-        List<ProBasicPowerstation> wpList = windpowerstationService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
-
-        wpList.stream().forEach(i->{
-            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
-            qw.eq("windpowerstation_id",i.getId());
-            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
-            windpowerstationtestingpoint2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i.getId(),s);
-        });
-
-        log.info("--------------------------redisCOMPANY");
-        List<ProBasicCompany> coms = companyService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
-        List<String> comList = coms.stream().map(i->i.getId()).collect(Collectors.toList());
-        coms.stream().forEach(company -> {
-            comList.add(company.getId()+"0");
-            comList.add(company.getId()+"-1");
-            comList.add(company.getId()+"-2");
-        });
-        comList.stream().forEach(i->{
-            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
-            qw.eq("windpowerstation_id",i);
-            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
-            windpowerstationtestingpoint2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i,s);
-        });
-
-        log.info("--------------------------redisREGION");
-        List<ProBasicRegion> regs = regionsService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
-        List<String> regList = regs.stream().map(i->i.getId()).collect(Collectors.toList());
-        regs.stream().forEach(region -> {
-            regList.add(region.getId()+"0");
-            regList.add(region.getId()+"-1");
-            regList.add(region.getId()+"-2");
-        });
-        regList.stream().forEach(i->{
-            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
-            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
-            qw.eq("windpowerstation_id",i);
-            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
-            windpowerstationtestingpoint2List.stream().forEach(x->{
-                codeaimap.put(x.getUniformCode(),x);
-            });
-            String s = JSONObject.toJSONString(codeaimap);
-            redisService.set(i,s);
-        });
+//        log.info("--------------------------redisWT");
+//        List<ProBasicEquipment> windturbineList = windturbineService.list().stream().filter(i->i.getIsable().equals(1)).collect(Collectors.toList());
+//        windturbineList.stream().forEach(i->{
+//            Map<String, ProBasicEquipmentPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicEquipmentPoint> qw = new QueryWrapper<>();
+//            qw.eq("windturbine_id",i.getId());
+//            List<ProBasicEquipmentPoint> windturbinetestingpointai2List = windturbinetestingpointnewService.list(qw);
+//            windturbinetestingpointai2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i.getId(),s);
+//        });
+//
+//        log.info("--------------------------redisLN");
+//        List<ProBasicLine> lineList = lineService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//        lineList.stream().forEach(i->{
+//            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
+//            qw.eq("windpowerstation_id",i.getId());
+//            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
+//            windpowerstationtestingpoint2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i.getId(),s);
+//        });
+//
+//        log.info("--------------------------redisPJ");
+//        List<ProBasicProject> projectList = projectService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//        projectList.stream().forEach(i->{
+//            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
+//            qw.eq("windpowerstation_id",i.getId());
+//            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
+//            windpowerstationtestingpoint2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i.getId(),s);
+//        });
+//
+//        log.info("--------------------------redisSubWP");
+//        List<ProBasicSubStation> subStationList = subStationService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//        subStationList.stream().forEach(i->{
+//            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
+//            qw.eq("windpowerstation_id",i.getId());
+//            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
+//            windpowerstationtestingpoint2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i.getId(),s);
+//        });
+//
+//        log.info("--------------------------redisWP");
+//        List<ProBasicPowerstation> wpList = windpowerstationService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//
+//        wpList.stream().forEach(i->{
+//            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
+//            qw.eq("windpowerstation_id",i.getId());
+//            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
+//            windpowerstationtestingpoint2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i.getId(),s);
+//        });
+//
+//        log.info("--------------------------redisCOMPANY");
+//        List<ProBasicCompany> coms = companyService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//        List<String> comList = coms.stream().map(i->i.getId()).collect(Collectors.toList());
+//        coms.stream().forEach(company -> {
+//            comList.add(company.getId()+"0");
+//            comList.add(company.getId()+"-1");
+//            comList.add(company.getId()+"-2");
+//        });
+//        comList.stream().forEach(i->{
+//            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
+//            qw.eq("windpowerstation_id",i);
+//            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
+//            windpowerstationtestingpoint2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i,s);
+//        });
+//
+//        log.info("--------------------------redisREGION");
+//        List<ProBasicRegion> regs = regionsService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//        List<String> regList = regs.stream().map(i->i.getId()).collect(Collectors.toList());
+//        regs.stream().forEach(region -> {
+//            regList.add(region.getId()+"0");
+//            regList.add(region.getId()+"-1");
+//            regList.add(region.getId()+"-2");
+//        });
+//        regList.stream().forEach(i->{
+//            Map<String, ProBasicPowerstationPoint> codeaimap = new HashMap<>();
+//            QueryWrapper<ProBasicPowerstationPoint> qw = new QueryWrapper<>();
+//            qw.eq("windpowerstation_id",i);
+//            List<ProBasicPowerstationPoint> windpowerstationtestingpoint2List = windpowerstationpointnewService.list(qw);
+//            windpowerstationtestingpoint2List.stream().forEach(x->{
+//                codeaimap.put(x.getUniformCode(),x);
+//            });
+//            String s = JSONObject.toJSONString(codeaimap);
+//            redisService.set(i,s);
+//        });
         log.info("--------------------------redis理论保证功率");
         Map<String, Map<Double,ProBasicModelPowerRd>> powerrdMap = new HashMap<>();
 
@@ -175,18 +175,18 @@ public class CacheService {
         });
         redisService.set("ZLLGL", JSONObject.toJSONString(powerrdMap));
 
-        log.info("--------------------------redis十三种状态");
-        Map<String,List<ProBasicStatusPoint>> sszztMap = new HashMap<>();
-        List<ProBasicStatusPoint> windturbinestatusdis = proBasicStatusPointService.list();
-        windturbinestatusdis.stream().forEach(w->{
-            if (sszztMap.containsKey(w.getWindturbineId())){
-                sszztMap.get(w.getWindturbineId()).add(w);
-            }else {
-                List<ProBasicStatusPoint> wdisList = new ArrayList<>();
-                wdisList.add(w);
-                sszztMap.put(w.getWindturbineId(),wdisList);
-            }
-        });
-        redisService.set("SSZZT",JSONObject.toJSONString(sszztMap));
+//        log.info("--------------------------redis十三种状态");
+//        Map<String,List<ProBasicStatusPoint>> sszztMap = new HashMap<>();
+//        List<ProBasicStatusPoint> windturbinestatusdis = proBasicStatusPointService.list();
+//        windturbinestatusdis.stream().forEach(w->{
+//            if (sszztMap.containsKey(w.getWindturbineId())){
+//                sszztMap.get(w.getWindturbineId()).add(w);
+//            }else {
+//                List<ProBasicStatusPoint> wdisList = new ArrayList<>();
+//                wdisList.add(w);
+//                sszztMap.put(w.getWindturbineId(),wdisList);
+//            }
+//        });
+//        redisService.set("SSZZT",JSONObject.toJSONString(sszztMap));
     }
 }

+ 284 - 110
realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/CycleCalculationService.java

@@ -69,8 +69,11 @@ public class CycleCalculationService {
             ProBasicEquipmentPoint mxztPoint = equipmentPointMap.get(ContantXk.MXZT);
 
             ProBasicEquipmentPoint rpjfsPoint = equipmentPointMap.get(ContantXk.RPJFS);
+            ProBasicEquipmentPoint rpjgzdPoint = equipmentPointMap.get(ContantXk.RPJGZD);
             ProBasicEquipmentPoint ypjfsPoint = equipmentPointMap.get(ContantXk.YPJFS);
+            ProBasicEquipmentPoint ypjgzdPoint = equipmentPointMap.get(ContantXk.YPJGZD);
             ProBasicEquipmentPoint npjfsPoint = equipmentPointMap.get(ContantXk.NPJFS);
+            ProBasicEquipmentPoint npjgzdPoint = equipmentPointMap.get(ContantXk.NPJGZD);
             ProBasicEquipmentPoint rpjglPoint = equipmentPointMap.get(ContantXk.RPJGL);
             ProBasicEquipmentPoint ypjglPoint = equipmentPointMap.get(ContantXk.YPJGL);
             ProBasicEquipmentPoint npjglPoint = equipmentPointMap.get(ContantXk.NPJGL);
@@ -79,6 +82,7 @@ public class CycleCalculationService {
             ProBasicEquipmentPoint nfdlPoint = equipmentPointMap.get(ContantXk.NFDL);
             ProBasicEquipmentPoint fdl15Point = equipmentPointMap.get(ContantXk.FDL15);
             ProBasicEquipmentPoint pjfs15Point = equipmentPointMap.get(ContantXk.PJFS15);
+            ProBasicEquipmentPoint pjgzd15Point = equipmentPointMap.get(ContantXk.PJGZD15);
             ProBasicEquipmentPoint pjgl15Point = equipmentPointMap.get(ContantXk.PJGL15);
             ProBasicEquipmentPoint rkydlPoint = equipmentPointMap.get(ContantXk.RKYDL);
             ProBasicEquipmentPoint ykydlPoint = equipmentPointMap.get(ContantXk.YKYDL);
@@ -316,8 +320,13 @@ public class CycleCalculationService {
                        rzfdl = Math.abs(temp);
                     }
                 }else {
-                    double lsfs = edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble();
-                    rpjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    if (wt.getId().contains("_WT_")){
+                        double lsfs = edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble();
+                        rpjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    }else {
+                        double lsfs = edosUtil.getSectionData(rpjgzdPoint, currentDate.getTime()).getPointValueInDouble();
+                        rpjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    }
                     double lsgl = edosUtil.getSectionData(rpjglPoint, currentDate.getTime()).getPointValueInDouble();
                     rpjgl = DoubleUtils.ave(lsgl, dataMap.get("pjgl"));
                     double lskydl = edosUtil.getSectionData(rkydlPoint, currentDate.getTime()).getPointValueInDouble();
@@ -380,8 +389,14 @@ public class CycleCalculationService {
                         yzfdl = Math.abs(temp);
                     }
                 }else {
-                    double lsfs = edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble();
-                    ypjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    if (wt.getId().contains("_WT_")){
+                        double lsfs = edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble();
+                        ypjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    }else {
+                        double lsfs = edosUtil.getSectionData(ypjgzdPoint, currentDate.getTime()).getPointValueInDouble();
+                        ypjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    }
+
                     double lsgl = edosUtil.getSectionData(ypjglPoint, currentDate.getTime()).getPointValueInDouble();
                     ypjgl = DoubleUtils.ave(lsgl, dataMap.get("pjgl"));
                     double lskydl = edosUtil.getSectionData(ykydlPoint, currentDate.getTime()).getPointValueInDouble();
@@ -444,8 +459,14 @@ public class CycleCalculationService {
                         nzfdl = Math.abs(temp);
                     }
                 }else {
-                    double lsfs = edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble();
-                    npjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    if (wt.getId().contains("_WT_")){
+                        double lsfs = edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble();
+                        npjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    }else {
+                        double lsfs = edosUtil.getSectionData(npjgzdPoint, currentDate.getTime()).getPointValueInDouble();
+                        npjfs = DoubleUtils.ave(lsfs, dataMap.get("pjfs"));
+                    }
+
                     double lsgl = edosUtil.getSectionData(npjglPoint, currentDate.getTime()).getPointValueInDouble();
                     npjgl = DoubleUtils.ave(lsgl, dataMap.get("pjgl"));
                     double lskydl = edosUtil.getSectionData(nkydlPoint, currentDate.getTime()).getPointValueInDouble();
@@ -484,10 +505,23 @@ public class CycleCalculationService {
                         nzfdl = Math.abs(temp);
                     }
                 }
-                double pjfs15 = dataMap.get("pjfs");
-                double pjgl15 = dataMap.get("pjgl");
-                double kydl15 = dataMap.get("kydl");
-                double zsdl15 = dataMap.get("zsdl");
+                double pjfs15 = 0;
+                double pjgl15 = 0;
+                double kydl15 = 0;
+                double zsdl15 = 0;
+                if (dataMap.containsKey("pjfs")){
+                    pjfs15 = dataMap.get("pjfs");
+                }
+                if (dataMap.containsKey("pjgl")){
+                    pjgl15 = dataMap.get("pjgl");
+                }
+                if (dataMap.containsKey("kydl")){
+                    kydl15 = dataMap.get("kydl");
+                }
+                if (dataMap.containsKey("zsdl")){
+                    zsdl15 = dataMap.get("zsdl");
+                }
+
                 double gzss15 = gzss;
                 double gzsl15 = gzsl;
                 double jxss15 = jxss;
@@ -514,10 +548,18 @@ public class CycleCalculationService {
                 double nllfdl =  nfdl+ngzss+ngzsl+njxss+njxsl+ndjss+nsdtj+nxnss+nfdjcl+nxdjcl+nxdtj+ndwsl+nhjsl;
                 double llfdl15 = fdl15+gzss15+gzsl15+jxss15+jxsl15+djss15+sdtj15+xnss15+fdjcl15+xdjcl15+xdtj15+dwsl15+hjsl15;
 
-                wtResultList.add(PointUtil.createPointData(date,rpjfs,rpjfsPoint.getNemCode(),rpjfsPoint.getName()));
-                wtResultList.add(PointUtil.createPointData(date,ypjfs,ypjfsPoint.getNemCode(),ypjfsPoint.getName()));
-                wtResultList.add(PointUtil.createPointData(date,npjfs,npjfsPoint.getNemCode(),npjfsPoint.getName()));
-                wtResultList.add(PointUtil.createPointData(date,pjfs15,pjfs15Point.getNemCode(),pjfs15Point.getName()));
+                if (wt.getId().contains("_WT_")){
+                    wtResultList.add(PointUtil.createPointData(date,rpjfs,rpjfsPoint.getNemCode(),rpjfsPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(date,ypjfs,ypjfsPoint.getNemCode(),ypjfsPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(date,npjfs,npjfsPoint.getNemCode(),npjfsPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(date,pjfs15,pjfs15Point.getNemCode(),pjfs15Point.getName()));
+                }else {
+                    wtResultList.add(PointUtil.createPointData(date,rpjfs,rpjgzdPoint.getNemCode(),rpjgzdPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(date,ypjfs,ypjgzdPoint.getNemCode(),ypjgzdPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(date,npjfs,npjgzdPoint.getNemCode(),npjgzdPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(date,pjfs15,pjgzd15Point.getNemCode(),pjgzd15Point.getName()));
+                }
+
                 wtResultList.add(PointUtil.createPointData(date,rpjgl,rpjglPoint.getNemCode(),rpjglPoint.getName()));
                 wtResultList.add(PointUtil.createPointData(date,ypjgl,ypjglPoint.getNemCode(),ypjglPoint.getName()));
                 wtResultList.add(PointUtil.createPointData(date,npjgl,npjglPoint.getNemCode(),npjglPoint.getName()));
@@ -604,6 +646,9 @@ public class CycleCalculationService {
             ProBasicPowerstationPoint wprpjfsPoint = proBasicWppointMap.get(ContantXk.RPJFS);
             ProBasicPowerstationPoint wpypjfsPoint = proBasicWppointMap.get(ContantXk.YPJFS);
             ProBasicPowerstationPoint wpnpjfsPoint = proBasicWppointMap.get(ContantXk.NPJFS);
+            ProBasicPowerstationPoint wprpjgzdPoint = proBasicWppointMap.get(ContantXk.RPJGZD);
+            ProBasicPowerstationPoint wpypjgzdPoint = proBasicWppointMap.get(ContantXk.YPJGZD);
+            ProBasicPowerstationPoint wpnpjgzdPoint = proBasicWppointMap.get(ContantXk.NPJGZD);
             ProBasicPowerstationPoint wprpjglPoint = proBasicWppointMap.get(ContantXk.RPJGL);
             ProBasicPowerstationPoint wpypjglPoint = proBasicWppointMap.get(ContantXk.YPJGL);
             ProBasicPowerstationPoint wpnpjglPoint = proBasicWppointMap.get(ContantXk.NPJGL);
@@ -612,6 +657,7 @@ public class CycleCalculationService {
             ProBasicPowerstationPoint wpnfdlPoint = proBasicWppointMap.get(ContantXk.NFDL);
             ProBasicPowerstationPoint wpfdl15Point = proBasicWppointMap.get(ContantXk.FDL15);
             ProBasicPowerstationPoint wppjfs15Point = proBasicWppointMap.get(ContantXk.PJFS15);
+            ProBasicPowerstationPoint wppjgzd15Point = proBasicWppointMap.get(ContantXk.PJGZD15);
             ProBasicPowerstationPoint wppjgl15Point = proBasicWppointMap.get(ContantXk.PJGL15);
             ProBasicPowerstationPoint wprkydlPoint = proBasicWppointMap.get(ContantXk.RKYDL);
             ProBasicPowerstationPoint wpykydlPoint = proBasicWppointMap.get(ContantXk.YKYDL);
@@ -796,6 +842,9 @@ public class CycleCalculationService {
                 ProBasicEquipmentPoint rpjfsPoint = equipmentPointMap.get(ContantXk.RPJFS);
                 ProBasicEquipmentPoint ypjfsPoint = equipmentPointMap.get(ContantXk.YPJFS);
                 ProBasicEquipmentPoint npjfsPoint = equipmentPointMap.get(ContantXk.NPJFS);
+                ProBasicEquipmentPoint rpjgzdPoint = equipmentPointMap.get(ContantXk.RPJGZD);
+                ProBasicEquipmentPoint ypjgzdPoint = equipmentPointMap.get(ContantXk.YPJGZD);
+                ProBasicEquipmentPoint npjgzdPoint = equipmentPointMap.get(ContantXk.NPJGZD);
                 ProBasicEquipmentPoint rpjglPoint = equipmentPointMap.get(ContantXk.RPJGL);
                 ProBasicEquipmentPoint ypjglPoint = equipmentPointMap.get(ContantXk.YPJGL);
                 ProBasicEquipmentPoint npjglPoint = equipmentPointMap.get(ContantXk.NPJGL);
@@ -804,6 +853,7 @@ public class CycleCalculationService {
                 ProBasicEquipmentPoint nfdlPoint = equipmentPointMap.get(ContantXk.NFDL);
                 ProBasicEquipmentPoint fdl15Point = equipmentPointMap.get(ContantXk.FDL15);
                 ProBasicEquipmentPoint pjfs15Point = equipmentPointMap.get(ContantXk.PJFS15);
+                ProBasicEquipmentPoint pjgzd15Point = equipmentPointMap.get(ContantXk.PJGZD15);
                 ProBasicEquipmentPoint pjgl15Point = equipmentPointMap.get(ContantXk.PJGL15);
                 ProBasicEquipmentPoint rkydlPoint = equipmentPointMap.get(ContantXk.RKYDL);
                 ProBasicEquipmentPoint ykydlPoint = equipmentPointMap.get(ContantXk.YKYDL);
@@ -878,38 +928,75 @@ public class CycleCalculationService {
                 ProBasicEquipmentPoint zfdl15Point = equipmentPointMap.get(ContantXk.ZFDL15);
                 ProBasicEquipmentPoint llfdl15Point = equipmentPointMap.get(ContantXk.LLFDL15);
 
-                rpjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                ypjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                npjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                pjfs15.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(pjfs15Point, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
+                if(CacheContext.pjmap.get(CacheContext.lnmap.get(line.getId()).getProjectId()).getWindpowerstationId().contains("_FDC_")){
+                    rpjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    ypjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    npjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    pjfs15.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(pjfs15Point, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                }else {
+                    rpjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(rpjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    ypjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(ypjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    npjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(npjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    pjfs15.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(pjgzd15Point, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                }
+
+
 
                 rpjgl.updateAndGet(v -> {
                     try {
@@ -1656,6 +1743,9 @@ public class CycleCalculationService {
             ProBasicPowerstationPoint wprpjfsPoint = proBasicWppointMap.get(ContantXk.RPJFS);
             ProBasicPowerstationPoint wpypjfsPoint = proBasicWppointMap.get(ContantXk.YPJFS);
             ProBasicPowerstationPoint wpnpjfsPoint = proBasicWppointMap.get(ContantXk.NPJFS);
+            ProBasicPowerstationPoint wprpjgzdPoint = proBasicWppointMap.get(ContantXk.RPJGZD);
+            ProBasicPowerstationPoint wpypjgzdPoint = proBasicWppointMap.get(ContantXk.YPJGZD);
+            ProBasicPowerstationPoint wpnpjgzdPoint = proBasicWppointMap.get(ContantXk.NPJGZD);
             ProBasicPowerstationPoint wprpjglPoint = proBasicWppointMap.get(ContantXk.RPJGL);
             ProBasicPowerstationPoint wpypjglPoint = proBasicWppointMap.get(ContantXk.YPJGL);
             ProBasicPowerstationPoint wpnpjglPoint = proBasicWppointMap.get(ContantXk.NPJGL);
@@ -1664,6 +1754,7 @@ public class CycleCalculationService {
             ProBasicPowerstationPoint wpnfdlPoint = proBasicWppointMap.get(ContantXk.NFDL);
             ProBasicPowerstationPoint wpfdl15Point = proBasicWppointMap.get(ContantXk.FDL15);
             ProBasicPowerstationPoint wppjfs15Point = proBasicWppointMap.get(ContantXk.PJFS15);
+            ProBasicPowerstationPoint wppjgzd15Point = proBasicWppointMap.get(ContantXk.PJGZD15);
             ProBasicPowerstationPoint wppjgl15Point = proBasicWppointMap.get(ContantXk.PJGL15);
             ProBasicPowerstationPoint wprkydlPoint = proBasicWppointMap.get(ContantXk.RKYDL);
             ProBasicPowerstationPoint wpykydlPoint = proBasicWppointMap.get(ContantXk.YKYDL);
@@ -1848,6 +1939,9 @@ public class CycleCalculationService {
                 ProBasicPowerstationPoint rpjfsPoint = basicWppointMap.get(ContantXk.RPJFS);
                 ProBasicPowerstationPoint ypjfsPoint = basicWppointMap.get(ContantXk.YPJFS);
                 ProBasicPowerstationPoint npjfsPoint = basicWppointMap.get(ContantXk.NPJFS);
+                ProBasicPowerstationPoint rpjgzdPoint = basicWppointMap.get(ContantXk.RPJGZD);
+                ProBasicPowerstationPoint ypjgzdPoint = basicWppointMap.get(ContantXk.YPJGZD);
+                ProBasicPowerstationPoint npjgzdPoint = basicWppointMap.get(ContantXk.NPJGZD);
                 ProBasicPowerstationPoint rpjglPoint = basicWppointMap.get(ContantXk.RPJGL);
                 ProBasicPowerstationPoint ypjglPoint = basicWppointMap.get(ContantXk.YPJGL);
                 ProBasicPowerstationPoint npjglPoint = basicWppointMap.get(ContantXk.NPJGL);
@@ -1856,6 +1950,7 @@ public class CycleCalculationService {
                 ProBasicPowerstationPoint nfdlPoint = basicWppointMap.get(ContantXk.NFDL);
                 ProBasicPowerstationPoint fdl15Point = basicWppointMap.get(ContantXk.FDL15);
                 ProBasicPowerstationPoint pjfs15Point = basicWppointMap.get(ContantXk.PJFS15);
+                ProBasicPowerstationPoint pjgzd15Point = basicWppointMap.get(ContantXk.PJGZD15);
                 ProBasicPowerstationPoint pjgl15Point = basicWppointMap.get(ContantXk.PJGL15);
                 ProBasicPowerstationPoint rkydlPoint = basicWppointMap.get(ContantXk.RKYDL);
                 ProBasicPowerstationPoint ykydlPoint = basicWppointMap.get(ContantXk.YKYDL);
@@ -1934,38 +2029,74 @@ public class CycleCalculationService {
                 ProBasicPowerstationPoint zfdl15Point = basicWppointMap.get(ContantXk.ZFDL15);
                 ProBasicPowerstationPoint llfdl15Point = basicWppointMap.get(ContantXk.LLFDL15);
 
-                rpjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                ypjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                npjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                pjfs15.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(pjfs15Point, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
+                if (project.getWindpowerstationId().contains("_FDC_")){
+                    rpjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    ypjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    npjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    pjfs15.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(pjfs15Point, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                }else {
+                    rpjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(rpjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    ypjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(ypjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    npjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(npjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    pjfs15.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(pjgzd15Point, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                }
+
 
                 rpjgl.updateAndGet(v -> {
                     try {
@@ -2712,6 +2843,9 @@ public class CycleCalculationService {
             ProBasicPowerstationPoint wprpjfsPoint = proBasicWppointMap.get(ContantXk.RPJFS);
             ProBasicPowerstationPoint wpypjfsPoint = proBasicWppointMap.get(ContantXk.YPJFS);
             ProBasicPowerstationPoint wpnpjfsPoint = proBasicWppointMap.get(ContantXk.NPJFS);
+            ProBasicPowerstationPoint wprpjgzdPoint = proBasicWppointMap.get(ContantXk.RPJGZD);
+            ProBasicPowerstationPoint wpypjgzdPoint = proBasicWppointMap.get(ContantXk.YPJGZD);
+            ProBasicPowerstationPoint wpnpjgzdPoint = proBasicWppointMap.get(ContantXk.NPJGZD);
             ProBasicPowerstationPoint wprpjglPoint = proBasicWppointMap.get(ContantXk.RPJGL);
             ProBasicPowerstationPoint wpypjglPoint = proBasicWppointMap.get(ContantXk.YPJGL);
             ProBasicPowerstationPoint wpnpjglPoint = proBasicWppointMap.get(ContantXk.NPJGL);
@@ -2720,6 +2854,7 @@ public class CycleCalculationService {
             ProBasicPowerstationPoint wpnfdlPoint = proBasicWppointMap.get(ContantXk.NFDL);
             ProBasicPowerstationPoint wpfdl15Point = proBasicWppointMap.get(ContantXk.FDL15);
             ProBasicPowerstationPoint wppjfs15Point = proBasicWppointMap.get(ContantXk.PJFS15);
+            ProBasicPowerstationPoint wppjgzd15Point = proBasicWppointMap.get(ContantXk.PJGZD15);
             ProBasicPowerstationPoint wppjgl15Point = proBasicWppointMap.get(ContantXk.PJGL15);
             ProBasicPowerstationPoint wprkydlPoint = proBasicWppointMap.get(ContantXk.RKYDL);
             ProBasicPowerstationPoint wpykydlPoint = proBasicWppointMap.get(ContantXk.YKYDL);
@@ -2904,6 +3039,9 @@ public class CycleCalculationService {
                 ProBasicPowerstationPoint rpjfsPoint = basicWppointMap.get(ContantXk.RPJFS);
                 ProBasicPowerstationPoint ypjfsPoint = basicWppointMap.get(ContantXk.YPJFS);
                 ProBasicPowerstationPoint npjfsPoint = basicWppointMap.get(ContantXk.NPJFS);
+                ProBasicPowerstationPoint rpjgzdPoint = basicWppointMap.get(ContantXk.RPJGZD);
+                ProBasicPowerstationPoint ypjgzdPoint = basicWppointMap.get(ContantXk.YPJGZD);
+                ProBasicPowerstationPoint npjgzdPoint = basicWppointMap.get(ContantXk.NPJGZD);
                 ProBasicPowerstationPoint rpjglPoint = basicWppointMap.get(ContantXk.RPJGL);
                 ProBasicPowerstationPoint ypjglPoint = basicWppointMap.get(ContantXk.YPJGL);
                 ProBasicPowerstationPoint npjglPoint = basicWppointMap.get(ContantXk.NPJGL);
@@ -2912,6 +3050,7 @@ public class CycleCalculationService {
                 ProBasicPowerstationPoint nfdlPoint = basicWppointMap.get(ContantXk.NFDL);
                 ProBasicPowerstationPoint fdl15Point = basicWppointMap.get(ContantXk.FDL15);
                 ProBasicPowerstationPoint pjfs15Point = basicWppointMap.get(ContantXk.PJFS15);
+                ProBasicPowerstationPoint pjgzd15Point = basicWppointMap.get(ContantXk.PJGZD15);
                 ProBasicPowerstationPoint pjgl15Point = basicWppointMap.get(ContantXk.PJGL15);
                 ProBasicPowerstationPoint rkydlPoint = basicWppointMap.get(ContantXk.RKYDL);
                 ProBasicPowerstationPoint ykydlPoint = basicWppointMap.get(ContantXk.YKYDL);
@@ -2989,39 +3128,74 @@ public class CycleCalculationService {
                 ProBasicPowerstationPoint qfdl15Point = basicWppointMap.get(ContantXk.QFDL15);
                 ProBasicPowerstationPoint zfdl15Point = basicWppointMap.get(ContantXk.ZFDL15);
                 ProBasicPowerstationPoint llfdl15Point = basicWppointMap.get(ContantXk.LLFDL15);
+                if (wp.getId().contains("_FDC_")){
+                    rpjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    ypjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    npjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    pjfs15.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(pjfs15Point, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                }else {
+                    rpjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(rpjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    ypjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(ypjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    npjfs.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(npjgzdPoint, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                    pjfs15.updateAndGet(v -> {
+                        try {
+                            return new Double((double) (v + edosUtil.getSectionData(pjgzd15Point, currentDate.getTime()).getPointValueInDouble()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        return v;
+                    });
+                }
 
-                rpjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(rpjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                ypjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(ypjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                npjfs.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(npjfsPoint, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
-                pjfs15.updateAndGet(v -> {
-                    try {
-                        return new Double((double) (v + edosUtil.getSectionData(pjfs15Point, currentDate.getTime()).getPointValueInDouble()));
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    return v;
-                });
 
                 rpjgl.updateAndGet(v -> {
                     try {

+ 80 - 33
realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/RealtimeService.java

@@ -91,35 +91,53 @@ public class RealtimeService {
                 ssbfPointDate = PointUtil.createPointData(currentDate, ssbf, ssbfPoint.getNemCode(), ssbfPoint.getName());
             }
             wtResultList.add(ssbfPointDate);
-            ProBasicModelPowerRd basicModelPowerRd = theoreticalPowerMap.get(wt.getModelId()).get(ssbf);
-            wtResultList.add(PointUtil.createPointData(currentDate, basicModelPowerRd.getTheoryPower(), llglPoint.getNemCode(), llglPoint.getName()));
-            wtResultList.add(PointUtil.createPointData(currentDate, basicModelPowerRd.getEnsurePower(), bzglPoint.getNemCode(), bzglPoint.getName()));
-            ProEconWtPowerCurveFitting wtPowerCurveFitting = curveFittingPowerMap.get(wt.getId()).get(ssbf);
-            Double actualPower = wtPowerCurveFitting.getActualPower();
-            double[] underissuanceArray = {0, 1, 2, 3, 8, 9, 11};
-            double qfzt = 0;
-            double lsqfzt = 0;
-            double ssgl15 = 0;
-            double zsgl15 = 0;
-            if (ssglOptional.isPresent()) {
-                ssgl15 = ssglOptional.get().getPointValueInDouble();
-                zsgl15 = zsglOptional.get().getPointValueInDouble();
+            if (theoreticalPowerMap.containsKey(wt.getModelId())){
+                if (theoreticalPowerMap.get(wt.getModelId()).containsKey(ssbf)){
+                    ProBasicModelPowerRd basicModelPowerRd = theoreticalPowerMap.get(wt.getModelId()).get(ssbf);
+                    wtResultList.add(PointUtil.createPointData(currentDate, basicModelPowerRd.getTheoryPower(), llglPoint.getNemCode(), llglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, basicModelPowerRd.getEnsurePower(), bzglPoint.getNemCode(), bzglPoint.getName()));
+                }else {
+                    wtResultList.add(PointUtil.createPointData(currentDate,0, llglPoint.getNemCode(), llglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, 0, bzglPoint.getNemCode(), bzglPoint.getName()));
+                }
             }
-            if (Arrays.asList(underissuanceArray).contains(mxzt)) {
-                qfzt = Underdelivery.underdeliveryStatusReal(ssgl, actualPower);
-                lsqfzt = Underdelivery.underdeliveryStatusReal(ssgl15, zsgl15);
-            }
-            wtResultList.add(PointUtil.createPointData(currentDate, qfzt, ssqfztPoint.getNemCode(), ssqfztPoint.getName()));
-            wtResultList.add(PointUtil.createPointData(currentDate, lsqfzt, lsqfztPoint.getNemCode(), lsqfztPoint.getName()));
+            if (curveFittingPowerMap.containsKey(wt.getId())){
+                if (curveFittingPowerMap.get(wt.getId()).containsKey(ssbf)){
+                    ProEconWtPowerCurveFitting wtPowerCurveFitting = curveFittingPowerMap.get(wt.getId()).get(ssbf);
+                    Double actualPower = wtPowerCurveFitting.getActualPower();
+                    double[] underissuanceArray = {0, 1, 2, 3, 8, 9, 11};
+                    double qfzt = 0;
+                    double lsqfzt = 0;
+                    double ssgl15 = 0;
+                    double zsgl15 = 0;
+                    if (ssglOptional.isPresent()) {
+                        ssgl15 = ssglOptional.get().getPointValueInDouble();
+                        zsgl15 = zsglOptional.get().getPointValueInDouble();
+                    }
+                    if (Arrays.asList(underissuanceArray).contains(mxzt)) {
+                        qfzt = Underdelivery.underdeliveryStatusReal(ssgl, actualPower);
+                        lsqfzt = Underdelivery.underdeliveryStatusReal(ssgl15, zsgl15);
+                    }
+                    wtResultList.add(PointUtil.createPointData(currentDate, qfzt, ssqfztPoint.getNemCode(), ssqfztPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, lsqfzt, lsqfztPoint.getNemCode(), lsqfztPoint.getName()));
 
-            wtResultList.add(PointUtil.createPointData(currentDate, wtPowerCurveFitting.getActualPower(), zsglPoint.getNemCode(), zsglPoint.getName()));
-            wtResultList.add(PointUtil.createPointData(currentDate, wtPowerCurveFitting.getOptimalPower(), zyglPoint.getNemCode(), zyglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, wtPowerCurveFitting.getActualPower(), zsglPoint.getNemCode(), zsglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, wtPowerCurveFitting.getOptimalPower(), zyglPoint.getNemCode(), zyglPoint.getName()));
+                    if (mxzt == 4 || mxzt == 5 || mxzt == 6 || mxzt == 7) {
+                        wtResultList.add(PointUtil.createPointData(currentDate, 0, kyglPoint.getNemCode(), kyglPoint.getName()));
+                    } else {
+                        wtResultList.add(PointUtil.createPointData(currentDate, wtPowerCurveFitting.getActualPower(), kyglPoint.getNemCode(), kyglPoint.getName()));
+                    }
+                }else {
+                    wtResultList.add(PointUtil.createPointData(currentDate, 0, ssqfztPoint.getNemCode(), ssqfztPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, 0, lsqfztPoint.getNemCode(), lsqfztPoint.getName()));
 
-            if (mxzt == 4 || mxzt == 5 || mxzt == 6 || mxzt == 7) {
-                wtResultList.add(PointUtil.createPointData(currentDate, 0, kyglPoint.getNemCode(), kyglPoint.getName()));
-            } else {
-                wtResultList.add(PointUtil.createPointData(currentDate, wtPowerCurveFitting.getActualPower(), kyglPoint.getNemCode(), kyglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, 0, zsglPoint.getNemCode(), zsglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, 0, zyglPoint.getNemCode(), zyglPoint.getName()));
+                    wtResultList.add(PointUtil.createPointData(currentDate, 0, kyglPoint.getNemCode(), kyglPoint.getName()));
+                }
             }
+
         });
         edosUtil.sendMultiPoint(wtResultList);
         //保存线路点
@@ -134,8 +152,12 @@ public class RealtimeService {
             AtomicReference<Double> zzsgl = new AtomicReference<>((double) 0);
             AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
             AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
-
-            ProBasicPowerstationPoint ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+            ProBasicPowerstationPoint ssfsWpPoint = null;
+            if (line.getSpare4().equals("1")){
+                ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+            }else if (line.getSpare4().equals("2")){
+                ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJGZD);
+            }
             ProBasicPowerstationPoint ssglWpPoint = proBasicWppointMap.get(ContantXk.SSZGL);
             ProBasicPowerstationPoint llglWpPoint = proBasicWppointMap.get(ContantXk.SSZLLGL);
             ProBasicPowerstationPoint bzglWpPoint = proBasicWppointMap.get(ContantXk.SSZBZGL);
@@ -237,7 +259,12 @@ public class RealtimeService {
             AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
             AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
 
-            ProBasicPowerstationPoint ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+            ProBasicPowerstationPoint ssfsWpPoint = null;
+            if (project.getSpare4().equals("1")){
+                ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+            }else if (project.getSpare4().equals("2")){
+                ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJGZD);
+            }
             ProBasicPowerstationPoint ssglWpPoint = proBasicWppointMap.get(ContantXk.SSZGL);
             ProBasicPowerstationPoint llglWpPoint = proBasicWppointMap.get(ContantXk.SSZLLGL);
             ProBasicPowerstationPoint bzglWpPoint = proBasicWppointMap.get(ContantXk.SSZBZGL);
@@ -247,7 +274,13 @@ public class RealtimeService {
 
             proBasicLines.stream().forEach(wp -> {
                 Map<String, ProBasicPowerstationPoint> basicWppointMap = linepointmap.get(wp.getId());
-                ProBasicPowerstationPoint ssbfPoint = basicWppointMap.get(ContantXk.SSPJFS);
+                ProBasicPowerstationPoint ssbfPoint = null;
+                if (wp.getSpare4().equals("1")){
+                    ssbfPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+                }else if (wp.getSpare4().equals("2")){
+                    ssbfPoint = proBasicWppointMap.get(ContantXk.SSPJGZD);
+                }
+
                 ProBasicPowerstationPoint ssglPoint = basicWppointMap.get(ContantXk.SSZGL);
                 //理论功率测点
                 ProBasicPowerstationPoint llglPoint = basicWppointMap.get(ContantXk.SSZLLGL);
@@ -260,9 +293,10 @@ public class RealtimeService {
                 //可用功率测点
                 ProBasicPowerstationPoint kyglPoint = basicWppointMap.get(ContantXk.SSZKYGL);
 
+                ProBasicPowerstationPoint finalSsbfPoint = ssbfPoint;
                 zssbf.updateAndGet(v -> {
                     try {
-                        return new Double((double) (v + edosUtil.getSectionData(ssbfPoint, currentDate.getTime()).getPointValueInDouble()));
+                        return new Double((double) (v + edosUtil.getSectionData(finalSsbfPoint, currentDate.getTime()).getPointValueInDouble()));
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
@@ -339,7 +373,13 @@ public class RealtimeService {
             AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
             AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
 
-            ProBasicPowerstationPoint ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+            ProBasicPowerstationPoint ssfsWpPoint = null;
+            if (wps.getSpare4().equals("1")){
+                ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+            }else if (wps.getSpare4().equals("2")){
+                ssfsWpPoint = proBasicWppointMap.get(ContantXk.SSPJGZD);
+            }
+
             ProBasicPowerstationPoint ssglWpPoint = proBasicWppointMap.get(ContantXk.SSZGL);
             ProBasicPowerstationPoint llglWpPoint = proBasicWppointMap.get(ContantXk.SSZLLGL);
             ProBasicPowerstationPoint bzglWpPoint = proBasicWppointMap.get(ContantXk.SSZBZGL);
@@ -349,7 +389,13 @@ public class RealtimeService {
 
             proBasicProjects.stream().forEach(wp -> {
                 Map<String, ProBasicPowerstationPoint> basicWppointMap = propointmap.get(wp.getId());
-                ProBasicPowerstationPoint ssbfPoint = basicWppointMap.get(ContantXk.SSPJFS);
+
+                ProBasicPowerstationPoint ssbfPoint = null;
+                if (wp.getSpare4().equals("1")){
+                    ssbfPoint = proBasicWppointMap.get(ContantXk.SSPJFS);
+                }else if (wp.getSpare4().equals("2")){
+                    ssbfPoint = proBasicWppointMap.get(ContantXk.SSPJGZD);
+                }
                 ProBasicPowerstationPoint ssglPoint = basicWppointMap.get(ContantXk.SSZGL);
                 //理论功率测点
                 ProBasicPowerstationPoint llglPoint = basicWppointMap.get(ContantXk.SSZLLGL);
@@ -362,9 +408,10 @@ public class RealtimeService {
                 //可用功率测点
                 ProBasicPowerstationPoint kyglPoint = basicWppointMap.get(ContantXk.SSZKYGL);
 
+                ProBasicPowerstationPoint finalSsbfPoint = ssbfPoint;
                 zssbf.updateAndGet(v -> {
                     try {
-                        return new Double((double) (v + edosUtil.getSectionData(ssbfPoint, currentDate.getTime()).getPointValueInDouble()));
+                        return new Double((double) (v + edosUtil.getSectionData(finalSsbfPoint, currentDate.getTime()).getPointValueInDouble()));
                     } catch (Exception e) {
                         e.printStackTrace();
                     }

File diff suppressed because it is too large
+ 2932 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/RegionCalService.java


+ 923 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/RegionCalreService.java

@@ -0,0 +1,923 @@
+package com.gyee.generation.service.realtimelibrary;
+
+import com.gyee.common.contant.ContantXk;
+import com.gyee.common.model.PointData;
+import com.gyee.common.util.DateUtils;
+import com.gyee.generation.init.CacheContext;
+import com.gyee.generation.model.auto.ProBasicCompany;
+import com.gyee.generation.model.auto.ProBasicPowerstation;
+import com.gyee.generation.model.auto.ProBasicPowerstationPoint;
+import com.gyee.generation.model.auto.ProBasicRegion;
+import com.gyee.generation.util.PointUtil;
+import com.gyee.generation.util.realtimesource.IEdosUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
+
+/*
+@author   谢生杰
+@date   2022/11/22-9:29
+
+实时值
+*/
+
+@Service
+public class RegionCalreService  {
+
+    @Resource
+    private IEdosUtil edosUtil;
+    /**
+     *
+     */
+    public void companyCal() throws Exception {
+
+
+        Date currentDate = DateUtils.getCurrentDate();
+        List<ProBasicCompany> cpls = CacheContext.cpls;
+        List<ProBasicPowerstation> zwpls = CacheContext.zwpls;
+        Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap = CacheContext.companypointmap;
+        Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap = CacheContext.wppointmap;
+        List<PointData> resultList = new ArrayList<>();
+        cpls.stream().forEach(company->{
+            List<ProBasicPowerstation> wps0 = zwpls.stream().filter(wp -> wp.getCompanyId().equals(company.getId())).collect(Collectors.toList());
+            List<ProBasicPowerstation> wps1 = wps0.stream().filter(wp -> wp.getId().contains("_FDC_")).collect(Collectors.toList());
+            List<ProBasicPowerstation> wps2 = wps0.stream().filter(wp -> wp.getId().contains("_GDC_")).collect(Collectors.toList());
+            if (wps1.size()>0)
+                weightingCompany(currentDate, companypointmap, wppointmap, resultList, company, wps1, "-1");
+            if (wps2.size()>0)
+                weightingCompany(currentDate, companypointmap, wppointmap, resultList, company, wps2, "-2");
+            weightingCompany(currentDate, companypointmap, wppointmap, resultList, company, wps0, "0");
+
+        });
+        edosUtil.sendMultiPoint(resultList);
+    }
+
+    public void RegionCal() throws Exception {
+        Date currentDate = DateUtils.getCurrentDate();
+        List<ProBasicRegion> rgls = CacheContext.rgls;
+        List<ProBasicCompany> cpls = CacheContext.cpls;
+        Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap = CacheContext.companypointmap;
+        Map<String, Map<String, ProBasicPowerstationPoint>> regionpointmap = CacheContext.regionpointmap;
+        List<PointData> resultList = new ArrayList<>();
+        rgls.stream().forEach(region->{
+            List<ProBasicCompany> companys = cpls.stream().filter(company -> company.getRegionId().equals(region.getId())).collect(Collectors.toList());
+            weightingRegion(currentDate, companypointmap, regionpointmap, resultList,region, companys, "-1");
+            weightingRegion(currentDate, companypointmap, regionpointmap, resultList,region,companys, "-2");
+            weightingRegion(currentDate, companypointmap, regionpointmap, resultList,region, companys, "0");
+        });
+        edosUtil.sendMultiPoint(resultList);
+    }
+    private void weightingRegion(Date currentDate, Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap, Map<String, Map<String, ProBasicPowerstationPoint>> regionpointmap, List<PointData> resultList,ProBasicRegion region, List<ProBasicCompany> companys,String type) {
+        Map<String, ProBasicPowerstationPoint> powerstationPointMap = regionpointmap.get(region.getId()+type);
+        ProBasicPowerstationPoint zsspjfsPoint = null;
+        ProBasicPowerstationPoint zsspjgzdPoint = null;
+
+        if (type.equals("-1")){
+            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
+
+        }else if(type.equals("-2")){
+            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
+
+        }else {
+            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
+            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
+        }
+
+        ProBasicPowerstationPoint zsszglPoint = powerstationPointMap.get(ContantXk.SSZGL);
+        ProBasicPowerstationPoint zsszllglPoint = powerstationPointMap.get(ContantXk.SSZLLGL);
+        ProBasicPowerstationPoint zsszbzglPoint = powerstationPointMap.get(ContantXk.SSZBZGL);
+        ProBasicPowerstationPoint zssznhglzsPoint = powerstationPointMap.get(ContantXk.SSZNHGLZS);
+        ProBasicPowerstationPoint zsszzyglPoint = powerstationPointMap.get(ContantXk.SSZZYGL);
+        ProBasicPowerstationPoint zsszkyglPoint = powerstationPointMap.get(ContantXk.SSZKYGL);
+
+        ProBasicPowerstationPoint zgztsmxPoint = powerstationPointMap.get(ContantXk.GZTSMX);
+        ProBasicPowerstationPoint zcnslmxPoint = powerstationPointMap.get(ContantXk.CNSLGZTSMX);
+        ProBasicPowerstationPoint zjxtsmxPoint = powerstationPointMap.get(ContantXk.JXTSMX);
+        ProBasicPowerstationPoint zcnjxmxPoint = powerstationPointMap.get(ContantXk.CNSLJXTSMX);
+        ProBasicPowerstationPoint zdjtsmxPoint = powerstationPointMap.get(ContantXk.DJTSMX);
+        ProBasicPowerstationPoint zqxjclmxPoint = powerstationPointMap.get(ContantXk.QXJCLTSMX);
+        ProBasicPowerstationPoint zsdtjmxPoint = powerstationPointMap.get(ContantXk.SDTJTSMX);
+        ProBasicPowerstationPoint zxntsmxPoint = powerstationPointMap.get(ContantXk.XNTSMX);
+        ProBasicPowerstationPoint zxdtjmxPoint = powerstationPointMap.get(ContantXk.XDTJTSMX);
+        ProBasicPowerstationPoint zxdjclmxPoint = powerstationPointMap.get(ContantXk.XDJCLTSMX);
+        ProBasicPowerstationPoint zcwsldwmxPoint = powerstationPointMap.get(ContantXk.CWSLDWTSMX);
+        ProBasicPowerstationPoint zcwsltqmxPoint = powerstationPointMap.get(ContantXk.CWSLTQTSMX);
+        ProBasicPowerstationPoint zlxtsmxPoint = powerstationPointMap.get(ContantXk.LXTSMX);
+        ProBasicPowerstationPoint ztxzdmxPoint = powerstationPointMap.get(ContantXk.TXZDTSMX);
+        ProBasicPowerstationPoint zdjtsPoint = powerstationPointMap.get(ContantXk.DJTS);
+        ProBasicPowerstationPoint zyxtsPoint = powerstationPointMap.get(ContantXk.YXTS);
+        ProBasicPowerstationPoint zgztsPoint = powerstationPointMap.get(ContantXk.GZTJTS);
+        ProBasicPowerstationPoint zwhtsPoint = powerstationPointMap.get(ContantXk.JXTJTS);
+        ProBasicPowerstationPoint zxdtsPoint = powerstationPointMap.get(ContantXk.XDTS);
+        ProBasicPowerstationPoint zsltsPoint = powerstationPointMap.get(ContantXk.SLTS);
+        ProBasicPowerstationPoint zlxtsPoint = powerstationPointMap.get(ContantXk.TXZDTS);
+
+        AtomicReference<Double> sspjfs = new AtomicReference<>((double) 0);
+        AtomicReference<Double> sspjgzd = new AtomicReference<>((double) 0);
+        AtomicReference<Double> sszgl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zllgl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zbzgl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> znhglzs = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
+
+        AtomicReference<Double> gztsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cngzmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> jxtsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cnjxmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> djtsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> qxjclmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> sdtjmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xntsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xdtjmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xdjclmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cwsldwmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cwsltqmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> lxtsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> txzdmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> yxts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> gzts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> lxts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> whts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xdts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> slts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> djts = new AtomicReference<>((double) 0);
+        AtomicInteger fcComCount = new AtomicInteger();
+        AtomicInteger gcComCount = new AtomicInteger();
+        AtomicInteger finalGcComCount = gcComCount;
+        AtomicInteger finalFcComCount = fcComCount;
+        companys.stream().forEach(company->{
+            if (company.getJrCapacity()>0){
+                finalGcComCount.getAndIncrement();
+            }
+            if (company.getJrwindCapacity()>0){
+                finalFcComCount.getAndIncrement();
+            }
+            Map<String, ProBasicPowerstationPoint> powerstationPointMap1 = companypointmap.get(company.getId()+type);
+            ProBasicPowerstationPoint sspjfsPoint = null;
+            ProBasicPowerstationPoint sspjgzdPoint = null;
+
+
+            if (type.equals("-1")){
+                sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);
+
+            }else if(type.equals("-2")){
+                sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);
+
+            }else {
+                sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);
+                sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);
+
+            }
+            ProBasicPowerstationPoint sszglPoint = powerstationPointMap1.get(ContantXk.SSZGL);
+            ProBasicPowerstationPoint sszllglPoint = powerstationPointMap1.get(ContantXk.SSZLLGL);
+            ProBasicPowerstationPoint sszbzglPoint = powerstationPointMap1.get(ContantXk.SSZBZGL);
+            ProBasicPowerstationPoint ssznhglzsPoint = powerstationPointMap1.get(ContantXk.SSZNHGLZS);
+            ProBasicPowerstationPoint sszzyglPoint = powerstationPointMap1.get(ContantXk.SSZZYGL);
+            ProBasicPowerstationPoint sszkyglPoint = powerstationPointMap1.get(ContantXk.SSZKYGL);
+
+            ProBasicPowerstationPoint gztsmxPoint = powerstationPointMap1.get(ContantXk.GZTSMX);
+            ProBasicPowerstationPoint cnslmxPoint = powerstationPointMap1.get(ContantXk.CNSLGZTSMX);
+            ProBasicPowerstationPoint jxtsmxPoint = powerstationPointMap1.get(ContantXk.JXTSMX);
+            ProBasicPowerstationPoint cnjxmxPoint = powerstationPointMap1.get(ContantXk.CNSLJXTSMX);
+            ProBasicPowerstationPoint djtsmxPoint = powerstationPointMap1.get(ContantXk.DJTSMX);
+            ProBasicPowerstationPoint qxjclmxPoint = powerstationPointMap1.get(ContantXk.QXJCLTSMX);
+            ProBasicPowerstationPoint sdtjmxPoint = powerstationPointMap1.get(ContantXk.SDTJTSMX);
+            ProBasicPowerstationPoint xntsmxPoint = powerstationPointMap1.get(ContantXk.XNTSMX);
+            ProBasicPowerstationPoint xdtjmxPoint = powerstationPointMap1.get(ContantXk.XDTJTSMX);
+            ProBasicPowerstationPoint xdjclmxPoint = powerstationPointMap1.get(ContantXk.XDJCLTSMX);
+            ProBasicPowerstationPoint cwsldwmxPoint = powerstationPointMap1.get(ContantXk.CWSLDWTSMX);
+            ProBasicPowerstationPoint cwsltqmxPoint = powerstationPointMap1.get(ContantXk.CWSLTQTSMX);
+            ProBasicPowerstationPoint lxtsmxPoint = powerstationPointMap1.get(ContantXk.LXTSMX);
+            ProBasicPowerstationPoint txzdmxPoint = powerstationPointMap1.get(ContantXk.TXZDTSMX);
+            ProBasicPowerstationPoint djtsPoint = powerstationPointMap1.get(ContantXk.DJTS);
+            ProBasicPowerstationPoint yxtsPoint = powerstationPointMap1.get(ContantXk.YXTS);
+            ProBasicPowerstationPoint gztsPoint = powerstationPointMap1.get(ContantXk.GZTJTS);
+            ProBasicPowerstationPoint whtsPoint = powerstationPointMap1.get(ContantXk.JXTJTS);
+            ProBasicPowerstationPoint xdtsPoint = powerstationPointMap1.get(ContantXk.XDTS);
+            ProBasicPowerstationPoint sltsPoint = powerstationPointMap1.get(ContantXk.SLTS);
+            ProBasicPowerstationPoint lxtsPoint = powerstationPointMap1.get(ContantXk.TXZDTS);
+
+            if (type.equals("-1")){
+                ProBasicPowerstationPoint finalSspjfsfsPoint = sspjfsPoint;
+                sspjfs.updateAndGet(v -> {
+                    try {
+                        return new Double((double) (v + edosUtil.getSectionData(finalSspjfsfsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    return v;
+                });
+
+
+            }else if (type.equals("-2")){
+                ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
+                sspjgzd.updateAndGet(v -> {
+                    try {
+                        return new Double((double) (v + edosUtil.getSectionData(finalSspjgzdPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    return v;
+                });
+
+            }else {
+                ProBasicPowerstationPoint finalSspjfsfsPoint = sspjfsPoint;
+                sspjfs.updateAndGet(v -> {
+                    try {
+                        return new Double((double) (v + edosUtil.getSectionData(finalSspjfsfsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    return v;
+                });
+                ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
+                sspjgzd.updateAndGet(v -> {
+                    try {
+                        return new Double((double) (v + edosUtil.getSectionData(finalSspjgzdPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    return v;
+                });
+            }
+            sszgl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zllgl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszllglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zbzgl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszbzglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            znhglzs.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(ssznhglzsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zzygl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszzyglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zkygl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszkyglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+
+
+
+            gztsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(gztsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cngzmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cnslmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            jxtsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(jxtsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cnjxmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cnjxmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            djtsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(djtsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            qxjclmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(qxjclmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            sdtjmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sdtjmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xntsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xntsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xdtjmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xdtjmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xdjclmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xdjclmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cwsldwmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cwsldwmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cwsltqmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cwsltqmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            lxtsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(lxtsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            txzdmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(txzdmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            djts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(djtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            yxts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(yxtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            gzts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(gztsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            whts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(whtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xdts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xdtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            slts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sltsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            lxts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(lxtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+        });
+        if (fcComCount.get()==0){
+            fcComCount.getAndIncrement();
+        }
+        if (gcComCount.get()==0){
+            gcComCount.getAndIncrement();
+        }
+        if (type.equals("-1")){
+            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fcComCount.doubleValue(),zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
+
+        }else if(type.equals("-2")){
+            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gcComCount.doubleValue(),zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
+
+        }else {
+            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fcComCount.doubleValue(),zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
+            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gcComCount.doubleValue(),zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
+        }
+        resultList.add(PointUtil.createPointData(currentDate,sszgl.get(),zsszglPoint.getNemCode(),zsszglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zllgl.get(),zsszllglPoint.getNemCode(),zsszllglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zbzgl.get(),zsszbzglPoint.getNemCode(),zsszbzglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,znhglzs.get(),zssznhglzsPoint.getNemCode(),zssznhglzsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zzygl.get(),zsszzyglPoint.getNemCode(),zsszzyglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zkygl.get(),zsszkyglPoint.getNemCode(),zsszkyglPoint.getName()));
+
+        resultList.add(PointUtil.createPointData(currentDate,gztsmx.get(),zgztsmxPoint.getNemCode(),zgztsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cngzmx.get(),zcnslmxPoint.getNemCode(),zcnslmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,jxtsmx.get(),zjxtsmxPoint.getNemCode(),zjxtsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cnjxmx.get(),zcnjxmxPoint.getNemCode(),zcnjxmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,djtsmx.get(),zdjtsmxPoint.getNemCode(),zdjtsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,qxjclmx.get(),zqxjclmxPoint.getNemCode(),zqxjclmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,sdtjmx.get(),zsdtjmxPoint.getNemCode(),zsdtjmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xntsmx.get(),zxntsmxPoint.getNemCode(),zxntsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xdtjmx.get(),zxdtjmxPoint.getNemCode(),zxdtjmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xdjclmx.get(),zxdjclmxPoint.getNemCode(),zxdjclmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cwsldwmx.get(),zcwsldwmxPoint.getNemCode(),zcwsldwmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cwsltqmx.get(),zcwsltqmxPoint.getNemCode(),zcwsltqmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,lxtsmx.get(),zlxtsmxPoint.getNemCode(),zlxtsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,txzdmx.get(),ztxzdmxPoint.getNemCode(),ztxzdmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,djts.get(),zdjtsPoint.getNemCode(),zdjtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,yxts.get(),zyxtsPoint.getNemCode(),zyxtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,gzts.get(),zgztsPoint.getNemCode(),zgztsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,whts.get(),zwhtsPoint.getNemCode(),zwhtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xdts.get(),zxdtsPoint.getNemCode(),zxdtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,slts.get(),zsltsPoint.getNemCode(),zsltsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,lxts.get(),zlxtsPoint.getNemCode(),zlxtsPoint.getName()));
+    }
+    private void weightingCompany(Date currentDate, Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap, Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap, List<PointData> resultList, ProBasicCompany company, List<ProBasicPowerstation> wps,String type) {
+        Map<String, ProBasicPowerstationPoint> powerstationPointMap = companypointmap.get(company.getId()+type);
+        int fdcsize = wps.stream().filter(wp -> wp.getId().contains("_FDC_")).collect(Collectors.toList()).size();
+        int gdcsize = wps.stream().filter(wp -> wp.getId().contains("_GDC_")).collect(Collectors.toList()).size();
+        if (fdcsize==0)
+            fdcsize = 1;
+        if (gdcsize==0)
+            gdcsize=1;
+        ProBasicPowerstationPoint zsspjfsPoint = null;
+        ProBasicPowerstationPoint zsspjgzdPoint = null;
+        if (type.equals("-1")){
+            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
+
+        }else if(type.equals("-2")){
+            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
+
+        }else {
+            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
+            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
+        }
+
+        ProBasicPowerstationPoint zsszglPoint = powerstationPointMap.get(ContantXk.SSZGL);
+        ProBasicPowerstationPoint zsszllglPoint = powerstationPointMap.get(ContantXk.SSZLLGL);
+        ProBasicPowerstationPoint zsszbzglPoint = powerstationPointMap.get(ContantXk.SSZBZGL);
+        ProBasicPowerstationPoint zssznhglzsPoint = powerstationPointMap.get(ContantXk.SSZNHGLZS);
+        ProBasicPowerstationPoint zsszzyglPoint = powerstationPointMap.get(ContantXk.SSZZYGL);
+        ProBasicPowerstationPoint zsszkyglPoint = powerstationPointMap.get(ContantXk.SSZKYGL);
+
+        ProBasicPowerstationPoint zgztsmxPoint = powerstationPointMap.get(ContantXk.GZTSMX);
+        ProBasicPowerstationPoint zcnslmxPoint = powerstationPointMap.get(ContantXk.CNSLGZTSMX);
+        ProBasicPowerstationPoint zjxtsmxPoint = powerstationPointMap.get(ContantXk.JXTSMX);
+        ProBasicPowerstationPoint zcnjxmxPoint = powerstationPointMap.get(ContantXk.CNSLJXTSMX);
+        ProBasicPowerstationPoint zdjtsmxPoint = powerstationPointMap.get(ContantXk.DJTSMX);
+        ProBasicPowerstationPoint zqxjclmxPoint = powerstationPointMap.get(ContantXk.QXJCLTSMX);
+        ProBasicPowerstationPoint zsdtjmxPoint = powerstationPointMap.get(ContantXk.SDTJTSMX);
+        ProBasicPowerstationPoint zxntsmxPoint = powerstationPointMap.get(ContantXk.XNTSMX);
+        ProBasicPowerstationPoint zxdtjmxPoint = powerstationPointMap.get(ContantXk.XDTJTSMX);
+        ProBasicPowerstationPoint zxdjclmxPoint = powerstationPointMap.get(ContantXk.XDJCLTSMX);
+        ProBasicPowerstationPoint zcwsldwmxPoint = powerstationPointMap.get(ContantXk.CWSLDWTSMX);
+        ProBasicPowerstationPoint zcwsltqmxPoint = powerstationPointMap.get(ContantXk.CWSLTQTSMX);
+        ProBasicPowerstationPoint zlxtsmxPoint = powerstationPointMap.get(ContantXk.LXTSMX);
+        ProBasicPowerstationPoint ztxzdmxPoint = powerstationPointMap.get(ContantXk.TXZDTSMX);
+        ProBasicPowerstationPoint zdjtsPoint = powerstationPointMap.get(ContantXk.DJTS);
+        ProBasicPowerstationPoint zyxtsPoint = powerstationPointMap.get(ContantXk.YXTS);
+        ProBasicPowerstationPoint zgztsPoint = powerstationPointMap.get(ContantXk.GZTJTS);
+        ProBasicPowerstationPoint zwhtsPoint = powerstationPointMap.get(ContantXk.JXTJTS);
+        ProBasicPowerstationPoint zxdtsPoint = powerstationPointMap.get(ContantXk.XDTS);
+        ProBasicPowerstationPoint zsltsPoint = powerstationPointMap.get(ContantXk.SLTS);
+        ProBasicPowerstationPoint zlxtsPoint = powerstationPointMap.get(ContantXk.TXZDTS);
+        AtomicReference<Double> sspjfs = new AtomicReference<>((double) 0);
+        AtomicReference<Double> sspjgzd = new AtomicReference<>((double) 0);
+        AtomicReference<Double> sszgl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zllgl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zbzgl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> znhglzs = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
+        AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
+
+        AtomicReference<Double> gztsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cngzmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> jxtsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cnjxmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> djtsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> qxjclmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> sdtjmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xntsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xdtjmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xdjclmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cwsldwmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> cwsltqmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> lxtsmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> txzdmx = new AtomicReference<>((double) 0);
+        AtomicReference<Double> yxts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> gzts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> lxts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> whts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> xdts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> slts = new AtomicReference<>((double) 0);
+        AtomicReference<Double> djts = new AtomicReference<>((double) 0);
+
+
+        wps.stream().forEach(wp->{
+            Map<String, ProBasicPowerstationPoint> powerstationPointMap1 = wppointmap.get(wp.getId());
+
+            ProBasicPowerstationPoint sspjfsPoint = null;
+            ProBasicPowerstationPoint sspjgzdPoint = null;
+
+            if (wp.getId().contains("_FDC_")){
+                sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);
+
+            }else if(wp.getId().contains("_GDC_")){
+                sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);
+
+            }
+
+            ProBasicPowerstationPoint sszglPoint = powerstationPointMap1.get(ContantXk.SSZGL);
+            ProBasicPowerstationPoint sszllglPoint = powerstationPointMap1.get(ContantXk.SSZLLGL);
+            ProBasicPowerstationPoint sszbzglPoint = powerstationPointMap1.get(ContantXk.SSZBZGL);
+            ProBasicPowerstationPoint ssznhglzsPoint = powerstationPointMap1.get(ContantXk.SSZNHGLZS);
+            ProBasicPowerstationPoint sszzyglPoint = powerstationPointMap1.get(ContantXk.SSZZYGL);
+            ProBasicPowerstationPoint sszkyglPoint = powerstationPointMap1.get(ContantXk.SSZKYGL);
+
+            ProBasicPowerstationPoint gztsmxPoint = powerstationPointMap1.get(ContantXk.GZTSMX);
+            ProBasicPowerstationPoint cnslmxPoint = powerstationPointMap1.get(ContantXk.CNSLGZTSMX);
+            ProBasicPowerstationPoint jxtsmxPoint = powerstationPointMap1.get(ContantXk.JXTSMX);
+            ProBasicPowerstationPoint cnjxmxPoint = powerstationPointMap1.get(ContantXk.CNSLJXTSMX);
+            ProBasicPowerstationPoint djtsmxPoint = powerstationPointMap1.get(ContantXk.DJTSMX);
+            ProBasicPowerstationPoint qxjclmxPoint = powerstationPointMap1.get(ContantXk.QXJCLTSMX);
+            ProBasicPowerstationPoint sdtjmxPoint = powerstationPointMap1.get(ContantXk.SDTJTSMX);
+            ProBasicPowerstationPoint xntsmxPoint = powerstationPointMap1.get(ContantXk.XNTSMX);
+            ProBasicPowerstationPoint xdtjmxPoint = powerstationPointMap1.get(ContantXk.XDTJTSMX);
+            ProBasicPowerstationPoint xdjclmxPoint = powerstationPointMap1.get(ContantXk.XDJCLTSMX);
+            ProBasicPowerstationPoint cwsldwmxPoint = powerstationPointMap1.get(ContantXk.CWSLDWTSMX);
+            ProBasicPowerstationPoint cwsltqmxPoint = powerstationPointMap1.get(ContantXk.CWSLTQTSMX);
+            ProBasicPowerstationPoint lxtsmxPoint = powerstationPointMap1.get(ContantXk.LXTSMX);
+            ProBasicPowerstationPoint txzdmxPoint = powerstationPointMap1.get(ContantXk.TXZDTSMX);
+            ProBasicPowerstationPoint djtsPoint = powerstationPointMap1.get(ContantXk.DJTS);
+            ProBasicPowerstationPoint yxtsPoint = powerstationPointMap1.get(ContantXk.YXTS);
+            ProBasicPowerstationPoint gztsPoint = powerstationPointMap1.get(ContantXk.GZTJTS);
+            ProBasicPowerstationPoint whtsPoint = powerstationPointMap1.get(ContantXk.JXTJTS);
+            ProBasicPowerstationPoint xdtsPoint = powerstationPointMap1.get(ContantXk.XDTS);
+            ProBasicPowerstationPoint sltsPoint = powerstationPointMap1.get(ContantXk.SLTS);
+            ProBasicPowerstationPoint lxtsPoint = powerstationPointMap1.get(ContantXk.TXZDTS);
+
+            if (wp.getId().contains("_FDC_")){
+                ProBasicPowerstationPoint finalSspjfsPoint = sspjfsPoint;
+                sspjfs.updateAndGet(v -> {
+                    try {
+                        return new Double((double) (v + edosUtil.getSectionData(finalSspjfsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    return v;
+                });
+
+            }else if (wp.getId().contains("_GDC_")){
+                ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
+                sspjgzd.updateAndGet(v -> {
+                    try {
+                        return new Double((double) (v + edosUtil.getSectionData(finalSspjgzdPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    return v;
+                });
+            }
+            sszgl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zllgl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszllglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zbzgl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszbzglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            znhglzs.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(ssznhglzsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zzygl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszzyglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            zkygl.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sszkyglPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+
+
+
+
+            gztsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(gztsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cngzmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cnslmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            jxtsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(jxtsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cnjxmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cnjxmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            djtsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(djtsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            qxjclmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(qxjclmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            sdtjmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sdtjmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xntsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xntsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xdtjmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xdtjmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xdjclmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xdjclmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cwsldwmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cwsldwmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            cwsltqmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(cwsltqmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            lxtsmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(lxtsmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            txzdmx.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(txzdmxPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            djts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(djtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            yxts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(yxtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            gzts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(gztsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            whts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(whtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            xdts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(xdtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            slts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(sltsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+            lxts.updateAndGet(v -> {
+                try {
+                    return new Double((double) (v + edosUtil.getSectionData(lxtsPoint, currentDate.getTime() / 1000).getPointValueInDouble()));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return v;
+            });
+        });
+        if (type.equals("-1")){
+            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fdcsize,zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
+
+        }else if(type.equals("-2")){
+            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gdcsize,zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
+
+        }else {
+            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fdcsize,zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
+            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gdcsize,zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
+        }
+        resultList.add(PointUtil.createPointData(currentDate,sszgl.get(),zsszglPoint.getNemCode(),zsszglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zllgl.get(),zsszllglPoint.getNemCode(),zsszllglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zbzgl.get(),zsszbzglPoint.getNemCode(),zsszbzglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,znhglzs.get(),zssznhglzsPoint.getNemCode(),zssznhglzsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zzygl.get(),zsszzyglPoint.getNemCode(),zsszzyglPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,zkygl.get(),zsszkyglPoint.getNemCode(),zsszkyglPoint.getName()));
+
+        resultList.add(PointUtil.createPointData(currentDate,gztsmx.get(),zgztsmxPoint.getNemCode(),zgztsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cngzmx.get(),zcnslmxPoint.getNemCode(),zcnslmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,jxtsmx.get(),zjxtsmxPoint.getNemCode(),zjxtsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cnjxmx.get(),zcnjxmxPoint.getNemCode(),zcnjxmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,djtsmx.get(),zdjtsmxPoint.getNemCode(),zdjtsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,qxjclmx.get(),zqxjclmxPoint.getNemCode(),zqxjclmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,sdtjmx.get(),zsdtjmxPoint.getNemCode(),zsdtjmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xntsmx.get(),zxntsmxPoint.getNemCode(),zxntsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xdtjmx.get(),zxdtjmxPoint.getNemCode(),zxdtjmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xdjclmx.get(),zxdjclmxPoint.getNemCode(),zxdjclmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cwsldwmx.get(),zcwsldwmxPoint.getNemCode(),zcwsldwmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,cwsltqmx.get(),zcwsltqmxPoint.getNemCode(),zcwsltqmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,lxtsmx.get(),zlxtsmxPoint.getNemCode(),zlxtsmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,txzdmx.get(),ztxzdmxPoint.getNemCode(),ztxzdmxPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,djts.get(),zdjtsPoint.getNemCode(),zdjtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,yxts.get(),zyxtsPoint.getNemCode(),zyxtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,gzts.get(),zgztsPoint.getNemCode(),zgztsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,whts.get(),zwhtsPoint.getNemCode(),zwhtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,xdts.get(),zxdtsPoint.getNemCode(),zxdtsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,slts.get(),zsltsPoint.getNemCode(),zsltsPoint.getName()));
+        resultList.add(PointUtil.createPointData(currentDate,lxts.get(),zlxtsPoint.getNemCode(),zlxtsPoint.getName()));
+    }
+
+}

+ 1 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/service/realtimelibrary/StatusService.java

@@ -449,7 +449,7 @@ public class StatusService {
                     AtomicInteger yxts = new AtomicInteger();
                     AtomicInteger slts = new AtomicInteger();
                     windturbines.stream().forEach(wt->{
-                        ProBasicEquipmentPoint windturbinetestingpointnew = wtpAimap.get(wt.getId()).get(Contant.ZTMX);
+                        ProBasicEquipmentPoint windturbinetestingpointnew = wtpAimap.get(wt.getId()).get(ContantXk.MXZT);
                         try {
                             double valueInDouble = edosUtil.getSectionData(windturbinetestingpointnew,currentDate.getTime()).getPointValueInDouble();
                             switch ((int) valueInDouble){

+ 1 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/util/realtimesource/EdosUtil.java

@@ -845,7 +845,7 @@ public class EdosUtil implements IEdosUtil {
                         pointData.setPointValueInDouble(Double.parseDouble(pointValue));
                     }
                     pointData.setPointValue(pointValue);
-
+                    pointData.setPointTime(ts);
                     //  //System.out.println("key= " + key + ", ts = " + ts + ", value = " + pointValue);
                 }
                 return result;

+ 1 - 0
realtime/generationXK-service/src/main/resources/application-dev.yml

@@ -88,6 +88,7 @@ logging:
 db:
   url: http://192.168.11.250:8011/ts
 #参与计算的场站
+#runWindpowerstation: SD_GDDL_RZLX_FDC_STA
 runWindpowerstation: SD_GDDL_RZLX_FDC_STA,SD_GDDL_QDJN_FDC_STA,SD_GDDL_WHWD_FDC_STA,SD_GDDL_WHXQ_FDC_STA,SD_GDDL_RZWL_FDC_STA,SD_GDDL_WFZC_FDC_STA,SD_GDDL_DZXJ_FDC_STA,SD_GDDL_XTTA_FDC_STA,SD_GDDL_BH1_FDC_STA,SD_GDDL_BH2_FDC_STA,SD_GDDL_CG_FDC_STA,SD_GDDL_FJ_FDC_STA,SD_GDDL_YS_FDC_STA,SD_GDDL_FXFC_FDC_STA,SD_GDDL_JNSS_FDC_STA,SD_GDDL_WFBH_FDC_STA,SD_GDDL_PLHS_FDC_STA,SD_GDDL_JNCQ_FDC_STA,SD_GDDL_LXLN_FDC_STA,SD_GDDL_LQJS_FDC_STA,SD_GDDL_ZYXD_FDC_STA,SD_GDDL_ZYFS_FDC_STA
 #计算状态用ai或者di
 clauStatus:

+ 2 - 2
realtime/generationXK-service/src/main/resources/application-xk.yml

@@ -1,5 +1,5 @@
 server:
-  port: 7012
+  port: 7011
   servlet:
     context-path: /
 
@@ -34,7 +34,7 @@ spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: org.postgresql.Driver
-    url: jdbc:postgresql://192.168.11.248:5432/IMS_NEM_TEST
+    url: jdbc:postgresql://192.168.11.248:5432/IMS_NEM_TEST?rewriteBatchedStatements=true
     username: postgres
     password: postgres
 #    url: jdbc:postgresql://120.46.148.180:5432/postgres

+ 1 - 1
realtime/generationXK-service/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: xk
 #    active: dev
 
 #    active: td

+ 22 - 1
realtime/generationXK-service/src/test/java/com/gyee/generation/GenerationTest.java

@@ -7,7 +7,7 @@ import com.gyee.generation.init.CacheContext;
 import com.gyee.generation.model.auto.ProBasicEquipmentPoint;
 import com.gyee.generation.service.*;
 import com.gyee.generation.service.initalcache.CacheService;
-import com.gyee.generation.service.realtimelibrary.ElectricityMeteringService;
+import com.gyee.generation.service.realtimelibrary.*;
 import com.gyee.generation.util.realtimesource.EdosUtil;
 import com.gyee.generation.util.redis.RedisService;
 import org.junit.Test;
@@ -34,6 +34,16 @@ public class GenerationTest {
     private CacheService cacheService;
     @Resource
     private ElectricityMeteringService electricityMeteringService;
+    @Resource
+    private RealtimeService realtimeService;   //实时补风,实时功率
+    @Resource
+    private CycleCalculationService cycleCalculationService;   //日月年
+    @Resource
+    private StatusService statusService;
+    @Resource
+    private RegionCalreService regionCalreService;
+    @Resource
+    private RegionCalService regionCalService;
 
     @Test
     public void test1() throws Exception {
@@ -44,6 +54,17 @@ public class GenerationTest {
 
     @Test
     public void test2() throws Exception {
+//        realtimeService.savaRealtimeTarget();
+//        cycleCalculationService.saveCyle();
+//        statusService.powerRationing();
+//        statusService.statusReal();
+//        statusService.calculateStatusNumber();
+        regionCalService.companyCal();
+        regionCalService.RegionCal();
+
+        regionCalreService.companyCal();
+        regionCalreService.RegionCal();
+
 
     }