Parcourir la source

计算服务开发

xieshengjie il y a 2 ans
Parent
commit
88a5ddc56f

+ 69 - 68
realtime/generationXK-service/src/main/java/com/gyee/generation/config/XxlJobConfig.java

@@ -1,68 +1,69 @@
-//package com.gyee.generation.config;
-//
-//
-//import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.context.EnvironmentAware;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.context.annotation.PropertySource;
-//import org.springframework.core.env.Environment;
-//
-///**
-// * xxl-job config
-// *
-// * @author xuxueli 2017-04-28
-// */
-//
-//
-//@Configuration
-//@PropertySource("classpath:xxl-job-executor.properties")
-//public class XxlJobConfig implements EnvironmentAware {
-//    private Environment env;
-//
-//
-//    @Override
-//    public void setEnvironment(Environment environment) {
-//        this.env=environment;
-//    }
-//
-//    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
-//
-//
-//
-//    @Bean
-//    public XxlJobSpringExecutor xxlJobExecutor() {
-//    logger.info(">>>>>>>>>>> xxl-job config init.");
-//    XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
-//    xxlJobSpringExecutor.setAdminAddresses(env.getProperty("xxl.job.admin.addresses"));
-//    xxlJobSpringExecutor.setAppname(env.getProperty("xxl.job.executor.appname"));
-//    xxlJobSpringExecutor.setAddress(env.getProperty("xxl.job.executor.address"));
-//    xxlJobSpringExecutor.setIp(env.getProperty("xxl.job.executor.ip"));
-//    xxlJobSpringExecutor.setPort(Integer.parseInt(env.getProperty("xxl.job.executor.port")));
-//    xxlJobSpringExecutor.setAccessToken(env.getProperty("xxl.job.accessToken"));
-//    xxlJobSpringExecutor.setLogPath(env.getProperty("xxl.job.executor.logpath"));
-//    xxlJobSpringExecutor.setLogRetentionDays(Integer.parseInt(env.getProperty("xxl.job.executor.logretentiondays")));
-//    return xxlJobSpringExecutor;
-//    }
-//
-//    /**
-//    * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
-//    *
-//    *      1、引入依赖:
-//    *          <dependency>
-//    *             <groupId>org.springframework.cloud</groupId>
-//    *             <artifactId>spring-cloud-commons</artifactId>
-//    *             <version>${version}</version>
-//    *         </dependency>
-//    *
-//    *      2、配置文件,或者容器启动变量
-//    *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
-//    *
-//    *      3、获取IP
-//    *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
-//    */
-//
-//
-//}
+package com.gyee.generation.config;
+
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.EnvironmentAware;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.env.Environment;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+
+
+@Configuration
+@PropertySource("classpath:xxl-job-executorWP.properties")
+//@PropertySource("classpath:xxl-job-executorRG.properties")
+public class XxlJobConfig implements EnvironmentAware {
+    private Environment env;
+
+
+    @Override
+    public void setEnvironment(Environment environment) {
+        this.env=environment;
+    }
+
+    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
+
+
+
+    @Bean
+    public XxlJobSpringExecutor xxlJobExecutor() {
+    logger.info(">>>>>>>>>>> xxl-job config init.");
+    XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+    xxlJobSpringExecutor.setAdminAddresses(env.getProperty("xxl.job.admin.addresses"));
+    xxlJobSpringExecutor.setAppname(env.getProperty("xxl.job.executor.appname"));
+    xxlJobSpringExecutor.setAddress(env.getProperty("xxl.job.executor.address"));
+    xxlJobSpringExecutor.setIp(env.getProperty("xxl.job.executor.ip"));
+    xxlJobSpringExecutor.setPort(Integer.parseInt(env.getProperty("xxl.job.executor.port")));
+    xxlJobSpringExecutor.setAccessToken(env.getProperty("xxl.job.accessToken"));
+    xxlJobSpringExecutor.setLogPath(env.getProperty("xxl.job.executor.logpath"));
+    xxlJobSpringExecutor.setLogRetentionDays(Integer.parseInt(env.getProperty("xxl.job.executor.logretentiondays")));
+    return xxlJobSpringExecutor;
+    }
+
+    /**
+    * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+    *
+    *      1、引入依赖:
+    *          <dependency>
+    *             <groupId>org.springframework.cloud</groupId>
+    *             <artifactId>spring-cloud-commons</artifactId>
+    *             <version>${version}</version>
+    *         </dependency>
+    *
+    *      2、配置文件,或者容器启动变量
+    *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+    *
+    *      3、获取IP
+    *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+    */
+
+
+}

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

