Browse Source

Merge branch 'master' of http://124.70.43.205:3000/xieshengjie/sis-background

# Conflicts:
#	gyee-sample-impala/src/main/resources/application.yaml
chenminghua 2 years atrás
parent
commit
72f4696124
80 changed files with 4502 additions and 22 deletions
  1. 84 7
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/BenchmarkingService.java
  2. 6 2
      gyee-sample-impala/pom.xml
  3. BIN
      gyee-sample-impala/readme/数据来源表.xlsx
  4. 5 1
      gyee-sample-impala/src/main/java/com/gyee/impala/common/config/datasource/DecisionDataSourceConfig.java
  5. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/common/config/datasource/KuduDataSourceConfig.java
  6. 9 2
      gyee-sample-impala/src/main/java/com/gyee/impala/common/config/datasource/MasterDataSourceConfig.java
  7. 182 0
      gyee-sample-impala/src/main/java/com/gyee/impala/common/spring/DecisionConvert.java
  8. 11 0
      gyee-sample-impala/src/main/java/com/gyee/impala/common/util/SnowFlakeUtil.java
  9. 52 0
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/WindspeedforecastshorttermController.java
  10. 51 0
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/WindspeedforecastspshorttermController.java
  11. 0 1
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/test/TrainDataController.java
  12. 0 1
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/sample/cases/CaseWarningController.java
  13. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/CollectorwireprojectMapper.java
  14. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/EnumMenuItemMapper.java
  15. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/MvMapper.java
  16. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscaleCwDaPfPeriodDataMapper.java
  17. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscalePrDaPfPeriodDataMapper.java
  18. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscaleWfDaPfPeriodDataMapper.java
  19. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscaleWtgDaPfPeriodDataMapper.java
  20. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/ProjectUspTsPeriodDataMapper.java
  21. 5 1
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfNwpDataMapper.java
  22. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfProjectCwWtgMapper.java
  23. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfProjectStatPeriodDataMapper.java
  24. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfStatPeriodDataMapper.java
  25. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfUspTsPeriodDataMapper.java
  26. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfYcHistoryData1Mapper.java
  27. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WindplantprojectMapper.java
  28. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WturMapper.java
  29. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/WindspeedforecastshorttermMapper.java
  30. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/WindspeedforecastspshorttermMapper.java
  31. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/LineMapper.java
  32. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/ProjectMapper.java
  33. 112 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Collectorwireproject.java
  34. 69 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/EnumMenuItem.java
  35. 189 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Mv.java
  36. 81 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscaleCwDaPfPeriodData.java
  37. 81 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscalePrDaPfPeriodData.java
  38. 92 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscaleWfDaPfPeriodData.java
  39. 81 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscaleWtgDaPfPeriodData.java
  40. 125 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/ProjectUspTsPeriodData.java
  41. 69 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfProjectCwWtg.java
  42. 81 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfProjectStatPeriodData.java
  43. 125 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfStatPeriodData.java
  44. 125 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfUspTsPeriodData.java
  45. 81 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfYcHistoryData1.java
  46. 134 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Windplantproject.java
  47. 495 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Wtur.java
  48. 297 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Windspeedforecastshortterm.java
  49. 308 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Windspeedforecastspshortterm.java
  50. 122 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Line.java
  51. 179 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Project.java
  52. 559 0
      gyee-sample-impala/src/main/java/com/gyee/impala/schdule/TaskWindspeedForecast.java
  53. 1 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/CasefaultalgServiceImpl.java
  54. 83 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindspeedforecastshorttermServiceImpl.java
  55. 74 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindspeedforecastspshorttermServiceImpl.java
  56. 24 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/IWindspeedforecastshorttermService.java
  57. 19 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/IWindspeedforecastspshorttermService.java
  58. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/CollectorwireprojectMapper.xml
  59. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/EnumMenuItemMapper.xml
  60. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/MvMapper.xml
  61. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/NoscaleCwDaPfPeriodDataMapper.xml
  62. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/NoscalePrDaPfPeriodDataMapper.xml
  63. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/NoscaleWfDaPfPeriodDataMapper.xml
  64. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/NoscaleWtgDaPfPeriodDataMapper.xml
  65. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/ProjectUspTsPeriodDataMapper.xml
  66. 7 4
      gyee-sample-impala/src/main/resources/mapper/decision/WfNwpDataMapper.xml
  67. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WfProjectCwWtgMapper.xml
  68. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WfProjectStatPeriodDataMapper.xml
  69. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WfStatPeriodDataMapper.xml
  70. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WfUspTsPeriodDataMapper.xml
  71. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WfYcHistoryData1Mapper.xml
  72. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WindplantprojectMapper.xml
  73. 5 0
      gyee-sample-impala/src/main/resources/mapper/decision/WturMapper.xml
  74. 5 0
      gyee-sample-impala/src/main/resources/mapper/master/WindspeedforecastshorttermMapper.xml
  75. 5 0
      gyee-sample-impala/src/main/resources/mapper/master/WindspeedforecastspshorttermMapper.xml
  76. 5 0
      gyee-sample-impala/src/main/resources/mapper/slave/LineMapper.xml
  77. 5 0
      gyee-sample-impala/src/main/resources/mapper/slave/ProjectMapper.xml
  78. 0 1
      gyee-sample-impala/src/test/java/com/gyee/impala/FaultHistoryFilterTest.java
  79. 18 1
      gyee-sample-impala/src/test/java/com/gyee/impala/GyeeSampleImpalaApplicationTests.java
  80. 66 0
      gyee-sample-impala/src/test/java/com/gyee/impala/KuduTest.java

File diff suppressed because it is too large
+ 84 - 7
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/BenchmarkingService.java


+ 6 - 2
gyee-sample-impala/pom.xml

@@ -9,7 +9,7 @@
     </parent>
     <groupId>com.gyee.sampleimpala</groupId>
     <artifactId>gyee-sample-impala</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.3</version>
     <name>gyee-sample-impala</name>
     <description>sample impala project for Spring Boot</description>
     <properties>
@@ -45,7 +45,7 @@
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid-spring-boot-starter</artifactId>
-            <version>1.1.10</version>
+            <version>1.2.11</version>
         </dependency>
 
         <dependency>
@@ -242,6 +242,10 @@
                     <artifactId>log4j-web</artifactId>
                     <groupId>org.apache.logging.log4j</groupId>
                 </exclusion>
+                <exclusion>
+                    <artifactId>jdk.tools</artifactId>
+                    <groupId>jdk.tools</groupId>
+                </exclusion>
             </exclusions>
         </dependency>
 

BIN
gyee-sample-impala/readme/数据来源表.xlsx


+ 5 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/common/config/datasource/DecisionDataSourceConfig.java

@@ -1,7 +1,9 @@
 package com.gyee.impala.common.config.datasource;
 
 
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.logging.stdout.StdOutImpl;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionTemplate;
 import org.mybatis.spring.annotation.MapperScan;
