Browse Source

修改信控计算服务

shilin 2 years ago
parent
commit
ab16583c40
100 changed files with 4938 additions and 223 deletions
  1. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittYearMainMapper.java
  2. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconCurveFittYearSubMapper.java
  3. 1 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconEquipmentInfoDay4Mapper.java
  4. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconStateTranRatesSub2Mapper.java
  5. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconStateTranRatesSubMapper.java
  6. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/mapper/auto/ProEconWtCurveFittingYearMapper.java
  7. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicCompany.java
  8. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicEnergyGroup.java
  9. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicEquipment.java
  10. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicEquipmentPoint.java
  11. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicLine.java
  12. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicMeterPoint.java
  13. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicModelPower.java
  14. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicPowerstation.java
  15. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicPowerstationPoint.java
  16. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicProject.java
  17. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicProjectPlan.java
  18. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicRealtimeDbconfig.java
  19. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicRegion.java
  20. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicSquare.java
  21. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicSubStation.java
  22. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProBasicWindturbinePower.java
  23. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEcoWindspecificInfoDay.java
  24. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconActivePowerData.java
  25. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconBenchmark.java
  26. 1 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconBrownoutsEvent.java
  27. 72 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconCurveFittYearMain.java
  28. 77 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconCurveFittYearSub.java
  29. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconElectricaltestPoint.java
  30. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentDayDetailed.java
  31. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentDayInfo.java
  32. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfo15minute.java
  33. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay1.java
  34. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay2.java
  35. 4 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay3.java
  36. 49 14
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay4.java
  37. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay5.java
  38. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay6.java
  39. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentmodel.java
  40. 6 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconFaultLiminatedefects.java
  41. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconInputOrOutputSpeed.java
  42. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconInterruptionItem.java
  43. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconLimitPowerRecords.java
  44. 3 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconLineElectrical.java
  45. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconLogicalUnit.java
  46. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconManufacturer.java
  47. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconMeterPointValue.java
  48. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay1.java
  49. 4 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay2.java
  50. 4 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay3.java
  51. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay4.java
  52. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay5.java
  53. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay6.java
  54. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconPowerstationInfoDay7.java
  55. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconShutdownEvent.java
  56. 134 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconStateTranRatesSub.java
  57. 136 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconStateTranRatesSub2.java
  58. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconStateTransitionRates.java
  59. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconStopType.java
  60. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconTestingPoint.java
  61. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconUniformCode.java
  62. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWarning.java
  63. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWarningClassify.java
  64. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWarningLevel.java
  65. 3 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindpowerStandardPoint.java
  66. 3 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindturbineStandardPoint.java
  67. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindturbineStatus.java
  68. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindturbineStatus2.java
  69. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWpMttrMtbfMonth.java
  70. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWpmttrDmtbfYear.java
  71. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWpmttrMtbfDay.java
  72. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtCurveFitting.java
  73. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtCurveFittingMonth.java
  74. 64 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtCurveFittingYear.java
  75. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtPowerCurveFitting.java
  76. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtmttrMtbfDay.java
  77. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtmttrMtbfMonth.java
  78. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtmttrMtbfYear.java
  79. 3 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtwindDayInfo.java
  80. 10 4
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/vo/CureFittingVo.java
  81. 18 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/model/vo/StatData.java
  82. 74 15
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/CoefficientService.java
  83. 1087 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/EquipmentInfo4Service.java
  84. 1129 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/EquipmentInfo5Service.java
  85. 83 11
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/GoodnessOfFitService.java
  86. 45 28
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/LimitEventService.java
  87. 16 9
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/LimitService.java
  88. 345 132
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/PowerCurveFittingService.java
  89. 1 4
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/ShutdownService.java
  90. 1123 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/TimelinessRateService.java
  91. 49 1
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/WindPowerInfo6Service.java
  92. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittYearMainService.java
  93. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconCurveFittYearSubService.java
  94. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconStateTranRatesSub2Service.java
  95. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconStateTranRatesSubService.java
  96. 16 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingYearService.java
  97. 20 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittYearMainServiceImpl.java
  98. 20 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconCurveFittYearSubServiceImpl.java
  99. 20 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconStateTranRatesSub2ServiceImpl.java
  100. 0 0
      realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/impl/ProEconStateTranRatesSubServiceImpl.java

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.mapper.auto;
+
+import com.gyee.generation.model.auto.ProEconCurveFittYearMain;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 风电机年拟合曲线主表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface ProEconCurveFittYearMainMapper extends BaseMapper<ProEconCurveFittYearMain> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.mapper.auto;
+
+import com.gyee.generation.model.auto.ProEconCurveFittYearSub;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 风电机年拟合曲线子表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface ProEconCurveFittYearSubMapper extends BaseMapper<ProEconCurveFittYearSub> {
+
+}

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

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * </p>
  *
  * @author shilin
- * @since 2022-11-01
+ * @since 2022-11-07
  */
 public interface ProEconEquipmentInfoDay4Mapper extends BaseMapper<ProEconEquipmentInfoDay4> {
 

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.mapper.auto;
+
+import com.gyee.generation.model.auto.ProEconStateTranRatesSub2;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 状态转换及时率子表2 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface ProEconStateTranRatesSub2Mapper extends BaseMapper<ProEconStateTranRatesSub2> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.mapper.auto;
+
+import com.gyee.generation.model.auto.ProEconStateTranRatesSub;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 状态转换及时率子表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface ProEconStateTranRatesSubMapper extends BaseMapper<ProEconStateTranRatesSub> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.mapper.auto;
+
+import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 风电机年拟合曲线 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface ProEconWtCurveFittingYearMapper extends BaseMapper<ProEconWtCurveFittingYear> {
+
+}

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicCompany extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicEnergyGroup extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -3,6 +3,8 @@ package com.gyee.generation.model.auto;
 
 import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import lombok.Data;
@@ -25,6 +27,7 @@ public class ProBasicEquipment extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicEquipmentPoint extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicLine extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicMeterPoint extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicModelPower extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicPowerstation extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -26,6 +28,7 @@ public class ProBasicPowerstationPoint extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -3,6 +3,8 @@ package com.gyee.generation.model.auto;
 
 import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import lombok.Data;
@@ -25,6 +27,7 @@ public class ProBasicProject extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicProjectPlan extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProBasicRealtimeDbconfig extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicRegion extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProBasicSquare extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProBasicSubStation extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProBasicWindturbinePower extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEcoWindspecificInfoDay extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import lombok.Data;
@@ -25,6 +27,7 @@ public class ProEconActivePowerData extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconBenchmark extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -26,6 +26,7 @@ public class ProEconBrownoutsEvent extends Model {
     /**
      * 编号
      */
+
     @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 

+ 72 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconCurveFittYearMain.java

@@ -0,0 +1,72 @@
+package com.gyee.generation.model.auto;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 风电机年拟合曲线主表
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProEconCurveFittYearMain extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * 风机编号
+     */
+    private String windturbineId;
+
+    /**
+     * 年
+     */
+    private String year;
+
+    /**
+     * 环比
+     */
+    private Double monthDeviationRate;
+
+    /**
+     * 同比
+     */
+    private Double yearDeviationRate;
+
+    /**
+     * 与标杆风机比
+     */
+    private Double standardDeviationRate;
+
+    /**
+     * 实际/最优
+     */
+    private Double deviationRate1;
+
+    /**
+     * 实际/保证
+     */
+    private Double deviationRate2;
+
+    /**
+     * 最优/保证
+     */
+    private Double deviationRate3;
+
+
+}

+ 77 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconCurveFittYearSub.java

@@ -0,0 +1,77 @@
+package com.gyee.generation.model.auto;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 风电机年拟合曲线子表
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProEconCurveFittYearSub extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * 风机编号
+     */
+    private String windturbineId;
+
+    /**
+     * 年
+     */
+    private String year;
+
+    /**
+     * 风速
+     */
+    private String speed;
+
+    /**
+     * 环比
+     */
+    private Double monthDeviationRate;
+
+    /**
+     * 同比
+     */
+    private Double yearDeviationRate;
+
+    /**
+     * 与标杆风机比
+     */
+    private Double standardDeviationRate;
+
+    /**
+     * 实际/最优
+     */
+    private Double deviationRate1;
+
+    /**
+     * 实际/保证
+     */
+    private Double deviationRate2;
+
+    /**
+     * 最优/保证
+     */
+    private Double deviationRate3;
+
+
+}

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconElectricaltestPoint extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconEquipmentDayDetailed extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconEquipmentDayInfo extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 
@@ -23,6 +25,7 @@ public class ProEconEquipmentInfo15minute extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconEquipmentInfoDay1 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import java.util.Date;
@@ -25,6 +27,7 @@ public class ProEconEquipmentInfoDay2 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,9 @@
 package com.gyee.generation.model.auto;
 
 import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.time.LocalDate;
 import java.util.Date;
@@ -25,6 +28,7 @@ public class ProEconEquipmentInfoDay3 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

+ 49 - 14
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDay4.java

@@ -1,8 +1,12 @@
 package com.gyee.generation.model.auto;
 
+import java.math.BigDecimal;
+import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
-import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -12,7 +16,7 @@ import lombok.EqualsAndHashCode;
  * </p>
  *
  * @author shilin
