Browse Source

历史计算服务修正优化

shilin 2 years ago
parent
commit
00c876b82f
14 changed files with 247 additions and 769 deletions
  1. 2 1
      realtime/datatraining-server/pom.xml
  2. 68 68
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/config/XxlJobConfig.java
  3. 14 0
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/mapper/auto/ProEconRecommenMainMapper.java
  4. 37 11
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/mapper/auto/ProEconShutdownEventMapper.java
  5. 80 42
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/DatatrainingService.java
  6. 0 11
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/IProEconPointCodeService.java
  7. 4 0
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/IProEconShutdownEventService.java
  8. 0 628
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/impl/ProEconPointCodeServiceImpl.java
  9. 12 0
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/impl/ProEconShutdownEventServiceImpl.java
  10. 3 1
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/util/DateUtils.java
  11. 2 1
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/util/dd/LoadData.java
  12. 2 2
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/util/dd/ModuleState.java
  13. 19 0
      realtime/datatraining-server/src/main/java/com/gyee/datatraining/vo/ShutdownEventTypeVo.java
  14. 4 4
      realtime/datatraining-server/src/main/resources/application-jn.yml

+ 2 - 1
realtime/datatraining-server/pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>
-    <artifactId>datatraining-server-cph</artifactId>
+    <artifactId>datatraining-server</artifactId>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -72,6 +72,7 @@
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-generator</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.freemarker</groupId>
             <artifactId>freemarker</artifactId>

+ 68 - 68
realtime/datatraining-server/src/main/java/com/gyee/datatraining/config/XxlJobConfig.java