@@ -31,7 +33,9 @@ public class DecisionDataSourceConfig {
     public SqlSessionFactory decisionSqlSessionFactory(@Qualifier("decision") DataSource dataSource) throws Exception {
         MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
         sessionFactoryBean.setDataSource(dataSource);
-
+        /*MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
+        mybatisConfiguration.setLogImpl(StdOutImpl.class);
+        sessionFactoryBean.setConfiguration(mybatisConfiguration);*/
         sessionFactoryBean.setMapperLocations(
                 new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/decision/*.xml"));
 

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/common/config/datasource/KuduDataSourceConfig.java

@@ -32,7 +32,7 @@ public class KuduDataSourceConfig {
     public void initKuDu(){
         if (kuduClient == null)
             kuduClient = new KuduClient
-                    .KuduClientBuilder(gyeeConfig.getKuduHost() + ":7051")
+                    .KuduClientBuilder(gyeeConfig.getKuduHost() + ":7051")//7051,21050
                     .defaultOperationTimeoutMs(6000)
                     .build();
     }

+ 9 - 2
gyee-sample-impala/src/main/java/com/gyee/impala/common/config/datasource/MasterDataSourceConfig.java

@@ -1,7 +1,10 @@
 package com.gyee.impala.common.config.datasource;
 
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.logging.stdout.StdOutImpl;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionTemplate;
 import org.mybatis.spring.annotation.MapperScan;
@@ -41,7 +44,9 @@ public class MasterDataSourceConfig {
     public SqlSessionFactory masterSqlSessionFactory(@Qualifier("master") DataSource dataSource) throws Exception {
         MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
         sessionFactoryBean.setDataSource(dataSource);
-
+        /*MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
+        mybatisConfiguration.setLogImpl(StdOutImpl.class);
+        sessionFactoryBean.setConfiguration(mybatisConfiguration);*/
         sessionFactoryBean.setMapperLocations(
                 new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/master/*.xml"));
 
@@ -60,6 +65,8 @@ public class MasterDataSourceConfig {
      */
     @Bean
     public PaginationInterceptor paginationInterceptor() {
-        return new PaginationInterceptor();
+        PaginationInterceptor page = new PaginationInterceptor();
+        page.setDbType(DbType.MYSQL);
+        return page;
     }
 }

+ 182 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/common/spring/DecisionConvert.java

@@ -0,0 +1,182 @@
+package com.gyee.impala.common.spring;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gyee.impala.mapper.decision.CollectorwireprojectMapper;
+import com.gyee.impala.mapper.decision.EnumMenuItemMapper;
+import com.gyee.impala.mapper.decision.WindplantprojectMapper;
+import com.gyee.impala.mapper.decision.WturMapper;
+import com.gyee.impala.mapper.master.WindturbineMapper;
+import com.gyee.impala.mapper.slave.LineMapper;
+import com.gyee.impala.mapper.slave.ProjectMapper;
+import com.gyee.impala.model.decision.Collectorwireproject;
+import com.gyee.impala.model.decision.EnumMenuItem;
+import com.gyee.impala.model.decision.Windplantproject;
+import com.gyee.impala.model.decision.Wtur;
+import com.gyee.impala.model.master.Windturbine;
+import com.gyee.impala.model.slave.Line;
+import com.gyee.impala.model.slave.Project;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class DecisionConvert {
+
+    @Resource
+    private WindplantprojectMapper windplantprojectMapper;
+    @Resource
+    private CollectorwireprojectMapper collectorwireprojectMapper;
+    @Resource
+    private WturMapper wturMapper;
+    @Resource
+    private WindturbineMapper windturbineMapper;
+    @Resource
+    private ProjectMapper projectMapper;
+    @Resource
+    private LineMapper lineMapper;
+    @Resource
+    private EnumMenuItemMapper enumMenuItemMapper;
+
+    //网源id,英文名称
+    private Map<Short, String> stationIdMap;
+    //网源id,汉字名称
+    private Map<Short, String> stationNameMap;
+    private Map<Short, String> projectIdMap;
+    private Map<Short, String> projectNameMap;
+    private Map<Short, String> lineIdMap;
+    private Map<Short, String> lineNameMap;
+    private Map<Short, String> windturbineIdMap;
+    private Map<Short, String> windturbineNameMap;
+    //超短期模型
+    private Map<Integer, String> spModelNameMap;
+    //短期模型
+    private Map<Integer, String> modelNameMap;
+    private List<Collectorwireproject> collectorwireprojects;
+    private List<Windplantproject> windplantprojects;
+
+    public Map<Integer, String> getSpModelNameMap() {
+        if (spModelNameMap == null) {
+            QueryWrapper<EnumMenuItem> wrapper = new QueryWrapper<>();
+            wrapper.eq("MENU_NO", 123);
+            spModelNameMap = enumMenuItemMapper.selectList(wrapper).stream().collect(Collectors.toMap(EnumMenuItem::getItemNo, EnumMenuItem::getItemName));
+        }
+        return spModelNameMap;
+    }
+
+    public Map<Integer, String> getModelNameMap() {
+        if (modelNameMap == null) {
+            QueryWrapper<EnumMenuItem> wrapper = new QueryWrapper<>();
+            wrapper.eq("MENU_NO", 120);
+            modelNameMap = enumMenuItemMapper.selectList(wrapper).stream().collect(Collectors.toMap(EnumMenuItem::getItemNo, EnumMenuItem::getItemName));
+        }
+        return modelNameMap;
+    }
+
+    public Map<Short, String> getStationIdMap() {
+        if (stationIdMap == null) {
+            stationIdMap = new HashMap<>();
+            stationIdMap.put((short) 1, "NSS_FDC");
+            stationIdMap.put((short) 2, "QS_FDC");
+            stationIdMap.put((short) 3, "SBQ_FDC");
+            stationIdMap.put((short) 4, "XS_FDC");
+            stationIdMap.put((short) 5, "MHS_FDC");
+        }
+        return stationIdMap;
+    }
+
+    public Map<Short, String> getStationNameMap() {
+        if (stationNameMap == null) {
+            stationNameMap = new HashMap<>();
+            stationNameMap.put((short) 1, "牛首山风电场");
+            stationNameMap.put((short) 2, "青山风电场");
+            stationNameMap.put((short) 3, "石板泉风电场");
+            stationNameMap.put((short) 4, "香山风电场");
+            stationNameMap.put((short) 5, "麻黄山风电场");
+        }
+        return stationNameMap;
+    }
+
+    public Map<Short, String> getProjectIdMap() {
+        if (projectNameMap == null) {
+            Map<String, String> pm = projectMapper.selectList(Wrappers.emptyWrapper()).stream().collect(
+                    Collectors.toMap(Project::getName, Project::getId));
+            getProjectNameMap();
+            projectNameMap = new HashMap<>();
+            projectIdMap.forEach((wyid, wyname) -> projectNameMap.put(wyid, pm.get(wyname)));
+        }
+        return projectNameMap;
+    }
+
+    public Map<Short, String> getProjectNameMap() {
+        if (projectIdMap == null) {
+            getWindplantprojects();
+            projectIdMap = windplantprojects.stream().collect(Collectors.toMap(Windplantproject::getProjectNo, Windplantproject::getProjectName));
+        }
+        return projectIdMap;
+    }
+
+    public Map<Short, String> getLineIdMap() {
+        if (lineNameMap == null) {
+            Map<String, String> lm = lineMapper.selectList(Wrappers.emptyWrapper()).stream().collect(
+                    Collectors.toMap(Line::getName, Line::getId));
+            getLineNameMap();
+            lineNameMap = new HashMap<>();
+            lineIdMap.forEach((wyid, wynm) -> lineNameMap.put(wyid, lm.get(wynm)));
+        }
+        return lineNameMap;
+    }
+
+    public Map<Short, String> getLineNameMap() {
+        if (lineIdMap == null) {
+            getCollectorwireprojects();
+            lineIdMap = collectorwireprojects.stream().collect(Collectors.toMap(Collectorwireproject::getCollectorwireNo, Collectorwireproject::getWireName));
+        }
+        return lineIdMap;
+    }
+
+    public Map<Short, String> getWindturbineIdMap() {
+        if (windturbineIdMap == null) {
+            QueryWrapper<Wtur> wrapper = new QueryWrapper();
+            wrapper.lt("WINDPLANT_NO", 6).lt("WTG_TYPE", 15);
+            List<Wtur> wturs = wturMapper.selectList(wrapper);
+            wturs.forEach(wtur -> wtur.setName(wtur.getName().replaceFirst("G", "G01_")));
+            windturbineIdMap = wturs.stream().collect(Collectors.toMap(Wtur::getWturNo, Wtur::getName));
+        }
+        return windturbineIdMap;
+    }
+
+    public Map<Short, String> getWindturbineNameMap() {
+        if (windturbineNameMap == null) {
+            Map<String, String> wm = windturbineMapper.selectList(Wrappers.emptyWrapper()).stream().collect(
+                    Collectors.toMap(Windturbine::getId, Windturbine::getName));
+            getWindturbineIdMap();
+            windturbineNameMap = new HashMap<>();
+            windturbineIdMap.forEach((wyid, fjid) -> windturbineNameMap.put(wyid, wm.get("fjid")));
+        }
+        return windturbineNameMap;
+    }
+
+    public List<Collectorwireproject> getCollectorwireprojects() {
+        if (collectorwireprojects == null) {
+            QueryWrapper<Collectorwireproject> wrapper = new QueryWrapper();
+            wrapper.lt("WP_NO", 6);
+            collectorwireprojects = collectorwireprojectMapper.selectList(wrapper);
+        }
+        return collectorwireprojects;
+    }
+
+    public List<Windplantproject> getWindplantprojects() {
+        if (windplantprojects == null) {
+            QueryWrapper<Windplantproject> wrapper = new QueryWrapper();
+            wrapper.gt("PROJECT_NO", 0);
+            windplantprojects = windplantprojectMapper.selectList(wrapper);
+        }
+        return windplantprojects;
+    }
+}

+ 11 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/common/util/SnowFlakeUtil.java

@@ -148,4 +148,15 @@ public class SnowFlakeUtil {
 //            System.out.println(id);
 //        }
     }
+    public static Long generateIdL() {
+        if (idWorker == null)
+            idWorker = new SnowFlakeUtil(0, 0);
+
+        return idWorker.nextId();
+//        for (int i = 0; i < 1000; i++) {
+//            long id = idWorker.nextId();
+//            System.out.println(Long.toBinaryString(id));
+//            System.out.println(id);
+//        }
+    }
 }

+ 52 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/WindspeedforecastshorttermController.java

@@ -0,0 +1,52 @@
+package com.gyee.impala.controller.diagnose;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.impala.common.result.JsonResult;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+import com.gyee.impala.service.master.IWindspeedforecastshorttermService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-09
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/windspeedforecast/shortterm")
+public class WindspeedforecastshorttermController {
+    @Autowired
+    private IWindspeedforecastshorttermService windspeedforecastshorttermService;
+
+    @GetMapping("/list")
+    public JSONObject getList(@RequestParam(value = "pagenum", required = false) Integer pagenum,
+                              @RequestParam(value = "pagesize", required = false) Integer pagesize,
+                              @RequestParam(value = "forecasttype", required = false) String forecasttype,
+                              @RequestParam(value = "stationid", required = false) String stationid,
+                              @RequestParam(value = "projectid", required = false) String projectid,
+                              @RequestParam(value = "lineid", required = false) String lineid,
+                              @RequestParam(value = "windturbineid", required = false) String windturbineid) {
+        QueryWrapper<Windspeedforecastshortterm> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotEmpty(forecasttype), "forecasttype", forecasttype)
+                .eq(StringUtils.isNotEmpty(stationid), "stationid", stationid)
+                .eq(StringUtils.isNotEmpty(projectid), "projectid", projectid)
+                .eq(StringUtils.isNotEmpty(lineid), "lineid", lineid)
+                .eq(StringUtils.isNotEmpty(windturbineid), "windturbineid", windturbineid);
+        if (pagenum != null && pagesize != null && pagenum != 0 && pagesize != 0) {
+            wrapper.last("order by id limit " + pagesize + " offset " + (pagenum-1) * pagesize);
+        }
+        List<Windspeedforecastshortterm> list = windspeedforecastshorttermService.list(wrapper);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+}

+ 51 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/WindspeedforecastspshorttermController.java

@@ -0,0 +1,51 @@
+package com.gyee.impala.controller.diagnose;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.impala.common.result.JsonResult;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+import com.gyee.impala.model.master.Windspeedforecastspshortterm;
+import com.gyee.impala.service.master.IWindspeedforecastspshorttermService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-09
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/windspeedforecast/spshortterm")
+public class WindspeedforecastspshorttermController {
+    @Autowired
+    private IWindspeedforecastspshorttermService windspeedforecastspshorttermService;
+
+    @GetMapping("/list")
+    public JSONObject getList(@RequestParam(value = "pagenum", required = false) Integer pagenum,
+                              @RequestParam(value = "pagesize", required = false) Integer pagesize,
+                              @RequestParam(value = "forecasttype", required = false) String forecasttype,
+                              @RequestParam(value = "stationid", required = false) String stationid,
+                              @RequestParam(value = "projectid", required = false) String projectid,
+                              @RequestParam(value = "lineid", required = false) String lineid,
+                              @RequestParam(value = "windturbineid", required = false) String windturbineid) {
+        QueryWrapper<Windspeedforecastspshortterm> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotEmpty(forecasttype), "forecasttype", forecasttype)
+                .eq(StringUtils.isNotEmpty(stationid), "stationid", stationid)
+                .eq(StringUtils.isNotEmpty(projectid), "projectid", projectid)
+                .eq(StringUtils.isNotEmpty(lineid), "lineid", lineid)
+                .eq(StringUtils.isNotEmpty(windturbineid), "windturbineid", windturbineid);
+        if (pagenum != null && pagesize != null && pagenum != 0 && pagesize != 0) {
+            wrapper.last("order by id limit " + pagesize + " offset " + (pagenum-1) * pagesize);
+        }
+        List<Windspeedforecastspshortterm> list = windspeedforecastspshorttermService.list(wrapper);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+}

+ 0 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/test/TrainDataController.java

@@ -12,7 +12,6 @@ import com.gyee.impala.model.master.diagnose.Diagnosepoint;
 import com.gyee.impala.model.master.diagnose.Diagnosetrainhistory;
 import com.gyee.impala.service.custom.diagnose.DataDiagnoseService;
 import com.gyee.impala.service.master.CasefaultalgService;
-import jdk.nashorn.internal.ir.annotations.Ignore;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 

+ 0 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/controller/sample/cases/CaseWarningController.java

@@ -13,7 +13,6 @@ import com.gyee.impala.service.master.CasewarningcustomService;
 import com.gyee.impala.service.master.CasewarningscadaService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import sun.misc.Request;
 
 import java.util.*;
 import java.util.stream.Collectors;

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/CollectorwireprojectMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.Collectorwireproject;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public interface CollectorwireprojectMapper extends BaseMapper<Collectorwireproject> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/EnumMenuItemMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.EnumMenuItem;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public interface EnumMenuItemMapper extends BaseMapper<EnumMenuItem> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/MvMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.Mv;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public interface MvMapper extends BaseMapper<Mv> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscaleCwDaPfPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.NoscaleCwDaPfPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface NoscaleCwDaPfPeriodDataMapper extends BaseMapper<NoscaleCwDaPfPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscalePrDaPfPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.NoscalePrDaPfPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface NoscalePrDaPfPeriodDataMapper extends BaseMapper<NoscalePrDaPfPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscaleWfDaPfPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.NoscaleWfDaPfPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface NoscaleWfDaPfPeriodDataMapper extends BaseMapper<NoscaleWfDaPfPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/NoscaleWtgDaPfPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.NoscaleWtgDaPfPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface NoscaleWtgDaPfPeriodDataMapper extends BaseMapper<NoscaleWtgDaPfPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/ProjectUspTsPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.ProjectUspTsPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface ProjectUspTsPeriodDataMapper extends BaseMapper<ProjectUspTsPeriodData> {
+
+}

+ 5 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfNwpDataMapper.java

@@ -2,6 +2,10 @@ package com.gyee.impala.mapper.decision;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gyee.impala.model.decision.WfNwpData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,5 @@ import com.gyee.impala.model.decision.WfNwpData;
  * @since 2022-03-18
  */
 public interface WfNwpDataMapper extends BaseMapper<WfNwpData> {
-
+    List<WfNwpData> getAllInDate(@Param("winno") short winno, @Param("starttime") Date start, @Param("endtime") Date end);
 }

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfProjectCwWtgMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.WfProjectCwWtg;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public interface WfProjectCwWtgMapper extends BaseMapper<WfProjectCwWtg> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfProjectStatPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.WfProjectStatPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface WfProjectStatPeriodDataMapper extends BaseMapper<WfProjectStatPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfStatPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.WfStatPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface WfStatPeriodDataMapper extends BaseMapper<WfStatPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfUspTsPeriodDataMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.WfUspTsPeriodData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface WfUspTsPeriodDataMapper extends BaseMapper<WfUspTsPeriodData> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WfYcHistoryData1Mapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.WfYcHistoryData1;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+public interface WfYcHistoryData1Mapper extends BaseMapper<WfYcHistoryData1> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WindplantprojectMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.Windplantproject;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public interface WindplantprojectMapper extends BaseMapper<Windplantproject> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/decision/WturMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.decision;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.decision.Wtur;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public interface WturMapper extends BaseMapper<Wtur> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/WindspeedforecastshorttermMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.master;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-31
+ */
+public interface WindspeedforecastshorttermMapper extends BaseMapper<Windspeedforecastshortterm> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/WindspeedforecastspshorttermMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.master;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.master.Windspeedforecastspshortterm;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-31
+ */
+public interface WindspeedforecastspshorttermMapper extends BaseMapper<Windspeedforecastspshortterm> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/LineMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.slave;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.slave.Line;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public interface LineMapper extends BaseMapper<Line> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/ProjectMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.slave;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.slave.Project;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public interface ProjectMapper extends BaseMapper<Project> {
+
+}

+ 112 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Collectorwireproject.java

@@ -0,0 +1,112 @@
+package com.gyee.impala.model.decision;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public class Collectorwireproject implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short wpNo;
+
+    private Short projectNo;
+
+    private Short collectorwireNo;
+
+    private String wireName;
+
+    private Double wireCapacity;
+
+    private Integer analogNo;
+
+    private Integer bcrNo;
+
+    private Date statSpeedTime;
+
+    public Short getWpNo() {
+        return wpNo;
+    }
+
+    public void setWpNo(Short wpNo) {
+        this.wpNo = wpNo;
+    }
+
+    public Short getProjectNo() {
+        return projectNo;
+    }
+
+    public void setProjectNo(Short projectNo) {
+        this.projectNo = projectNo;
+    }
+
+    public Short getCollectorwireNo() {
+        return collectorwireNo;
+    }
+
+    public void setCollectorwireNo(Short collectorwireNo) {
+        this.collectorwireNo = collectorwireNo;
+    }
+
+    public String getWireName() {
+        return wireName;
+    }
+
+    public void setWireName(String wireName) {
+        this.wireName = wireName;
+    }
+
+    public Double getWireCapacity() {
+        return wireCapacity;
+    }
+
+    public void setWireCapacity(Double wireCapacity) {
+        this.wireCapacity = wireCapacity;
+    }
+
+    public Integer getAnalogNo() {
+        return analogNo;
+    }
+
+    public void setAnalogNo(Integer analogNo) {
+        this.analogNo = analogNo;
+    }
+
+    public Integer getBcrNo() {
+        return bcrNo;
+    }
+
+    public void setBcrNo(Integer bcrNo) {
+        this.bcrNo = bcrNo;
+    }
+
+    public Date getStatSpeedTime() {
+        return statSpeedTime;
+    }
+
+    public void setStatSpeedTime(Date statSpeedTime) {
+        this.statSpeedTime = statSpeedTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Collectorwireproject{" +
+            "wpNo = " + wpNo +
+            ", projectNo = " + projectNo +
+            ", collectorwireNo = " + collectorwireNo +
+            ", wireName = " + wireName +
+            ", wireCapacity = " + wireCapacity +
+            ", analogNo = " + analogNo +
+            ", bcrNo = " + bcrNo +
+            ", statSpeedTime = " + statSpeedTime +
+        "}";
+    }
+}

+ 69 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/EnumMenuItem.java

@@ -0,0 +1,69 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+@TableName("ENUM_MENU_ITEM")
+public class EnumMenuItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short menuNo;
+
+    private Integer itemNo;
+
+    private String itemName;
+
+    private Integer itemVal;
+
+    public Short getMenuNo() {
+        return menuNo;
+    }
+
+    public void setMenuNo(Short menuNo) {
+        this.menuNo = menuNo;
+    }
+
+    public Integer getItemNo() {
+        return itemNo;
+    }
+
+    public void setItemNo(Integer itemNo) {
+        this.itemNo = itemNo;
+    }
+
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+
+    public Integer getItemVal() {
+        return itemVal;
+    }
+
+    public void setItemVal(Integer itemVal) {
+        this.itemVal = itemVal;
+    }
+
+    @Override
+    public String toString() {
+        return "EnumMenuItem{" +
+            "menuNo = " + menuNo +
+            ", itemNo = " + itemNo +
+            ", itemName = " + itemName +
+            ", itemVal = " + itemVal +
+        "}";
+    }
+}

+ 189 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Mv.java

@@ -0,0 +1,189 @@
+package com.gyee.impala.model.decision;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public class Mv implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short windplantNo;
+
+    private Integer mvNo;
+
+    private Short wturNo;
+
+    private Short oftype;
+
+    private String name;
+
+    private String ref;
+
+    private Short presence;
+
+    private Double instmag;
+
+    private Double mag;
+
+    private Double coeff;
+
+    private Short range;
+
+    private Short q;
+
+    private Date t;
+
+    private Short measurementtypeNo;
+
+    private Short statTag;
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Integer getMvNo() {
+        return mvNo;
+    }
+
+    public void setMvNo(Integer mvNo) {
+        this.mvNo = mvNo;
+    }
+
+    public Short getWturNo() {
+        return wturNo;
+    }
+
+    public void setWturNo(Short wturNo) {
+        this.wturNo = wturNo;
+    }
+
+    public Short getOftype() {
+        return oftype;
+    }
+
+    public void setOftype(Short oftype) {
+        this.oftype = oftype;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getRef() {
+        return ref;
+    }
+
+    public void setRef(String ref) {
+        this.ref = ref;
+    }
+
+    public Short getPresence() {
+        return presence;
+    }
+
+    public void setPresence(Short presence) {
+        this.presence = presence;
+    }
+
+    public Double getInstmag() {
+        return instmag;
+    }
+
+    public void setInstmag(Double instmag) {
+        this.instmag = instmag;
+    }
+
+    public Double getMag() {
+        return mag;
+    }
+
+    public void setMag(Double mag) {
+        this.mag = mag;
+    }
+
+    public Double getCoeff() {
+        return coeff;
+    }
+
+    public void setCoeff(Double coeff) {
+        this.coeff = coeff;
+    }
+
+    public Short getRange() {
+        return range;
+    }
+
+    public void setRange(Short range) {
+        this.range = range;
+    }
+
+    public Short getQ() {
+        return q;
+    }
+
+    public void setQ(Short q) {
+        this.q = q;
+    }
+
+    public Date getT() {
+        return t;
+    }
+
+    public void setT(Date t) {
+        this.t = t;
+    }
+
+    public Short getMeasurementtypeNo() {
+        return measurementtypeNo;
+    }
+
+    public void setMeasurementtypeNo(Short measurementtypeNo) {
+        this.measurementtypeNo = measurementtypeNo;
+    }
+
+    public Short getStatTag() {
+        return statTag;
+    }
+
+    public void setStatTag(Short statTag) {
+        this.statTag = statTag;
+    }
+
+    @Override
+    public String toString() {
+        return "Mv{" +
+            "windplantNo = " + windplantNo +
+            ", mvNo = " + mvNo +
+            ", wturNo = " + wturNo +
+            ", oftype = " + oftype +
+            ", name = " + name +
+            ", ref = " + ref +
+            ", presence = " + presence +
+            ", instmag = " + instmag +
+            ", mag = " + mag +
+            ", coeff = " + coeff +
+            ", range = " + range +
+            ", q = " + q +
+            ", t = " + t +
+            ", measurementtypeNo = " + measurementtypeNo +
+            ", statTag = " + statTag +
+        "}";
+    }
+}

+ 81 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscaleCwDaPfPeriodData.java

@@ -0,0 +1,81 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("NOSCALE_CW_DA_PF_PERIOD_DATA")
+public class NoscaleCwDaPfPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short wfPrCwireNo;
+
+    private Integer modelNo;
+
+    private Date dataTime;
+
+    private Float value;
+
+    private Short dataFlag;
+
+    public Short getWfPrCwireNo() {
+        return wfPrCwireNo;
+    }
+
+    public void setWfPrCwireNo(Short wfPrCwireNo) {
+        this.wfPrCwireNo = wfPrCwireNo;
+    }
+
+    public Integer getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(Integer modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getValue() {
+        return value;
+    }
+
+    public void setValue(Float value) {
+        this.value = value;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "NoscaleCwDaPfPeriodData{" +
+            "wfPrCwireNo = " + wfPrCwireNo +
+            ", modelNo = " + modelNo +
+            ", dataTime = " + dataTime +
+            ", value = " + value +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 81 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscalePrDaPfPeriodData.java

@@ -0,0 +1,81 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("NOSCALE_PR_DA_PF_PERIOD_DATA")
+public class NoscalePrDaPfPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short wfPrNo;
+
+    private Integer modelNo;
+
+    private Date dataTime;
+
+    private Float value;
+
+    private Short dataFlag;
+
+    public Short getWfPrNo() {
+        return wfPrNo;
+    }
+
+    public void setWfPrNo(Short wfPrNo) {
+        this.wfPrNo = wfPrNo;
+    }
+
+    public Integer getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(Integer modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getValue() {
+        return value;
+    }
+
+    public void setValue(Float value) {
+        this.value = value;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "NoscalePrDaPfPeriodData{" +
+            "wfPrNo = " + wfPrNo +
+            ", modelNo = " + modelNo +
+            ", dataTime = " + dataTime +
+            ", value = " + value +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 92 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscaleWfDaPfPeriodData.java

@@ -0,0 +1,92 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("NOSCALE_WF_DA_PF_PERIOD_DATA")
+public class NoscaleWfDaPfPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short windplantNo;
+
+    private Integer modelNo;
+
+    private Date dataTime;
+
+    private Float value;
+
+    private Short dataFlag;
+
+    private Float modspeed;
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Integer getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(Integer modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getValue() {
+        return value;
+    }
+
+    public void setValue(Float value) {
+        this.value = value;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    public Float getModspeed() {
+        return modspeed;
+    }
+
+    public void setModspeed(Float modspeed) {
+        this.modspeed = modspeed;
+    }
+
+    @Override
+    public String toString() {
+        return "NoscaleWfDaPfPeriodData{" +
+            "windplantNo = " + windplantNo +
+            ", modelNo = " + modelNo +
+            ", dataTime = " + dataTime +
+            ", value = " + value +
+            ", dataFlag = " + dataFlag +
+            ", modspeed = " + modspeed +
+        "}";
+    }
+}

+ 81 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/NoscaleWtgDaPfPeriodData.java

@@ -0,0 +1,81 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("NOSCALE_WTG_DA_PF_PERIOD_DATA")
+public class NoscaleWtgDaPfPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short wtgNo;
+
+    private Integer modelNo;
+
+    private Date dataTime;
+
+    private Float value;
+
+    private Short dataFlag;
+
+    public Short getWtgNo() {
+        return wtgNo;
+    }
+
+    public void setWtgNo(Short wtgNo) {
+        this.wtgNo = wtgNo;
+    }
+
+    public Integer getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(Integer modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getValue() {
+        return value;
+    }
+
+    public void setValue(Float value) {
+        this.value = value;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "NoscaleWtgDaPfPeriodData{" +
+            "wtgNo = " + wtgNo +
+            ", modelNo = " + modelNo +
+            ", dataTime = " + dataTime +
+            ", value = " + value +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 125 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/ProjectUspTsPeriodData.java

@@ -0,0 +1,125 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("PROJECT_USP_TS_PERIOD_DATA")
+public class ProjectUspTsPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short projectNo;
+
+    private Integer modelNo;
+
+    private Short timeScale;
+
+    private Date dataTime;
+
+    private Float windSpeed;
+
+    private Float modCoeff;
+
+    private Float power;
+
+    private Float modPower;
+
+    private Short dataFlag;
+
+    public Short getProjectNo() {
+        return projectNo;
+    }
+
+    public void setProjectNo(Short projectNo) {
+        this.projectNo = projectNo;
+    }
+
+    public Integer getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(Integer modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Short getTimeScale() {
+        return timeScale;
+    }
+
+    public void setTimeScale(Short timeScale) {
+        this.timeScale = timeScale;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getWindSpeed() {
+        return windSpeed;
+    }
+
+    public void setWindSpeed(Float windSpeed) {
+        this.windSpeed = windSpeed;
+    }
+
+    public Float getModCoeff() {
+        return modCoeff;
+    }
+
+    public void setModCoeff(Float modCoeff) {
+        this.modCoeff = modCoeff;
+    }
+
+    public Float getPower() {
+        return power;
+    }
+
+    public void setPower(Float power) {
+        this.power = power;
+    }
+
+    public Float getModPower() {
+        return modPower;
+    }
+
+    public void setModPower(Float modPower) {
+        this.modPower = modPower;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "ProjectUspTsPeriodData{" +
+            "projectNo = " + projectNo +
+            ", modelNo = " + modelNo +
+            ", timeScale = " + timeScale +
+            ", dataTime = " + dataTime +
+            ", windSpeed = " + windSpeed +
+            ", modCoeff = " + modCoeff +
+            ", power = " + power +
+            ", modPower = " + modPower +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 69 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfProjectCwWtg.java

@@ -0,0 +1,69 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+@TableName("WF_PROJECT_CW_WTG")
+public class WfProjectCwWtg implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short windplantNo;
+
+    private Short projectNo;
+
+    private Integer collectorwireNo;
+
+    private Integer wtgNo;
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Short getProjectNo() {
+        return projectNo;
+    }
+
+    public void setProjectNo(Short projectNo) {
+        this.projectNo = projectNo;
+    }
+
+    public Integer getCollectorwireNo() {
+        return collectorwireNo;
+    }
+
+    public void setCollectorwireNo(Integer collectorwireNo) {
+        this.collectorwireNo = collectorwireNo;
+    }
+
+    public Integer getWtgNo() {
+        return wtgNo;
+    }
+
+    public void setWtgNo(Integer wtgNo) {
+        this.wtgNo = wtgNo;
+    }
+
+    @Override
+    public String toString() {
+        return "WfProjectCwWtg{" +
+            "windplantNo = " + windplantNo +
+            ", projectNo = " + projectNo +
+            ", collectorwireNo = " + collectorwireNo +
+            ", wtgNo = " + wtgNo +
+        "}";
+    }
+}

+ 81 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfProjectStatPeriodData.java

@@ -0,0 +1,81 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("WF_PROJECT_STAT_PERIOD_DATA")
+public class WfProjectStatPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short windplantNo;
+
+    private Short projectNo;
+
+    private Date dataTime;
+
+    private Float avgWindSpeed;
+
+    private Short dataFlag;
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Short getProjectNo() {
+        return projectNo;
+    }
+
+    public void setProjectNo(Short projectNo) {
+        this.projectNo = projectNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getAvgWindSpeed() {
+        return avgWindSpeed;
+    }
+
+    public void setAvgWindSpeed(Float avgWindSpeed) {
+        this.avgWindSpeed = avgWindSpeed;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "WfProjectStatPeriodData{" +
+            "windplantNo = " + windplantNo +
+            ", projectNo = " + projectNo +
+            ", dataTime = " + dataTime +
+            ", avgWindSpeed = " + avgWindSpeed +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 125 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfStatPeriodData.java

@@ -0,0 +1,125 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("WF_STAT_PERIOD_DATA")
+public class WfStatPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short windplantNo;
+
+    private Date dataTime;
+
+    private Float p1;
+
+    private Float p2;
+
+    private Float p0;
+
+    private Float avgWindSpeed;
+
+    private Float avgTemp;
+
+    private Float energy;
+
+    private Short dataFlag;
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getp1() {
+        return p1;
+    }
+
+    public void setp1(Float p1) {
+        this.p1 = p1;
+    }
+
+    public Float getp2() {
+        return p2;
+    }
+
+    public void setp2(Float p2) {
+        this.p2 = p2;
+    }
+
+    public Float getp0() {
+        return p0;
+    }
+
+    public void setp0(Float p0) {
+        this.p0 = p0;
+    }
+
+    public Float getAvgWindSpeed() {
+        return avgWindSpeed;
+    }
+
+    public void setAvgWindSpeed(Float avgWindSpeed) {
+        this.avgWindSpeed = avgWindSpeed;
+    }
+
+    public Float getAvgTemp() {
+        return avgTemp;
+    }
+
+    public void setAvgTemp(Float avgTemp) {
+        this.avgTemp = avgTemp;
+    }
+
+    public Float getEnergy() {
+        return energy;
+    }
+
+    public void setEnergy(Float energy) {
+        this.energy = energy;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "WfStatPeriodData{" +
+            "windplantNo = " + windplantNo +
+            ", dataTime = " + dataTime +
+            ", p1 = " + p1 +
+            ", p2 = " + p2 +
+            ", p0 = " + p0 +
+            ", avgWindSpeed = " + avgWindSpeed +
+            ", avgTemp = " + avgTemp +
+            ", energy = " + energy +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 125 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfUspTsPeriodData.java

@@ -0,0 +1,125 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("WF_USP_TS_PERIOD_DATA")
+public class WfUspTsPeriodData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short windplantNo;
+
+    private Integer modelNo;
+
+    private Short timeScale;
+
+    private Date dataTime;
+
+    private Float windSpeed;
+
+    private Float modCoeff;
+
+    private Float power;
+
+    private Float modPower;
+
+    private Short dataFlag;
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Integer getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(Integer modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Short getTimeScale() {
+        return timeScale;
+    }
+
+    public void setTimeScale(Short timeScale) {
+        this.timeScale = timeScale;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getWindSpeed() {
+        return windSpeed;
+    }
+
+    public void setWindSpeed(Float windSpeed) {
+        this.windSpeed = windSpeed;
+    }
+
+    public Float getModCoeff() {
+        return modCoeff;
+    }
+
+    public void setModCoeff(Float modCoeff) {
+        this.modCoeff = modCoeff;
+    }
+
+    public Float getPower() {
+        return power;
+    }
+
+    public void setPower(Float power) {
+        this.power = power;
+    }
+
+    public Float getModPower() {
+        return modPower;
+    }
+
+    public void setModPower(Float modPower) {
+        this.modPower = modPower;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "WfUspTsPeriodData{" +
+            "windplantNo = " + windplantNo +
+            ", modelNo = " + modelNo +
+            ", timeScale = " + timeScale +
+            ", dataTime = " + dataTime +
+            ", windSpeed = " + windSpeed +
+            ", modCoeff = " + modCoeff +
+            ", power = " + power +
+            ", modPower = " + modPower +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 81 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/WfYcHistoryData1.java

@@ -0,0 +1,81 @@
+package com.gyee.impala.model.decision;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-30
+ */
+@TableName("WF_YC_HISTORY_DATA1")
+public class WfYcHistoryData1 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer analogNo;
+
+    private Date dataTime;
+
+    private Float ycRawVal;
+
+    private Float ycVal;
+
+    private Short dataFlag;
+
+    public Integer getAnalogNo() {
+        return analogNo;
+    }
+
+    public void setAnalogNo(Integer analogNo) {
+        this.analogNo = analogNo;
+    }
+
+    public Date getDataTime() {
+        return dataTime;
+    }
+
+    public void setDataTime(Date dataTime) {
+        this.dataTime = dataTime;
+    }
+
+    public Float getYcRawVal() {
+        return ycRawVal;
+    }
+
+    public void setYcRawVal(Float ycRawVal) {
+        this.ycRawVal = ycRawVal;
+    }
+
+    public Float getYcVal() {
+        return ycVal;
+    }
+
+    public void setYcVal(Float ycVal) {
+        this.ycVal = ycVal;
+    }
+
+    public Short getDataFlag() {
+        return dataFlag;
+    }
+
+    public void setDataFlag(Short dataFlag) {
+        this.dataFlag = dataFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "WfYcHistoryData1{" +
+            "analogNo = " + analogNo +
+            ", dataTime = " + dataTime +
+            ", ycRawVal = " + ycRawVal +
+            ", ycVal = " + ycVal +
+            ", dataFlag = " + dataFlag +
+        "}";
+    }
+}

+ 134 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Windplantproject.java

@@ -0,0 +1,134 @@
+package com.gyee.impala.model.decision;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-02
+ */
+public class Windplantproject implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short wpNo;
+
+    private Short projectNo;
+
+    private String projectName;
+
+    private Double projectCapacity;
+
+    private Integer analogNo;
+
+    private Integer bcrNo;
+
+    private Date statSpeedTime;
+
+    private Integer monthBcrNo;
+
+    private Integer yearBcrNo;
+
+    private Double area;
+
+    public Short getWpNo() {
+        return wpNo;
+    }
+
+    public void setWpNo(Short wpNo) {
+        this.wpNo = wpNo;
+    }
+
+    public Short getProjectNo() {
+        return projectNo;
+    }
+
+    public void setProjectNo(Short projectNo) {
+        this.projectNo = projectNo;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public Double getProjectCapacity() {
+        return projectCapacity;
+    }
+
+    public void setProjectCapacity(Double projectCapacity) {
+        this.projectCapacity = projectCapacity;
+    }
+
+    public Integer getAnalogNo() {
+        return analogNo;
+    }
+
+    public void setAnalogNo(Integer analogNo) {
+        this.analogNo = analogNo;
+    }
+
+    public Integer getBcrNo() {
+        return bcrNo;
+    }
+
+    public void setBcrNo(Integer bcrNo) {
+        this.bcrNo = bcrNo;
+    }
+
+    public Date getStatSpeedTime() {
+        return statSpeedTime;
+    }
+
+    public void setStatSpeedTime(Date statSpeedTime) {
+        this.statSpeedTime = statSpeedTime;
+    }
+
+    public Integer getMonthBcrNo() {
+        return monthBcrNo;
+    }
+
+    public void setMonthBcrNo(Integer monthBcrNo) {
+        this.monthBcrNo = monthBcrNo;
+    }
+
+    public Integer getYearBcrNo() {
+        return yearBcrNo;
+    }
+
+    public void setYearBcrNo(Integer yearBcrNo) {
+        this.yearBcrNo = yearBcrNo;
+    }
+
+    public Double getArea() {
+        return area;
+    }
+
+    public void setArea(Double area) {
+        this.area = area;
+    }
+
+    @Override
+    public String toString() {
+        return "Windplantproject{" +
+            "wpNo = " + wpNo +
+            ", projectNo = " + projectNo +
+            ", projectName = " + projectName +
+            ", projectCapacity = " + projectCapacity +
+            ", analogNo = " + analogNo +
+            ", bcrNo = " + bcrNo +
+            ", statSpeedTime = " + statSpeedTime +
+            ", monthBcrNo = " + monthBcrNo +
+            ", yearBcrNo = " + yearBcrNo +
+            ", area = " + area +
+        "}";
+    }
+}

+ 495 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/decision/Wtur.java

@@ -0,0 +1,495 @@
+package com.gyee.impala.model.decision;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public class Wtur implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Short wturNo;
+
+    private Short windplantNo;
+
+    private Short wtgType;
+
+    private String name;
+
+    private String ref;
+
+    private Integer namplt;
+
+    private Integer avltmrs;
+
+    private Integer optmrs;
+
+    private Integer strcnt;
+
+    private Integer stopcnt;
+
+    private Integer totwh;
+
+    private Integer totvarh;
+
+    private Integer dmdwh;
+
+    private Integer dmdvarh;
+
+    private Integer supwh;
+
+    private Integer supvarh;
+
+    private Integer turst;
+
+    private Integer w;
+
+    private Integer var;
+
+    private Integer setturop;
+
+    private Integer varovw;
+
+    private Integer varrefpri;
+
+    private Integer dmdw;
+
+    private Integer dmdvar;
+
+    private Integer dmdpf;
+
+    private Integer avgWsp;
+
+    private Integer avgTmp;
+
+    private Integer avgTimeDir;
+
+    private Integer avgHumidity;
+
+    private Integer avgPressure;
+
+    private Integer avgRain;
+
+    private Integer avgPower;
+
+    private Double hubHeight;
+
+    private Double rotorDiameter;
+
+    private Double longtitude;
+
+    private Double latitude;
+
+    private Double elevation;
+
+    private Double orientation;
+
+    private Double cutInWspeed;
+
+    private Double ratedWspeed;
+
+    private Double cutOutWspeed;
+
+    private Double ratedPower;
+
+    private Short statTag;
+
+    public Short getWturNo() {
+        return wturNo;
+    }
+
+    public void setWturNo(Short wturNo) {
+        this.wturNo = wturNo;
+    }
+
+    public Short getWindplantNo() {
+        return windplantNo;
+    }
+
+    public void setWindplantNo(Short windplantNo) {
+        this.windplantNo = windplantNo;
+    }
+
+    public Short getWtgType() {
+        return wtgType;
+    }
+
+    public void setWtgType(Short wtgType) {
+        this.wtgType = wtgType;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getRef() {
+        return ref;
+    }
+
+    public void setRef(String ref) {
+        this.ref = ref;
+    }
+
+    public Integer getNamplt() {
+        return namplt;
+    }
+
+    public void setNamplt(Integer namplt) {
+        this.namplt = namplt;
+    }
+
+    public Integer getAvltmrs() {
+        return avltmrs;
+    }
+
+    public void setAvltmrs(Integer avltmrs) {
+        this.avltmrs = avltmrs;
+    }
+
+    public Integer getOptmrs() {
+        return optmrs;
+    }
+
+    public void setOptmrs(Integer optmrs) {
+        this.optmrs = optmrs;
+    }
+
+    public Integer getStrcnt() {
+        return strcnt;
+    }
+
+    public void setStrcnt(Integer strcnt) {
+        this.strcnt = strcnt;
+    }
+
+    public Integer getStopcnt() {
+        return stopcnt;
+    }
+
+    public void setStopcnt(Integer stopcnt) {
+        this.stopcnt = stopcnt;
+    }
+
+    public Integer getTotwh() {
+        return totwh;
+    }
+
+    public void setTotwh(Integer totwh) {
+        this.totwh = totwh;
+    }
+
+    public Integer getTotvarh() {
+        return totvarh;
+    }
+
+    public void setTotvarh(Integer totvarh) {
+        this.totvarh = totvarh;
+    }
+
+    public Integer getDmdwh() {
+        return dmdwh;
+    }
+
+    public void setDmdwh(Integer dmdwh) {
+        this.dmdwh = dmdwh;
+    }
+
+    public Integer getDmdvarh() {
+        return dmdvarh;
+    }
+
+    public void setDmdvarh(Integer dmdvarh) {
+        this.dmdvarh = dmdvarh;
+    }
+
+    public Integer getSupwh() {
+        return supwh;
+    }
+
+    public void setSupwh(Integer supwh) {
+        this.supwh = supwh;
+    }
+
+    public Integer getSupvarh() {
+        return supvarh;
+    }
+
+    public void setSupvarh(Integer supvarh) {
+        this.supvarh = supvarh;
+    }
+
+    public Integer getTurst() {
+        return turst;
+    }
+
+    public void setTurst(Integer turst) {
+        this.turst = turst;
+    }
+
+    public Integer getW() {
+        return w;
+    }
+
+    public void setW(Integer w) {
+        this.w = w;
+    }
+
+    public Integer getVar() {
+        return var;
+    }
+
+    public void setVar(Integer var) {
+        this.var = var;
+    }
+
+    public Integer getSetturop() {
+        return setturop;
+    }
+
+    public void setSetturop(Integer setturop) {
+        this.setturop = setturop;
+    }
+
+    public Integer getVarovw() {
+        return varovw;
+    }
+
+    public void setVarovw(Integer varovw) {
+        this.varovw = varovw;
+    }
+
+    public Integer getVarrefpri() {
+        return varrefpri;
+    }
+
+    public void setVarrefpri(Integer varrefpri) {
+        this.varrefpri = varrefpri;
+    }
+
+    public Integer getDmdw() {
+        return dmdw;
+    }
+
+    public void setDmdw(Integer dmdw) {
+        this.dmdw = dmdw;
+    }
+
+    public Integer getDmdvar() {
+        return dmdvar;
+    }
+
+    public void setDmdvar(Integer dmdvar) {
+        this.dmdvar = dmdvar;
+    }
+
+    public Integer getDmdpf() {
+        return dmdpf;
+    }
+
+    public void setDmdpf(Integer dmdpf) {
+        this.dmdpf = dmdpf;
+    }
+
+    public Integer getAvgWsp() {
+        return avgWsp;
+    }
+
+    public void setAvgWsp(Integer avgWsp) {
+        this.avgWsp = avgWsp;
+    }
+
+    public Integer getAvgTmp() {
+        return avgTmp;
+    }
+
+    public void setAvgTmp(Integer avgTmp) {
+        this.avgTmp = avgTmp;
+    }
+
+    public Integer getAvgTimeDir() {
+        return avgTimeDir;
+    }
+
+    public void setAvgTimeDir(Integer avgTimeDir) {
+        this.avgTimeDir = avgTimeDir;
+    }
+
+    public Integer getAvgHumidity() {
+        return avgHumidity;
+    }
+
+    public void setAvgHumidity(Integer avgHumidity) {
+        this.avgHumidity = avgHumidity;
+    }
+
+    public Integer getAvgPressure() {
+        return avgPressure;
+    }
+
+    public void setAvgPressure(Integer avgPressure) {
+        this.avgPressure = avgPressure;
+    }
+
+    public Integer getAvgRain() {
+        return avgRain;
+    }
+
+    public void setAvgRain(Integer avgRain) {
+        this.avgRain = avgRain;
+    }
+
+    public Integer getAvgPower() {
+        return avgPower;
+    }
+
+    public void setAvgPower(Integer avgPower) {
+        this.avgPower = avgPower;
+    }
+
+    public Double getHubHeight() {
+        return hubHeight;
+    }
+
+    public void setHubHeight(Double hubHeight) {
+        this.hubHeight = hubHeight;
+    }
+
+    public Double getRotorDiameter() {
+        return rotorDiameter;
+    }
+
+    public void setRotorDiameter(Double rotorDiameter) {
+        this.rotorDiameter = rotorDiameter;
+    }
+
+    public Double getLongtitude() {
+        return longtitude;
+    }
+
+    public void setLongtitude(Double longtitude) {
+        this.longtitude = longtitude;
+    }
+
+    public Double getLatitude() {
+        return latitude;
+    }
+
+    public void setLatitude(Double latitude) {
+        this.latitude = latitude;
+    }
+
+    public Double getElevation() {
+        return elevation;
+    }
+
+    public void setElevation(Double elevation) {
+        this.elevation = elevation;
+    }
+
+    public Double getOrientation() {
+        return orientation;
+    }
+
+    public void setOrientation(Double orientation) {
+        this.orientation = orientation;
+    }
+
+    public Double getCutInWspeed() {
+        return cutInWspeed;
+    }
+
+    public void setCutInWspeed(Double cutInWspeed) {
+        this.cutInWspeed = cutInWspeed;
+    }
+
+    public Double getRatedWspeed() {
+        return ratedWspeed;
+    }
+
+    public void setRatedWspeed(Double ratedWspeed) {
+        this.ratedWspeed = ratedWspeed;
+    }
+
+    public Double getCutOutWspeed() {
+        return cutOutWspeed;
+    }
+
+    public void setCutOutWspeed(Double cutOutWspeed) {
+        this.cutOutWspeed = cutOutWspeed;
+    }
+
+    public Double getRatedPower() {
+        return ratedPower;
+    }
+
+    public void setRatedPower(Double ratedPower) {
+        this.ratedPower = ratedPower;
+    }
+
+    public Short getStatTag() {
+        return statTag;
+    }
+
+    public void setStatTag(Short statTag) {
+        this.statTag = statTag;
+    }
+
+    @Override
+    public String toString() {
+        return "Wtur{" +
+            "wturNo = " + wturNo +
+            ", windplantNo = " + windplantNo +
+            ", wtgType = " + wtgType +
+            ", name = " + name +
+            ", ref = " + ref +
+            ", namplt = " + namplt +
+            ", avltmrs = " + avltmrs +
+            ", optmrs = " + optmrs +
+            ", strcnt = " + strcnt +
+            ", stopcnt = " + stopcnt +
+            ", totwh = " + totwh +
+            ", totvarh = " + totvarh +
+            ", dmdwh = " + dmdwh +
+            ", dmdvarh = " + dmdvarh +
+            ", supwh = " + supwh +
+            ", supvarh = " + supvarh +
+            ", turst = " + turst +
+            ", w = " + w +
+            ", var = " + var +
+            ", setturop = " + setturop +
+            ", varovw = " + varovw +
+            ", varrefpri = " + varrefpri +
+            ", dmdw = " + dmdw +
+            ", dmdvar = " + dmdvar +
+            ", dmdpf = " + dmdpf +
+            ", avgWsp = " + avgWsp +
+            ", avgTmp = " + avgTmp +
+            ", avgTimeDir = " + avgTimeDir +
+            ", avgHumidity = " + avgHumidity +
+            ", avgPressure = " + avgPressure +
+            ", avgRain = " + avgRain +
+            ", avgPower = " + avgPower +
+            ", hubHeight = " + hubHeight +
+            ", rotorDiameter = " + rotorDiameter +
+            ", longtitude = " + longtitude +
+            ", latitude = " + latitude +
+            ", elevation = " + elevation +
+            ", orientation = " + orientation +
+            ", cutInWspeed = " + cutInWspeed +
+            ", ratedWspeed = " + ratedWspeed +
+            ", cutOutWspeed = " + cutOutWspeed +
+            ", ratedPower = " + ratedPower +
+            ", statTag = " + statTag +
+        "}";
+    }
+}

+ 297 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Windspeedforecastshortterm.java

@@ -0,0 +1,297 @@
+package com.gyee.impala.model.master;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-01
+ */
+public class Windspeedforecastshortterm implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Date calctime;
+
+    private String forecasttype;
+
+    private String stationid;
+
+    private String projectid;
+
+    private String lineid;
+
+    private String windturbineid;
+
+    private Float actualpower;
+
+    private Float actualwindspeed;
+
+    private Float forecastpower;
+
+    private Float forecastwindspeed;
+
+    private String algorithmmodel;
+
+    private String category1;
+
+    private String category2;
+
+    private String category3;
+
+    private String stationname;
+
+    private String projectname;
+
+    private String linename;
+
+    private String windturbinename;
+
+    @TableField(exist = false)
+    private Short wyfcid;
+    @TableField(exist = false)
+    private Short wyqcid;
+    @TableField(exist = false)
+    private Short wyxlid;
+    @TableField(exist = false)
+    private Short wyfjid;
+    @TableField(exist = false)
+    private Integer wyanalogno;
+    @TableField(exist = false)
+    private Integer wymodelno;
+
+    public Integer getWymodelno() {
+        return wymodelno;
+    }
+
+    public void setWymodelno(Integer wymodelno) {
+        this.wymodelno = wymodelno;
+    }
+
+    public Integer getWyanalogno() {
+        return wyanalogno;
+    }
+
+    public void setWyanalogno(Integer wyanalogno) {
+        this.wyanalogno = wyanalogno;
+    }
+
+    public Short getWyfcid() {
+        return wyfcid;
+    }
+
+    public void setWyfcid(Short wyfcid) {
+        this.wyfcid = wyfcid;
+    }
+
+    public Short getWyqcid() {
+        return wyqcid;
+    }
+
+    public void setWyqcid(Short wyqcid) {
+        this.wyqcid = wyqcid;
+    }
+
+    public Short getWyxlid() {
+        return wyxlid;
+    }
+
+    public void setWyxlid(Short wyxlid) {
+        this.wyxlid = wyxlid;
+    }
+
+    public Short getWyfjid() {
+        return wyfjid;
+    }
+
+    public void setWyfjid(Short wyfjid) {
+        this.wyfjid = wyfjid;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getCalctime() {
+        return calctime;
+    }
+
+    public void setCalctime(Date calctime) {
+        this.calctime = calctime;
+    }
+
+    public String getForecasttype() {
+        return forecasttype;
+    }
+
+    public void setForecasttype(String forecasttype) {
+        this.forecasttype = forecasttype;
+    }
+
+    public String getStationid() {
+        return stationid;
+    }
+
+    public void setStationid(String stationid) {
+        this.stationid = stationid;
+    }
+
+    public String getProjectid() {
+        return projectid;
+    }
+
+    public void setProjectid(String projectid) {
+        this.projectid = projectid;
+    }
+
+    public String getLineid() {
+        return lineid;
+    }
+
+    public void setLineid(String lineid) {
+        this.lineid = lineid;
+    }
+
+    public String getWindturbineid() {
+        return windturbineid;
+    }
+
+    public void setWindturbineid(String windturbineid) {
+        this.windturbineid = windturbineid;
+    }
+
+    public Float getActualpower() {
+        return actualpower;
+    }
+
+    public void setActualpower(Float actualpower) {
+        this.actualpower = actualpower;
+    }
+
+    public Float getActualwindspeed() {
+        return actualwindspeed;
+    }
+
+    public void setActualwindspeed(Float actualwindspeed) {
+        this.actualwindspeed = actualwindspeed;
+    }
+
+    public Float getForecastpower() {
+        return forecastpower;
+    }
+
+    public void setForecastpower(Float forecastpower) {
+        this.forecastpower = forecastpower;
+    }
+
+    public Float getForecastwindspeed() {
+        return forecastwindspeed;
+    }
+
+    public void setForecastwindspeed(Float forecastwindspeed) {
+        this.forecastwindspeed = forecastwindspeed;
+    }
+
+    public String getAlgorithmmodel() {
+        return algorithmmodel;
+    }
+
+    public void setAlgorithmmodel(String algorithmmodel) {
+        this.algorithmmodel = algorithmmodel;
+    }
+
+    public String getCategory1() {
+        return category1;
+    }
+
+    public void setCategory1(String category1) {
+        this.category1 = category1;
+    }
+
+    public String getCategory2() {
+        return category2;
+    }
+
+    public void setCategory2(String category2) {
+        this.category2 = category2;
+    }
+
+    public String getCategory3() {
+        return category3;
+    }
+
+    public void setCategory3(String category3) {
+        this.category3 = category3;
+    }
+
+    public String getStationname() {
+        return stationname;
+    }
+
+    public void setStationname(String stationname) {
+        this.stationname = stationname;
+    }
+
+    public String getProjectname() {
+        return projectname;
+    }
+
+    public void setProjectname(String projectname) {
+        this.projectname = projectname;
+    }
+
+    public String getLinename() {
+        return linename;
+    }
+
+    public void setLinename(String linename) {
+        this.linename = linename;
+    }
+
+    public String getWindturbinename() {
+        return windturbinename;
+    }
+
+    public void setWindturbinename(String windturbinename) {
+        this.windturbinename = windturbinename;
+    }
+
+    @Override
+    public String toString() {
+        return "Windspeedforecastshortterm{" +
+            "id = " + id +
+            ", calctime = " + calctime +
+            ", forecasttype = " + forecasttype +
+            ", stationid = " + stationid +
+            ", projectid = " + projectid +
+            ", lineid = " + lineid +
+            ", windturbineid = " + windturbineid +
+            ", actualpower = " + actualpower +
+            ", actualwindspeed = " + actualwindspeed +
+            ", forecastpower = " + forecastpower +
+            ", forecastwindspeed = " + forecastwindspeed +
+            ", algorithmmodel = " + algorithmmodel +
+            ", category1 = " + category1 +
+            ", category2 = " + category2 +
+            ", category3 = " + category3 +
+            ", stationname = " + stationname +
+            ", projectname = " + projectname +
+            ", linename = " + linename +
+            ", windturbinename = " + windturbinename +
+        "}";
+    }
+}

+ 308 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Windspeedforecastspshortterm.java

@@ -0,0 +1,308 @@
+package com.gyee.impala.model.master;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-01
+ */
+public class Windspeedforecastspshortterm implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Date calctime;
+
+    private Short forecasttime;
+
+    private String forecasttype;
+
+    private String stationid;
+
+    private String projectid;
+
+    private String lineid;
+
+    private String windturbineid;
+
+    private Float actualpower;
+
+    private Float actualwindspeed;
+
+    private Float forecastpower;
+
+    private Float forecastwindspeed;
+
+    private String algorithmmodel;
+
+    private String category1;
+
+    private String category2;
+
+    private String category3;
+
+    private String stationname;
+
+    private String projectname;
+
+    private String linename;
+
+    private String windturbinename;
+
+    @TableField(exist = false)
+    private Short wyfcid;
+    @TableField(exist = false)
+    private Short wyqcid;
+    @TableField(exist = false)
+    private Short wyxlid;
+    @TableField(exist = false)
+    private Short wyfjid;
+    @TableField(exist = false)
+    private Integer wyanalogno;
+    @TableField(exist = false)
+    private Integer wymodelno;
+
+    public Short getWyfcid() {
+        return wyfcid;
+    }
+
+    public void setWyfcid(Short wyfcid) {
+        this.wyfcid = wyfcid;
+    }
+
+    public Short getWyqcid() {
+        return wyqcid;
+    }
+
+    public void setWyqcid(Short wyqcid) {
+        this.wyqcid = wyqcid;
+    }
+
+    public Short getWyxlid() {
+        return wyxlid;
+    }
+
+    public void setWyxlid(Short wyxlid) {
+        this.wyxlid = wyxlid;
+    }
+
+    public Short getWyfjid() {
+        return wyfjid;
+    }
+
+    public void setWyfjid(Short wyfjid) {
+        this.wyfjid = wyfjid;
+    }
+
+    public Integer getWyanalogno() {
+        return wyanalogno;
+    }
+
+    public void setWyanalogno(Integer wyanalogno) {
+        this.wyanalogno = wyanalogno;
+    }
+
+    public Integer getWymodelno() {
+        return wymodelno;
+    }
+
+    public void setWymodelno(Integer wymodelno) {
+        this.wymodelno = wymodelno;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getCalctime() {
+        return calctime;
+    }
+
+    public void setCalctime(Date calctime) {
+        this.calctime = calctime;
+    }
+
+    public Short getForecasttime() {
+        return forecasttime;
+    }
+
+    public void setForecasttime(Short forecasttime) {
+        this.forecasttime = forecasttime;
+    }
+
+    public String getForecasttype() {
+        return forecasttype;
+    }
+
+    public void setForecasttype(String forecasttype) {
+        this.forecasttype = forecasttype;
+    }
+
+    public String getStationid() {
+        return stationid;
+    }
+
+    public void setStationid(String stationid) {
+        this.stationid = stationid;
+    }
+
+    public String getProjectid() {
+        return projectid;
+    }
+
+    public void setProjectid(String projectid) {
+        this.projectid = projectid;
+    }
+
+    public String getLineid() {
+        return lineid;
+    }
+
+    public void setLineid(String lineid) {
+        this.lineid = lineid;
+    }
+
+    public String getWindturbineid() {
+        return windturbineid;
+    }
+
+    public void setWindturbineid(String windturbineid) {
+        this.windturbineid = windturbineid;
+    }
+
+    public Float getActualpower() {
+        return actualpower;
+    }
+
+    public void setActualpower(Float actualpower) {
+        this.actualpower = actualpower;
+    }
+
+    public Float getActualwindspeed() {
+        return actualwindspeed;
+    }
+
+    public void setActualwindspeed(Float actualwindspeed) {
+        this.actualwindspeed = actualwindspeed;
+    }
+
+    public Float getForecastpower() {
+        return forecastpower;
+    }
+
+    public void setForecastpower(Float forecastpower) {
+        this.forecastpower = forecastpower;
+    }
+
+    public Float getForecastwindspeed() {
+        return forecastwindspeed;
+    }
+
+    public void setForecastwindspeed(Float forecastwindspeed) {
+        this.forecastwindspeed = forecastwindspeed;
+    }
+
+    public String getAlgorithmmodel() {
+        return algorithmmodel;
+    }
+
+    public void setAlgorithmmodel(String algorithmmodel) {
+        this.algorithmmodel = algorithmmodel;
+    }
+
+    public String getCategory1() {
+        return category1;
+    }
+
+    public void setCategory1(String category1) {
+        this.category1 = category1;
+    }
+
+    public String getCategory2() {
+        return category2;
+    }
+
+    public void setCategory2(String category2) {
+        this.category2 = category2;
+    }
+
+    public String getCategory3() {
+        return category3;
+    }
+
+    public void setCategory3(String category3) {
+        this.category3 = category3;
+    }
+
+    public String getStationname() {
+        return stationname;
+    }
+
+    public void setStationname(String stationname) {
+        this.stationname = stationname;
+    }
+
+    public String getProjectname() {
+        return projectname;
+    }
+
+    public void setProjectname(String projectname) {
+        this.projectname = projectname;
+    }
+
+    public String getLinename() {
+        return linename;
+    }
+
+    public void setLinename(String linename) {
+        this.linename = linename;
+    }
+
+    public String getWindturbinename() {
+        return windturbinename;
+    }
+
+    public void setWindturbinename(String windturbinename) {
+        this.windturbinename = windturbinename;
+    }
+
+    @Override
+    public String toString() {
+        return "Windspeedforecastspshortterm{" +
+            "id = " + id +
+            ", calctime = " + calctime +
+            ", forecasttime = " + forecasttime +
+            ", forecasttype = " + forecasttype +
+            ", stationid = " + stationid +
+            ", projectid = " + projectid +
+            ", lineid = " + lineid +
+            ", windturbineid = " + windturbineid +
+            ", actualpower = " + actualpower +
+            ", actualwindspeed = " + actualwindspeed +
+            ", forecastpower = " + forecastpower +
+            ", forecastwindspeed = " + forecastwindspeed +
+            ", algorithmmodel = " + algorithmmodel +
+            ", category1 = " + category1 +
+            ", category2 = " + category2 +
+            ", category3 = " + category3 +
+            ", stationname = " + stationname +
+            ", projectname = " + projectname +
+            ", linename = " + linename +
+            ", windturbinename = " + windturbinename +
+        "}";
+    }
+}

+ 122 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Line.java

@@ -0,0 +1,122 @@
+package com.gyee.impala.model.slave;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public class Line implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String code;
+
+    private String name;
+
+    private String aname;
+
+    private String projectid;
+
+    private BigDecimal ordernum;
+
+    private BigDecimal capacity;
+
+    private String capacityunit;
+
+    private BigDecimal quantity;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAname() {
+        return aname;
+    }
+
+    public void setAname(String aname) {
+        this.aname = aname;
+    }
+
+    public String getProjectid() {
+        return projectid;
+    }
+
+    public void setProjectid(String projectid) {
+        this.projectid = projectid;
+    }
+
+    public BigDecimal getOrdernum() {
+        return ordernum;
+    }
+
+    public void setOrdernum(BigDecimal ordernum) {
+        this.ordernum = ordernum;
+    }
+
+    public BigDecimal getCapacity() {
+        return capacity;
+    }
+
+    public void setCapacity(BigDecimal capacity) {
+        this.capacity = capacity;
+    }
+
+    public String getCapacityunit() {
+        return capacityunit;
+    }
+
+    public void setCapacityunit(String capacityunit) {
+        this.capacityunit = capacityunit;
+    }
+
+    public BigDecimal getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(BigDecimal quantity) {
+        this.quantity = quantity;
+    }
+
+    @Override
+    public String toString() {
+        return "Line{" +
+            "id = " + id +
+            ", code = " + code +
+            ", name = " + name +
+            ", aname = " + aname +
+            ", projectid = " + projectid +
+            ", ordernum = " + ordernum +
+            ", capacity = " + capacity +
+            ", capacityunit = " + capacityunit +
+            ", quantity = " + quantity +
+        "}";
+    }
+}

+ 179 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Project.java

@@ -0,0 +1,179 @@
+package com.gyee.impala.model.slave;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-09-05
+ */
+public class Project implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String code;
+
+    private String name;
+
+    private String aname;
+
+    private String windpowerstationid;
+
+    private BigDecimal capacity;
+
+    private String capacityunit;
+
+    private BigDecimal quantity;
+
+    private String model;
+
+    private Date commissiondate;
+
+    private String masterphone;
+
+    private String shiftforeman;
+
+    private String shiftforemanphone;
+
+    private BigDecimal ordernum;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAname() {
+        return aname;
+    }
+
+    public void setAname(String aname) {
+        this.aname = aname;
+    }
+
+    public String getWindpowerstationid() {
+        return windpowerstationid;
+    }
+
+    public void setWindpowerstationid(String windpowerstationid) {
+        this.windpowerstationid = windpowerstationid;
+    }
+
+    public BigDecimal getCapacity() {
+        return capacity;
+    }
+
+    public void setCapacity(BigDecimal capacity) {
+        this.capacity = capacity;
+    }
+
+    public String getCapacityunit() {
+        return capacityunit;
+    }
+
+    public void setCapacityunit(String capacityunit) {
+        this.capacityunit = capacityunit;
+    }
+
+    public BigDecimal getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(BigDecimal quantity) {
+        this.quantity = quantity;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public Date getCommissiondate() {
+        return commissiondate;
+    }
+
+    public void setCommissiondate(Date commissiondate) {
+        this.commissiondate = commissiondate;
+    }
+
+    public String getMasterphone() {
+        return masterphone;
+    }
+
+    public void setMasterphone(String masterphone) {
+        this.masterphone = masterphone;
+    }
+
+    public String getShiftforeman() {
+        return shiftforeman;
+    }
+
+    public void setShiftforeman(String shiftforeman) {
+        this.shiftforeman = shiftforeman;
+    }
+
+    public String getShiftforemanphone() {
+        return shiftforemanphone;
+    }
+
+    public void setShiftforemanphone(String shiftforemanphone) {
+        this.shiftforemanphone = shiftforemanphone;
+    }
+
+    public BigDecimal getOrdernum() {
+        return ordernum;
+    }
+
+    public void setOrdernum(BigDecimal ordernum) {
+        this.ordernum = ordernum;
+    }
+
+    @Override
+    public String toString() {
+        return "Project{" +
+            "id = " + id +
+            ", code = " + code +
+            ", name = " + name +
+            ", aname = " + aname +
+            ", windpowerstationid = " + windpowerstationid +
+            ", capacity = " + capacity +
+            ", capacityunit = " + capacityunit +
+            ", quantity = " + quantity +
+            ", model = " + model +
+            ", commissiondate = " + commissiondate +
+            ", masterphone = " + masterphone +
+            ", shiftforeman = " + shiftforeman +
+            ", shiftforemanphone = " + shiftforemanphone +
+            ", ordernum = " + ordernum +
+        "}";
+    }
+}

+ 559 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/schdule/TaskWindspeedForecast.java

@@ -0,0 +1,559 @@
+package com.gyee.impala.schdule;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.impala.common.spring.DecisionConvert;
+import com.gyee.impala.mapper.decision.*;
+import com.gyee.impala.mapper.master.WindspeedforecastshorttermMapper;
+import com.gyee.impala.mapper.master.WindspeedforecastspshorttermMapper;
+import com.gyee.impala.model.decision.*;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+import com.gyee.impala.model.master.Windspeedforecastspshortterm;
+import com.gyee.impala.service.master.IWindspeedforecastshorttermService;
+import com.gyee.impala.service.master.IWindspeedforecastspshorttermService;
+import lombok.SneakyThrows;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 预测风速训练样本库
+ */
+@Component
+public class TaskWindspeedForecast {
+    @Resource
+    private NoscaleCwDaPfPeriodDataMapper noscaleCwDaPfPeriodDataMapper;
+    @Resource
+    private NoscalePrDaPfPeriodDataMapper noscalePrDaPfPeriodDataMapper;
+    @Resource
+    private NoscaleWfDaPfPeriodDataMapper noscaleWfDaPfPeriodDataMapper;
+    @Resource
+    private NoscaleWtgDaPfPeriodDataMapper noscaleWtgDaPfPeriodDataMapper;
+    @Resource
+    private ProjectUspTsPeriodDataMapper projectUspTsPeriodDataMapper;
+    @Resource
+    private WfProjectStatPeriodDataMapper wfProjectStatPeriodDataMapper;
+    @Resource
+    private WfStatPeriodDataMapper wfStatPeriodDataMapper;
+    @Resource
+    private WfUspTsPeriodDataMapper wfUspTsPeriodDataMapper;
+    @Resource
+    private WfYcHistoryData1Mapper wfYcHistoryData1Mapper;
+    @Resource
+    private WfNwpDataMapper wfNwpDataMapper;
+    @Resource
+    private MvMapper mvMapper;
+    @Resource
+    private DecisionConvert decisionConvert;
+
+    @Resource
+    private IWindspeedforecastshorttermService windspeedforecastshorttermService;
+    @Resource
+    private IWindspeedforecastspshorttermService windspeedforecastspshorttermService;
+
+    //线路预测功率-短期
+    private List<NoscaleCwDaPfPeriodData> noscaleCwDaPfPeriodDatas;
+    //期次预测功率-短期
+    private List<NoscalePrDaPfPeriodData> noscalePrDaPfPeriodDatas;
+    //场站预测功率-短期
+    private List<NoscaleWfDaPfPeriodData> noscaleWfDaPfPeriodDatas;
+    //风机预测功率-短期
+    private List<NoscaleWtgDaPfPeriodData> noscaleWtgDaPfPeriodDatas;
+    //期次预测功率-超短期
+    private List<ProjectUspTsPeriodData> projectUspTsPeriodDatas;
+    //实际风速-期次
+    private List<WfProjectStatPeriodData> wfProjectStatPeriodDatas;
+    //场站实际功率、风速
+    private List<WfStatPeriodData> wfStatPeriodDatas;
+    //场站预测功率-超短期
+    private List<WfUspTsPeriodData> wfUspTsPeriodDatas;
+    //实际功率-期次、线路、风机
+    private List<WfYcHistoryData1> wfYcHistoryData1s;
+    //预测风速
+    private List<WfNwpData> wfNwpDatas;
+
+    private List<Mv> mvs;
+
+    public List<Mv> getMvMap() {
+        QueryWrapper<Mv> wrapper = new QueryWrapper<>();
+        wrapper.lt("WINDPLANT_NO", 6);
+        if (mvs == null) {
+            mvs = mvMapper.selectList(wrapper);
+        }
+        return mvs;
+    }
+    
+    @SneakyThrows
+    @Scheduled(cron = "0 35 2 * * ?")
+    //短期
+    public void shortTerm() {
+        Calendar today = Calendar.getInstance();
+        getWfStatPeriodDatas(today);
+        getWfNwpDatas(today);
+        getNoscaleWfDaPfPeriodDatas(today);
+        //获取场站短期风速功率预测
+        List<Windspeedforecastshortterm> windspeedforecastshorttermList1 = getStationWindspeedandpowerForecast();
+        getWfYcHistoryData1s(today);
+        getWfProjectStatPeriodDatas(today);
+        getNoscalePrDaPfPeriodDatas(today);
+        //获取期次短期风速功率预测
+        List<Windspeedforecastshortterm> windspeedforecastshorttermList2 = getProjectWindspeedandpowerForecast();
+        getNoscaleCwDaPfPeriodDatas(today);
+        //获取集电线路短期风速功率预测
+        List<Windspeedforecastshortterm> windspeedforecastshorttermList3 = getLineWindspeedandpowerForecast();
+        getMvMap();
+        getNoscaleWtgDaPfPeriodDatas(today);
+        //获取风机短期风速功率预测
+        List<Windspeedforecastshortterm> windspeedforecastshorttermList4 = getWindturbineWindspeedandpowerForecast();
+        windspeedforecastshorttermList1.addAll(windspeedforecastshorttermList2);
+        windspeedforecastshorttermList1.addAll(windspeedforecastshorttermList3);
+        windspeedforecastshorttermList1.addAll(windspeedforecastshorttermList4);
+        windspeedforecastshorttermService.insertBatch(windspeedforecastshorttermList1);
+    }
+
+    private List<Windspeedforecastshortterm> getStationWindspeedandpowerForecast() {
+        List<Windspeedforecastshortterm> wsfcsts = new ArrayList<>();
+        if(noscaleWfDaPfPeriodDatas.size()==0) return wsfcsts;
+        for (NoscaleWfDaPfPeriodData noscaleWfDaPfPeriodData : noscaleWfDaPfPeriodDatas) {
+            Windspeedforecastshortterm wsfcst = new Windspeedforecastshortterm();
+            wsfcst.setForecasttype("station");
+            wsfcst.setStationid(decisionConvert.getStationIdMap().get(noscaleWfDaPfPeriodData.getWindplantNo()));
+            wsfcst.setStationname(decisionConvert.getStationNameMap().get(noscaleWfDaPfPeriodData.getWindplantNo()));
+            wsfcst.setCalctime(noscaleWfDaPfPeriodData.getDataTime());
+            wsfcst.setForecastpower(noscaleWfDaPfPeriodData.getValue());
+            wsfcst.setAlgorithmmodel(decisionConvert.getModelNameMap().get(noscaleWfDaPfPeriodData.getModelNo()));
+            wsfcst.setWyfcid(noscaleWfDaPfPeriodData.getWindplantNo());
+            wsfcsts.add(wsfcst);
+        }
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfStatPeriodDatas.stream().filter(wspd -> wct.getWyfcid()==wspd.getWindplantNo() &&
+                    wct.getCalctime().compareTo(wspd.getDataTime()) == 0).forEach(wspd -> {
+                wct.setActualpower(wspd.getp0());
+                wct.setActualwindspeed(wspd.getAvgWindSpeed());
+            });
+            wfNwpDatas.stream().filter(wnd -> wct.getWyfcid()==wnd.getWindplantNo().shortValue() &&
+                    wct.getCalctime().compareTo(wnd.getDataTime()) == 0).forEach(wnd -> {
+                wct.setForecastwindspeed(wnd.getWindSpeed());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+
+        return wsfcsts;
+    }
+
+    private List<Windspeedforecastshortterm> getWindturbineWindspeedandpowerForecast() {
+        List<Windspeedforecastshortterm> wsfcsts = new ArrayList<>();
+        if(noscaleWtgDaPfPeriodDatas.size()==0) return wsfcsts;
+        List<Mv> mvs1 = mvs.stream().filter(mv -> mv.getMeasurementtypeNo() == 1).collect(Collectors.toList());
+        for (Mv mv : mvs1) {
+            Calendar day = Calendar.getInstance();
+            day.add(Calendar.DATE, -1);
+            day.set(Calendar.HOUR_OF_DAY, 0);
+            day.set(Calendar.MINUTE, 0);
+            day.set(Calendar.SECOND, 0);
+            day.set(Calendar.MILLISECOND, 0);
+            for (Short j = 0; j < 96; j++) {
+                Windspeedforecastshortterm wsfcst = new Windspeedforecastshortterm();
+                wsfcst.setCalctime(day.getTime());
+                wsfcst.setForecasttype("windturbine");
+                Short wpNo = mv.getWindplantNo();
+                wsfcst.setWyfcid(wpNo);
+                wsfcst.setStationid(decisionConvert.getStationIdMap().get(wpNo));
+                wsfcst.setStationname(decisionConvert.getStationNameMap().get(wpNo));
+                Short wturNo = mv.getWturNo();
+                wsfcst.setWyfjid(wturNo);
+                wsfcst.setWindturbineid(decisionConvert.getWindturbineIdMap().get(wturNo));
+                wsfcst.setWindturbinename(decisionConvert.getWindturbineNameMap().get(wturNo));
+                wsfcst.setWyanalogno(mv.getMvNo());
+                wsfcsts.add(wsfcst);
+                day.add(Calendar.MINUTE, 15);
+            }
+        }
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfYcHistoryData1s.stream().filter(wyhd1 -> wct.getWyanalogno() == wyhd1.getAnalogNo() &&
+                    wct.getCalctime().compareTo(wyhd1.getDataTime()) == 0).forEach(wyhd1 -> {
+                wct.setActualpower(wyhd1.getYcVal());
+            });
+            noscaleWtgDaPfPeriodDatas.stream().filter(nwdppd -> wct.getWyfjid() == nwdppd.getWtgNo() &&
+                    wct.getCalctime().compareTo(nwdppd.getDataTime()) == 0).forEach(nwdppd -> {
+                wct.setWymodelno(nwdppd.getModelNo());
+                wct.setAlgorithmmodel(decisionConvert.getModelNameMap().get(nwdppd.getModelNo()));
+                wct.setForecastpower(nwdppd.getValue());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+        List<Mv> mvs9 = mvs.stream().filter(mv -> mv.getMeasurementtypeNo() == 9).collect(Collectors.toList());
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            mvs9.stream().filter(mv9 -> wct.getWyfjid() == mv9.getWturNo()).forEach(mv9 -> {
+                wct.setWyanalogno(mv9.getMvNo());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfYcHistoryData1s.stream().filter(wyhd1 -> wct.getWyanalogno() == wyhd1.getAnalogNo() &&
+                    wct.getCalctime().compareTo(wyhd1.getDataTime()) == 0).forEach(wyhd1 -> {
+                wct.setActualwindspeed(wyhd1.getYcVal());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+        return wsfcsts;
+    }
+
+    private List<Windspeedforecastshortterm> getLineWindspeedandpowerForecast() {
+        List<Windspeedforecastshortterm> wsfcsts = new ArrayList<>();
+        if(noscaleCwDaPfPeriodDatas.size()==0) return wsfcsts;
+        for (Collectorwireproject collectorwireproject : decisionConvert.getCollectorwireprojects()) {
+            Calendar day = Calendar.getInstance();
+            day.add(Calendar.DATE, -1);
+            day.set(Calendar.HOUR_OF_DAY, 0);
+            day.set(Calendar.MINUTE, 0);
+            day.set(Calendar.SECOND, 0);
+            day.set(Calendar.MILLISECOND, 0);
+            for (Short j = 0; j < 96; j++) {
+                Windspeedforecastshortterm wsfcst = new Windspeedforecastshortterm();
+                wsfcst.setCalctime(day.getTime());
+                wsfcst.setForecasttype("line");
+                Short wpNo = collectorwireproject.getWpNo();
+                wsfcst.setWyfcid(wpNo);
+                wsfcst.setStationid(decisionConvert.getStationIdMap().get(wpNo));
+                wsfcst.setStationname(decisionConvert.getStationNameMap().get(wpNo));
+                Short projectNo = collectorwireproject.getProjectNo();
+                wsfcst.setWyqcid(projectNo);
+                wsfcst.setProjectid(decisionConvert.getProjectIdMap().get(projectNo));
+                wsfcst.setProjectname(collectorwireproject.getWireName());
+                Short collectorwireNo = collectorwireproject.getCollectorwireNo();
+                wsfcst.setWyxlid(collectorwireNo);
+                wsfcst.setLineid(decisionConvert.getLineIdMap().get(projectNo));
+                wsfcst.setLinename(decisionConvert.getLineNameMap().get(projectNo));
+                wsfcst.setWyanalogno(collectorwireproject.getAnalogNo());
+                wsfcsts.add(wsfcst);
+                day.add(Calendar.MINUTE, 15);
+            }
+        }
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfYcHistoryData1s.stream().filter(wyhd1 -> wct.getWyanalogno() == wyhd1.getAnalogNo() &&
+                    wct.getCalctime().compareTo(wyhd1.getDataTime()) == 0).forEach(wyhd1 -> {
+                wct.setActualpower(wyhd1.getYcVal());
+            });
+            wfProjectStatPeriodDatas.stream().filter(wpspd -> wct.getWyfcid() == wpspd.getWindplantNo() &&
+                    wct.getWyqcid() == wpspd.getProjectNo() && wct.getCalctime().compareTo(wpspd.getDataTime()) == 0).forEach(wpspd -> {
+                wct.setActualwindspeed(wpspd.getAvgWindSpeed());
+            });
+            noscaleCwDaPfPeriodDatas.stream().filter(ncdppd -> wct.getWyxlid() == ncdppd.getWfPrCwireNo() &&
+                    wct.getCalctime().compareTo(ncdppd.getDataTime()) == 0).forEach(ncdppd -> {
+                wct.setWymodelno(ncdppd.getModelNo());
+                wct.setAlgorithmmodel(decisionConvert.getModelNameMap().get(ncdppd.getModelNo()));
+                wct.setForecastpower(ncdppd.getValue());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+        return wsfcsts;
+    }
+
+    private List<Windspeedforecastshortterm> getProjectWindspeedandpowerForecast() {
+        List<Windspeedforecastshortterm> wsfcsts = new ArrayList<>();
+        if(noscalePrDaPfPeriodDatas.size()==0) return wsfcsts;
+
+        for (Windplantproject windplantproject : decisionConvert.getWindplantprojects()) {
+            Calendar day = Calendar.getInstance();
+            day.add(Calendar.DATE, -1);
+            day.set(Calendar.HOUR_OF_DAY, 0);
+            day.set(Calendar.MINUTE, 0);
+            day.set(Calendar.SECOND, 0);
+            day.set(Calendar.MILLISECOND, 0);
+
+            for (Short j = 0; j < 96; j++) {
+                Windspeedforecastshortterm wsfcst = new Windspeedforecastshortterm();
+                wsfcst.setCalctime(day.getTime());
+                wsfcst.setForecasttype("project");
+                Short wpNo = windplantproject.getWpNo();
+                wsfcst.setWyfcid(wpNo);
+                wsfcst.setStationid(decisionConvert.getStationIdMap().get(wpNo));
+                wsfcst.setStationname(decisionConvert.getStationNameMap().get(wpNo));
+                Short projectNo = windplantproject.getProjectNo();
+                wsfcst.setWyqcid(projectNo);
+                wsfcst.setProjectid(decisionConvert.getProjectIdMap().get(projectNo));
+                wsfcst.setProjectname(windplantproject.getProjectName());
+                wsfcst.setWyanalogno(windplantproject.getAnalogNo());
+                wsfcsts.add(wsfcst);
+                day.add(Calendar.MINUTE, 15);
+            }
+        }
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfYcHistoryData1s.stream().filter(wyhd1 -> wct.getWyanalogno() == wyhd1.getAnalogNo() &&
+                    wct.getCalctime().compareTo(wyhd1.getDataTime()) == 0).forEach(wyhd1 -> {
+                wct.setActualpower(wyhd1.getYcVal());
+            });
+            wfProjectStatPeriodDatas.stream().filter(wpspd -> wct.getWyfcid() == wpspd.getWindplantNo() &&
+                    wct.getWyqcid() == wpspd.getProjectNo() && wct.getCalctime().compareTo(wpspd.getDataTime()) == 0).forEach(wpspd -> {
+                wct.setActualwindspeed(wpspd.getAvgWindSpeed());
+            });
+            noscalePrDaPfPeriodDatas.stream().filter(npdppd -> wct.getWyqcid() == npdppd.getWfPrNo() &&
+                    wct.getCalctime().compareTo(npdppd.getDataTime()) == 0).forEach(npdppd -> {
+                wct.setWymodelno(npdppd.getModelNo());
+                wct.setAlgorithmmodel(decisionConvert.getModelNameMap().get(npdppd.getModelNo()));
+                wct.setForecastpower(npdppd.getValue());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+        return wsfcsts;
+    }
+
+    @SneakyThrows
+    @Scheduled(cron = "0 55 2 * * ?")
+    //超短期
+    public void specialShortTerm() {
+
+        Calendar today = Calendar.getInstance();
+        //getWfStatPeriodDatas(today);
+        //getWfNwpDatas(today);
+        getWfUspTsPeriodDatas(today);
+        //获取场站超短期风速功率预测
+        List<Windspeedforecastspshortterm> windspeedforecastspshorttermList1 = getStationWindspeedandpowerForecastSp();
+        //getWfYcHistoryData1s(today);
+        //getWfProjectStatPeriodDatas(today);
+        //getNoscalePrDaPfPeriodDatas(today);
+        getProjectUspTsPeriodDatas(today);
+        //获取期次超短期风速功率预测
+        List<Windspeedforecastspshortterm> windspeedforecastspshorttermList2 = getProjectSpWindspeedandpowerForecastSp();
+        windspeedforecastspshorttermList1.addAll(windspeedforecastspshorttermList2);
+        windspeedforecastspshorttermService.insertBatch(windspeedforecastspshorttermList1);
+    }
+
+    private List<Windspeedforecastspshortterm> getStationWindspeedandpowerForecastSp() {
+        List<Windspeedforecastspshortterm> wsfcsts = new ArrayList<>();
+        if(wfUspTsPeriodDatas.size()==0) return wsfcsts;
+        for (short i = 1; i < 6; i++) {
+            Calendar day = Calendar.getInstance();
+            day.add(Calendar.DATE, -1);
+            day.set(Calendar.HOUR_OF_DAY, 0);
+            day.set(Calendar.MINUTE, 0);
+            day.set(Calendar.SECOND, 0);
+            day.set(Calendar.MILLISECOND, 0);
+
+            for (short j = 0; j < 96; j++) {
+                for (short k = 0; k < 24; k++) {
+                    Windspeedforecastspshortterm wsfcst = new Windspeedforecastspshortterm();
+                    wsfcst.setForecasttype("station");
+                    wsfcst.setStationid(decisionConvert.getStationIdMap().get(i));
+                    wsfcst.setStationname(decisionConvert.getStationNameMap().get(i));
+                    wsfcst.setCalctime(day.getTime());
+                    wsfcst.setForecasttime(k);
+                    wsfcst.setWyfcid(i);
+                    wsfcsts.add(wsfcst);
+                }
+                day.add(Calendar.MINUTE, 15);
+            }
+        }
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfStatPeriodDatas.stream().filter(wspd -> wct.getWyfcid()==wspd.getWindplantNo() &&
+                    wct.getCalctime().compareTo(wspd.getDataTime()) == 0).forEach(wspd -> {
+                wct.setActualpower(wspd.getp0());
+                wct.setActualwindspeed(wspd.getAvgWindSpeed());
+            });
+            wfNwpDatas.stream().filter(wnd -> wct.getWyfcid()==wnd.getWindplantNo().shortValue() &&
+                    wct.getCalctime().compareTo(wnd.getDataTime()) == 0).forEach(wnd -> {
+                wct.setForecastwindspeed(wnd.getWindSpeed());
+            });
+            wfUspTsPeriodDatas.stream().filter(wutpd -> wct.getWyfcid()==wutpd.getWindplantNo() &&
+                    wct.getCalctime().compareTo(wutpd.getDataTime()) == 0 && wct.getForecasttime()==wutpd.getTimeScale()).forEach(wutpd -> {
+                wct.setForecastpower(wutpd.getModPower());
+                wct.setAlgorithmmodel(decisionConvert.getSpModelNameMap().get(wutpd.getModelNo()));
+            });
+            return wct;
+        }).collect(Collectors.toList());
+
+        return wsfcsts;
+    }
+
+    private List<Windspeedforecastspshortterm> getProjectSpWindspeedandpowerForecastSp() {
+        List<Windspeedforecastspshortterm> wsfcsts = new ArrayList<>();
+        if(projectUspTsPeriodDatas.size()==0) return wsfcsts;
+        for (Windplantproject windplantproject : decisionConvert.getWindplantprojects()) {
+            Calendar day = Calendar.getInstance();
+            day.add(Calendar.DATE, -1);
+            day.set(Calendar.HOUR_OF_DAY, 0);
+            day.set(Calendar.MINUTE, 0);
+            day.set(Calendar.SECOND, 0);
+            day.set(Calendar.MILLISECOND, 0);
+            for (Short j = 0; j < 96; j++) {
+                for (short k = 0; k < 24; k++) {
+                    Windspeedforecastspshortterm wsfcst = new Windspeedforecastspshortterm();
+                    wsfcst.setCalctime(day.getTime());
+                    wsfcst.setForecasttype("project");
+                    Short wpNo = windplantproject.getWpNo();
+                    wsfcst.setWyfcid(wpNo);
+                    wsfcst.setStationid(decisionConvert.getStationIdMap().get(wpNo));
+                    wsfcst.setStationname(decisionConvert.getStationNameMap().get(wpNo));
+                    Short projectNo = windplantproject.getProjectNo();
+                    wsfcst.setWyqcid(projectNo);
+                    wsfcst.setProjectid(decisionConvert.getProjectIdMap().get(projectNo));
+                    wsfcst.setProjectname(windplantproject.getProjectName());
+                    wsfcst.setWyanalogno(windplantproject.getAnalogNo());
+                    wsfcst.setForecasttime(k);
+                    wsfcsts.add(wsfcst);
+                }
+                day.add(Calendar.MINUTE, 15);
+            }
+        }
+        wsfcsts = wsfcsts.stream().map(wct -> {
+            wfYcHistoryData1s.stream().filter(wyhd1 -> wct.getWyanalogno() == wyhd1.getAnalogNo() &&
+                    wct.getCalctime().compareTo(wyhd1.getDataTime()) == 0).forEach(wyhd1 -> {
+                wct.setActualpower(wyhd1.getYcVal());
+            });
+            wfProjectStatPeriodDatas.stream().filter(wpspd -> wct.getWyfcid() == wpspd.getWindplantNo() &&
+                    wct.getWyqcid() == wpspd.getProjectNo() && wct.getCalctime().compareTo(wpspd.getDataTime()) == 0).forEach(wpspd -> {
+                wct.setActualwindspeed(wpspd.getAvgWindSpeed());
+            });
+            projectUspTsPeriodDatas.stream().filter(putpd -> wct.getWyqcid() == putpd.getProjectNo() &&
+                    wct.getCalctime().compareTo(putpd.getDataTime()) == 0 && wct.getForecasttime()==putpd.getTimeScale()).forEach(putpd -> {
+                wct.setWymodelno(putpd.getModelNo());
+                wct.setAlgorithmmodel(decisionConvert.getSpModelNameMap().get(putpd.getModelNo()));
+                wct.setForecastpower(putpd.getModPower());
+            });
+            return wct;
+        }).collect(Collectors.toList());
+        return wsfcsts;
+    }
+
+    private Date getStarttime(Calendar date) {
+        Calendar time = (Calendar) date.clone();
+        time.add(Calendar.DATE, -1);
+        time.set(Calendar.HOUR_OF_DAY, 0);
+        time.set(Calendar.MINUTE, 0);
+        time.set(Calendar.SECOND, 0);
+        time.set(Calendar.MILLISECOND, 0);
+        return time.getTime();
+    }
+
+    private Date getEndtime(Calendar date) {
+        Calendar time = (Calendar) date.clone();
+        time.add(Calendar.DATE, -1);
+        time.set(Calendar.HOUR_OF_DAY, 23);
+        time.set(Calendar.MINUTE, 59);
+        time.set(Calendar.SECOND, 59);
+        return time.getTime();
+    }
+
+    /**
+     * 线路预测功率-短期
+     * @param time
+     * @return
+     */
+    public List<NoscaleCwDaPfPeriodData> getNoscaleCwDaPfPeriodDatas(Calendar time) {
+        QueryWrapper<NoscaleCwDaPfPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time));
+                //.orderByAsc("DATA_TIME");
+        noscaleCwDaPfPeriodDatas = noscaleCwDaPfPeriodDataMapper.selectList(wrapper);
+        return noscaleCwDaPfPeriodDatas;
+    }
+    /**
+     * 期次预测功率-短期
+     * @param time
+     * @return
+     */
+    public List<NoscalePrDaPfPeriodData> getNoscalePrDaPfPeriodDatas(Calendar time) {
+        QueryWrapper<NoscalePrDaPfPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time))
+                .lt("WF_PR_NO",6);
+        noscalePrDaPfPeriodDatas = noscalePrDaPfPeriodDataMapper.selectList(wrapper);
+        return noscalePrDaPfPeriodDatas;
+    }
+    /**
+     * 场站预测功率-短期
+     * @param time
+     * @return
+     */
+    public List<NoscaleWfDaPfPeriodData> getNoscaleWfDaPfPeriodDatas(Calendar time) {
+        QueryWrapper<NoscaleWfDaPfPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time))
+                .lt("WINDPLANT_NO",6);
+                //.orderByAsc("WINDPLANT_NO","DATA_TIME","MODEL_NO");
+        noscaleWfDaPfPeriodDatas = noscaleWfDaPfPeriodDataMapper.selectList(wrapper);
+        return noscaleWfDaPfPeriodDatas;
+    }
+    /**
+     * 风机预测功率-短期
+     * @param time
+     * @return
+     */
+    public List<NoscaleWtgDaPfPeriodData> getNoscaleWtgDaPfPeriodDatas(Calendar time) {
+        QueryWrapper<NoscaleWtgDaPfPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time));
+        noscaleWtgDaPfPeriodDatas = noscaleWtgDaPfPeriodDataMapper.selectList(wrapper);
+        return noscaleWtgDaPfPeriodDatas;
+    }
+    /**
+     * 期次预测功率-超短期
+     * @param time
+     * @return
+     */
+    public List<ProjectUspTsPeriodData> getProjectUspTsPeriodDatas(Calendar time) {
+        QueryWrapper<ProjectUspTsPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time));
+        projectUspTsPeriodDatas = projectUspTsPeriodDataMapper.selectList(wrapper);
+        return projectUspTsPeriodDatas;
+    }
+    /**
+     * 实际风速-期次
+     * @param time
+     * @return
+     */
+    public List<WfProjectStatPeriodData> getWfProjectStatPeriodDatas(Calendar time) {
+        QueryWrapper<WfProjectStatPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time));
+                //.orderByAsc("DATA_TIME","PROJECT_NO");
+        wfProjectStatPeriodDatas = wfProjectStatPeriodDataMapper.selectList(wrapper);
+        return wfProjectStatPeriodDatas;
+    }
+    /**
+     * 场站实际功率、风速
+     * @param time
+     * @return
+     */
+    public List<WfStatPeriodData> getWfStatPeriodDatas(Calendar time) {
+        QueryWrapper<WfStatPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time))
+                .lt("WINDPLANT_NO",6);
+        wfStatPeriodDatas = wfStatPeriodDataMapper.selectList(wrapper);
+        return wfStatPeriodDatas;
+    }
+    /**
+     * 场站预测功率-超短期
+     * @param time
+     * @return
+     */
+    public List<WfUspTsPeriodData> getWfUspTsPeriodDatas(Calendar time) {
+        QueryWrapper<WfUspTsPeriodData> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time))
+                .lt("WINDPLANT_NO",6);
+        wfUspTsPeriodDatas = wfUspTsPeriodDataMapper.selectList(wrapper);
+        return wfUspTsPeriodDatas;
+    }
+    /**
+     * 实际功率-期次、线路、风机
+     * @param time
+     * @return
+     */
+    public List<WfYcHistoryData1> getWfYcHistoryData1s(Calendar time) {
+        List<Integer> analogNo = decisionConvert.getWindplantprojects().stream().map(Windplantproject::getAnalogNo).collect(Collectors.toList());
+        List<Integer> collect = decisionConvert.getCollectorwireprojects().stream().map(Collectorwireproject::getAnalogNo).collect(Collectors.toList());
+        analogNo.addAll(collect);
+        QueryWrapper<WfYcHistoryData1> wrapper = new QueryWrapper();
+        wrapper.between("DATA_TIME", getStarttime(time), getEndtime(time))
+                .in(true,"ANALOG_NO",analogNo);
+        wfYcHistoryData1s = wfYcHistoryData1Mapper.selectList(wrapper);
+        return wfYcHistoryData1s;
+    }
+    /**
+     * 预测风速
+     * @param time
+     * @return
+     */
+    public List<WfNwpData> getWfNwpDatas(Calendar time) {
+        wfNwpDatas = wfNwpDataMapper.getAllInDate((short) 6,getStarttime(time),getEndtime(time));
+        return wfNwpDatas;
+    }
+}

+ 1 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/CasefaultalgServiceImpl.java

@@ -235,6 +235,7 @@ public class CasefaultalgServiceImpl extends ServiceImpl<CasefaultalgMapper, Cas
             row.addObject("remark", obj.getRemark());
             row.addObject("category", obj.getCategory());
             row.addObject("createtime", DateUtil.getCurrentDate());
+            row.addObject("speed", obj.getSpeed());
 
             // 先不提交kudu
             kuduSession.apply(insert);

+ 83 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindspeedforecastshorttermServiceImpl.java

@@ -0,0 +1,83 @@
+package com.gyee.impala.service.impl.master;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.common.config.datasource.KuduDataSourceConfig;
+import com.gyee.impala.common.util.SnowFlakeUtil;
+import com.gyee.impala.mapper.master.WindspeedforecastshorttermMapper;
+import com.gyee.impala.model.master.Casewarningcustom;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+import com.gyee.impala.service.master.IWindspeedforecastshorttermService;
+import org.apache.kudu.client.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-31
+ */
+@Service
+public class WindspeedforecastshorttermServiceImpl extends ServiceImpl<WindspeedforecastshorttermMapper, Windspeedforecastshortterm> implements IWindspeedforecastshorttermService {
+    @Autowired
+    private KuduDataSourceConfig kuduConfig;
+    /**
+     * 由于mybatis-plus存储的中文乱码
+     * 采用原生写法
+     * @param list
+     * @return
+     */
+    @Override
+    public void insertBatch(List<Windspeedforecastshortterm> list) throws KuduException {
+        KuduTable kuduTable = kuduConfig.kuduClient.openTable("impala::gyee_sample_kudu.windspeedforecastshortterm");
+        KuduSession kuduSession = kuduConfig.kuduSession();
+        int i = 0;
+        for (Windspeedforecastshortterm boj : list){
+            Insert insert = kuduTable.newInsert();
+            // 获取Row对象,设置插入的值
+            PartialRow row = insert.getRow();
+            row.addObject("id", SnowFlakeUtil.generateIdL());
+            long time = boj.getCalctime().getTime()+28800000;
+            row.addObject("calctime", time*1000);
+            row.addObject("forecasttype", boj.getForecasttype());
+            row.addObject("stationid", boj.getStationid());
+            row.addObject("projectid", boj.getProjectid());
+            row.addObject("lineid", boj.getLineid());
+            row.addObject("windturbineid", boj.getWindturbineid());
+            row.addObject("actualpower", boj.getActualpower());
+            row.addObject("actualwindspeed", boj.getActualwindspeed());
+            row.addObject("forecastpower", boj.getForecastpower());
+            row.addObject("forecastwindspeed", boj.getForecastwindspeed());
+            row.addObject("algorithmmodel", boj.getAlgorithmmodel());
+            row.addObject("stationname", boj.getStationname());
+            row.addObject("projectname", boj.getProjectname());
+            row.addObject("linename", boj.getLinename());
+            row.addObject("windturbinename", boj.getWindturbinename());
+
+            // 先不提交kudu
+            kuduSession.apply(insert);
+            i ++;
+            if (i % kuduConfig.getCount() == 0)
+                kuduSession.flush(); //批量写入kudu
+        }
+
+        // 最后,补加一条批量写入
+        kuduSession.flush();
+
+        // 关闭和kudu的会话
+        kuduSession.close();
+    }
+
+    @Override
+    public IPage<Windspeedforecastshortterm> list(Page<Windspeedforecastshortterm> page, QueryWrapper<Windspeedforecastshortterm> wrapper) {
+        Page<Windspeedforecastshortterm> windspeedforecastshorttermPage = baseMapper.selectPage(page, wrapper);
+        return windspeedforecastshorttermPage;
+    }
+}

+ 74 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindspeedforecastspshorttermServiceImpl.java

@@ -0,0 +1,74 @@
+package com.gyee.impala.service.impl.master;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.common.config.datasource.KuduDataSourceConfig;
+import com.gyee.impala.common.util.SnowFlakeUtil;
+import com.gyee.impala.mapper.master.WindspeedforecastspshorttermMapper;
+import com.gyee.impala.model.master.Windspeedforecastspshortterm;
+import com.gyee.impala.service.master.IWindspeedforecastspshorttermService;
+import org.apache.kudu.client.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-31
+ */
+@Service
+public class WindspeedforecastspshorttermServiceImpl extends ServiceImpl<WindspeedforecastspshorttermMapper, Windspeedforecastspshortterm> implements IWindspeedforecastspshorttermService {
+    @Autowired
+    private KuduDataSourceConfig kuduConfig;
+    /**
+     * 由于mybatis-plus存储的中文乱码
+     * 采用原生写法
+     * @param list
+     * @return
+     */
+    @Override
+    public void insertBatch(List<Windspeedforecastspshortterm> list) throws KuduException {
+        KuduTable kuduTable = kuduConfig.kuduClient.openTable("impala::gyee_sample_kudu.windspeedforecastspshortterm");
+        KuduSession kuduSession = kuduConfig.kuduSession();
+        int i = 0;
+        for (Windspeedforecastspshortterm boj : list){
+            Insert insert = kuduTable.newInsert();
+            // 获取Row对象,设置插入的值
+            PartialRow row = insert.getRow();
+            row.addObject("id", SnowFlakeUtil.generateIdL());
+            long time = boj.getCalctime().getTime()+28800000;
+            row.addObject("calctime", time*1000);
+            row.addObject("forecasttime", boj.getForecasttime());
+            row.addObject("forecasttype", boj.getForecasttype());
+            row.addObject("stationid", boj.getStationid());
+            row.addObject("projectid", boj.getProjectid());
+            row.addObject("lineid", boj.getLineid());
+            row.addObject("windturbineid", boj.getWindturbineid());
+            row.addObject("actualpower", boj.getActualpower());
+            row.addObject("actualwindspeed", boj.getActualwindspeed());
+            row.addObject("forecastpower", boj.getForecastpower());
+            row.addObject("forecastwindspeed", boj.getForecastwindspeed());
+            row.addObject("algorithmmodel", boj.getAlgorithmmodel());
+            row.addObject("stationname", boj.getStationname());
+            row.addObject("projectname", boj.getProjectname());
+            row.addObject("linename", boj.getLinename());
+            row.addObject("windturbinename", boj.getWindturbinename());
+
+            // 先不提交kudu
+            kuduSession.apply(insert);
+            i ++;
+            if (i % kuduConfig.getCount() == 0)
+                kuduSession.flush(); //批量写入kudu
+        }
+
+        // 最后,补加一条批量写入
+        kuduSession.flush();
+
+        // 关闭和kudu的会话
+        kuduSession.close();
+    }
+}

+ 24 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/IWindspeedforecastshorttermService.java

@@ -0,0 +1,24 @@
+package com.gyee.impala.service.master;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+import org.apache.kudu.client.KuduException;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-31
+ */
+public interface IWindspeedforecastshorttermService extends IService<Windspeedforecastshortterm> {
+    void insertBatch(List<Windspeedforecastshortterm> list) throws KuduException;
+
+    IPage<Windspeedforecastshortterm> list(Page<Windspeedforecastshortterm> page, QueryWrapper<Windspeedforecastshortterm> wrapper);
+}

+ 19 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/IWindspeedforecastspshorttermService.java

@@ -0,0 +1,19 @@
+package com.gyee.impala.service.master;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.master.Windspeedforecastspshortterm;
+import org.apache.kudu.client.KuduException;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gfhd
+ * @since 2022-08-31
+ */
+public interface IWindspeedforecastspshorttermService extends IService<Windspeedforecastspshortterm> {
+    void insertBatch(List<Windspeedforecastspshortterm> list) throws KuduException;
+}

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/CollectorwireprojectMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.CollectorwireprojectMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/EnumMenuItemMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.EnumMenuItemMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/MvMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.MvMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/NoscaleCwDaPfPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.NoscaleCwDaPfPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/NoscalePrDaPfPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.NoscalePrDaPfPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/NoscaleWfDaPfPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.NoscaleWfDaPfPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/NoscaleWtgDaPfPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.NoscaleWtgDaPfPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/ProjectUspTsPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.ProjectUspTsPeriodDataMapper">
+
+</mapper>

+ 7 - 4
gyee-sample-impala/src/main/resources/mapper/decision/WfNwpDataMapper.xml

@@ -15,9 +15,12 @@
         <result column="AIR_PRESSURE" property="airPressure" />
     </resultMap>
 
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        WINDPLANT_NO, NWP_TYPE, FILE_TIME, DATA_TIME, WIND_SPEED, TEMPERATURE, WIND_DIR, HUMIDITY, AIR_PRESSURE
-    </sql>
+    <select id="getAllInDate" resultType="com.gyee.impala.model.decision.WfNwpData">
+        SELECT * FROM (
+        SELECT WINDPLANT_NO, NWP_TYPE, FILE_TIME, DATA_TIME, WIND_SPEED, TEMPERATURE, WIND_DIR, HUMIDITY, AIR_PRESSURE,
+        ROW_NUMBER() OVER (partition by WINDPLANT_NO,DATA_TIME order by FILE_TIME DESC) NUM FROM WF_NWP_DATA
+        WHERE (DATA_TIME BETWEEN #{starttime,jdbcType=TIMESTAMP} AND #{endtime,jdbcType=TIMESTAMP} AND WINDPLANT_NO &lt;#{winno} AND NWP_TYPE = 7)
+        ) WHERE NUM=1
+    </select>
 
 </mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WfProjectCwWtgMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WfProjectCwWtgMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WfProjectStatPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WfProjectStatPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WfStatPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WfStatPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WfUspTsPeriodDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WfUspTsPeriodDataMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WfYcHistoryData1Mapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WfYcHistoryData1Mapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WindplantprojectMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WindplantprojectMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/decision/WturMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.decision.WturMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/master/WindspeedforecastshorttermMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.master.WindspeedforecastshorttermMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/master/WindspeedforecastspshorttermMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.master.WindspeedforecastspshorttermMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/slave/LineMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.slave.LineMapper">
+
+</mapper>

+ 5 - 0
gyee-sample-impala/src/main/resources/mapper/slave/ProjectMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.slave.ProjectMapper">
+
+</mapper>

+ 0 - 1
gyee-sample-impala/src/test/java/com/gyee/impala/FaultHistoryFilterTest.java

@@ -6,7 +6,6 @@ import com.gyee.impala.model.slave.Faulthistory;
 import com.gyee.impala.model.slave.Faultsnap;
 import com.gyee.impala.service.slave.FaulthistoryService;
 import com.gyee.impala.service.slave.FaultsnapService;
-import javafx.scene.control.DateCell;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;

+ 18 - 1
gyee-sample-impala/src/test/java/com/gyee/impala/GyeeSampleImpalaApplicationTests.java

@@ -1,13 +1,30 @@
 package com.gyee.impala;
 
+import com.gyee.impala.common.config.datasource.KuduDataSourceConfig;
+import org.apache.kudu.client.KuduClient;
+import org.apache.kudu.client.KuduException;
+import org.apache.kudu.client.KuduTable;
 import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @SpringBootTest
 class GyeeSampleImpalaApplicationTests {
-
+    @Autowired
+    private KuduDataSourceConfig kuduConfig;
     @Test
     void contextLoads() {
+        KuduClient kuduClient = new KuduClient
+                .KuduClientBuilder("192.168.1.65:7051")//7051,21050
+                .defaultOperationTimeoutMs(6000)
+                .build();
+        try {
+            KuduTable kuduTable = kuduClient.openTable("impala::gyee_sample_kudu.windspeedforecastshortterm");
+        } catch (KuduException e) {
+            e.printStackTrace();
+        }
     }
 
+
+
 }

+ 66 - 0
gyee-sample-impala/src/test/java/com/gyee/impala/KuduTest.java

@@ -0,0 +1,66 @@
+package com.gyee.impala;
+
+import com.gyee.impala.common.config.datasource.KuduDataSourceConfig;
+import com.gyee.impala.common.util.SnowFlakeUtil;
+import com.gyee.impala.model.master.Windspeedforecastshortterm;
+import org.apache.kudu.client.*;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Date;
+
+public class KuduTest {
+
+    /*public static void main(String[] args) throws KuduException {
+        KuduTable kuduTable = null;
+        KuduClient kuduClient = new KuduClient
+                //192.168.1.65:7051
+                .KuduClientBuilder("192.168.1.60:7051")//7051,21050
+                .defaultOperationTimeoutMs(6000)
+                .build();
+        try {
+            kuduTable = kuduClient.openTable("impala::gyee_sample_kudu.windspeedforecastshortterm");
+        } catch (KuduException e) {
+            e.printStackTrace();
+        }
+
+        //获取KuduSession会话对象
+        KuduSession kuduSession = kuduClient.newSession();
+        // TODO: 设置手动刷新数据到表中
+        kuduSession.setFlushMode(SessionConfiguration.FlushMode.MANUAL_FLUSH);
+        // 批量插入的缓冲区条目数
+        kuduSession.setMutationBufferSpace(1000);
+
+            Insert insert = kuduTable.newInsert();
+            // 获取Row对象,设置插入的值
+            PartialRow row = insert.getRow();
+            row.addObject("id", SnowFlakeUtil.generateIdL());
+        long time = new Date().getTime()+28800000;
+        row.addObject("calctime", time *1000);
+            row.addObject("forecasttype", "forecasttype");
+            row.addObject("stationid", "stationid");
+            row.addObject("projectid", "projectid");
+            row.addObject("lineid", "lineid");
+            row.addObject("windturbineid", "windturbineid");
+            row.addObject("actualpower", 11.1f);
+            row.addObject("actualwindspeed", 22.2f);
+            row.addObject("forecastpower", 33.3f);
+            row.addObject("forecastwindspeed", 55.5f);
+            row.addObject("algorithmmodel", "algorithmmodel");
+            row.addObject("stationname", "stationname");
+            row.addObject("projectname", "projectname");
+            row.addObject("linename", "linename");
+            row.addObject("windturbinename", "windturbinename");
+
+            // 先不提交kudu
+            kuduSession.apply(insert);
+
+        // 最后,补加一条批量写入
+        kuduSession.flush();
+
+        // 关闭和kudu的会话
+        kuduSession.close();
+    }*/
+    public static void main(String[] args) {
+
+    }
+}