- * @since 2022-11-01
+ * @since 2022-11-07
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -23,6 +27,7 @@ public class ProEconEquipmentInfoDay4 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**
@@ -106,14 +111,24 @@ public class ProEconEquipmentInfoDay4 extends Model {
     private Double rnhyd;
 
     /**
-     * 日曲线偏差率保证
+     * 日曲线偏差率最优保证
+     */
+    private Double rqxpcbzybz;
+
+    /**
+     * 日曲线偏差率最优实际
      */
-    private Double rqxpcbbz;
+    private Double rqxpcbzysj;
 
     /**
-     * 日曲线偏差率同期
+     * 日曲线偏差率保证实际
      */
-    private Double rqxpcbtq;
+    private Double rqxpcbbzsj;
+
+    /**
+     * 日曲线偏差率同比
+     */
+    private Double rqxpcbtb;
 
     /**
      * 日曲线偏差率环比
@@ -221,14 +236,24 @@ public class ProEconEquipmentInfoDay4 extends Model {
     private Double ynhyd;
 
     /**
-     * 月曲线偏差率保证
+     * 月曲线偏差率最优保证
      */
-    private Double yqxpcbbz;
+    private Double yqxpcbzybz;
 
     /**
-     * 月曲线偏差率同期
+     * 月曲线偏差率最优实际
      */
-    private Double yqxpcbtq;
+    private Double yqxpcbzysj;
+
+    /**
+     * 月曲线偏差率保证实际
+     */
+    private Double yqxpcbbzsj;
+
+    /**
+     * 月曲线偏差率同比
+     */
+    private Double yqxpcbtb;
 
     /**
      * 月曲线偏差率环比
@@ -336,14 +361,24 @@ public class ProEconEquipmentInfoDay4 extends Model {
     private Double nnhyd;
 
     /**
-     * 年曲线偏差率保证
+     * 年曲线偏差率最优保证
+     */
+    private Double nqxpcbzybz;
+
+    /**
+     * 年曲线偏差率最优实际
+     */
+    private Double nqxpcbzysj;
+
+    /**
+     * 年曲线偏差率保证实际
      */
-    private Double nqxpcbbz;
+    private Double nqxpcbbzsj;
 
     /**
-     * 年曲线偏差率同期
+     * 年曲线偏差率同
      */
-    private Double nqxpcbtq;
+    private Double nqxpcbtb;
 
     /**
      * 年曲线偏差率环比

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconEquipmentInfoDay5 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconEquipmentInfoDay6 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconEquipmentmodel extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

+ 6 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconFaultLiminatedefects.java

@@ -1,8 +1,12 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
+
+import io.swagger.models.auth.In;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -23,7 +27,8 @@ public class ProEconFaultLiminatedefects extends Model {
     /**
      * 编号
      */
-    private Double id;
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
+    private Integer id;
 
     /**
      * 风场编号

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -24,6 +26,7 @@ public class ProEconInputOrOutputSpeed extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import java.util.Date;
@@ -24,6 +26,7 @@ public class ProEconInterruptionItem extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconLimitPowerRecords extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

+ 3 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconLineElectrical.java

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -17,7 +19,7 @@ import lombok.EqualsAndHashCode;
 public class ProEconLineElectrical extends Model {
 
     private static final long serialVersionUID = 1L;
-
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     private String lineId;

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProEconLogicalUnit extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProEconManufacturer extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconMeterPointValue extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import java.util.Date;
@@ -25,6 +27,7 @@ public class ProEconPowerstationInfoDay1 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,9 @@
 package com.gyee.generation.model.auto;
 
 import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import java.util.Date;
@@ -25,6 +28,7 @@ public class ProEconPowerstationInfoDay2 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,9 @@
 package com.gyee.generation.model.auto;
 
 import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import java.util.Date;
@@ -25,6 +28,7 @@ public class ProEconPowerstationInfoDay3 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconPowerstationInfoDay4 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconPowerstationInfoDay5 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconPowerstationInfoDay6 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconPowerstationInfoDay7 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
 import java.util.Date;
@@ -25,6 +27,7 @@ public class ProEconShutdownEvent extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

+ 134 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconStateTranRatesSub.java

@@ -0,0 +1,134 @@
+package com.gyee.generation.model.auto;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 状态转换及时率子表
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProEconStateTranRatesSub extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 风场编号
+     */
+    private String windpwoerId;
+
+    /**
+     * 工程编号
+     */
+    private String projectId;
+
+    /**
+     * 线路编号
+     */
+    private String lineId;
+
+    /**
+     * 风机编号
+     */
+    private String windturbineId;
+
+    /**
+     * 日期
+     */
+    private Date recordDate;
+
+    /**
+     * 起始时间
+     */
+    private Date startTime;
+
+    /**
+     * 终止时间
+     */
+    private Date endTime;
+
+    /**
+     * 持续小时数
+     */
+    private Double durationHours;
+
+    /**
+     * 平均风速
+     */
+    private Double speed;
+
+    /**
+     * 最大风速
+     */
+    private Double maxSpeed;
+
+    /**
+     * 最小风速
+     */
+    private Double minSpeed;
+
+    /**
+     * 持续状态
+     */
+    private Integer statusCode;
+
+    /**
+     * 持续状态小时
+     */
+    private Double statusHours;
+
+    /**
+     * 持续状态开始时间
+     */
+    private Date statusBegin;
+
+    /**
+     * 持续状态结束时间
+     */
+    private Date statusEnd;
+
+    /**
+     * 改变状态
+     */
+    private Integer statusCode2;
+
+    /**
+     * 改变状态小时
+     */
+    private Double statusHours2;
+
+    /**
+     * 改变状态开始时间
+     */
+    private Date statusBegin2;
+
+    /**
+     * 改变状态结束时间
+     */
+    private Date statusEnd2;
+
+    /**
+     * 及时时间
+     */
+    private Double resetRate;
+
+
+}

+ 136 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconStateTranRatesSub2.java

@@ -0,0 +1,136 @@
+package com.gyee.generation.model.auto;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDate;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 状态转换及时率子表2
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProEconStateTranRatesSub2 extends Model {
+
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 风场编号
+     */
+    private String windpwoerId;
+
+    /**
+     * 工程编号
+     */
+    private String projectId;
+
+    /**
+     * 线路编号
+     */
+    private String lineId;
+
+    /**
+     * 风机编号
+     */
+    private String windturbineId;
+
+    /**
+     * 日期
+     */
+    private Date recordDate;
+
+    /**
+     * 起始时间
+     */
+    private Date startTime;
+
+    /**
+     * 终止时间
+     */
+    private Date endTime;
+
+    /**
+     * 持续小时数
+     */
+    private Double durationHours;
+
+    /**
+     * 平均风速
+     */
+    private Double speed;
+
+    /**
+     * 最大风速
+     */
+    private Double maxSpeed;
+
+    /**
+     * 最小风速
+     */
+    private Double minSpeed;
+
+    /**
+     * 持续状态
+     */
+    private Integer statusCode;
+
+    /**
+     * 持续状态小时
+     */
+    private Double statusHours;
+
+    /**
+     * 持续状态开始时间
+     */
+    private Date statusBegin;
+
+    /**
+     * 持续状态结束时间
+     */
+    private Date statusEnd;
+
+    /**
+     * 改变状态
+     */
+    private Integer statusCode2;
+
+    /**
+     * 改变状态小时
+     */
+    private Double statusHours2;
+
+    /**
+     * 改变状态开始时间
+     */
+    private Date statusBegin2;
+
+    /**
+     * 改变状态结束时间
+     */
+    private Date statusEnd2;
+
+    /**
+     * 及时时间
+     */
+    private Double resetRate;
+
+
+}

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconStateTransitionRates extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProEconStopType extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconTestingPoint extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProEconUniformCode extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWarning extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProEconWarningClassify extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class ProEconWarningLevel extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

