Browse Source

修改配置

xieshengjie 3 years atrás
parent
commit
122c3a0878

+ 5 - 1
common/src/main/java/com/gyee/common/contant/Contant.java

@@ -15,5 +15,9 @@ public class Contant {
 
     public static String benchPoints = "RSDJZSDL,RSSTZSDL,RXNZSDL,RSQXZSDL,RGZZSDL,RSZZSDL,RJXZSDL,RLZZSDL,RQFZSDL,RXDZSDL,RWZZSDL,RTZZSDL";
 
-    public static String WP_RFDLB = "RFDLB";
+    public static String RFDLB = "RFDLB"; //日发电量(升压站)
+
+    public static String YFDLB = "";//月发电量(升压站)
+
+    public static String NFDLB = "";//年发电量(升压站)
 }

+ 4 - 0
histroy/benchmarking-histroy-new/pom.xml

@@ -68,6 +68,10 @@
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
 
 
         <dependency>

+ 91 - 0
histroy/benchmarking-histroy-new/src/main/resources/application-hb.yml

@@ -0,0 +1,91 @@
+server:
+  port: 8091
+  servlet:
+    context-path: /
+
+
+spring:
+  main:
+    allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
+  #redis集群
+  redis:
+    host: 192.168.2.202
+#    host: 10.83.68.94
+    port: 6379
+    timeout: 100000
+    #    集群环境打开下面注释,单机不需要打开
+    #    cluster:
+    #      集群信息
+    #      nodes: xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx
+    #      #默认值是5 一般当此值设置过大时,容易报:Too many Cluster redirections
+    #      maxRedirects: 3
+    password:
+    application:
+      name: test
+    jedis:
+      pool:
+        max-active: 8
+        min-idle: 0
+        max-idle: 8
+        max-wait: -1
+    database: 19
+  autoconfigure:
+    exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driver-class-name: oracle.jdbc.OracleDriver
+    #外网
+#    url: jdbc:oracle:thin:@10.83.68.165:1521:gdsj
+    url: jdbc:oracle:thin:@192.168.2.215:1521:gdsj
+    username: gdprod
+    password: gd123
+    oracle-schema=:
+    #    type: com.alibaba.druid.pool.DruidDataSource
+    #    url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=UTC
+    #    username: root
+    #    password: root
+    #    driver-class-name: com.mysql.jdbc.Driver
+    druid:
+      max-active: 20
+      initial-size: 1
+      min-idle: 3
+      max-wait: 60000
+      time-between-eviction-runs-millis: 60000
+      min-evictable-idle-time-millis: 300000
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+  servlet:
+    multipart:
+      # 开启 multipart 上传功能
+      enabled: true
+      # 文件写入磁盘的阈值
+      file-size-threshold: 2KB
+      # 最大文件大小
+      max-file-size: 200MB
+      # 最大请求大小
+      max-request-size: 215MB
+
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+    auto-mapping-behavior: full
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  mapper-locations: classpath*:mapper/**/*Mapper.xml
+  global-config:
+    # 逻辑删除配置
+    db-config:
+      id-type: auto
+      # 删除前
+      logic-not-delete-value: 1
+      # 删除后
+      logic-delete-value: 0
+logging:
+  level:
+    root: info
+    com.example: debug
+
+
+golden:
+  baseURL: http://192.168.2.205:8011/ts
+

+ 88 - 0
histroy/benchmarking-histroy-new/src/main/resources/application-jn.yml