@@ -51,7 +51,12 @@ public class RealtimeService {
             Map<String, ProBasicEquipmentPoint> equipmentPointMap = wtpAimap.get(wt.getId());
             ProBasicEquipmentPoint speedPoint = equipmentPointMap.get(ContantXk.CJ_SSFS);
             ProBasicEquipmentPoint mxztPoint = equipmentPointMap.get(ContantXk.MXZT);
-            ProBasicEquipmentPoint ssbfPoint = equipmentPointMap.get(ContantXk.SSBF);
+            ProBasicEquipmentPoint ssbfPoint = null;
+            if (wt.getId().contains("_WT_")){
+                ssbfPoint = equipmentPointMap.get(ContantXk.SSBF);
+            }else if(wt.getId().contains("_IN_")){
+                ssbfPoint = equipmentPointMap.get(ContantXk.SSBG);
+            }
             ProBasicEquipmentPoint ssglPoint = equipmentPointMap.get(ContantXk.CJ_SSGL);
             //理论功率测点
             ProBasicEquipmentPoint llglPoint = equipmentPointMap.get(ContantXk.LLGL);

+ 205 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/task/SaticScheduleCALTask.java

@@ -0,0 +1,205 @@
+package com.gyee.generation.task;
+
+
+import com.gyee.generation.service.*;
+import com.gyee.generation.service.realtimelibrary.*;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @ClassName : SaticScheduleTask
+ * @Description : 调度
+ */
+
+
+@Component
+public class SaticScheduleCALTask {
+
+    private static Logger logger = LoggerFactory.getLogger(SaticScheduleCALTask.class);
+
+    @Resource
+    private AccessStatusService accessStatusService;
+    @Resource
+    private CalculationService calculationService;
+    @Resource
+    private CycleCalculationService cycleCalculationService;
+    @Resource
+    private ElectricityMeteringService electricityMeteringService;
+    @Resource
+    private RealtimeService realtimeService;
+    @Resource
+    private StatusService statusService;
+    @Resource
+    private TheoreticalPowerService theoreticalPowerService;
+    @Resource
+    private RegionCalreService regionCalreService;
+    @Resource
+    private RegionCalService regionCalService;
+
+    /**
+     * 全场状态,接入状态,总预测功率
+     * 每秒执行一次
+     */
+    @XxlJob("accessStatus_CAL")
+    public void accessStatus_CAL()  {
+
+
+        XxlJobHelper.log("全场状态调度程序执行开始!........");
+        try {
+            //场站接入状态,总预测功率
+            accessStatusService.accessStatus();
+            //全场状态
+            accessStatusService.fullFieldState();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("全场状态调度任务处理完成!........");
+    }
+
+    /**
+     * 后新增计算指标  节约煤,水,二氧化碳,二氧化硫,月利用小时,年利用小时,设备可利用率,等效可用系数,风能利用率
+     * 每15分钟执行一次
+     */
+    @XxlJob("calculation_CAL")
+    public void calculation_CAL()  {
+
+        XxlJobHelper.log("计算指标调度程序执行开始!........");
+        try {
+            calculationService.calWp();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("计算指标调度任务处理完成!........");
+    }
+
+    /**
+     * 日,月,年,15分钟计算指标
+     * 每15分钟执行一次
+     */
+    @XxlJob("cycleCalculation_CAL")
+    public void cycleCalculation_CAL()  {
+
+        XxlJobHelper.log("日月年计算指标调度程序执行开始!........");
+        try {
+            cycleCalculationService.saveCyle();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("日月年计算指标调度任务处理完成!........");
+    }
+
+    /**
+     * 电计量计算指标
+     * 每15分钟执行一次
+     */
+    @XxlJob("electricityMetering_CAL")
+    public void electricityMetering_CAL()  {
+
+        XxlJobHelper.log("电计量指标调度程序执行开始!........");
+        try {
+            electricityMeteringService.saveGenerationDatas();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("电计量计算指标调度任务处理完成!........");
+    }
+
+
+    /**
+     * 电计量计算指标
+     * 每秒执行一次
+     */
+    @XxlJob("realtime_CAL")
+    public void realtime_CAL()  {
+
+        XxlJobHelper.log("实时指标调度程序执行开始!........");
+        try {
+            realtimeService.savaRealtimeTarget();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("实时指标调度任务处理完成!........");
+    }
+
+    /**
+     * 状态计算
+     * 每秒执行一次
+     */
+    @XxlJob("status_CAL")
+    public void status_CAL()  {
+
+        XxlJobHelper.log("状态调度程序执行开始!........");
+        try {
+            statusService.powerRationing();
+            statusService.statusReal();
+            statusService.calculateStatusNumber();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("状态调度任务处理完成!........");
+    }
+
+
+    /**
+     * 自算功率,最优功率更新缓存
+     * 每月执行一次
+     */
+    @XxlJob("theoreticalPower_CAL")
+    public void theoreticalPower_CAL()  {
+
+        XxlJobHelper.log("自算功率更新程序执行开始!........");
+        try {
+            theoreticalPowerService.updateCachePower();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("自算功率更新调度任务处理完成!........");
+    }
+
+    /**
+     * 区域公司实时指标
+     * 每秒执行一次
+     */
+    @XxlJob("regionCalre_CAL")
+    public void regionCalre_CAL()  {
+
+        XxlJobHelper.log("区域公司实时程序执行开始!........");
+        try {
+            regionCalreService.companyCal();
+            regionCalreService.RegionCal();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("区域公司实时程序处理完成!........");
+    }
+
+    /**
+     * 区域公司历史指标
+     * 每秒执行一次
+     */
+    @XxlJob("regionCal_CAL")
+    public void regionCal_CAL()  {
+
+        XxlJobHelper.log("区域公司历史程序执行开始!........");
+        try {
+            regionCalService.companyCal();
+            regionCalService.RegionCal();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        XxlJobHelper.log("区域公司历史程序处理完成!........");
+    }
+
+
+
+
+
+
+
+}

+ 8 - 1
realtime/generationXK-service/src/main/resources/xxl-job-executor.properties

@@ -5,12 +5,19 @@ xxl.job.admin.addresses=http://192.168.11.250:8175/xxl-job-admin
 xxl.job.accessToken=
 
 ### xxl-job executor appname
-xxl.job.executor.appname=generation-job
+### 场站计算
+xxl.job.executor.appname=generationWP-job
+### 区域公司计算
+#xxl.job.executor.appname=generationRG-job
 ### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
 xxl.job.executor.address=
 ### xxl-job executor server-info
 xxl.job.executor.ip=
+#场站端口
 xxl.job.executor.port=9201
+#区域端口
+#xxl.job.executor.port=9202
+
 ### xxl-job executor log-path
 xxl.job.executor.logpath=E:\\jobs\\generation-job
 ### xxl-job executor log-retention-days

+ 25 - 0
realtime/generationXK-service/src/main/resources/xxl-job-executorRG.properties

@@ -0,0 +1,25 @@
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl.job.admin.addresses=http://192.168.11.250:8175/xxl-job-admin
+
+### xxl-job, access token
+xxl.job.accessToken=
+
+### xxl-job executor appname
+### 场站计算
+#xxl.job.executor.appname=generationWP-job
+### 区域公司计算
+xxl.job.executor.appname=generationRG-job
+### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
+xxl.job.executor.address=
+### xxl-job executor server-info
+xxl.job.executor.ip=
+#场站端口
+#xxl.job.executor.port=9201
+#区域端口
+xxl.job.executor.port=9202
+
+### xxl-job executor log-path
+xxl.job.executor.logpath=E:\\jobs\\generationRG-job
+### xxl-job executor log-retention-days
+xxl.job.executor.logretentiondays=30
+

+ 25 - 0
realtime/generationXK-service/src/main/resources/xxl-job-executorWP.properties

@@ -0,0 +1,25 @@
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl.job.admin.addresses=http://192.168.11.250:8175/xxl-job-admin
+
+### xxl-job, access token
+xxl.job.accessToken=
+
+### xxl-job executor appname
+### 场站计算
+xxl.job.executor.appname=generationWP-job
+### 区域公司计算
+#xxl.job.executor.appname=generationRG-job
+### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
+xxl.job.executor.address=
+### xxl-job executor server-info
+xxl.job.executor.ip=
+#场站端口
+xxl.job.executor.port=9201
+#区域端口
+#xxl.job.executor.port=9202
+
+### xxl-job executor log-path
+xxl.job.executor.logpath=E:\\jobs\\generationWP-job
+### xxl-job executor log-retention-days
+xxl.job.executor.logretentiondays=30
+