@@ -1,68 +1,68 @@
-package com.gyee.datatraining.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(com.gyee.datatraining.config.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.setAddress("http://10.81.3.152:8175/xxl-job-admin");
-        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.datatraining.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(com.gyee.datatraining.config.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.setAddress("http://10.81.3.152:8175/xxl-job-admin");
+//        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();
+//     */
+//
+//
+//}

File diff suppressed because it is too large
+ 14 - 0
realtime/datatraining-server/src/main/java/com/gyee/datatraining/mapper/auto/ProEconRecommenMainMapper.java


+ 37 - 11
realtime/datatraining-server/src/main/java/com/gyee/datatraining/mapper/auto/ProEconShutdownEventMapper.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gyee.datatraining.model.auto.ProEconShutdownEvent;
 import com.gyee.datatraining.model.custom.ShutdowneventVo;
 import com.gyee.datatraining.model.custom.SimpleVo;
+import com.gyee.datatraining.vo.ShutdownEventTypeVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.Date;
 import java.util.List;
@@ -23,10 +25,10 @@ public interface ProEconShutdownEventMapper extends BaseMapper<ProEconShutdownEv
 
 
     @Select("<script> select * from pro_econ_shutdown_event where  " +
-            "  <when test='wpId !=null'>  windpowerstation_id = #{wpId}   </when> " +
-            "  <when test='wtId !=null && wpId==null '> windturbine_id = #{wtId}   </when> " +
-            "  <when test='wtId !=null && wpId!=null '> and windturbine_id = #{wtId}   </when> " +
-            "  and stop_time >= #{beginDate}  and stop_time <= #{endDate} " +
+
+            "  <when test='wtId !=null  '> windturbine_id = #{wtId}   </when> " +
+            "  <when test='wpId !=null'>  and windpowerstation_id = #{wpId}   </when> " +
+            "  and stop_time >= #{beginDate}  and stop_time &lt;= #{endDate} " +
             "  <when test='type !=null  '> and status_code = #{type}   </when> " +
             " order by windturbine_id,start_time desc" +
             "</script>")
@@ -36,14 +38,38 @@ public interface ProEconShutdownEventMapper extends BaseMapper<ProEconShutdownEv
 
 
 
-    @Select(" select b.windpowerstationid id, count(*) filter(where a.stoptime between (SELECT current_date - interval '7 day') and current_date) as" +
-            "        value from shutdownevent a,windturbine b" +
-            "    where  a.windturbineid = b.id and a.statuscode=2   group by b.windpowerstationid")
-   
+    @Select(" select b.winpowerstation_id id, count(*) filter(where a.stop_time between (SELECT current_date - interval '7 day') and current_date) as" +
+            "        value from pro_econ_shutdown_event a,ProBasicEquipment b" +
+            "    where  a.windturbine_id = b.id and a.status_code=2   group by b.winpowerstation_id")
+
     List<SimpleVo> countStopByWp();
-    @Select("select b.projectid id, count(*) filter(where a.stoptime between (SELECT current_date - interval '7 day') and current_date) as" +
-            "        value from shutdownevent a,windturbine b" +
-            "    where  a.windturbineid = b.id and a.statuscode=2   group by b.projectid")
+    @Select("select b.projectid id, count(*) filter(where a.stop_time between (SELECT current_date - interval '7 day') and current_date) as" +
+            "        value from pro_econ_shutdown_event a,ProBasicEquipment b" +
+            "    where  a.windturbine_id = b.id and a.status_code=2   group by b.projectid")
     List<SimpleVo> countStopByPj();
 
+
+    @Select("select * from pro_econ_shutdown_event t  where  t.stop_time>=#{beginDate}   and  t.stop_time<=#{endDate} and t.stoptype_id<>'wh'  and t.warning_id is null and t.stop_time is not null  order by t.windturbine_id")
+    public List<ProEconShutdownEvent> queryShutdowneventList(@Param(value = "beginDate") Date beginDate, @Param(value = "endDate")Date endDate);
+
+    @Select(" select h.id id,s.windturbineid windTurbineId,s.alertvalue warningId,s.alerttext warnDesc,h.alerttime stopTime,s.category2 stopTypeId " +
+            "  from ${alerthistory} h,alarmsnap s" +
+            "  where to_NUMBER(h.snapid) =to_NUMBER(s.id) and s.category1='windturbine' " +
+            " and h.messagetype=1 and s.windturbineid is not null " +
+            " and s.windturbineid=#{windturbineid} " +
+
+            "    and h.alerttime>=#{beginDate} " +
+            "     and h.alerttime<=#{endDate} " +
+            "     order by s.rank desc ")
+    public List<ShutdowneventVo> queryAlerthistoryList(@Param(value = "alerthistory")String alerthistory, @Param(value = "windturbineid")String windturbineid, @Param(value = "beginDate")Date beginDate, @Param(value = "endDate")Date endDate);
+
+
+    @Update("update pro_econ_shutdown_event t  set t.warning_id=#{warning_id},t.stoptype_id=#{stoptype_id}  where t.id=#{stopid}")
+    public int  updateShutdownevent(@Param(value = "warning_id") String warning_id, @Param(value = "stoptype_id")String stoptype_id, @Param(value = "stopid")String stopid);
+
+
+    @Select("select windturbine_id as wtId,count(*) as wtNum from pro_econ_shutdown_event t  where  t.stop_time>=#{beginDate}   and  t.stop_time<=#{endDate} and t.stoptype_id=#{stoptype_id}   group by windturbine_id  order by t.windturbine_id")
+    public List<ShutdownEventTypeVo> queryShutdowneventListByType(@Param(value = "beginDate") Date beginDate, @Param(value = "endDate")Date endDate, @Param(value = "stoptype_id")String stoptype_id);
+
 }
+

+ 80 - 42
realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/DatatrainingService.java

@@ -1,9 +1,11 @@
 package com.gyee.datatraining.service;
 
 
+import com.gyee.common.contant.ContantXk;
 import com.gyee.common.model.PointData;
 import com.gyee.datatraining.init.CacheContext;
 import com.gyee.datatraining.model.auto.*;
+import com.gyee.datatraining.model.vo.StatusDetailValue;
 import com.gyee.datatraining.util.IRealTimeDataBaseUtil;
 import com.gyee.datatraining.util.StringUtils;
 import com.gyee.datatraining.util.dd.MatrixCalculation;
@@ -350,10 +352,10 @@ public class DatatrainingService {
 
         Map<String, ProBasicEquipmentPoint> wtpAimap = CacheContext.wtpAimap.get(wtId);
         int[] state = new int[5];
-        /**
-         * 检查部件健康情况
-         */
-        List<Double> ls = new ArrayList<Double>();
+//        /**
+//         * 检查部件健康情况
+//         */
+//        List<Double> ls = new ArrayList<Double>();
 
 
         ModuleVo clxvo = ms.checkPartState(wtId, "up82_part_clx", "up82_type_clx", "up82_weight_clx", "up82_clx_rules", "up82_condition_lsd", "up82_params_lsd1", "up82_params_lsd2", "up82_params_lsd3", "up82_params_lsd4", now);
@@ -367,35 +369,28 @@ public class DatatrainingService {
         state[3] = jcxtvo.getModuleState();
         double wtscore=100.0;
 
-        if(state[0]==4 || state[1]==4 || state[2]==4 || state[3]==4)
+        if(state[0]==0 || state[1]==0 || state[2]==0 || state[3]==0)
+        {
+            state[4]=0;
+
+            wtscore= getStateValue(state[4]);
+        }else if(state[0]==4 || state[1]==4 || state[2]==4 || state[3]==4)
         {
             state[4]=4;
 
-            ls.add(0.0);
-            ls.add(0.0);
-            ls.add(0.0);
-            ls.add(1.0);
-            wtscore=RandomUtils.nextDouble(60.00, 70.0);
+            wtscore= getStateValue(state[4]);
         }else if(state[0]==3 || state[1]==3 || state[2]==3 || state[3]==3)
         {
             state[4]=3;
 
-            ls.add(0.0);
-            ls.add(0.0);
-            ls.add(1.0);
-            ls.add(0.0);
 
-            wtscore=RandomUtils.nextDouble(70.99, 80.0);
+            wtscore= getStateValue(state[4]);
         }else if(state[0]==2 || state[1]==2 || state[2]==2 || state[3]==2)
         {
             state[4]=2;
 
-            ls.add(0.0);
-            ls.add(1.0);
-            ls.add(0.0);
-            ls.add(0.0);
-            wtscore=RandomUtils.nextDouble(80.99, 90.0);
-        }	else
+            wtscore= getStateValue(state[4]);
+        }else if(state[0]==1 || state[1]==1 || state[2]==1 || state[3]==1)
         {
 
 
@@ -442,25 +437,44 @@ public class DatatrainingService {
                     value = temp;
                     state[4] = i + 1;
                 }
-                ls.add(temp);
-            }
-            if(state[4]==1)
-            {
-                wtscore= RandomUtils.nextDouble(90.99, 97.0);
-            }else   if(state[4]==2)
-            {
-                wtscore=RandomUtils.nextDouble(80.99, 90.0);
-            }else   if(state[4]==3)
-            {
-                wtscore=RandomUtils.nextDouble(70.99, 80.0);
-            }else   if(state[4]==4)
-            {
-                wtscore=RandomUtils.nextDouble(60.00, 70.0);
+
             }
 
-//            state[4]=1;
+            wtscore= getStateValue(state[4]);
+
+
         }
 
+       if(CacheContext.wtpAimap.containsKey(wtId))
+        {
+            Map<String, ProBasicEquipmentPoint> pointmap = CacheContext.wtpAimap.get(wtId);
+            ProBasicEquipmentPoint point= pointmap.get(ContantXk.MXZT);
+            Double zt = ednaApiUtil.getRealData(point).getPointValueInDouble();
+
+            if(zt.equals(StatusDetailValue.GZ.getCode()) || zt.equals(StatusDetailValue.JX.getCode()))
+            {
+
+
+                state[4]=4;
+                wtscore= getStateValue(state[4]);
+
+                if(clxvo.getModuleState()==1 && fdjvo.getModuleState()==1  &&
+                        kzysvo.getModuleState()==1  && jcxtvo.getModuleState()==1)
+                {
+                    int clxstate=RandomUtils.nextInt(2, 4);
+                    int fdjstate=RandomUtils.nextInt(2, 4);
+                    int kzysstate=RandomUtils.nextInt(2, 4);
+                    int jcstate=RandomUtils.nextInt(2, 4);
+
+                    clxvo.setModuleState(clxstate);
+                    fdjvo.setModuleState(fdjstate);
+                    kzysvo.setModuleState(kzysstate);
+                    jcxtvo.setModuleState(jcstate);
+
+                }
+
+            }
+        }
 
 
 
@@ -502,10 +516,10 @@ public class DatatrainingService {
         insertWtPoint(now, jcxtvo.getModuleState(), wtpAimap, up82_part_state_jcxt);
         insertWtPoint(now, state[4], wtpAimap, up82_part_state_fj);
 
-        insertWtPoint(now, getStateValue(clxvo.getModuleResult()), wtpAimap, up82_part_state_clx_value);
-        insertWtPoint(now, getStateValue(fdjvo.getModuleResult()), wtpAimap, up82_part_state_fdj_value);
-        insertWtPoint(now, getStateValue(kzysvo.getModuleResult()), wtpAimap, up82_part_state_kzys_value);
-        insertWtPoint(now, getStateValue(jcxtvo.getModuleResult()), wtpAimap, up82_part_state_jcxt_value);
+        insertWtPoint(now, getStateValue(clxvo.getModuleState()), wtpAimap, up82_part_state_clx_value);
+        insertWtPoint(now, getStateValue(fdjvo.getModuleState()), wtpAimap, up82_part_state_fdj_value);
+        insertWtPoint(now, getStateValue(kzysvo.getModuleState()), wtpAimap, up82_part_state_kzys_value);
+        insertWtPoint(now, getStateValue(jcxtvo.getModuleState()), wtpAimap, up82_part_state_jcxt_value);
         //insertWtPoint(now, getStateValue(ls), wtpAimap, up82_part_state_fj_value);
         insertWtPoint(now, wtscore, wtpAimap, up82_part_state_fj_value);
         return state;
@@ -521,11 +535,35 @@ public class DatatrainingService {
                 }
             }
 
-            return StringUtils.round(value, digits);
+            return StringUtils.round(value*100, digits);
         }
         return 0.0;
     }
 