@@ -0,0 +1,88 @@
+server:
+  port: 8091
+  servlet:
+    context-path: /
+
+
+spring:
+  main:
+    allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
+  #redis集群
+  redis:
+    host: 10.8.3.155
+    port: 6379
+    timeout: 100000
+    #    集群环境打开下面注释,单机不需要打开
+    #    cluster:
+    #      集群信息
+    #      nodes: xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx
+    #      #默认值是5 一般当此值设置过大时,容易报:Too many Cluster redirections
+    #      maxRedirects: 3
+    password:
+    application:
+      name: test
+    jedis:
+      pool:
+        max-active: 8
+        min-idle: 0
+        max-idle: 8
+        max-wait: -1
+    database: 19
+  autoconfigure:
+    exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driver-class-name: org.postgresql.Driver
+    url: jdbc:postgresql://10.8.3.151:5432/wisdom
+    username: postgres
+    password:
+    oracle-schema=:
+    #    type: com.alibaba.druid.pool.DruidDataSource
+    #    url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=UTC
+    #    username: root
+    #    password: root
+    #    driver-class-name: com.mysql.jdbc.Driver
+    druid:
+      max-active: 20
+      initial-size: 1
+      min-idle: 3
+      max-wait: 60000
+      time-between-eviction-runs-millis: 60000
+      min-evictable-idle-time-millis: 300000
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+  servlet:
+    multipart:
+      # 开启 multipart 上传功能
+      enabled: true
+      # 文件写入磁盘的阈值
+      file-size-threshold: 2KB
+      # 最大文件大小
+      max-file-size: 200MB
+      # 最大请求大小
+      max-request-size: 215MB
+
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+    auto-mapping-behavior: full
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  mapper-locations: classpath*:mapper/**/*Mapper.xml
+  global-config:
+    # 逻辑删除配置
+    db-config:
+      id-type: auto
+      # 删除前
+      logic-not-delete-value: 1
+      # 删除后
+      logic-delete-value: 0
+logging:
+  level:
+    root: info
+    com.example: debug
+
+
+golden:
+  baseURL: http://192.168.2.205:8011/ts
+

+ 3 - 90
histroy/benchmarking-histroy-new/src/main/resources/application.yml

@@ -1,91 +1,4 @@
-server:
-  port: 8091
-  servlet:
-    context-path: /
-
-
 spring:
-  main:
-    allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
-  #redis集群
-  redis:
-    host: 192.168.2.202
-#    host: 10.83.68.94
-    port: 6379
-    timeout: 100000
-    #    集群环境打开下面注释,单机不需要打开
-    #    cluster:
-    #      集群信息
-    #      nodes: xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx
-    #      #默认值是5 一般当此值设置过大时,容易报:Too many Cluster redirections
-    #      maxRedirects: 3
-    password:
-    application:
-      name: test
-    jedis:
-      pool:
-        max-active: 8
-        min-idle: 0
-        max-idle: 8
-        max-wait: -1
-    database: 19
-  autoconfigure:
-    exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driver-class-name: oracle.jdbc.OracleDriver
-    #外网
-#    url: jdbc:oracle:thin:@10.83.68.165:1521:gdsj
-    url: jdbc:oracle:thin:@192.168.2.215:1521:gdsj
-    username: gdprod
-    password: gd123
-    oracle-schema=:
-    #    type: com.alibaba.druid.pool.DruidDataSource
-    #    url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=UTC
-    #    username: root
-    #    password: root
-    #    driver-class-name: com.mysql.jdbc.Driver
-    druid:
-      max-active: 20
-      initial-size: 1
-      min-idle: 3
-      max-wait: 60000
-      time-between-eviction-runs-millis: 60000
-      min-evictable-idle-time-millis: 300000
-      test-while-idle: true
-      test-on-borrow: false
-      test-on-return: false
-  servlet:
-    multipart:
-      # 开启 multipart 上传功能
-      enabled: true
-      # 文件写入磁盘的阈值
-      file-size-threshold: 2KB
-      # 最大文件大小
-      max-file-size: 200MB
-      # 最大请求大小
-      max-request-size: 215MB
-
-mybatis-plus:
-  configuration:
-    map-underscore-to-camel-case: true
-    auto-mapping-behavior: full
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-  mapper-locations: classpath*:mapper/**/*Mapper.xml
-  global-config:
-    # 逻辑删除配置
-    db-config:
-      id-type: auto
-      # 删除前
-      logic-not-delete-value: 1
-      # 删除后
-      logic-delete-value: 0
-logging:
-  level:
-    root: info
-    com.example: debug
-
-
-golden:
-  baseURL: http://192.168.2.205:8011/ts
-
+  profiles:
+    active: hb
+#    active: test