+ 3 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindpowerStandardPoint.java

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -17,7 +19,7 @@ import lombok.EqualsAndHashCode;
 public class ProEconWindpowerStandardPoint extends Model {
 
     private static final long serialVersionUID = 1L;
-
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     private String nemCode;

+ 3 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindturbineStandardPoint.java

@@ -1,5 +1,7 @@
 package com.gyee.generation.model.auto;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -17,7 +19,7 @@ import lombok.EqualsAndHashCode;
 public class ProEconWindturbineStandardPoint extends Model {
 
     private static final long serialVersionUID = 1L;
-
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     private String nemCode;

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconWindturbineStatus extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconWindturbineStatus2 extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWpMttrMtbfMonth extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWpmttrDmtbfYear extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconWpmttrMtbfDay extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconWtCurveFitting extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWtCurveFittingMonth extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

+ 64 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWtCurveFittingYear.java

@@ -0,0 +1,64 @@
+package com.gyee.generation.model.auto;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 风电机年拟合曲线
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProEconWtCurveFittingYear extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 风机编号
+     */
+    private String windturbineId;
+
+    /**
+     * 风速
+     */
+    private Double speed;
+
+    /**
+     * 实际拟合功率
+     */
+    private Double actualPower;
+
+    /**
+     * 最优拟合功率
+     */
+    private Double optimalPower;
+
+    /**
+     * 年
+     */
+    private String year;
+
+
+
+    /**
+     * 主表编号
+     */
+    private String mainId;
+
+
+}

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWtPowerCurveFitting extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -23,6 +25,7 @@ public class ProEconWtmttrMtbfDay extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWtmttrMtbfMonth extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -22,6 +24,7 @@ public class ProEconWtmttrMtbfYear extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private String id;
 
     /**

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

@@ -1,6 +1,8 @@
 package com.gyee.generation.model.auto;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.util.Date;
 import lombok.Data;
@@ -40,6 +42,7 @@ public class ProEconWtwindDayInfo extends Model {
     /**
      * 编号
      */
+    @TableId(value = "ID",type = IdType.ASSIGN_ID)
     private Integer id;
 
     /**

+ 10 - 4
realtime/generationXK-service/src/main/java/com/gyee/generation/model/vo/CureFittingVo.java

@@ -15,13 +15,19 @@ public class CureFittingVo {
     private String pointIdZT;
 
     private String standardId;
-    
-    private List<PointVo> ysjglPoints;
-    
-    private List<PointVo> yzyglPoints;
 
     private List<PointVo> rsjglPoints;
 
     private List<PointVo> rzyglPoints;
+
+    private List<PointVo> ysjglPoints;
     
+    private List<PointVo> yzyglPoints;
+
+    private List<PointVo> nsjglPoints;
+
+    private List<PointVo> nzyglPoints;
+
+
+
 }

+ 18 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/vo/StatData.java

@@ -0,0 +1,18 @@
+package com.gyee.generation.model.vo;
+
+public enum StatData {
+
+    MAX(0),
+    MIN(1),
+    AVG(2);
+
+    public Integer id;
+    StatData(final  Integer c) {
+        id = c;
+    }
+
+    public Integer getValue()
+    {
+        return id;
+    }
+}

+ 74 - 15
realtime/generationXK-service/src/main/java/com/gyee/generation/service/CoefficientService.java

@@ -1,7 +1,11 @@
 package com.gyee.generation.service;
 
+import com.gyee.common.contant.Contant;
+import com.gyee.common.contant.ContantXk;
+import com.gyee.common.model.PointData;
 import com.gyee.generation.init.CacheContext;
 import com.gyee.generation.model.auto.*;
+import com.gyee.generation.model.vo.StatData;
 import com.gyee.generation.service.auto.IProEconActivePowerDataService;
 import com.gyee.generation.service.auto.IProEconEquipmentInfoDay1Service;
 import com.gyee.generation.service.auto.IProEconEquipmentInfoDay2Service;
@@ -36,9 +40,7 @@ public class CoefficientService {
 
 
 
-
-    public  Map<String,Map<String,Double>>  coefficient(Date currentDate)
-    {
+    public  Map<String,Map<String,Double>>  coefficient(Date currentDate) throws Exception {
         //调度时间是第二天,currentDate 是第一天
 
         currentDate = DateUtils.truncDay(currentDate);
@@ -71,21 +73,61 @@ public class CoefficientService {
 
                 List<ProEconActivePowerData> yearList = new ArrayList<ProEconActivePowerData>();
 
+                List<ProEconActivePowerData> queryYear =new ArrayList<>();
+
+                Map<String, ProBasicEquipmentPoint> wtpointmap= CacheContext.wtpAimap.get(wt.getId());
+                ProBasicEquipmentPoint fspoint=wtpointmap.get(ContantXk.CJ_SSFS);
+                List<PointData>  fsls=edosUtil.getHistStat(fspoint.getNemCode(),yearbeginDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                ProBasicEquipmentPoint glpoint=wtpointmap.get(ContantXk.CJ_SSGL);
+                List<PointData>  glls=edosUtil.getHistStat(glpoint.getNemCode(),yearbeginDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                if(!fsls.isEmpty() && !glls.isEmpty() && fsls.size()==glls.size())
+                {
+                    for(int i=0;i<fsls.size();i++)
+                    {
+                        PointData fspd=fsls.get(i);
+                        PointData glpd=fsls.get(i);
+                        ProEconActivePowerData po=new ProEconActivePowerData();
+                        po.setWindturbineId(wt.getId());
+                        po.setModelId(wt.getModelId());
+                        po.setWindpowerstationId(wt.getWindpowerstationId());
+                        po.setFrequency(fsls.size());
+                        po.setSpeed(StringUtils.round(fspd.getPointValueInDouble(),2));
+                        po.setPower(StringUtils.round(glpd.getPointValueInDouble(),2));
+                        queryYear.add(po);
+                    }
+                }
 
-                List<ProEconActivePowerData> queryYear =proEconActivePowerDataService.list().stream().filter(i->i.getWindturbineId().equals(wt.getId())
-                        && ( i.getRecordDate().compareTo(yearbeginDate)==0 || i.getRecordDate().after(yearbeginDate))
-                        && (i.getRecordDate().compareTo(endDate)==0 || i.getRecordDate().before(endDate))
-                ).collect(Collectors.toList());
 
                 yearList=calCoefficient(queryYear,wt);
 
 /*****************************************月功率一致性统计********************************************************************/
 
                 List<ProEconActivePowerData> monthList = new ArrayList<ProEconActivePowerData>();
-                List<ProEconActivePowerData> queryMonth =queryYear.stream().filter(i->i.getWindturbineId().equals(wt.getId())
-                        && ( i.getRecordDate().compareTo(monthbeginDate)==0 || i.getRecordDate().after(monthbeginDate))
-                        && (i.getRecordDate().compareTo(endDate)==0 || i.getRecordDate().before(endDate))
-                ).collect(Collectors.toList());
+                List<ProEconActivePowerData> queryMonth =new ArrayList<>();
+
+
+               fsls=edosUtil.getHistStat(fspoint.getNemCode(),monthbeginDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+               glls=edosUtil.getHistStat(glpoint.getNemCode(),monthbeginDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                if(!fsls.isEmpty() && !glls.isEmpty() && fsls.size()==glls.size())
+                {
+                    for(int i=0;i<fsls.size();i++)
+                    {
+                        PointData fspd=fsls.get(i);
+                        PointData glpd=fsls.get(i);
+                        ProEconActivePowerData po=new ProEconActivePowerData();
+                        po.setWindturbineId(wt.getId());
+                        po.setModelId(wt.getModelId());
+                        po.setWindpowerstationId(wt.getWindpowerstationId());
+                        po.setFrequency(fsls.size());
+                        po.setSpeed(StringUtils.round(fspd.getPointValueInDouble(),2));
+                        po.setPower(StringUtils.round(glpd.getPointValueInDouble(),2));
+                        queryMonth.add(po);
+                    }
+                }
+
 
                 monthList=calCoefficient(queryMonth,wt);
 
@@ -97,11 +139,28 @@ public class CoefficientService {
                 List<ProEconActivePowerData> dayList = new ArrayList<ProEconActivePowerData>();
 
 
-                List<ProEconActivePowerData> queryDay =queryMonth.stream().filter(i->i.getWindturbineId().equals(wt.getId())
-                                && ( i.getRecordDate().compareTo(beginDate)==0 || i.getRecordDate().after(beginDate))
-                                && (i.getRecordDate().compareTo(endDate)==0 || i.getRecordDate().before(endDate))
-                        ).collect(Collectors.toList());
+                List<ProEconActivePowerData> queryDay =new ArrayList<>();
+
 
+                fsls=edosUtil.getHistStat(fspoint.getNemCode(),beginDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+                glls=edosUtil.getHistStat(glpoint.getNemCode(),beginDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                if(!fsls.isEmpty() && !glls.isEmpty() && fsls.size()==glls.size())
+                {
+                    for(int i=0;i<fsls.size();i++)
+                    {
+                        PointData fspd=fsls.get(i);
+                        PointData glpd=fsls.get(i);
+                        ProEconActivePowerData po=new ProEconActivePowerData();
+                        po.setWindturbineId(wt.getId());
+                        po.setModelId(wt.getModelId());
+                        po.setWindpowerstationId(wt.getWindpowerstationId());
+                        po.setFrequency(fsls.size());
+                        po.setSpeed(StringUtils.round(fspd.getPointValueInDouble(),2));
+                        po.setPower(StringUtils.round(glpd.getPointValueInDouble(),2));
+                        queryDay.add(po);
+                    }
+                }
                 dayList=calCoefficient(queryDay,wt);
 
 

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


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


+ 83 - 11
realtime/generationXK-service/src/main/java/com/gyee/generation/service/GoodnessOfFitService.java

@@ -1,8 +1,13 @@
 package com.gyee.generation.service;
 
+
+import com.gyee.common.contant.ContantXk;
+import com.gyee.common.model.PointData;
+
 import com.gyee.generation.init.CacheContext;
 import com.gyee.generation.model.auto.*;
 import com.gyee.generation.model.vo.FitClassVo;
+import com.gyee.generation.model.vo.StatData;
 import com.gyee.generation.service.auto.*;
 import com.gyee.generation.util.DateUtils;
 import com.gyee.generation.util.StringUtils;
@@ -23,16 +28,14 @@ public class GoodnessOfFitService {
         @Resource
         private IEdosUtil edosUtil;
 
-        @Resource
-       private IProEconActivePowerDataService proEconActivePowerDataService;
+
 
         @Resource
         private IProEconWtCurveFittingMonthService proEconWtCurveFittingMonthService;
 
 
 
-    public Map<String,Map<String,Double>> goodnessOfFit(Date nowDate)
-    {
+    public Map<String,Map<String,Double>> goodnessOfFit(Date nowDate) throws Exception {
         Date current = DateUtils.addDays(nowDate,-1);
         Date startDate = current;
         Date endDate =new Date();
@@ -65,16 +68,85 @@ public class GoodnessOfFitService {
                 && i.getYear().equals(year)).collect(Collectors.toList());
 
 
-            for (ProBasicPowerstation wp : CacheContext.wpls)
+
+            for (ProBasicEquipment wt : CacheContext.wtls)
+
             {
 
-                List<FitClassVo> fitsD=  proEconActivePowerDataService.getFitList(wp.getId(),startDate,endDate);
-                List<FitClassVo> fitsM=  proEconActivePowerDataService.getFitList(wp.getId(),startDateM,endDate);
-                List<FitClassVo> fitsY=  proEconActivePowerDataService.getFitList(wp.getId(),startDateY,endDate);
+                List<FitClassVo> fitsD= new ArrayList<>();
+                List<FitClassVo> fitsM= new ArrayList<>();
+                List<FitClassVo> fitsY= new ArrayList<>();
+
+
+                //月数据筛选日分钟间隔
+                Map<String, ProBasicEquipmentPoint> wtpointmap= CacheContext.wtpAimap.get(wt.getId());
+                ProBasicEquipmentPoint fspoint=wtpointmap.get(ContantXk.CJ_SSFS);
+                List<PointData>  fsls=edosUtil.getHistStat(fspoint.getNemCode(),startDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                ProBasicEquipmentPoint glpoint=wtpointmap.get(ContantXk.CJ_SSGL);
+                List<PointData>  glls=edosUtil.getHistStat(glpoint.getNemCode(),startDate.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                if(!fsls.isEmpty() && !glls.isEmpty() && fsls.size()==glls.size())
+                {
+                    for(int i=0;i<fsls.size();i++)
+                    {
+                        PointData fspd=fsls.get(i);
+                        PointData glpd=fsls.get(i);
+                        FitClassVo po=new FitClassVo();
+                        po.setWindturbineId(wt.getId());
+                        po.setModelId(wt.getModelId());
+                        po.setWindpowerstationId(wt.getWindpowerstationId());
+
+                        po.setSpeed(StringUtils.round(fspd.getPointValueInDouble(),2));
+                        po.setPower(StringUtils.round(glpd.getPointValueInDouble(),2));
+                        fitsD.add(po);
+                    }
+                }
+
+                //月数据筛选15分钟间隔
+                fsls=edosUtil.getHistStat(fspoint.getNemCode(),startDateM.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+                glls=edosUtil.getHistStat(glpoint.getNemCode(),startDateM.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                if(!fsls.isEmpty() && !glls.isEmpty() && fsls.size()==glls.size())
+                {
+                    for(int i=0;i<fsls.size();i++)
+                    {
+                        PointData fspd=fsls.get(i);
+                        PointData glpd=fsls.get(i);
+                        FitClassVo po=new FitClassVo();
+                        po.setWindturbineId(wt.getId());
+                        po.setModelId(wt.getModelId());
+                        po.setWindpowerstationId(wt.getWindpowerstationId());
+
+                        po.setSpeed(StringUtils.round(fspd.getPointValueInDouble(),2));
+                        po.setPower(StringUtils.round(glpd.getPointValueInDouble(),2));
+                        fitsM.add(po);
+                    }
+                }
+                //年数据筛选15分钟间隔
+                fsls=edosUtil.getHistStat(fspoint.getNemCode(),startDateY.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+                glls=edosUtil.getHistStat(glpoint.getNemCode(),startDateY.getTime()/1000,endDate.getTime()/1000,null,900l, StatData.AVG.getValue());
+
+                if(!fsls.isEmpty() && !glls.isEmpty() && fsls.size()==glls.size())
+                {
+                    for(int i=0;i<fsls.size();i++)
+                    {
+                        PointData fspd=fsls.get(i);
+                        PointData glpd=fsls.get(i);
+                        FitClassVo po=new FitClassVo();
+                        po.setWindturbineId(wt.getId());
+                        po.setModelId(wt.getModelId());
+                        po.setWindpowerstationId(wt.getWindpowerstationId());
+
+                        po.setSpeed(StringUtils.round(fspd.getPointValueInDouble(),2));
+                        po.setPower(StringUtils.round(glpd.getPointValueInDouble(),2));
+                        fitsY.add(po);
+                    }
+                }
 
-                buildList(theMapY, theList, wp.getId(), fitsY, powerList);
-                buildList(theMapM, theList, wp.getId(), fitsM, powerList);
-                buildList(theMapD, theList, wp.getId(), fitsD, powerList);
+                buildList(theMapY, theList, wt.getWindpowerstationId(), fitsY, powerList);
+                buildList(theMapM, theList, wt.getWindpowerstationId(), fitsM, powerList);
+                buildList(theMapD, theList, wt.getWindpowerstationId(), fitsD, powerList);
 
 
                 theMapD.forEach((key,value)->{

+ 45 - 28
realtime/generationXK-service/src/main/java/com/gyee/generation/service/LimitEventService.java

@@ -7,6 +7,7 @@ import com.gyee.common.model.DNAStatVal;
 import com.gyee.common.model.PointData;
 import com.gyee.generation.init.CacheContext;
 import com.gyee.generation.model.auto.*;
+import com.gyee.generation.model.vo.StatData;
 import com.gyee.generation.service.auto.IProEconBrownoutsEvent2Service;
 import com.gyee.generation.service.auto.IProEconBrownoutsEventService;
 import com.gyee.generation.service.auto.IProEconMainBrownouts2Service;
@@ -757,9 +758,11 @@ public class LimitEventService {
             sub.setStartTime(dt);
         }
 
-        DNAStatVal[] hsls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1);
-        if (StringUtils.notEmp(hsls) && hsls.length > 0) {
-            sub.setLimitLoad(hsls[0].avg.DValue);
+       long pried= DateUtils.secondsDiff(sub.getStopTime(),nowdt);
+
+        List<PointData> hsls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1L,pried, StatData.AVG.getValue());
+        if (StringUtils.notEmp(hsls) && hsls.size() > 0) {
+            sub.setLimitLoad(hsls.get(0).getPointValueInDouble());
 
         }
 
@@ -771,13 +774,13 @@ public class LimitEventService {
 
 
         if (nhxdDictionary.containsKey(wkey)) {
-            hsls = edosUtil.getHistStat(nhxdDictionary.get(wkey), sub.getStopTime().getTime() / 1000, nowdt.getTime() / 1000, 1);
-
+            List<PointData>  maxls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1L,pried, StatData.MAX.getValue());
+            List<PointData>  minls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1L,pried, StatData.MIN.getValue());
 
-            if (StringUtils.notEmp(hsls) && hsls.length >0) {
+            if (!maxls.isEmpty() && !minls.isEmpty()) {
 
-                double max = hsls[0].max.DValue;
-                double min = hsls[0].min.DValue;
+                double max = maxls.get(0).getPointValueInDouble();
+                double min = minls.get(0).getPointValueInDouble();
 
                 sub.setLossPower(StringUtils.round(max - min, 2));
 
@@ -795,10 +798,11 @@ public class LimitEventService {
         if (!(dt.compareTo(new Date(0)) == 0)) {
             sub.setStartTime(dt);
         }
+        long pried= DateUtils.secondsDiff(sub.getStopTime(),nowdt);
 
-        DNAStatVal[] hsls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1);
-        if (StringUtils.notEmp(hsls) && hsls.length > 0) {
-            sub.setLimitLoad(hsls[0].avg.DValue);
+        List<PointData> hsls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1L,pried, StatData.AVG.getValue());
+        if (StringUtils.notEmp(hsls) && hsls.size() > 0) {
+            sub.setLimitLoad(hsls.get(0).getPointValueInDouble());
 
         }
 
@@ -809,14 +813,15 @@ public class LimitEventService {
         sub.setLossPower(losspower);
 
 
-        if (nhxdDictionary.containsKey(wkey)) {
-            hsls = edosUtil.getHistStat(nhxdDictionary.get(wkey), sub.getStopTime().getTime() / 1000, nowdt.getTime() / 1000, 1);
 
+        if (nhxdDictionary.containsKey(wkey)) {
+            List<PointData>  maxls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1L,pried, StatData.MAX.getValue());
+            List<PointData>  minls = edosUtil.getHistStat(powerDictionary.get(wkey), sub.getStopTime().getTime() / 1000, dt.getTime() / 1000, 1L,pried, StatData.MIN.getValue());
 
-            if (StringUtils.notEmp(hsls) && hsls.length >0) {
+            if (!maxls.isEmpty() && !minls.isEmpty()) {
 
-                double max = hsls[0].max.DValue;
-                double min = hsls[0].min.DValue;
+                double max = maxls.get(0).getPointValueInDouble();
+                double min = minls.get(0).getPointValueInDouble();
 
                 sub.setLossPower(StringUtils.round(max - min, 2));
 
@@ -850,9 +855,12 @@ public class LimitEventService {
 
         sub.setLimitLoad(edosUtil.getRealData(powerDictionary.get(wkey)).getPointValueInDouble());
         sub.setWindSpeed(edosUtil.getRealData(speedDictionary.get(wkey)).getPointValueInDouble());
-        DNAStatVal[] hsls = edosUtil.getHistStat(powerDictionary.get(wkey), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1);
-        if (StringUtils.notEmp(hsls) && hsls.length > 0 && hsls.length >0) {
-            sub.setThisLoad(hsls[0].max.DValue);
+
+        long pried= DateUtils.secondsDiff(DateUtils.addMinutes(dt, -5),dt);
+
+        List<PointData> hsls = edosUtil.getHistStat(powerDictionary.get(wkey), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1l,pried,StatData.MAX.getValue());
+        if (StringUtils.notEmp(hsls) && hsls.size() >0) {
+            sub.setThisLoad(hsls.get(0).getPointValueInDouble());
 
         }
 
@@ -886,9 +894,12 @@ public class LimitEventService {
 
         sub.setLimitLoad(edosUtil.getRealData(powerDictionary.get(wkey)).getPointValueInDouble());
         sub.setWindSpeed(edosUtil.getRealData(speedDictionary.get(wkey)).getPointValueInDouble());
-        DNAStatVal[] hsls = edosUtil.getHistStat(powerDictionary.get(wkey), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1);
-        if (StringUtils.notEmp(hsls) && hsls.length > 0 && hsls.length >0) {
-            sub.setThisLoad(hsls[0].max.DValue);
+
+
+        long pried= DateUtils.secondsDiff(DateUtils.addMinutes(dt, -5),dt);
+        List<PointData> hsls = edosUtil.getHistStat(powerDictionary.get(wkey), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1l,pried,StatData.MAX.getValue());
+        if (StringUtils.notEmp(hsls) && hsls.size() >0) {
+            sub.setThisLoad(hsls.get(0).getPointValueInDouble());
 
         }
 
@@ -1135,9 +1146,12 @@ public class LimitEventService {
         main.setStopTypeId("非停机限电");
         main.setLimitLoad(edosUtil.getRealData(wPowerDictionary.get(key)).getPointValueInDouble());
         main.setWindSpeed(edosUtil.getRealData(wSpeedDictionary.get(key)).getPointValueInDouble());
-        DNAStatVal[] hsls = edosUtil.getHistStat(wPowerDictionary.get(key), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1);
-        if (StringUtils.notEmp(hsls) && hsls.length > 0 && hsls.length >0) {
-            main.setThisLoad(hsls[0].max.DValue);
+
+
+        long pried= DateUtils.secondsDiff(DateUtils.addMinutes(dt, -5),dt);
+        List<PointData> hsls = edosUtil.getHistStat(wPowerDictionary.get(key), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1l,pried,StatData.MAX.getValue());
+        if (StringUtils.notEmp(hsls) && hsls.size() >0) {
+            main.setThisLoad(hsls.get(0).getPointValueInDouble());
 
         }
         main.setWindpowerstationId(key);
@@ -1159,9 +1173,12 @@ public class LimitEventService {
         main.setStopTypeId("非停机限电");
         main.setLimitLoad(edosUtil.getRealData(wPowerDictionary.get(key)).getPointValueInDouble());
         main.setWindSpeed(edosUtil.getRealData(wSpeedDictionary.get(key)).getPointValueInDouble());
-        DNAStatVal[] hsls = edosUtil.getHistStat(wPowerDictionary.get(key), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1);
-        if (StringUtils.notEmp(hsls) && hsls.length > 0 && hsls.length >0) {
-            main.setThisLoad(hsls[0].max.DValue);
+
+
+        long pried= DateUtils.secondsDiff(DateUtils.addMinutes(dt, -5),dt);
+        List<PointData> hsls = edosUtil.getHistStat(wPowerDictionary.get(key), DateUtils.addMinutes(dt, -5).getTime() / 1000, dt.getTime() / 1000, 1l,pried,StatData.MAX.getValue());
+        if (StringUtils.notEmp(hsls) && hsls.size() >0) {
+            main.setThisLoad(hsls.get(0).getPointValueInDouble());
 
         }
         main.setWindpowerstationId(key);

+ 16 - 9
realtime/generationXK-service/src/main/java/com/gyee/generation/service/LimitService.java

@@ -10,6 +10,7 @@ import com.gyee.generation.model.auto.ProBasicPowerstationPoint;
 import com.gyee.generation.model.auto.ProEconLineElectrical;
 import com.gyee.generation.model.vo.RealTimeParameterVo;
 import com.gyee.generation.model.vo.SLWindpowerVo;
+import com.gyee.generation.model.vo.StatData;
 import com.gyee.generation.service.auto.IProEconLineElectricalService;
 import com.gyee.generation.util.DateUtils;
 import com.gyee.generation.util.StringUtils;
@@ -640,10 +641,12 @@ public  class LimitService {
                 Double windpoweragcHis = 0.0;
                 if (WindPowerAGC.containsKey(item))
                 {
-                    DNAStatVal[] hsls= edosUtil.getHistStat(WindPowerAGC.get(item).getNemCode(), begin.getTime()/1000, time.getTime()/1000,1);
-                    if(StringUtils.notEmp(hsls) && hsls.length>0)
+                    long pried= DateUtils.secondsDiff(begin,time);
+
+                    List<PointData> hsls= edosUtil.getHistStat(WindPowerAGC.get(item).getNemCode(), begin.getTime()/1000, time.getTime()/1000, 1l,pried, StatData.AVG.getValue());
+                    if(StringUtils.notEmp(hsls) && hsls.size()>0)
                     {
-                        windpoweragcHis =hsls[0].avg.DValue;
+                        windpoweragcHis =hsls.get(0).getPointValueInDouble();
                     }
                    
                 }
@@ -651,23 +654,27 @@ public  class LimitService {
                 Double windpowercxygHis = 0.0;
                 if (WindPowerCXYG.containsKey(item))
                 {
+                    long pried= DateUtils.secondsDiff(begin,time);
 
-                    DNAStatVal[] hsls= edosUtil.getHistStat(WindPowerCXYG.get(item).getNemCode(), begin.getTime()/1000, time.getTime()/1000,1);
-                    if(StringUtils.notEmp(hsls) && hsls.length>0)
+                    List<PointData> hsls= edosUtil.getHistStat(WindPowerCXYG.get(item).getNemCode(), begin.getTime()/1000, time.getTime()/1000, 1l,pried, StatData.AVG.getValue());
+                    if(StringUtils.notEmp(hsls) && hsls.size()>0)
                     {
-                        windpoweragcHis =hsls[0].avg.DValue;
+                        windpowercxygHis =hsls.get(0).getPointValueInDouble();
                     }
+
                 }
 
                 Double windpowerzsglHis = 0.0;
                 if (WindPowerZSGL.containsKey(item))
                 {
-                    DNAStatVal[] hsls= edosUtil.getHistStat(WindPowerZSGL.get(item).getNemCode(), begin.getTime()/1000, time.getTime()/1000,1);
-                    if(StringUtils.notEmp(hsls) && hsls.length>0)
+                    long pried= DateUtils.secondsDiff(begin,time);
+                    List<PointData> hsls= edosUtil.getHistStat(WindPowerZSGL.get(item).getNemCode(), begin.getTime()/1000, time.getTime()/1000, 1l,pried, StatData.AVG.getValue());
+                    if(StringUtils.notEmp(hsls) && hsls.size()>0)
                     {
-                        windpoweragcHis =hsls[0].avg.DValue;
+                        windpowerzsglHis =hsls.get(0).getPointValueInDouble();
                     }
 
+
                 }
              
 

+ 345 - 132
realtime/generationXK-service/src/main/java/com/gyee/generation/service/PowerCurveFittingService.java

@@ -33,11 +33,15 @@ public class PowerCurveFittingService {
     private Integer dimension;
     @Value("${curvefitting.scale}")
     private Double scale;
-
+    @Value("${initialcode}")
+    private String initialcode;
     public Map<String, Double> windturbineCapacity;
 
     @Resource
     private IProEconWtCurveFittingMonthService proEconWtCurveFittingMonthService;
+
+    @Resource
+    private IProEconWtCurveFittingYearService proEconWtCurveFittingYearService;
     @Resource
     private IProEconWtCurveFittingService proEconWtCurveFittingService;
 
@@ -52,6 +56,11 @@ public class PowerCurveFittingService {
     @Resource
     private IProEconWtPowerCurveFittingService proEconWtPowerCurveFittingService;
 
+    @Resource
+    private IProEconCurveFittYearSubService proEconCurveFittYearSubService;
+    @Resource
+    private IProEconCurveFittYearMainService proEconCurveFittYearMainService;
+
     //inserttype 0表示正常拟合工作,1表示存值到windturbinePowerCurveFitting表
     public void cureFitting(Date nowDate, Date begion, int insertType, List<ProBasicEquipment> wtls) throws Exception {
 
@@ -65,6 +74,8 @@ public class PowerCurveFittingService {
         c.set(Calendar.DAY_OF_MONTH, 1);
         Date begin1 = c.getTime();
 
+        c.set(Calendar.MONTH, 0);
+        Date begin3 = c.getTime();
         Date begin2 = DateUtils.addDays(current, -6);
 
         Date end = DateUtils.truncDay(nowDate);
@@ -115,7 +126,19 @@ public class PowerCurveFittingService {
 
             String pointIdFS = "";
             if (wt.getWindpowerstationId().contains("GDC")) {   //测风塔70米风速
-                pointIdFS = windturbinetestingpointnewMap.get(ContantXk.FCCFTFS70).getNemCode();
+
+                if (windturbinetestingpointnewMap.containsKey(ContantXk.FCCFTFS70)) {
+                    ProBasicEquipmentPoint point = windturbinetestingpointnewMap.get(ContantXk.FCCFTFS70);
+
+                    if (StringUtils.notEmp(point.getNemCode()) && !point.getNemCode().equals(initialcode)) {
+                        pointIdFS = windturbinetestingpointnewMap.get(ContantXk.FCCFTFS70).getNemCode();
+                    } else {
+                        pointIdFS = windturbinetestingpointnewMap.get(ContantXk.CJ_SSFS).getNemCode();
+                    }
+                } else {
+                    pointIdFS = windturbinetestingpointnewMap.get(ContantXk.CJ_SSFS).getNemCode();
+                }
+
 
             } else {   //设备风速
                 pointIdFS = windturbinetestingpointnewMap.get(ContantXk.CJ_SSFS).getNemCode();
@@ -156,6 +179,9 @@ public class PowerCurveFittingService {
             curveFittingBuilder(begin1, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
             //拟合日功率曲线
             curveFittingBuilder(begin2, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), key);
+            //拟合年功率曲线
+            curveFittingBuilder(begin3, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
+
         }
 
         for (String key : windMap.keySet()) {
@@ -165,21 +191,28 @@ public class PowerCurveFittingService {
                 modelpower = windturbineCapacity.get(key);
             }
 
+//            //年的上月
+            List<PointVo> yearLastMonthPoints = new ArrayList<PointVo>();
+//            //年的去年同期
+            List<PointVo> yearLastYearPoints = new ArrayList<PointVo>();
+//            //年标准功率
+            List<PointVo> yearStandardPoints = new ArrayList<PointVo>();
+
 
             //月的上月
-            List<PointVo> monthPoints = new ArrayList<PointVo>();
+            List<PointVo> monthLastMonthPoints = new ArrayList<PointVo>();
             //月的去年同期
-            List<PointVo> yearPoints = new ArrayList<PointVo>();
+            List<PointVo> monthLastYearPoints = new ArrayList<PointVo>();
             //月标准功率
-            List<PointVo> standardPoints = new ArrayList<PointVo>();
+            List<PointVo> monthStandardPoints = new ArrayList<PointVo>();
 
 
             //日的昨天
-            List<PointVo> monthdayPoints = new ArrayList<PointVo>();
+            List<PointVo> dayLastMonthPoints = new ArrayList<PointVo>();
             //日的去年同期
-            List<PointVo> yeardayPoints = new ArrayList<PointVo>();
+            List<PointVo> dayLastYearPoints = new ArrayList<PointVo>();
             //日标准功率
-            List<PointVo> standarddayPoints = new ArrayList<PointVo>();
+            List<PointVo> dayStandardPoints = new ArrayList<PointVo>();
 
             //保证功率
             List<PointVo> bzglpowerPoints = new ArrayList<PointVo>();
@@ -189,8 +222,8 @@ public class PowerCurveFittingService {
                 String standardId = CacheContext.wtstandardmap.get(key);
                 if (StringUtils.notEmp(standardId)) {
                     if (windMap.containsKey(key)) {
-                        standardPoints = windMap.get(standardId).getYsjglPoints();
-                        standarddayPoints = windMap.get(standardId).getRsjglPoints();
+                        monthStandardPoints = windMap.get(standardId).getYsjglPoints();
+                        dayStandardPoints = windMap.get(standardId).getRsjglPoints();
                     }
                 }
             }
@@ -204,36 +237,48 @@ public class PowerCurveFittingService {
             String stringyear3 = String.valueOf(year3);
             String stringmonth3 = String.valueOf(month3);
 
+            /*********************************************年曲线偏差上个月和上一年记录**********************************************************/
+
+
+            List<ProEconWtCurveFittingYear> wcfyls = proEconWtCurveFittingYearService.list().stream().filter(i -> i.getWindturbineId().equals(key) &&
+                    i.getYear().equals(stringyear3)).collect(Collectors.toList());
+
+            //与轶总的原始代码对比不一致,新增代码修改测试
+            yearBuildPoints(wcfyls, yearLastMonthPoints);
+            yearLastYearPoints = yearLastMonthPoints;
+
+/*********************************************年曲线偏差上个月和上一年记录**********************************************************/
+/*********************************************月曲线偏差上个月和上一年记录**********************************************************/
 
             List<ProEconWtCurveFittingMonth> wcfmls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(key) &&
                     i.getYear().equals(stringyear2) && i.getMonth().equals(stringmonth2)).sorted(Comparator.comparing(ProEconWtCurveFittingMonth::getSpeed)).collect(Collectors.toList());
 
+            monthBuildPoints(wcfmls, monthLastMonthPoints);
 
-            monthBuildPoints(wcfmls, monthPoints);
             wcfmls = null;
-
             wcfmls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(key) &&
                     i.getYear().equals(stringyear3) && i.getMonth().equals(stringmonth3)).collect(Collectors.toList());
             wcfmls.sort(Comparator.comparing(ProEconWtCurveFittingMonth::getSpeed));
 
-            monthBuildPoints(wcfmls, yearPoints);
-
+            monthBuildPoints(wcfmls, monthLastYearPoints);
+/*********************************************月曲线偏差上个月和上一年记录**********************************************************/
+/*********************************************日曲线偏差上个月和上一年记录**********************************************************/
             Date d1 = DateUtils.addDays(current, -1);
-            Date d2 = DateUtils.addDays(current, -1);
+            Date d2 = DateUtils.addYears(current, -1);
 
             List<ProEconWtCurveFitting> wcfls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(key) &&
                     i.getRecordDate().compareTo(d1) == 0).collect(Collectors.toList());
 
 
-            dayBuildPoints(wcfls, monthdayPoints);
+            dayBuildPoints(wcfls, dayLastMonthPoints);
 
             wcfls = null;
             wcfls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(key) &&
                     i.getRecordDate().compareTo(d2) == 0).collect(Collectors.toList());
 
-
-            dayBuildPoints(wcfls, monthPoints);
-
+            //与轶总的原始代码对比不一致,临时修改测试
+            dayBuildPoints(wcfls, dayLastMonthPoints);
+/*********************************************日曲线偏差上个月和上一年记录**********************************************************/
             if (CacheContext.wtmap.containsKey(key)) {
                 String modelid = CacheContext.wtmap.get(key).getModelId();
                 if (StringUtils.notEmp(modelid)) {
@@ -249,90 +294,128 @@ public class PowerCurveFittingService {
                     }
                 }
             }
+/*********************************************年曲线偏差记录**********************************************************/
 
+/*********************************************当年曲线偏差记录**********************************************************/
+            Optional<ProEconCurveFittYearMain> cfmyearo = proEconCurveFittYearMainService.list().stream().filter(i -> i.getWindturbineId().equals(key)
+                    && i.getYear().equals(stringyear)).findFirst();
+            ProEconCurveFittYearMain cfmyear = null;
+            if (cfmyearo.isPresent()) {
+                cfmyear = cfmyearo.get();
 
-            Optional<ProEconCurveFittMonthMain> cfmmo = proEconCurveFittMonthMainService.list().stream().filter(i -> i.getWindturbineId().equals(key)
+                QueryWrapper<ProEconCurveFittMonthMain> wrapper = new QueryWrapper<>();
+                wrapper.eq("id", cfmyear.getId());
+                proEconCurveFittMonthMainService.remove(wrapper);
+            }
+
+
+            cfmyear = new ProEconCurveFittYearMain();
+            cfmyear.setWindturbineId(key);
+            cfmyear.setYear(String.valueOf(year));
+
+
+            //年---实际/最优
+            cfmyear.setDeviationRate1((Double) pcl(windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), modelpower));
+            //年---实际/保证
+            cfmyear.setDeviationRate2((Double) pcl(windMap.get(key).getNsjglPoints(), bzglpowerPoints, modelpower));
+            //年---最优/保证
+            cfmyear.setDeviationRate3((Double) pcl(windMap.get(key).getNzyglPoints(), bzglpowerPoints, modelpower));
+            //年---实际/上月实际
+            cfmyear.setMonthDeviationRate((Double) pcl(windMap.get(key).getNsjglPoints(), yearLastMonthPoints, modelpower));
+            //年---实际/同期实际
+            cfmyear.setYearDeviationRate((Double) pcl(windMap.get(key).getNsjglPoints(), yearLastYearPoints, modelpower));
+            //年---实际/标杆实际
+            cfmyear.setStandardDeviationRate((Double) pcl(windMap.get(key).getNsjglPoints(), yearStandardPoints, modelpower));
+
+
+            proEconCurveFittYearMainService.save(cfmyear);
+
+/*********************************************当年曲线偏差记录**********************************************************/
+/*********************************************当月曲线偏差记录**********************************************************/
+            Optional<ProEconCurveFittMonthMain> cfmmontho = proEconCurveFittMonthMainService.list().stream().filter(i -> i.getWindturbineId().equals(key)
                     && i.getYear().equals(stringyear) && i.getMonth().equals(stringmonth)).findFirst();
-            ProEconCurveFittMonthMain cfmm = null;
-            if (cfmmo.isPresent()) {
-                cfmm = cfmmo.get();
+            ProEconCurveFittMonthMain cfmmonth = null;
+            if (cfmmontho.isPresent()) {
+                cfmmonth = cfmmontho.get();
 
                 QueryWrapper<ProEconCurveFittMonthMain> wrapper = new QueryWrapper<>();
-                wrapper.eq("id", cfmm.getId());
+                wrapper.eq("id", cfmmonth.getId());
                 proEconCurveFittMonthMainService.remove(wrapper);
             }
 
 
-            cfmm = new ProEconCurveFittMonthMain();
-            cfmm.setWindturbineId(key);
-            cfmm.setYear(String.valueOf(year));
-            cfmm.setMonth(String.valueOf(month));
+            cfmmonth = new ProEconCurveFittMonthMain();
+            cfmmonth.setWindturbineId(key);
+            cfmmonth.setYear(String.valueOf(year));
+            cfmmonth.setMonth(String.valueOf(month));
 
             //月---实际/最优
-            cfmm.setDeviationRate1((Double) pcl(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower));
+            cfmmonth.setDeviationRate1((Double) pcl(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower));
             //月---实际/保证
-            cfmm.setDeviationRate2((Double) pcl(windMap.get(key).getYsjglPoints(), bzglpowerPoints, modelpower));
+            cfmmonth.setDeviationRate2((Double) pcl(windMap.get(key).getYsjglPoints(), bzglpowerPoints, modelpower));
             //月---最优/保证
-            cfmm.setDeviationRate3((Double) pcl(windMap.get(key).getYzyglPoints(), bzglpowerPoints, modelpower));
+            cfmmonth.setDeviationRate3((Double) pcl(windMap.get(key).getYzyglPoints(), bzglpowerPoints, modelpower));
             //月---实际/上月实际
-            cfmm.setMonthDeviationRate((Double) pcl(windMap.get(key).getYsjglPoints(), monthPoints, modelpower));
+            cfmmonth.setMonthDeviationRate((Double) pcl(windMap.get(key).getYsjglPoints(), monthLastMonthPoints, modelpower));
             //月---实际/同期实际
-            cfmm.setYearDeviationRate((Double) pcl(windMap.get(key).getYsjglPoints(), yearPoints, modelpower));
+            cfmmonth.setYearDeviationRate((Double) pcl(windMap.get(key).getYsjglPoints(), monthLastYearPoints, modelpower));
             //月---实际/标杆实际
-            cfmm.setStandardDeviationRate((Double) pcl(windMap.get(key).getYsjglPoints(), standardPoints, modelpower));
+            cfmmonth.setStandardDeviationRate((Double) pcl(windMap.get(key).getYsjglPoints(), monthStandardPoints, modelpower));
 
 
-            proEconCurveFittMonthMainService.save(cfmm);
+            proEconCurveFittMonthMainService.save(cfmmonth);
 
-            Optional<ProEconCurveFittingMain> cfmo = proEconCurveFittingMainService.list().stream().filter(i -> i.getWindturbineId().equals(key)
+            /*********************************************当月曲线偏差记录**********************************************************/
+            /*********************************************当日曲线偏差记录**********************************************************/
+            Optional<ProEconCurveFittingMain> cfmdayo = proEconCurveFittingMainService.list().stream().filter(i -> i.getWindturbineId().equals(key)
                     && i.getRecordDate().compareTo(current) == 0).findFirst();
-            ProEconCurveFittingMain cfm = null;
+            ProEconCurveFittingMain cfmday = null;
 
-            if (cfmo.isPresent()) {
-                cfm = cfmo.get();
+            if (cfmdayo.isPresent()) {
+                cfmday = cfmdayo.get();
                 QueryWrapper<ProEconCurveFittingMain> wrapper = new QueryWrapper<>();
-                wrapper.eq("id", cfm.getId());
+                wrapper.eq("id", cfmday.getId());
                 proEconCurveFittingMainService.remove(wrapper);
             }
 
-            cfm = new ProEconCurveFittingMain();
-            cfm.setWindturbineId(key);
-            cfm.setRecordDate(current);
+            cfmday = new ProEconCurveFittingMain();
+            cfmday.setWindturbineId(key);
+            cfmday.setRecordDate(current);
 
 
             //日---实际/最优
-            cfm.setDeviationRate1((Double) pcl(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower));
+            cfmday.setDeviationRate1((Double) pcl(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower));
             //日---实际/保证
-            cfm.setDeviationRate2((Double) pcl(windMap.get(key).getRsjglPoints(), bzglpowerPoints, modelpower));
+            cfmday.setDeviationRate2((Double) pcl(windMap.get(key).getRsjglPoints(), bzglpowerPoints, modelpower));
             //日---最优/保证
-            cfm.setDeviationRate3((Double) pcl(windMap.get(key).getRzyglPoints(), bzglpowerPoints, modelpower));
+            cfmday.setDeviationRate3((Double) pcl(windMap.get(key).getRzyglPoints(), bzglpowerPoints, modelpower));
             //日---实际/上日实际
-            cfm.setMonthDeviationRate((Double) pcl(windMap.get(key).getRsjglPoints(), monthdayPoints, modelpower));
+            cfmday.setMonthDeviationRate((Double) pcl(windMap.get(key).getRsjglPoints(), dayLastMonthPoints, modelpower));
             //日---实际/同期实际
-            cfm.setYearDeviationRate((Double) pcl(windMap.get(key).getRsjglPoints(), yeardayPoints, modelpower));
+            cfmday.setYearDeviationRate((Double) pcl(windMap.get(key).getRsjglPoints(), dayLastYearPoints, modelpower));
             //日---实际/标杆实际
-            cfm.setStandardDeviationRate((Double) pcl(windMap.get(key).getRsjglPoints(), standarddayPoints, modelpower));
+            cfmday.setStandardDeviationRate((Double) pcl(windMap.get(key).getRsjglPoints(), dayStandardPoints, modelpower));
 
 
-            proEconCurveFittingMainService.save(cfm);
-
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 3, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 4, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 5, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 6, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 7, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 8, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 9, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 10, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 11, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 12, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
-            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 13, bzglpowerPoints, monthPoints, yearPoints, standardPoints, monthdayPoints, yeardayPoints, standarddayPoints);
+            proEconCurveFittingMainService.save(cfmday);
+            /*********************************************当日曲线偏差记录**********************************************************/
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 3, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 4, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 5, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 6, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 7, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 8, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 9, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 10, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 11, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 12, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
+            pLCBuild(key, stringyear, stringmonth, current, windMap, modelpower, 13, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
 
 
             if (insertType == 0) {
-                insertPoints(current, stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), key);
+                insertPoints(current, stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
             } else {
-                insertPoints2(current, stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), key);
+                insertPoints2(current, stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
             }
             logger.info(key);
 //
@@ -345,46 +428,86 @@ public class PowerCurveFittingService {
     }
 
     public void pLCBuild(String key, String stringyear, String stringmonth, Date current, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
-                         List<PointVo> bzglpowerPoints, List<PointVo> monthPoints, List<PointVo> yearPoints, List<PointVo> standardPoints, List<PointVo> monthdayPoints, List<PointVo> yeardayPoints, List<PointVo> standarddayPoints) {
+                         List<PointVo> bzglpowerPoints, List<PointVo> monthLastMonthPoints, List<PointVo> monthLastYearPoints, List<PointVo> monthStandardPoints,
+                         List<PointVo> dayLastMonthPoints, List<PointVo> dayLastYearPoints, List<PointVo> dayStandardPoints,
+                         List<PointVo> yearLastMonthPoints, List<PointVo> yearLastYearPoints, List<PointVo> yearStandardPoints) {
 
         String speedStr = String.valueOf(speed);
 
+        /*********************************************当年曲线偏差子表记录**********************************************************/
+
+        Optional<ProEconCurveFittYearSub> cfmsyearo = proEconCurveFittYearSubService.list().stream().filter(i -> i.getWindturbineId().equals(key)
+                && i.getYear().equals(stringyear) && i.getSpeed().equals(speedStr)).findFirst();
+        ProEconCurveFittYearSub cfmsyear = null;
+
+        if (cfmsyearo.isPresent()) {
+            cfmsyear = cfmsyearo.get();
 
-        Optional<ProEconCurveFittMonthSub> cfmmso = proEconCurveFittMonthSubService.list().stream().filter(i -> i.getWindturbineId().equals(key)
+            QueryWrapper<ProEconCurveFittYearSub> wrapper = new QueryWrapper<>();
+            wrapper.eq("id", cfmsyear.getId());
+            proEconCurveFittYearSubService.remove(wrapper);
+        }
+
+        cfmsyear = new ProEconCurveFittYearSub();
+        cfmsyear.setWindturbineId(key);
+        cfmsyear.setYear(stringyear);
+        cfmsyear.setSpeed(String.valueOf(speed));
+
+        proEconCurveFittYearSubService.save(cfmsyear);
+
+        //年---实际/最优
+        cfmsyear.setDeviationRate1((Double) pcl2(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower, speed));
+        //年---实际/保证
+        cfmsyear.setDeviationRate2((Double) pcl2(windMap.get(key).getYsjglPoints(), bzglpowerPoints, modelpower, speed));
+        //年---最优/保证
+        cfmsyear.setDeviationRate3((Double) pcl2(windMap.get(key).getYzyglPoints(), bzglpowerPoints, modelpower, speed));
+        //年---实际/上月实际
+        cfmsyear.setMonthDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthLastMonthPoints, modelpower, speed));
+        //年---实际/同期实际
+        cfmsyear.setYearDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthLastYearPoints, modelpower, speed));
+        //年---实际/标杆实际
+        cfmsyear.setStandardDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthStandardPoints, modelpower, speed));
+
+        proEconCurveFittYearSubService.save(cfmsyear);
+/*********************************************当年曲线偏差子表记录**********************************************************/
+/*********************************************当月曲线偏差子表记录**********************************************************/
+
+        Optional<ProEconCurveFittMonthSub> cfmsmontho = proEconCurveFittMonthSubService.list().stream().filter(i -> i.getWindturbineId().equals(key)
                 && i.getYear().equals(stringyear) && i.getMonth().equals(stringmonth) && i.getSpeed().equals(speedStr)).findFirst();
-        ProEconCurveFittMonthSub cfmms = null;
+        ProEconCurveFittMonthSub cfmsmonth = null;
 
-        if (cfmmso.isPresent()) {
-            cfmms = cfmmso.get();
+        if (cfmsmontho.isPresent()) {
+            cfmsmonth = cfmsmontho.get();
 
             QueryWrapper<ProEconCurveFittMonthSub> wrapper = new QueryWrapper<>();
-            wrapper.eq("id", cfmms.getId());
+            wrapper.eq("id", cfmsmonth.getId());
             proEconCurveFittMonthSubService.remove(wrapper);
         }
 
-        cfmms = new ProEconCurveFittMonthSub();
-        cfmms.setWindturbineId(key);
-        cfmms.setYear(stringyear);
-        cfmms.setMonth(stringmonth);
-        cfmms.setSpeed(String.valueOf(speed));
+        cfmsmonth = new ProEconCurveFittMonthSub();
+        cfmsmonth.setWindturbineId(key);
+        cfmsmonth.setYear(stringyear);
+        cfmsmonth.setMonth(stringmonth);
+        cfmsmonth.setSpeed(String.valueOf(speed));
 
-        proEconCurveFittMonthSubService.save(cfmms);
+        proEconCurveFittMonthSubService.save(cfmsmonth);
 
         //月---实际/最优
-        cfmms.setDeviationRate1((Double) pcl2(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower, speed));
+        cfmsmonth.setDeviationRate1((Double) pcl2(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower, speed));
         //月---实际/保证
-        cfmms.setDeviationRate2((Double) pcl2(windMap.get(key).getYsjglPoints(), bzglpowerPoints, modelpower, speed));
+        cfmsmonth.setDeviationRate2((Double) pcl2(windMap.get(key).getYsjglPoints(), bzglpowerPoints, modelpower, speed));
         //月---最优/保证
-        cfmms.setDeviationRate3((Double) pcl2(windMap.get(key).getYzyglPoints(), bzglpowerPoints, modelpower, speed));
+        cfmsmonth.setDeviationRate3((Double) pcl2(windMap.get(key).getYzyglPoints(), bzglpowerPoints, modelpower, speed));
         //月---实际/上月实际
-        cfmms.setMonthDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthPoints, modelpower, speed));
+        cfmsmonth.setMonthDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthLastMonthPoints, modelpower, speed));
         //月---实际/同期实际
-        cfmms.setYearDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), yearPoints, modelpower, speed));
+        cfmsmonth.setYearDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthLastYearPoints, modelpower, speed));
         //月---实际/标杆实际
-        cfmms.setStandardDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), standardPoints, modelpower, speed));
-
-        proEconCurveFittMonthSubService.save(cfmms);
+        cfmsmonth.setStandardDeviationRate((Double) pcl2(windMap.get(key).getYsjglPoints(), monthStandardPoints, modelpower, speed));
 
+        proEconCurveFittMonthSubService.save(cfmsmonth);
+/*********************************************当月曲线偏差子表记录**********************************************************/
+/*********************************************当日曲线偏差子表记录**********************************************************/
         Optional<ProEconCurveFittingSub> cfmso = proEconCurveFittingSubService.list().stream().filter(i -> i.getWindturbineId().equals(key)
                 && i.getRecordDate().compareTo(current) == 0 && i.getSpeed().equals(speedStr)).findFirst();
         ProEconCurveFittingSub cfms = null;
@@ -409,28 +532,95 @@ public class PowerCurveFittingService {
         //日---最优/保证
         cfms.setDeviationRate3((Double) pcl2(windMap.get(key).getRzyglPoints(), bzglpowerPoints, modelpower, speed));
         //日---实际/上日实际
-        cfms.setMonthDeviationRate((Double) pcl2(windMap.get(key).getRsjglPoints(), monthdayPoints, modelpower, speed));
+        cfms.setMonthDeviationRate((Double) pcl2(windMap.get(key).getRsjglPoints(), dayLastMonthPoints, modelpower, speed));
         //日---实际/同期实际
-        cfms.setYearDeviationRate((Double) pcl2(windMap.get(key).getRsjglPoints(), yeardayPoints, modelpower, speed));
+        cfms.setYearDeviationRate((Double) pcl2(windMap.get(key).getRsjglPoints(), dayLastYearPoints, modelpower, speed));
         //日---实际/标杆实际
-        cfms.setStandardDeviationRate((Double) pcl2(windMap.get(key).getRsjglPoints(), standarddayPoints, modelpower, speed));
+        cfms.setStandardDeviationRate((Double) pcl2(windMap.get(key).getRsjglPoints(), dayStandardPoints, modelpower, speed));
 
         proEconCurveFittingSubService.save(cfms);
+/*********************************************当日曲线偏差子表记录**********************************************************/
     }
 
 
-    private void insertPoints(Date current, String year, String month, List<PointVo> pointsF1, List<PointVo> pointsFF1, List<PointVo> pointsF2, List<PointVo> pointsFF2, String windturbineId) {
+    private void insertPoints(Date current, String year, String month, List<PointVo> monthSjglls, List<PointVo> monthZyglls, List<PointVo> daySjglls, List<PointVo> dayZyglls, List<PointVo> yearSjglls, List<PointVo> yearZyglls, String windturbineId) {
+        /*********************************************当年曲线偏差记录**********************************************************/
+        List<Integer> wtcfmyearidls = proEconWtCurveFittingYearService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
+                i.getYear().equals(year)).map(i -> i.getId()).collect(Collectors.toList());
+
+        for (int i = 0; i < wtcfmyearidls.size(); i++) {
+            proEconWtCurveFittingYearService.removeByIds(wtcfmyearidls);
+        }
+
+        if (yearSjglls.size() == yearZyglls.size()) {
+            for (int i = 0; i < yearSjglls.size(); i++) {
+                ProEconWtCurveFittingYear item = new ProEconWtCurveFittingYear();
+
+                item.setWindturbineId(windturbineId);
+                if (CacheContext.wtmap.containsKey(windturbineId)) {
+                    ProBasicEquipment wt = CacheContext.wtmap.get(windturbineId);
+                    if (wt.getWindpowerstationId().contains("GDC")) {
+                        continue;
+                        // item.SPEED = Double.Truncate((Double)pointsF1[i].X);
+                    } else {
+                        item.setSpeed(yearSjglls.get(i).getX());
+
+                    }
+                    item.setActualPower(yearSjglls.get(i).getY());
+                    item.setOptimalPower(yearZyglls.get(i).getY());
+                    item.setYear(String.valueOf(year));
+
+                    proEconWtCurveFittingYearService.save(item);
+                }
+
+            }
+        } else {
+            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, yearSjglls.size(), yearZyglls.size()));
+
+
+            for (int i = 0; i < yearSjglls.size(); i++) {
+                ProEconWtCurveFittingYear item = new ProEconWtCurveFittingYear();
+                item.setWindturbineId(windturbineId);
+                if (CacheContext.wtmap.containsKey(windturbineId)) {
+
+                    ProBasicEquipment wt = CacheContext.wtmap.get(windturbineId);
+                    if (wt.getWindpowerstationId().contains("GDC")) {
+                        continue;
+                        //item.SPEED = Double.Truncate((Double)pointsF1[i].X);
+                    } else {
+
+                        item.setSpeed(yearSjglls.get(i).getX());
+                    }
+                    item.setActualPower(yearSjglls.get(i).getY());
 
-        List<Integer> wtcfmidls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
+                    int finalI = i;
+                    OptionalDouble op = yearZyglls.stream().filter(x -> x.getX() == yearSjglls.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
+
+                    if (op.isPresent()) {
+                        item.setOptimalPower(op.getAsDouble());
+                    } else {
+                        item.setOptimalPower(0.0);
+                    }
+
+                    item.setYear(String.valueOf(year));
+
+                    proEconWtCurveFittingYearService.save(item);
+                }
+
+            }
+        }
+        /*********************************************当年曲线偏差记录**********************************************************/
+        /*********************************************当月曲线偏差记录**********************************************************/
+        List<Integer> wtcfmmonthidls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
                 i.getYear().equals(year) && i.getMonth().equals(month)).map(i -> i.getId()).collect(Collectors.toList());
 
 
-        for (int i = 0; i < wtcfmidls.size(); i++) {
-            proEconWtCurveFittingMonthService.removeByIds(wtcfmidls);
+        for (int i = 0; i < wtcfmmonthidls.size(); i++) {
+            proEconWtCurveFittingMonthService.removeByIds(wtcfmmonthidls);
         }
 
-        if (pointsF1.size() == pointsFF1.size()) {
-            for (int i = 0; i < pointsF1.size(); i++) {
+        if (monthSjglls.size() == monthZyglls.size()) {
+            for (int i = 0; i < monthSjglls.size(); i++) {
                 ProEconWtCurveFittingMonth item = new ProEconWtCurveFittingMonth();
 
                 item.setWindturbineId(windturbineId);
@@ -440,11 +630,11 @@ public class PowerCurveFittingService {
                         continue;
                         // item.SPEED = Double.Truncate((Double)pointsF1[i].X);
                     } else {
-                        item.setSpeed(pointsF1.get(i).getX());
+                        item.setSpeed(monthSjglls.get(i).getX());
 
                     }
-                    item.setActualPower(pointsF1.get(i).getY());
-                    item.setOptimalPower(pointsFF1.get(i).getY());
+                    item.setActualPower(monthSjglls.get(i).getY());
+                    item.setOptimalPower(monthZyglls.get(i).getY());
                     item.setYear(String.valueOf(year));
                     item.setMonth(String.valueOf(month));
 
@@ -453,10 +643,10 @@ public class PowerCurveFittingService {
 
             }
         } else {
-            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, pointsF1.size(), pointsFF1.size()));
+            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, monthSjglls.size(), monthZyglls.size()));
 
 
-            for (int i = 0; i < pointsF1.size(); i++) {
+            for (int i = 0; i < monthSjglls.size(); i++) {
                 ProEconWtCurveFittingMonth item = new ProEconWtCurveFittingMonth();
                 item.setWindturbineId(windturbineId);
                 if (CacheContext.wtmap.containsKey(windturbineId)) {
@@ -467,12 +657,12 @@ public class PowerCurveFittingService {
                         //item.SPEED = Double.Truncate((Double)pointsF1[i].X);
                     } else {
 
-                        item.setSpeed(pointsF1.get(i).getX());
+                        item.setSpeed(monthSjglls.get(i).getX());
                     }
-                    item.setActualPower(pointsF1.get(i).getY());
+                    item.setActualPower(monthSjglls.get(i).getY());
 
                     int finalI = i;
-                    OptionalDouble op = pointsFF1.stream().filter(x -> x.getX() == pointsF1.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
+                    OptionalDouble op = monthZyglls.stream().filter(x -> x.getX() == monthSjglls.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
 
                     if (op.isPresent()) {
                         item.setOptimalPower(op.getAsDouble());
@@ -488,8 +678,8 @@ public class PowerCurveFittingService {
 
             }
         }
-
-
+        /*********************************************当月曲线偏差记录**********************************************************/
+        /*********************************************当日曲线偏差记录**********************************************************/
         List<Integer> wtcfidls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
                 i.getRecordDate().compareTo(current) == 0).map(ProEconWtCurveFitting::getId).collect(Collectors.toList());
 
@@ -498,8 +688,8 @@ public class PowerCurveFittingService {
             proEconWtCurveFittingService.removeByIds(wtcfidls);
         }
 
-        if (pointsF2.size() == pointsFF2.size()) {
-            for (int i = 0; i < pointsF2.size(); i++) {
+        if (daySjglls.size() == dayZyglls.size()) {
+            for (int i = 0; i < daySjglls.size(); i++) {
                 ProEconWtCurveFitting item = new ProEconWtCurveFitting();
                 item.setWindturbineId(windturbineId);
 
@@ -509,17 +699,17 @@ public class PowerCurveFittingService {
                         continue;
                         // item.SPEED = Double.Truncate((Double)pointsF2[i].X);
                     } else {
-                        boolean l = String.valueOf(pointsF2.get(i).getX()).contains(".");
+                        boolean l = String.valueOf(daySjglls.get(i).getX()).contains(".");
                         if (l) {
                             continue;
                         }
-                        item.setSpeed(pointsF2.get(i).getX());
+                        item.setSpeed(daySjglls.get(i).getX());
 
                     }
 
 
-                    item.setActualPower(pointsF2.get(i).getY());
-                    item.setOptimalPower(pointsFF2.get(i).getY());
+                    item.setActualPower(daySjglls.get(i).getY());
+                    item.setOptimalPower(dayZyglls.get(i).getY());
                     item.setRecordDate(current);
 
                     proEconWtCurveFittingService.save(item);
@@ -528,9 +718,9 @@ public class PowerCurveFittingService {
 
             }
         } else {
-            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, pointsF2.size(), pointsFF2.size()));
+            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, daySjglls.size(), dayZyglls.size()));
 
-            for (int i = 0; i < pointsF2.size(); i++) {
+            for (int i = 0; i < daySjglls.size(); i++) {
                 ProEconWtCurveFitting item = new ProEconWtCurveFitting();
                 item.setWindturbineId(windturbineId);
 
@@ -540,16 +730,16 @@ public class PowerCurveFittingService {
                         continue;
                         //item.SPEED = Double.Truncate((Double)pointsF2[i].X);
                     } else {
-                        boolean l = String.valueOf(pointsF2.get(i).getX()).contains(".");
+                        boolean l = String.valueOf(daySjglls.get(i).getX()).contains(".");
                         if (l) {
                             continue;
                         }
-                        item.setSpeed(pointsF2.get(i).getX());
+                        item.setSpeed(daySjglls.get(i).getX());
                     }
 
 
                     int finalI = i;
-                    OptionalDouble op = pointsFF2.stream().filter(x -> x.getX() == pointsF2.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
+                    OptionalDouble op = dayZyglls.stream().filter(x -> x.getX() == daySjglls.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
 
                     if (op.isPresent()) {
                         item.setOptimalPower(op.getAsDouble());
@@ -557,17 +747,18 @@ public class PowerCurveFittingService {
                         item.setOptimalPower(0.0);
                     }
 
-                    item.setActualPower(pointsF2.get(i).getY());
+                    item.setActualPower(daySjglls.get(i).getY());
                     item.setRecordDate(current);
                     proEconWtCurveFittingService.save(item);
                 }
 
             }
+            /*********************************************当日曲线偏差记录**********************************************************/
         }
     }
 
 
-    private void insertPoints2(Date current, String year, String month, List<PointVo> pointsF1, List<PointVo> pointsFF1, List<PointVo> pointsF2, List<PointVo> pointsFF2, String windturbineId) {
+    private void insertPoints2(Date current, String year, String month, List<PointVo> monthSjglls, List<PointVo> monthZyglls, List<PointVo> daySjglls, List<PointVo> dayZyglls, List<PointVo> yearSjglls, List<PointVo> yearZyglls, String windturbineId) {
 
 
         List<Integer> wtpcfidls = proEconWtPowerCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId)).map(i -> i.getId()).collect(Collectors.toList());
@@ -577,8 +768,8 @@ public class PowerCurveFittingService {
             proEconWtPowerCurveFittingService.removeByIds(wtpcfidls);
         }
 
-        if (pointsF1.size() == pointsFF1.size()) {
-            for (int i = 0; i < pointsF1.size(); i++) {
+        if (monthSjglls.size() == monthZyglls.size()) {
+            for (int i = 0; i < monthSjglls.size(); i++) {
                 ProEconWtPowerCurveFitting item = new ProEconWtPowerCurveFitting();
 
                 item.setWindturbineId(windturbineId);
@@ -590,16 +781,16 @@ public class PowerCurveFittingService {
                         continue;
                         // item.SPEED = Double.Truncate((Double)pointsF1[i].X);
                     } else {
-                        boolean l = String.valueOf(pointsF1.get(i).getX()).contains(".");
+                        boolean l = String.valueOf(monthSjglls.get(i).getX()).contains(".");
                         if (l) {
                             continue;
                         }
-                        item.setSpeed(pointsF1.get(i).getX());
+                        item.setSpeed(monthSjglls.get(i).getX());
                     }
 
 
-                    item.setActualPower(pointsF1.get(i).getY());
-                    item.setOptimalPower(pointsFF1.get(i).getY());
+                    item.setActualPower(monthSjglls.get(i).getY());
+                    item.setOptimalPower(monthZyglls.get(i).getY());
 
 
                     proEconWtPowerCurveFittingService.save(item);
@@ -608,9 +799,9 @@ public class PowerCurveFittingService {
             }
         } else {
 
-            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, pointsF1.size(), pointsFF1.size()));
+            logger.warn(String.format("下标不一致的风机编号:{0},实际功率:{1},最有功率:{2}", windturbineId, monthSjglls.size(), monthZyglls.size()));
 
-            for (int i = 0; i < pointsF1.size(); i++) {
+            for (int i = 0; i < monthSjglls.size(); i++) {
                 ProEconWtPowerCurveFitting item = new ProEconWtPowerCurveFitting();
 
                 item.setWindturbineId(windturbineId);
@@ -622,17 +813,17 @@ public class PowerCurveFittingService {
                         continue;
                         //item.SPEED = Double.Truncate((Double)pointsF1[i].X);
                     } else {
-                        boolean l = String.valueOf(pointsF1.get(i).getX()).contains(".");
+                        boolean l = String.valueOf(monthSjglls.get(i).getX()).contains(".");
                         if (l) {
                             continue;
                         }
-                        item.setSpeed(pointsF1.get(i).getX());
+                        item.setSpeed(monthSjglls.get(i).getX());
                     }
 
 
-                    item.setActualPower(pointsF1.get(i).getY());
+                    item.setActualPower(monthSjglls.get(i).getY());
                     int finalI = i;
-                    OptionalDouble op = pointsFF1.stream().filter(x -> x.getX() == pointsF1.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
+                    OptionalDouble op = monthZyglls.stream().filter(x -> x.getX() == monthSjglls.get(finalI).getX()).mapToDouble(x -> x.getY()).findFirst();
 
                     if (op.isPresent()) {
                         item.setOptimalPower(op.getAsDouble());
@@ -648,6 +839,16 @@ public class PowerCurveFittingService {
         }
     }
 
+    private void yearBuildPoints(List<ProEconWtCurveFittingYear> data, List<PointVo> points) {
+        if (data != null) {
+            for (int i = 0; i < data.size(); i++) {
+                PointVo point = new PointVo();
+                point.setX(data.get(i).getSpeed());
+                point.setY(data.get(i).getActualPower());
+                points.add(point);
+            }
+        }
+    }
 
     private void monthBuildPoints(List<ProEconWtCurveFittingMonth> data, List<PointVo> points) {
         if (data != null) {
@@ -713,7 +914,7 @@ public class PowerCurveFittingService {
             double max = (double) modelpower;
             for (PointVo point : points1) {
                 List<PointVo> item = points2.stream().filter(it -> it.getX() == point.getX()).collect(Collectors.toList());
-                if (item != null && item.size() > 0 && item.get(0).getX() >= minSpeed && item.get(0).getX() < maxSpeed){
+                if (item != null && item.size() > 0 && item.get(0).getX() >= minSpeed && item.get(0).getX() < maxSpeed) {
                     sum += Math.pow((point.getY() - item.get(0).getY()), 2);
                     count++;
                     pc += point.getY() - item.get(0).getY();
@@ -734,9 +935,8 @@ public class PowerCurveFittingService {
     }
 
     //todo-sl 添加数据筛选
-    private boolean filterData( PointData gl, PointData fs, PointData zt, double maxvalue, String windturbineId) throws Exception {
-        if(StringUtils.notEmp(gl))
-        {
+    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;
@@ -782,6 +982,7 @@ public class PowerCurveFittingService {
             for (PointData p : points) {
                 if (p.getPointValueInDouble() != 2) {
                     return false;
+
                 }
 
             }
@@ -806,6 +1007,18 @@ public class PowerCurveFittingService {
             }
         }
 
+        //欠发状态大于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();
+
+            if (qfzt > 2) {
+                return false;
+            }
+        }
         return true;
     }
 

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

@@ -40,8 +40,7 @@ public class ShutdownService {
     @Resource
     private IProEconInputOrOutputSpeedService proEconInputOrOutputSpeedService;
 
-    @Resource
-    private IProEconActivePowerDataService proEconActivePowerDataService;
+
 
 
     private static Logger logger = LoggerFactory.getLogger(ShutdownService.class);
@@ -196,8 +195,6 @@ public class ShutdownService {
                     }
 
 
-
-
             });
 
 

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


+ 49 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/service/WindPowerInfo6Service.java

@@ -7,10 +7,12 @@ import com.gyee.generation.model.auto.*;
 import com.gyee.generation.model.vo.Location;
 import com.gyee.generation.service.auto.*;
 import com.gyee.generation.util.DateUtils;
+import com.gyee.generation.util.StringUtils;
 import com.gyee.generation.util.realtimesource.IEdosUtil;
 import com.gyee.generation.util.statisticcs.Initial;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -30,7 +32,8 @@ public class WindPowerInfo6Service {
     private IProEconPowerstationInfoDay6Service proEconPowerstationInfoDay6Service;
 
 
-
+    @Value("${initialcode}")
+    private String initialcode;
 
     /**
      * 计算区域日信息
@@ -505,7 +508,46 @@ public class WindPowerInfo6Service {
         /*******************************************日信息统计*********************************************************/
         if(pointmap.containsKey(ContantXk.FCCFTFS70))
         {
+
             ProBasicPowerstationPoint point= pointmap.get(ContantXk.FCCFTFS70);
+            if(StringUtils.notEmp(point.getNemCode()) && !point.getNemCode().equals(initialcode))
+            {
+                List<PointData> pointls=edosUtil.getHistoryDatasSnap(point.getNemCode(), begin.getTime()/1000, end.getTime()/1000);
+                if(!pointls.isEmpty())
+                {
+                    DoubleSummaryStatistics summaryStatistics=pointls.stream().mapToDouble(n -> n.getPointValueInDouble()).summaryStatistics();
+                    //日最大风速
+                    pewp.setRzdfscft(summaryStatistics.getMax());
+                    //日最小风速
+                    pewp.setRzxfscft(summaryStatistics.getMin());
+                    //日平均风速
+                    pewp.setRpjfscft(summaryStatistics.getAverage());
+                }
+            }else
+            {
+                if(pointmap.containsKey(ContantXk.SSPJFS))
+                {
+                     point= pointmap.get(ContantXk.SSPJFS);
+                    List<PointData> pointls=edosUtil.getHistoryDatasSnap(point.getNemCode(), begin.getTime()/1000, end.getTime()/1000);
+                    if(!pointls.isEmpty())
+                    {
+                        DoubleSummaryStatistics summaryStatistics=pointls.stream().mapToDouble(n -> n.getPointValueInDouble()).summaryStatistics();
+                        //日最大风速
+                        pewp.setRzdfscft(summaryStatistics.getMax());
+                        //日最小风速
+                        pewp.setRzxfscft(summaryStatistics.getMin());
+                        //日平均风速
+                        pewp.setRpjfscft(summaryStatistics.getAverage());
+                    }
+
+                }
+            }
+
+
+        }else if(pointmap.containsKey(ContantXk.SSPJFS))
+        {
+            ProBasicPowerstationPoint point= pointmap.get(ContantXk.SSPJFS);
+
             List<PointData> pointls=edosUtil.getHistoryDatasSnap(point.getNemCode(), begin.getTime()/1000, end.getTime()/1000);
             if(!pointls.isEmpty())
             {
@@ -519,6 +561,12 @@ public class WindPowerInfo6Service {
             }
 
         }
+        {
+
+        }
+
+
+
 
         if(pointmap.containsKey(ContantXk.SSZGL))
         {

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.service.auto;
+
+import com.gyee.generation.model.auto.ProEconCurveFittYearMain;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 风电机年拟合曲线主表 服务类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface IProEconCurveFittYearMainService extends IService<ProEconCurveFittYearMain> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.gyee.generation.service.auto;
+
+import com.gyee.generation.model.auto.ProEconCurveFittYearSub;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 风电机年拟合曲线子表 服务类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface IProEconCurveFittYearSubService extends IService<ProEconCurveFittYearSub> {
+
+}

+ 16 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconStateTranRatesSub2Service.java

@@ -0,0 +1,16 @@
+package com.gyee.generation.service.auto;
+
+import com.gyee.generation.model.auto.ProEconStateTranRatesSub2;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 状态转换及时率子表2 服务类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface IProEconStateTranRatesSub2Service extends IService<ProEconStateTranRatesSub2> {
+
+}

+ 16 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconStateTranRatesSubService.java

@@ -0,0 +1,16 @@
+package com.gyee.generation.service.auto;
+
+import com.gyee.generation.model.auto.ProEconStateTranRatesSub;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 状态转换及时率子表 服务类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface IProEconStateTranRatesSubService extends IService<ProEconStateTranRatesSub> {
+
+}

+ 16 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/service/auto/IProEconWtCurveFittingYearService.java

@@ -0,0 +1,16 @@
+package com.gyee.generation.service.auto;
+
+import com.gyee.generation.model.auto.ProEconWtCurveFittingYear;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 风电机年拟合曲线 服务类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+public interface IProEconWtCurveFittingYearService extends IService<ProEconWtCurveFittingYear> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.gyee.generation.service.auto.impl;
+
+import com.gyee.generation.model.auto.ProEconCurveFittYearMain;
+import com.gyee.generation.mapper.auto.ProEconCurveFittYearMainMapper;
+import com.gyee.generation.service.auto.IProEconCurveFittYearMainService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 风电机年拟合曲线主表 服务实现类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Service
+public class ProEconCurveFittYearMainServiceImpl extends ServiceImpl<ProEconCurveFittYearMainMapper, ProEconCurveFittYearMain> implements IProEconCurveFittYearMainService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.gyee.generation.service.auto.impl;
+
+import com.gyee.generation.model.auto.ProEconCurveFittYearSub;
+import com.gyee.generation.mapper.auto.ProEconCurveFittYearSubMapper;
+import com.gyee.generation.service.auto.IProEconCurveFittYearSubService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 风电机年拟合曲线子表 服务实现类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Service
+public class ProEconCurveFittYearSubServiceImpl extends ServiceImpl<ProEconCurveFittYearSubMapper, ProEconCurveFittYearSub> implements IProEconCurveFittYearSubService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.gyee.generation.service.auto.impl;
+
+import com.gyee.generation.model.auto.ProEconStateTranRatesSub2;
+import com.gyee.generation.mapper.auto.ProEconStateTranRatesSub2Mapper;
+import com.gyee.generation.service.auto.IProEconStateTranRatesSub2Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 状态转换及时率子表2 服务实现类
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-07
+ */
+@Service
+public class ProEconStateTranRatesSub2ServiceImpl extends ServiceImpl<ProEconStateTranRatesSub2Mapper, ProEconStateTranRatesSub2> implements IProEconStateTranRatesSub2Service {
+
+}

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


Some files were not shown because too many files changed in this diff