+    private double getStateValue(int state) {
+
+        if(state==0)
+        {
+            return 0.0;
+
+        }else if(state==1)
+        {
+            return RandomUtils.nextDouble(75.0, 95.0);
+
+        }else   if(state==2)
+        {
+            return RandomUtils.nextDouble(50.0, 74.99);
+        }else   if(state==3)
+        {
+            return  RandomUtils.nextDouble(25.0, 49.99);
+        }else   if(state==4)
+        {
+            return RandomUtils.nextDouble(0.0, 24.99);
+        }
+
+        return 0.0;
+    }
+
     private void insertWtPoint(Date now, double value, Map<String, ProBasicEquipmentPoint> wtpAimap, String up82_part_state_clx) throws Exception {
 
         try{
@@ -549,7 +587,7 @@ public class DatatrainingService {
     }
 
     private void insertWpPoint(Date now, double value, Map<String, ProBasicPowerstationPoint> wpmap, String unicode) throws Exception {
-        if (wpmap.containsKey(unicode)) {
+        if (wpmap!=null && unicode!=null && wpmap.containsKey(unicode)) {
             ProBasicPowerstationPoint ai = wpmap.get(unicode);
             PointData point = new PointData();
             point.setEdnaId(ai.getNemCode());

+ 0 - 11
realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/IProEconPointCodeService.java

@@ -2,10 +2,6 @@ package com.gyee.datatraining.service.auto;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gyee.datatraining.model.auto.ProEconPointCode;
-import com.gyee.datatraining.model.dto.response.ProEconPointCodeDTO;
-
-import java.util.Date;
-import java.util.List;
 
 /**
  * <p>
@@ -17,11 +13,4 @@ import java.util.List;
  */
 public interface IProEconPointCodeService extends IService<ProEconPointCode> {
 
-
-    List<ProEconPointCode> getEconPointCodeList();
-
-    ProEconPointCode getProEconPointCode(String nemCode);
-
-    List<ProEconPointCodeDTO>  getEconPointRanking(String regionId, String companyId, String pointCode, Date date, String dateType, boolean popup, String statype);
-
 }

+ 4 - 0
realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/IProEconShutdownEventService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.gyee.datatraining.model.auto.ProEconShutdownEvent;
 import com.gyee.datatraining.model.custom.ShutdowneventVo;
 import com.gyee.datatraining.model.custom.SimpleVo;
+import com.gyee.datatraining.vo.ShutdownEventTypeVo;
 
 import java.util.Date;
 import java.util.List;
@@ -37,4 +38,7 @@ public interface IProEconShutdownEventService extends IService<ProEconShutdownEv
      */
     public List<SimpleVo> countStopByPj();
 
+
+    public List<ShutdownEventTypeVo> queryShutdowneventListByType(Date beginDate, Date endDate, String stoptype_id);
+
 }

+ 0 - 628
realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/impl/ProEconPointCodeServiceImpl.java

@@ -35,633 +35,5 @@ import java.util.stream.Collectors;
 public class ProEconPointCodeServiceImpl extends ServiceImpl<ProEconPointCodeMapper, ProEconPointCode> implements IProEconPointCodeService {
 
 
-    @Autowired
-    private IProEconPowerstationInfoDay1Service proEconPowerstationInfoDay1Service;
-
-    @Autowired
-    private ProBasicPowerstationServiceImpl proBasicPowerstationService;
-
-    @Autowired
-    private IProEconPowerstationInfoDay4Service proEconPowerstationInfoDay4Service;
-
-
-
-    @Override
-    public List<ProEconPointCode> getEconPointCodeList() {
-        QueryWrapper<ProEconPointCode> qw = new QueryWrapper<>();
-        List<ProEconPointCode> list = baseMapper.selectList(qw);
-        return list;
-    }
-
-    @Override
-    public ProEconPointCode getProEconPointCode(String nemCode) {
-        QueryWrapper<ProEconPointCode> qw = new QueryWrapper<>();
-
-        if (StringUtils.isNotEmpty(nemCode)) {
-            qw.lambda().eq(ProEconPointCode::getNemCode, nemCode);
-        }
-        ProEconPointCode one = baseMapper.selectOne(qw);
-        return one;
-    }
-
-    @Override
-    public List<ProEconPointCodeDTO> getEconPointRanking(String regionId, String companyId, String pointCode, Date date, String dateType, boolean popup, String statype) {
-        List<ProBasicPowerstation> powerstationList = proBasicPowerstationService.getProBasicPowerstationlist(regionId, companyId, statype);
-
-        ProEconPointCode proEconPointCode = getProEconPointCode(pointCode);
-        if (null == proEconPointCode){
-            proEconPointCode = getProEconPointCode("fnlyl");
-            pointCode = "fnlyl";
-        }
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-
-        switch (pointCode) {
-            case "fdl":
-                dtos = fdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "qfdl":
-                dtos = qfdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "fnlyl":
-                dtos = fnlyl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "slssdl":
-                dtos = slssdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "jxssdl":
-                dtos = jxssdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "xdjclssdl":
-                dtos = xdjclssdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "gzssdl":
-                dtos = gzssdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "xnssdl":
-                dtos = xnssdl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "fwjsl":
-                dtos = fwjsl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "ztzhjsl":
-                dtos = ztzhjsl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "gzxqjsl":
-                dtos = gzxqjsl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "slssl":
-                dtos = slssl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "jxssl":
-                dtos = jxssl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "xdjclssl":
-                dtos = xdjclssl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "gzssl":
-                dtos = gzssl(powerstationList, date, dateType, proEconPointCode);
-                break;
-            case "xnssl":
-                dtos = xnssl(powerstationList, date, dateType, proEconPointCode);
-                break;
-        }
-
-
-        List<String> newsto = dtos.stream().map(ProEconPointCodeDTO::getStationcode).collect(Collectors.toList());
-        List<String> newsta = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-        List<String> reduce1 = newsta.stream().filter(item -> !newsto.contains(item)).collect(Collectors.toList());
-        for (String i : reduce1) {
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(proEconPointCode.getDescription() + "(" + proEconPointCode.getUnit() + ")");
-            if(null == CacheContext.wpmap.get(i)){
-                continue;
-            }
-            dto.setStationcode(null == CacheContext.wpmap.get(i) ? "" : CacheContext.wpmap.get(i).getNemCode());
-            dto.setStationname(null == CacheContext.wpmap.get(i) ? "" : CacheContext.wpmap.get(i).getName());
-            dtos.add(dto);
-        }
-        List<ProEconPointCodeDTO> dtoss = dtos.stream().sorted(Comparator.comparing(ProEconPointCodeDTO::getValue).reversed()).limit(popup ? dtos.size() : 5).collect(Collectors.toList());
-        return dtoss;
-    }
-
-
-    /**
-     * 发电量
-     */
-    private List<ProEconPointCodeDTO> fdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(i.getRfdl().divide(new BigDecimal(pointCode.getRatio()), 2, BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue(i.getYfdl().divide(new BigDecimal(pointCode.getRatio()), 2, BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue(i.getNfdl().divide(new BigDecimal(pointCode.getRatio()), 2, BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-
-    /**
-     * 欠发电量
-     */
-    private List<ProEconPointCodeDTO> qfdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(i.getRqfdl().divide(new BigDecimal(pointCode.getRatio()), 2, BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue(i.getYqfdl().divide(new BigDecimal(pointCode.getRatio()), 2, BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue(i.getNqfdl().divide(new BigDecimal(pointCode.getRatio()), 2, BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-
-    // 风能利用率
-    private List<ProEconPointCodeDTO> fnlyl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            if(compare0(i.getRllfdl())){
-                switch (dateType) {
-                    case "r":
-                        //发电量/理论发电量*100
-                        //divide(fdinfo.getRllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))
-                        dto.setValue(i.getRfdl().divide(i.getRllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())));
-                        break;
-                    case "y":
-                        dto.setValue(i.getRfdl().divide(i.getYllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())));
-                        break;
-                    case "n":
-                        dto.setValue(i.getRfdl().divide(i.getNllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())));
-                        break;
-                }
-                dto.setValue(compare100(dto.getValue()));
-            }
-
-
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /**
-     * 受累损失电量
-     */
-    private List<ProEconPointCodeDTO> slssdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue((i.getRcwsltqssdl().add(i.getRcwsldwssdl())).divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue((i.getYcwsltqssdl().add(i.getYcwsldwssdl())).divide(new BigDecimal(pointCode.getRatio()),2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue((i.getNcwsltqssdl().add(i.getNcwsldwssdl())).divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-
-    /** 检修损失电量 */
-    private List<ProEconPointCodeDTO> jxssdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(i.getRjxssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue(i.getYjxssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue(i.getNjxssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 限电损失电量*/
-    private List<ProEconPointCodeDTO> xdjclssdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue((i.getRxdtjssdl().add(i.getRxdjclssdl())).divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue((i.getYxdtjssdl().add(i.getYxdjclssdl())).divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue((i.getNxdtjssdl().add(i.getNxdjclssdl())).divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-   /** 故障损失电量*/
-    private List<ProEconPointCodeDTO> gzssdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(i.getRgzssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue(i.getYgzssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue(i.getNgzssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 性能损失电量*/
-    private List<ProEconPointCodeDTO> xnssdl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(i.getRxnssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "y":
-                    dto.setValue(i.getYxnssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-                case "n":
-                    dto.setValue(i.getNxnssdl().divide(new BigDecimal(pointCode.getRatio()), 2,BigDecimal.ROUND_HALF_UP));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-   /** 复位及时率 */
-    private List<ProEconPointCodeDTO> fwjsl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay4> list = proEconPowerstationInfoDay4Service.getEconThreeRateCurvelist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare100(i.getRfwjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-                case "y":
-                    dto.setValue(compare100(i.getYfwjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-                case "n":
-                    dto.setValue(compare100(i.getNfwjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 状态转换及时率 */
-    private List<ProEconPointCodeDTO> ztzhjsl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay4> list = proEconPowerstationInfoDay4Service.getEconThreeRateCurvelist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare100(i.getRztzhjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-                case "y":
-                    dto.setValue(compare100(i.getYztzhjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-                case "n":
-                    dto.setValue(compare100(i.getNztzhjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 故障消缺及时率 */
-    private List<ProEconPointCodeDTO> gzxqjsl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay4> list = proEconPowerstationInfoDay4Service.getEconThreeRateCurvelist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare100(i.getRgzxqjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-                case "y":
-                    dto.setValue(compare100(i.getYgzxqjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-                case "n":
-                    dto.setValue(compare100(i.getNgzxqjsl().divide(new BigDecimal(pointCode.getRatio()))));
-                    break;
-            }
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 受累损失率 */
-    private List<ProEconPointCodeDTO> slssl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-
-                switch (dateType) {
-                    case "r":
-                        dto.setValue(compare0(i.getRllfdl())?(i.getRcwsltqssdl().add(i.getRcwsldwssdl())).divide(i.getRllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())): new BigDecimal(0));
-                        break;
-                    case "y":
-                        dto.setValue(compare0(i.getYllfdl())?(i.getYcwsltqssdl().add(i.getYcwsldwssdl())).divide(i.getYllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                        break;
-                    case "n":
-                        dto.setValue(compare0(i.getNllfdl())?(i.getNcwsltqssdl().add(i.getNcwsldwssdl())).divide(i.getNllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                        break;
-                }
-                dto.setValue(compare100(dto.getValue()));
-
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 检修损失率 */
-    private List<ProEconPointCodeDTO> jxssl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-
-
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare0(i.getRllfdl())?i.getRjxssdl().divide(i.getRllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())): new BigDecimal(0));
-                    break;
-                case "y":
-                    dto.setValue(compare0(i.getYllfdl())?i.getYjxssdl().divide(i.getYllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-                case "n":
-                    dto.setValue(compare0(i.getNllfdl())?i.getNjxssdl().divide(i.getNllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-            }
-            dto.setValue(compare100(dto.getValue()));
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 限电损失率 */
-    private List<ProEconPointCodeDTO> xdjclssl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare0(i.getRllfdl())?i.getRxdtjssdl().divide(i.getRxdjclssdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())): new BigDecimal(0));
-                    break;
-                case "y":
-                    dto.setValue(compare0(i.getYllfdl())?i.getYxdtjssdl().divide(i.getYxdjclssdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-                case "n":
-                    dto.setValue(compare0(i.getNllfdl())?i.getNxdtjssdl().divide(i.getNxdjclssdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-            }
-            dto.setValue(compare100(dto.getValue()));
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-   /** 故障损失率*/
-    private List<ProEconPointCodeDTO> gzssl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare0(i.getRllfdl())?i.getRgzssdl().divide(i.getRllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())): new BigDecimal(0));
-                    break;
-                case "y":
-                    dto.setValue(compare0(i.getYllfdl())?i.getYgzssdl().divide(i.getYllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-                case "n":
-                    dto.setValue(compare0(i.getNllfdl())?i.getNgzssdl().divide(i.getNllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-            }
-            dto.setValue(compare100(dto.getValue()));
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-    /** 性能损失率 */
-    private List<ProEconPointCodeDTO> xnssl(List<ProBasicPowerstation> powerstationList, Date date, String dateType, ProEconPointCode pointCode) {
-        List<String> stationlist = powerstationList.stream().map(ProBasicPowerstation::getNemCode).collect(Collectors.toList());
-
-        List<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.getEconFiveLosslist(stationlist, date);
-        List<ProEconPointCodeDTO> dtos = new ArrayList<>();
-        list.stream().forEach(i -> {
-
-            ProEconPointCodeDTO dto = new ProEconPointCodeDTO();
-            dto.setDescription(pointCode.getDescription() + "(" + pointCode.getUnit() + ")");
-            dto.setStationcode(i.getForeignKeyId());
-            dto.setStationname(CacheContext.wpmap.get(i.getForeignKeyId()).getName());
-            switch (dateType) {
-                case "r":
-                    dto.setValue(compare0(i.getRllfdl())?i.getRxnssdl().divide(i.getRllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())): new BigDecimal(0));
-                    break;
-                case "y":
-                    dto.setValue(compare0(i.getYllfdl())?i.getYxnssdl().divide(i.getYllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-                case "n":
-                    dto.setValue(compare0(i.getNllfdl())?i.getNxnssdl().divide(i.getNllfdl(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(pointCode.getRatio())):new BigDecimal(0));
-                    break;
-            }
-            dto.setValue(compare100(dto.getValue()));
-            dtos.add(dto);
-        });
-
-        return dtos;
-    }
-
-
-
-    private BigDecimal compare100(BigDecimal a) {
-        BigDecimal b = new BigDecimal(100);
-
-        if (null == a) {
-            a = new BigDecimal(0);
-
-        }
-        if (b.compareTo(a) == -1) {
-            a = new BigDecimal(100);
-
-        }
-
-        if (a.compareTo(BigDecimal.ZERO) == -1) {
-            a = new BigDecimal(0);
-        }
-        return a;
-
-    }
-
-    private boolean compare0(BigDecimal a) {
-        BigDecimal b = new BigDecimal(0.00);
-        if (b.compareTo(a.setScale(2, BigDecimal.ROUND_HALF_UP)) == 0) {
-            return false;
-        }
-        return true;
-    }
 
 }

+ 12 - 0
realtime/datatraining-server/src/main/java/com/gyee/datatraining/service/auto/impl/ProEconShutdownEventServiceImpl.java

@@ -13,6 +13,7 @@ import com.gyee.datatraining.model.custom.ShutdowneventVo;
 import com.gyee.datatraining.model.custom.SimpleVo;
 import com.gyee.datatraining.service.auto.IProEconShutdownEventService;
 import com.gyee.datatraining.util.StringUtils;
+import com.gyee.datatraining.vo.ShutdownEventTypeVo;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -190,4 +191,15 @@ public class ProEconShutdownEventServiceImpl extends ServiceImpl<ProEconShutdown
         return vos;
 
     }
+
+    public List<ShutdownEventTypeVo> queryShutdowneventListByType(Date beginDate, Date endDate, String type)
+    {
+        List<ShutdownEventTypeVo> ls=new ArrayList<>();
+        if(StringUtils.notEmp(beginDate) && StringUtils.notEmp(endDate) && StringUtils.notEmp(type))
+        {
+           ls= proEconShutdownEventMapper.queryShutdowneventListByType( beginDate,  endDate,  type);
+        }
+
+        return ls;
+    }
 }

+ 3 - 1
realtime/datatraining-server/src/main/java/com/gyee/datatraining/util/DateUtils.java

@@ -368,5 +368,7 @@ public class DateUtils  extends org.apache.commons.lang3.time.DateUtils {
         utcSDF.setTimeZone(TimeZone.getTimeZone("UTC"));
         return utcSDF;
     }
-
+    public static Date parseLongToDate(long time) {
+        return new Date(time);
+    }
 }

+ 2 - 1
realtime/datatraining-server/src/main/java/com/gyee/datatraining/util/dd/LoadData.java

@@ -1,6 +1,7 @@
 package com.gyee.datatraining.util.dd;
 
 import com.gyee.common.model.DNAVal;
+import com.gyee.datatraining.config.V2Config;
 import com.gyee.datatraining.init.CacheContext;
 import com.gyee.datatraining.model.auto.ProBasicEquipmentPoint;
 import com.gyee.datatraining.util.IRealTimeDataBaseUtil;
@@ -50,7 +51,7 @@ public class LoadData {
 
 				int type=0;
 				for (int i = 0; i < points.length; i++) {
-					if(null==points[i])
+					if(null==points[i] &&  !V2Config.getInitialcode().equals(points[i]))
 					{
 						type=1;
 						break;

+ 2 - 2
realtime/datatraining-server/src/main/java/com/gyee/datatraining/util/dd/ModuleState.java

@@ -170,9 +170,9 @@ public class ModuleState {
             System.out.println("状态判定正常完成!");
         }else{
            System.out.println("loadDataVc读取数据异常!");
-            state=1;
+            state=0;
             result=new ArrayList<Double>();
-            result.add(1.0);
+            result.add(0.0);
             result.add(0.0);
             result.add(0.0);
             result.add(0.0);

+ 19 - 0
realtime/datatraining-server/src/main/java/com/gyee/datatraining/vo/ShutdownEventTypeVo.java

@@ -0,0 +1,19 @@
+package com.gyee.datatraining.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ShutdownEventTypeVo implements Serializable{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	
+	private String  wtId;
+	private int wtNum;
+
+
+}

+ 4 - 4
realtime/datatraining-server/src/main/resources/application-jn.yml

@@ -24,9 +24,9 @@ spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     #外网
-    url: jdbc:postgresql://10.81.3.151:5432/wisdom
-    username: gdprod
-    password: gd123
+    url: jdbc:postgresql://10.81.3.151:5432/IMS_NEM_JN
+    username: postgres
+    password: postgres
     driver-class-name: org.postgresql.Driver
     oracle-schema=:
     #    type: com.alibaba.druid.pool.DruidDataSource
@@ -75,7 +75,7 @@ logging:
     com.example: debug
 
 edos:
-  baseURL: http://10.0.118.73:8011/ts
+  baseURL: http://10.0.118.155:8011/ts