+ 6 - 0
pom.xml

@@ -29,6 +29,7 @@
     <mybatis.spring.boot.version>1.3.2</mybatis.spring.boot.version>
     <mybatis-plus.boot.starter.version>3.2.0</mybatis-plus.boot.starter.version>
     <mybatis-plus.generator.version>3.3.2</mybatis-plus.generator.version>
+    <pgsql.version>42.2.5</pgsql.version>
   </properties>
 
   <!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
@@ -99,6 +100,11 @@
         <artifactId>mybatis-plus-generator</artifactId>
         <version>${mybatis-plus.generator.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.postgresql</groupId>
+        <artifactId>postgresql</artifactId>
+        <version>${pgsql.version}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 

+ 9 - 7
realtime/generation-service/src/main/java/com/gyee/generation/init/CacheContext.java

@@ -1,6 +1,7 @@
 package com.gyee.generation.init;
 
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.gyee.generation.model.auto.*;
@@ -48,7 +49,8 @@ public class CacheContext implements CommandLineRunner {
     public static Map<String,List<Project>> wppromap = new HashMap<>();
     public static Map<String,List<Line>> prolinemap = new HashMap<>();
     public static Map<String, Map<String, Windturbinetestingpointnew>> wtpAimap = new HashMap<>();// 风电机测点AI表
-
+    public static Map<String,Map<String, Windpowerstationpointnew>> linepointmap =new HashMap<>();
+    public static Map<String,Map<String, Windpowerstationpointnew>> propointmap =new HashMap<>();
     public static Map<String,Map<String, Windpowerstationpointnew>> wppointmap =new HashMap<>();
     @Override
     public void run(String... args) throws Exception {
@@ -81,12 +83,12 @@ public class CacheContext implements CommandLineRunner {
         String wpString = redisService.get("PRODUCT-WP");
         wppointmap = JSONObject.parseObject(wpString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
         });
-//        String pjString = JSON.toJSONString(redisService.get("PJ"));
-//        pjPointmap = JSONObject.parseObject(pjString, new TypeReference<Map<String, Map<String, WindPowerStationTestingPoint2>>>() {
-//        });
-//        String lnString = JSON.toJSONString(redisService.get("LN"));
-//        lnPointmap = JSONObject.parseObject(lnString, new TypeReference<Map<String, Map<String, WindPowerStationTestingPoint2>>>() {
-//        });
+        String pjString = JSON.toJSONString(redisService.get("PRODUCT-PJ"));
+        propointmap = JSONObject.parseObject(pjString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
+        });
+        String lnString = JSON.toJSONString(redisService.get("PRODUCT-LN"));
+        linepointmap = JSONObject.parseObject(lnString, new TypeReference<Map<String, Map<String, Windpowerstationpointnew>>>() {
+        });
 
         String wtString = redisService.get("PRODUCT-WT");
         wtpAimap = JSONObject.parseObject(wtString, new TypeReference<Map<String, Map<String, Windturbinetestingpointnew>>>() {

+ 150 - 143
realtime/generation-service/src/main/java/com/gyee/generation/service/GenerationService.java

@@ -1,143 +1,150 @@
-//package com.gyee.generation.service;
-//
-//import com.gyee.common.model.PointData;
-//import com.gyee.common.util.DateUtils;
-//import com.gyee.generation.init.CacheContext;
-//import com.gyee.generation.model.auto.*;
-//import com.gyee.generation.util.realtimesource.EdosUtil;
-//import com.gyee.generation.util.realtimesource.IEdosUtil;
-//import org.springframework.stereotype.Service;
-//
-//import java.util.*;
-//import java.util.concurrent.atomic.AtomicReference;
-//
-///**
-// * @ClassName : GenerationService
-// * @Author : xieshengjie
-// * @Date: 2022/2/28 15:23
-// * @Description :
-// */
-//@Service
-//public class GenerationService {
-//
-//    private IEdosUtil edosUtil = new EdosUtil();
-//
-//    public void saveGenerationDatas(){
-//        List<Windpowerstation> wpls = CacheContext.wpls;
-//        Map<String, List<Project>> wppromap = CacheContext.wppromap;
-//        Map<String, List<Line>> prolinemap = CacheContext.prolinemap;
-//        List<Meterpoint> meterpoints = CacheContext.meterpoints;
-//        Map<String, Map<String, Windpowerstationpointnew>> wppointmap = CacheContext.wppointmap;
-//        Date samedayZero = DateUtils.getSamedayZero();
-//        Date monthFirstZero = DateUtils.getMonthFirstZero();
-//        Date yearFirstZero = DateUtils.getYearFirstZero();
-//        Date currentDate = DateUtils.getCurrentDate();
-//        wpls.stream().forEach(wp->{
-//            AtomicReference<Double> fcrfdl = new AtomicReference<>((double) 0);
-//            AtomicReference<Double> fcyfdl = new AtomicReference<>((double) 0);
-//            AtomicReference<Double> fcnfdl = new AtomicReference<>((double) 0);
-//            wppromap.get(wp.getId()).stream().forEach(project -> {
-//                AtomicReference<Double> qcrfdl = new AtomicReference<>(0.0);
-//                AtomicReference<Double> qcyfdl = new AtomicReference<>(0.0);
-//                AtomicReference<Double> qcnfdl = new AtomicReference<>(0.0);
-//                prolinemap.get(project.getId()).stream().forEach(line -> {
-//                    Optional<Meterpoint> optionalMeterpoint = meterpoints.stream().filter(me -> me.getUniformcode().equals("ZXYG") && me.getMetertype().equals("进线") && me.getMetersort().equals("主")).findFirst();
-//                    if (optionalMeterpoint.isPresent()){
-//                        String pointid = optionalMeterpoint.get().getId();
-//                        Double real = 0.0;
-//                        Double sameday = 0.0;
-//                        Double month = 0.0;
-//                        Double year = 0.0;
-//                        try {
-//                            real = edosUtil.getRealData(pointid).getPointValueInDouble();
-//                            Optional<PointData> dayFirst = edosUtil.getHistoryDatasSnap(pointid, samedayZero.getTime() / 1000, samedayZero.getTime() / 1000, 1l, null).stream().findFirst();
-//                            if (dayFirst.isPresent()){
-//                                sameday = dayFirst.get().getPointValueInDouble();
-//                            }
-//                            Optional<PointData> monthFirst = edosUtil.getHistoryDatasSnap(pointid, monthFirstZero.getTime() / 1000, monthFirstZero.getTime() / 1000, 1l, null).stream().findFirst();
-//                            if (monthFirst.isPresent()){
-//                                month = monthFirst.get().getPointValueInDouble();
-//                            }
-//                            Optional<PointData> yearFirst = edosUtil.getHistoryDatasSnap(pointid, yearFirstZero.getTime() / 1000, yearFirstZero.getTime() / 1000, 1l, null).stream().findFirst();
-//                            if (yearFirst.isPresent()){
-//                                year = yearFirst.get().getPointValueInDouble();
-//                            }
-//                            Double magnification = optionalMeterpoint.get().getMagnification();
-//                            double xlrfdl = (real - sameday) * magnification;
-//                            qcrfdl.updateAndGet(v -> new Double((double) (v + xlrfdl)));
-//                            PointData r = new PointData();
-//                            r.setPointTime(currentDate.getTime());
-//                            r.setPointValue(String.valueOf(xlrfdl));
-//                            r.setPointValueInDouble(xlrfdl);
-//                            r.setEdnaId();
-//                            r.setPointName();
-//
-//                            double xlyfdl = (real - month) * magnification;
-//                            qcyfdl.updateAndGet(v -> new Double((double) (v + xlyfdl)));
-//                            PointData y = new PointData();
-//                            y.setPointTime(currentDate.getTime());
-//                            y.setPointValue(String.valueOf(xlyfdl));
-//                            y.setPointValueInDouble(xlyfdl);
-//                            y.setEdnaId();
-//                            y.setPointName();
-//
-//                            double xlnfdl = (real - year) * magnification;
-//                            qcnfdl.updateAndGet(v -> new Double((double) (v + xlnfdl)));
-//                            PointData n = new PointData();
-//                            n.setPointTime(currentDate.getTime());
-//                            n.setPointValue(String.valueOf(xlnfdl));
-//                            n.setPointValueInDouble(xlnfdl);
-//                            n.setEdnaId();
-//                            n.setPointName();
-//                        } catch (Exception e) {
-//                            e.printStackTrace();
-//                        }
-//                    }
-//                });
-//                fcrfdl.updateAndGet(v -> new Double((double) (v + qcrfdl.get())));
-//                PointData r = new PointData();
-//                r.setPointTime(currentDate.getTime());
-//                r.setPointValue(String.valueOf(qcrfdl.get()));
-//                r.setPointValueInDouble(qcrfdl.get());
-//                r.setEdnaId();
-//                r.setPointName();
-//
-//                fcyfdl.updateAndGet(v -> new Double((double) (v + qcyfdl.get())));
-//                PointData y = new PointData();
-//                y.setPointTime(currentDate.getTime());
-//                y.setPointValue(String.valueOf(qcyfdl.get()));
-//                y.setPointValueInDouble(qcyfdl.get());
-//                y.setEdnaId();
-//                y.setPointName();
-//
-//                fcnfdl.updateAndGet(v -> new Double((double) (v + qcnfdl.get())));
-//                PointData n = new PointData();
-//                n.setPointTime(currentDate.getTime());
-//                n.setPointValue(String.valueOf(qcnfdl.get()));
-//                n.setPointValueInDouble(qcnfdl.get());
-//                n.setEdnaId();
-//                n.setPointName();
-//            });
-//            PointData r = new PointData();
-//            r.setPointTime(currentDate.getTime());
-//            r.setPointValue(String.valueOf(fcrfdl.get()));
-//            r.setPointValueInDouble(fcrfdl.get());
-//            r.setEdnaId();
-//            r.setPointName();
-//
-//            PointData y = new PointData();
-//            y.setPointTime(currentDate.getTime());
-//            y.setPointValue(String.valueOf(fcyfdl.get()));
-//            y.setPointValueInDouble(fcyfdl.get());
-//            y.setEdnaId();
-//            y.setPointName();
-//
-//            PointData n = new PointData();
-//            n.setPointTime(currentDate.getTime());
-//            n.setPointValue(String.valueOf(fcnfdl.get()));
-//            n.setPointValueInDouble(fcnfdl.get());
-//            n.setEdnaId();
-//            n.setPointName();
-//        });
-//    }
-//}
+package com.gyee.generation.service;
+
+import com.gyee.common.contant.Contant;
+import com.gyee.common.model.PointData;
+import com.gyee.common.util.DateUtils;
+import com.gyee.generation.init.CacheContext;
+import com.gyee.generation.model.auto.*;
+import com.gyee.generation.util.realtimesource.EdosUtil;
+import com.gyee.generation.util.realtimesource.IEdosUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * @ClassName : GenerationService
+ * @Author : xieshengjie
+ * @Date: 2022/2/28 15:23
+ * @Description :
+ */
+@Service
+public class GenerationService {
+
+    private IEdosUtil edosUtil = new EdosUtil();
+
+    public void saveGenerationDatas(){
+        List<Windpowerstation> wpls = CacheContext.wpls;
+        Map<String, List<Project>> wppromap = CacheContext.wppromap;
+        Map<String, List<Line>> prolinemap = CacheContext.prolinemap;
+        List<Meterpoint> meterpoints = CacheContext.meterpoints;
+        Map<String, Map<String, Windpowerstationpointnew>> wppointmap = CacheContext.wppointmap;
+        Map<String, Map<String, Windpowerstationpointnew>> linepointmap = CacheContext.linepointmap;
+        Map<String, Map<String, Windpowerstationpointnew>> propointmap = CacheContext.propointmap;
+        Date samedayZero = DateUtils.getSamedayZero();
+        Date monthFirstZero = DateUtils.getMonthFirstZero();
+        Date yearFirstZero = DateUtils.getYearFirstZero();
+        Date currentDate = DateUtils.getCurrentDate();
+        wpls.stream().forEach(wp->{
+            Map<String, Windpowerstationpointnew> wpmap = wppointmap.get(wp.getId());
+            AtomicReference<Double> fcrfdl = new AtomicReference<>((double) 0);
+            AtomicReference<Double> fcyfdl = new AtomicReference<>((double) 0);
+            AtomicReference<Double> fcnfdl = new AtomicReference<>((double) 0);
+            wppromap.get(wp.getId()).stream().forEach(project -> {
+                Map<String, Windpowerstationpointnew> projectmap = propointmap.get(project.getId());
+                AtomicReference<Double> qcrfdl = new AtomicReference<>(0.0);
+                AtomicReference<Double> qcyfdl = new AtomicReference<>(0.0);
+                AtomicReference<Double> qcnfdl = new AtomicReference<>(0.0);
+                prolinemap.get(project.getId()).stream().forEach(line -> {
+                    Map<String, Windpowerstationpointnew> linemap = linepointmap.get(line.getId());
+                    Optional<Meterpoint> optionalMeterpoint = meterpoints.stream().filter(me -> me.getUniformcode().equals("ZXYG") && me.getMetertype().equals("进线") && me.getMetersort().equals("主")).findFirst();
+                    if (optionalMeterpoint.isPresent()){
+                        String pointid = optionalMeterpoint.get().getId();
+                        Double real = 0.0;
+                        Double sameday = 0.0;
+                        Double month = 0.0;
+                        Double year = 0.0;
+                        try {
+                            real = edosUtil.getRealData(pointid).getPointValueInDouble();
+                            Optional<PointData> dayFirst = edosUtil.getHistoryDatasSnap(pointid, samedayZero.getTime() / 1000, samedayZero.getTime() / 1000, 1l, null).stream().findFirst();
+                            if (dayFirst.isPresent()){
+                                sameday = dayFirst.get().getPointValueInDouble();
+                            }
+                            Optional<PointData> monthFirst = edosUtil.getHistoryDatasSnap(pointid, monthFirstZero.getTime() / 1000, monthFirstZero.getTime() / 1000, 1l, null).stream().findFirst();
+                            if (monthFirst.isPresent()){
+                                month = monthFirst.get().getPointValueInDouble();
+                            }
+                            Optional<PointData> yearFirst = edosUtil.getHistoryDatasSnap(pointid, yearFirstZero.getTime() / 1000, yearFirstZero.getTime() / 1000, 1l, null).stream().findFirst();
+                            if (yearFirst.isPresent()){
+                                year = yearFirst.get().getPointValueInDouble();
+                            }
+                            Double magnification = optionalMeterpoint.get().getMagnification();
+                            double xlrfdl = (real - sameday) * magnification;
+                            qcrfdl.updateAndGet(v -> new Double((double) (v + xlrfdl)));
+                            //线路日发电量
+                            PointData r = new PointData();
+                            r.setPointTime(currentDate.getTime());
+                            r.setPointValue(String.valueOf(xlrfdl));
+                            r.setPointValueInDouble(xlrfdl);
+                            r.setEdnaId(linemap.get(Contant.RFDLB).getCode());
+                            r.setPointName(linemap.get(Contant.RFDLB).getName());
+                            //线路月发电量
+                            double xlyfdl = (real - month) * magnification;
+                            qcyfdl.updateAndGet(v -> new Double((double) (v + xlyfdl)));
+                            PointData y = new PointData();
+                            y.setPointTime(currentDate.getTime());
+                            y.setPointValue(String.valueOf(xlyfdl));
+                            y.setPointValueInDouble(xlyfdl);
+                            y.setEdnaId(linemap.get(Contant.YFDLB).getCode());
+                            y.setPointName(linemap.get(Contant.YFDLB).getName());
+                            //线路年发电量
+                            double xlnfdl = (real - year) * magnification;
+                            qcnfdl.updateAndGet(v -> new Double((double) (v + xlnfdl)));
+                            PointData n = new PointData();
+                            n.setPointTime(currentDate.getTime());
+                            n.setPointValue(String.valueOf(xlnfdl));
+                            n.setPointValueInDouble(xlnfdl);
+                            n.setEdnaId(linemap.get(Contant.NFDLB).getCode());
+                            n.setPointName(linemap.get(Contant.NFDLB).getName());
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                });
+                fcrfdl.updateAndGet(v -> new Double((double) (v + qcrfdl.get())));
+                PointData r = new PointData();
+                r.setPointTime(currentDate.getTime());
+                r.setPointValue(String.valueOf(qcrfdl.get()));
+                r.setPointValueInDouble(qcrfdl.get());
+                r.setEdnaId(projectmap.get(Contant.RFDLB).getCode());
+                r.setPointName(projectmap.get(Contant.RFDLB).getName());
+
+                fcyfdl.updateAndGet(v -> new Double((double) (v + qcyfdl.get())));
+                PointData y = new PointData();
+                y.setPointTime(currentDate.getTime());
+                y.setPointValue(String.valueOf(qcyfdl.get()));
+                y.setPointValueInDouble(qcyfdl.get());
+                y.setEdnaId(projectmap.get(Contant.YFDLB).getCode());
+                y.setPointName(projectmap.get(Contant.YFDLB).getName());
+
+                fcnfdl.updateAndGet(v -> new Double((double) (v + qcnfdl.get())));
+                PointData n = new PointData();
+                n.setPointTime(currentDate.getTime());
+                n.setPointValue(String.valueOf(qcnfdl.get()));
+                n.setPointValueInDouble(qcnfdl.get());
+                n.setEdnaId(projectmap.get(Contant.NFDLB).getCode());
+                n.setPointName(projectmap.get(Contant.NFDLB).getName());
+            });
+            PointData r = new PointData();
+            r.setPointTime(currentDate.getTime());
+            r.setPointValue(String.valueOf(fcrfdl.get()));
+            r.setPointValueInDouble(fcrfdl.get());
+            r.setEdnaId(wpmap.get(Contant.RFDLB).getCode());
+            r.setPointName(wpmap.get(Contant.RFDLB).getName());
+
+            PointData y = new PointData();
+            y.setPointTime(currentDate.getTime());
+            y.setPointValue(String.valueOf(fcyfdl.get()));
+            y.setPointValueInDouble(fcyfdl.get());
+            y.setEdnaId(wpmap.get(Contant.YFDLB).getCode());
+            y.setPointName(wpmap.get(Contant.YFDLB).getName());
+
+            PointData n = new PointData();
+            n.setPointTime(currentDate.getTime());
+            n.setPointValue(String.valueOf(fcnfdl.get()));
+            n.setPointValueInDouble(fcnfdl.get());
+            n.setEdnaId(wpmap.get(Contant.NFDLB).getCode());
+            n.setPointName(wpmap.get(Contant.NFDLB).getName());
+        });
+    }
+}