Browse Source

增加新版经济运行项目

wangb@gyee-china.com 2 years ago
parent
commit
7c2ed88d63
100 changed files with 8412 additions and 0 deletions
  1. 125 0
      web/runeconomy-jjyx/pom.xml
  2. 64 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/RunEconomyApplication.java
  3. 26 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/CorsConfig.java
  4. 149 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/GeneratorCodeConfig.java
  5. 72 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/GyeeConfig.java
  6. 63 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/MybatisPlusConfig.java
  7. 76 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/SwagerrConfiguration.java
  8. 50 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/ThreadPoolConfig.java
  9. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/WebSocketConfig.java
  10. 227 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/CommonController.java
  11. 103 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/OutputSpeedController.java
  12. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicBranchController.java
  13. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicCompanyController.java
  14. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicEnergyGroupController.java
  15. 81 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicEquipmentController.java
  16. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicLineController.java
  17. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicOrganizeTreeController.java
  18. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicPowerstationController.java
  19. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicProjectController.java
  20. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicRegionController.java
  21. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicSquareController.java
  22. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicSubStationController.java
  23. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicUserController.java
  24. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicWeatherStationController.java
  25. 67 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconBenchmarkingBetweenController.java
  26. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconDutyScheduleController.java
  27. 110 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconEquipmentInfoDayTopController.java
  28. 46 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPointCodeController.java
  29. 53 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay1Controller.java
  30. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay2Controller.java
  31. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay3Controller.java
  32. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay4Controller.java
  33. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay5Controller.java
  34. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay6Controller.java
  35. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay7Controller.java
  36. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconTargetdataController.java
  37. 216 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/SingleAnalysisController.java
  38. 368 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/bmk/BenchmarkingController.java
  39. 180 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindpowerDetailChartController.java
  40. 176 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineDetailChartController.java
  41. 316 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineDetailLineChartController.java
  42. 283 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineDetailPieChartAController.java
  43. 342 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineGoodnessDetailController.java
  44. 153 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbinegoodnessController.java
  45. 97 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/homepage/EconomyHomePageController.java
  46. 46 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/AgcController.java
  47. 67 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/AnemometerTowerController.java
  48. 106 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/ComprehensiveController.java
  49. 85 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/DeviceDetailsController.java
  50. 83 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/LandformsController.java
  51. 88 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/MatrixController.java
  52. 185 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/MonitorController.java
  53. 66 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/StationMonitorController.java
  54. 47 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/StatusController.java
  55. 85 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/performacompare/EquipmentPerformaCompareController.java
  56. 81 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/performance/PerformanceCurvefittingController.java
  57. 376 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/specific/SpecificController.java
  58. 108 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/threerate/ThreeRateController.java
  59. 98 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/update/TargetEnterController.java
  60. 104 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/AjaxResult.java
  61. 364 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/DataVo.java
  62. 72 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/EchartDataVo.java
  63. 181 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/EquipmentInfoDayTopDTO.java
  64. 115 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/PowercurveVo.java
  65. 34 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ProjectplanVo.java
  66. 36 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/R.java
  67. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ResultCode.java
  68. 87 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ResultInfo.java
  69. 96 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ResultMsg.java
  70. 49 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/SawVo.java
  71. 42 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/Status.java
  72. 62 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ValueObjVo.java
  73. 15 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ZllglDTO.java
  74. 371 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/EconHomePagePointRateDTO.java
  75. 36 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/FwjslDTO.java
  76. 34 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/ProEconPointCodeDTO.java
  77. 17 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/QxjslDTO.java
  78. 957 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/init/CacheContext.java
  79. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicBranchMapper.java
  80. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicCompanyMapper.java
  81. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicEnergyGroupMapper.java
  82. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicEquipmentMapper.java
  83. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicEquipmentPointMapper.java
  84. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicLineMapper.java
  85. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicMeterPointMapper.java
  86. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicModelPowerMapper.java
  87. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicModelPowerRdMapper.java
  88. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicOrganizeTreeMapper.java
  89. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicPowerstationMapper.java
  90. 20 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicPowerstationPointMapper.java
  91. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicProjectMapper.java
  92. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicProjectPlanMapper.java
  93. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicRealtimeDbconfigMapper.java
  94. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicRegionMapper.java
  95. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicSquareMapper.java
  96. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicStatusPointMapper.java
  97. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicSubStationMapper.java
  98. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicUserMapper.java
  99. 16 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicWeatherStationMapper.java
  100. 0 0
      web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicWindturbinePowerMapper.java

+ 125 - 0
web/runeconomy-jjyx/pom.xml

@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>web</artifactId>
+        <groupId>com.gyee</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>runeconomy-jjyx</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.gyee</groupId>
+            <artifactId>common</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.7</version>
+            <scope>compile</scope>
+        </dependency>
+        <!--nacos 依赖-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.alibaba.cloud</groupId>-->
+        <!--            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
+        <!--        </dependency>-->
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+            <version>3.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+
+        <!-- 添加swagger2 -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>io.swagger</groupId>
+                    <artifactId>swagger-annotations</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>io.swagger</groupId>
+                    <artifactId>swagger-models</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.5.21</version>
+        </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.5.21</version>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.7.1</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 64 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/RunEconomyApplication.java

@@ -0,0 +1,64 @@
+package com.gyee.runeconomy;
+
+
+import com.gyee.runeconomy.config.GyeeConfig;
+import com.gyee.runeconomy.util.SpringUtils;
+import lombok.extern.log4j.Log4j2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.env.Environment;
+
+import java.io.File;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+
+@Log4j2
+@SpringBootApplication
+@MapperScan("com.gyee.runeconomy.mapper")
+public class RunEconomyApplication {
+
+    public static void main(String[] args) throws UnknownHostException {
+        ConfigurableApplicationContext application = SpringApplication.run(RunEconomyApplication.class, args);
+
+
+        Environment env = application.getEnvironment();
+        String ip = InetAddress.getLocalHost().getHostAddress();
+        String port = env.getProperty("server.port");
+        String path = env.getProperty("server.servlet.context-path");
+
+        createFolder();
+
+        log.info("\n-------------------------------------------------------------------\n\t" +
+                "经济运行系统启动成功,访问路径如下:\n\t" +
+                "本地路径: \t\thttp://localhost:" + port + path + "\n\t" +
+                "网络地址: \t\thttp://" + ip + ":" + port + path + "\n\t" +
+                "API文档: \t\thttp://" + ip + ":" + port + path + "/swagger-ui.html\n" +
+                "-----------------------------------------------------------------------");
+
+
+    }
+
+
+    /**
+     * 功率曲线拟合的数据文件保存路径
+     */
+    private static void createFolder(){
+        GyeeConfig bean = SpringUtils.getBean(GyeeConfig.class);
+        File f1 = new File(bean.getFilePathPrepare());
+        File f2 = new File(bean.getFilePathProcess());
+        File f3 = new File(bean.getFilePathFitting());
+        File f4 = new File(bean.getFilePathDownload());
+        if (!f1.exists())
+            f1.mkdirs();
+        if (!f2.exists())
+            f2.mkdirs();
+        if (!f3.exists())
+            f3.mkdirs();
+        if (!f4.exists())
+            f4.mkdirs();
+    }
+
+}

+ 26 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/CorsConfig.java

@@ -0,0 +1,26 @@
+package com.gyee.runeconomy.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @ClassName : CorsConfig
+ * @Author : xieshengjie
+ * @Date: 2021/6/28 20:00
+ * @Description :
+ */
+@Configuration
+public class CorsConfig implements WebMvcConfigurer {
+
+    static final String[] ORIGINS = new String[]{"GET", "POST", "PUT", "DELETE"};  //请求方式
+
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+        registry.addMapping("/**") //所有的当前站点的请求地址,都支持跨域访问
+                .allowedOrigins("*")// 所有的外部域都可跨域访问,这里注意2.4.0以后是allowedOriginPatterns,以前是allowedOrigins
+                .allowCredentials(true)  //是否支持跨域用户凭证
+                .allowedMethods(ORIGINS) //当前站点支持的跨域请求类型是什么
+                .maxAge(3600);  //超是时长,单位为秒。
+    }
+}

+ 149 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/GeneratorCodeConfig.java

@@ -0,0 +1,149 @@
+package com.gyee.runeconomy.config;
+
+
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+
+import java.util.Scanner;
+
+/**
+ *@ClassName GeneratorCodeConfig
+ *@Description 自动生成mybatisplus的相关代码
+ *@Author 谢生杰
+ *@Date 2020/9/25 18:26
+ *@Version 1.0
+ **/
+public class GeneratorCodeConfig {
+    public static String scanner(String tip) {
+        Scanner scanner = new Scanner(System.in);
+        StringBuilder help = new StringBuilder();
+        help.append("请输入" + tip + ":");
+        System.out.println(help.toString());
+        if (scanner.hasNext()) {
+            String ipt = scanner.next();
+            if (StringUtils.isNotEmpty(ipt)) {
+                return ipt;
+            }
+        }
+        throw new MybatisPlusException("请输入正确的" + tip + "!");
+    }
+
+    public static void main(String[] args) {
+        // 代码生成器
+        AutoGenerator mpg = new AutoGenerator();
+
+        // 全局配置
+        GlobalConfig gc = new GlobalConfig();
+        String projectPath = System.getProperty("user.dir");
+        gc.setOutputDir("D:\\work\\workspaces\\sis\\web\\runeconomy-jjyx\\src\\main\\java");
+        gc.setAuthor("wang");
+        gc.setOpen(false);
+        //实体属性 Swagger2 注解
+        gc.setSwagger2(false);
+        mpg.setGlobalConfig(gc);
+
+        // 数据源配置
+        DataSourceConfig dsc = new DataSourceConfig();
+        /*dsc.setUrl("jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true");
+        dsc.setDriverName("com.mysql.jdbc.Driver");
+        dsc.setUsername("root");
+        dsc.setPassword("root");
+        mpg.setDataSource(dsc);*/
+//        dsc.setDriverName("oracle.jdbc.driver.OracleDriver"); 注意大写
+//        dsc.setUsername("gdprod");
+//        dsc.setPassword("gd123");
+//        dsc.setUrl("jdbc:oracle:thin:@10.81.3.151:1521:gdsj");
+
+        dsc.setDriverName("org.postgresql.Driver");
+        dsc.setUsername("postgres");
+        dsc.setPassword("gd123");
+        dsc.setUrl("jdbc:postgresql://124.70.75.91:5432/IMS_NEM_JJYX");
+
+        mpg.setDataSource(dsc);
+
+
+
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+//        pc.setModuleName(scanner("模块名"));
+        pc.setParent("com.gyee.runeconomy");
+        pc.setEntity("model.auto");
+        pc.setMapper("mapper.auto");
+        pc.setService("service.auto");
+        pc.setServiceImpl("service.auto.impl");
+        mpg.setPackageInfo(pc);
+
+        // 自定义配置
+//        InjectionConfig cfg = new InjectionConfig() {
+//            @Override
+//            public void initMap() {
+//                // to do nothing
+//            }
+//        };
+
+        // 如果模板引擎是 freemarker
+//        String templatePath = "/templates/mapper.xml.ftl";
+        // 如果模板引擎是 velocity
+        // String templatePath = "/templates/mapper.xml.vm";
+
+        // 自定义输出配置
+//        List<FileOutConfig> focList = new ArrayList<>();
+        // 自定义配置会被优先输出
+//        focList.add(new FileOutConfig(templatePath) {
+//            @Override
+//            public String outputFile(TableInfo tableInfo) {
+//                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+//                return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+//                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+//            }
+//        });
+        /*
+        cfg.setFileCreate(new IFileCreate() {
+            @Override
+            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
+                // 判断自定义文件夹是否需要创建
+                checkDir("调用默认方法创建的目录");
+                return false;
+            }
+        });
+        */
+//        cfg.setFileOutConfigList(focList);
+//        mpg.setCfg(cfg);
+
+        // 配置模板
+        TemplateConfig templateConfig = new TemplateConfig();
+
+        // 配置自定义输出模板
+        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
+        // templateConfig.setEntity("templates/entity2.java");
+        // templateConfig.setService();
+        // templateConfig.setController();
+
+        templateConfig.setXml(null);
+        mpg.setTemplate(templateConfig);
+
+        // 策略配置
+        StrategyConfig strategy = new StrategyConfig();
+        strategy.setNaming(NamingStrategy.underline_to_camel);
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+        strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
+        strategy.setEntityLombokModel(true);
+        strategy.setRestControllerStyle(true);
+
+        strategy.setEntityLombokModel(true);
+        // 公共父类
+//        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
+        // 写于父类中的公共字段
+//        strategy.setSuperEntityColumns("id");
+        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
+        strategy.setControllerMappingHyphenStyle(true);
+        strategy.setTablePrefix(pc.getModuleName() + "_");
+        mpg.setStrategy(strategy);
+        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+        mpg.execute();
+    }
+}

+ 72 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/GyeeConfig.java

@@ -0,0 +1,72 @@
+package com.gyee.runeconomy.config;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.system.ApplicationHome;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "gyee")
+public class GyeeConfig {
+
+    public File jarF = null;
+    {
+        ApplicationHome h = new ApplicationHome(getClass());
+        jarF = h.getSource();
+    }
+
+    /** 数据适配器网址 **/
+    private String adapterUrl;
+    /** 数据准备保存路径(原始数据) **/
+    private String filePathPrepare;
+    /** 数据处理保存路径(处理后的数据) **/
+    private String filePathProcess;
+    /** 数据拟合保存路径(拟合后的数据) **/
+    private String filePathFitting;
+    /** 数据压缩下载 **/
+    private String filePathDownload;
+    /** 功率曲线拟合测点 **/
+    private String points;
+
+    public List<String> getPoints() {
+        return Arrays.asList(this.points.split(","));
+    }
+
+    public String getFilePathPrepare() {
+        return jarF.getParentFile().getAbsolutePath() + "\\" + filePathPrepare;
+    }
+
+    public void setFilePathPrepare(String filePathPrepare) {
+        this.filePathPrepare = filePathPrepare;
+    }
+
+    public String getFilePathProcess() {
+        return jarF.getParentFile().getAbsolutePath() + "\\" + filePathProcess;
+    }
+
+    public void setFilePathProcess(String filePathProcess) {
+        this.filePathProcess = filePathProcess;
+    }
+
+    public String getFilePathFitting() {
+        return jarF.getParentFile().getAbsolutePath() + "\\" + filePathFitting;
+    }
+
+    public void setFilePathFitting(String filePathFitting) {
+        this.filePathFitting = filePathFitting;
+    }
+
+    public String getFilePathDownload() {
+        return jarF.getParentFile().getAbsolutePath() + "\\" + filePathDownload;
+    }
+
+    public void setFilePathDownload(String filePathDownload) {
+        this.filePathDownload = filePathDownload;
+    }
+}

+ 63 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/MybatisPlusConfig.java

@@ -0,0 +1,63 @@
+package com.gyee.runeconomy.config;
+
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
+import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Date;
+
+/**
+ *@ClassName MybatisPlusConfig
+ *@Description 配置分页插件
+ *@Author 谢生杰
+ *@Date 2020/9/25 18:24
+ *@Version 1.0
+ **/
+@Configuration
+public class MybatisPlusConfig {
+    /**
+     * 分页插件
+     */
+    @Bean
+    public PaginationInterceptor paginationInterceptor() {
+        return new PaginationInterceptor();
+    }
+
+    /**
+     * @description:
+     * @author: xiruipeng 
+     * @date: 2022/9/16 15:08
+     * @param: []
+     * @return: com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor
+     **/
+    @Bean
+    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
+        return new OptimisticLockerInterceptor();
+    }
+
+
+    /**
+     * 自定义主键生成:生成的 当前时间 + 随机数的格式
+     * @return
+     */
+    @Bean
+    public IdentifierGenerator idGenerator() {
+        return new IdentifierGenerator() {
+            @Override
+            public Number nextId(Object entity) {
+                return null;
+            }
+
+            @Override
+            public String nextUUID(Object entity) {
+                return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN)+ IdUtil.simpleUUID();
+            }
+        };
+    }
+}

+ 76 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/SwagerrConfiguration.java

@@ -0,0 +1,76 @@
+package com.gyee.runeconomy.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * Swagger 配置文件
+ * @ClassName: Swagger
+ * @Description: 配置文件
+ * @author gyee
+ * @date 2022年11月10日
+ *
+ */
+@Configuration(value="true")
+@EnableSwagger2 //启动swagger注解 启动服务,浏览器输入"http://localhost:8080/swagger-ui.html"
+public class SwagerrConfiguration implements WebMvcConfigurer {
+
+
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                //.host("")
+                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
+                .apiInfo(apiInfo())
+                // 设置哪些接口暴露给Swagger展示
+                .select()
+                // 扫描所有有注解的api,用这种方式更灵活
+                .apis(RequestHandlerSelectors.basePackage("com.gyee.runeconomy"))
+                // 扫描指定包中的swagger注解
+                //.apis(RequestHandlerSelectors.basePackage("com.gyee.frame.controller"))
+                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                //设置标题
+                .title("后台管理API文档")
+                //描述
+                .description("后台管理项目")
+                //作者信息
+                //.contact(new Contact(v2Config.getName(), null, V2Config.getEmail_account()))
+                //服务条款URL
+                .termsOfServiceUrl("")
+                //版本
+                .version("版本号:1.0")
+                .build();
+    }
+
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+
+        // 解决静态资源无法访问
+
+        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
+
+        // 解决swagger无法访问
+
+        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+
+        // 解决swagger的js文件无法访问
+
+        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+
+    }
+}

+ 50 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/ThreadPoolConfig.java

@@ -0,0 +1,50 @@
+package com.gyee.runeconomy.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+
+@Configuration
+public class ThreadPoolConfig {
+    /**
+     *   默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,
+     *	当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;
+     *  当队列满了,就继续创建线程,当线程数量大于等于maxPoolSize后,开始使用拒绝策略拒绝
+     */
+
+    /** 核心线程数(默认线程数) */
+    private static final int corePoolSize = 10;
+    /** 最大线程数 */
+    private static final int maxPoolSize = 20;
+    /** 允许线程空闲时间(单位:默认为秒) */
+    private static final int keepAliveTime = 60;
+    /** 缓冲队列大小 */
+    private static final int queueCapacity = 100;
+    /** 允许等待最长时间 */
+    private static final int awaitTime = 15;
+    /** 线程池名前缀 */
+    private static final String threadNamePrefix = "GYEE-Thread-";
+
+
+    @Bean
+    public ThreadPoolTaskExecutor taskExecutor(){
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(corePoolSize);
+        executor.setMaxPoolSize(maxPoolSize);
+        executor.setQueueCapacity(queueCapacity);
+        executor.setKeepAliveSeconds(keepAliveTime);
+        executor.setThreadNamePrefix(threadNamePrefix);
+        executor.setAwaitTerminationSeconds(awaitTime);
+
+        // 线程池对拒绝任务的处理策略
+        // CallerRunsPolicy:由调用线程(提交任务的线程)处理该任务
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        // 初始化
+        executor.initialize();
+        return executor;
+    }
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/config/WebSocketConfig.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.config;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+/**
+ * 开启 WebSocket 支持
+ **/
+@Configuration
+public class WebSocketConfig {
+
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        System.out.println("开启websocket支持。。。。。");
+        return new ServerEndpointExporter();
+    }
+
+}

+ 227 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/CommonController.java

@@ -0,0 +1,227 @@
+package com.gyee.runeconomy.controller;/*
+@author   谢生杰
+@date   2023/3/28-15:47
+*/
+
+import com.gyee.common.model.PointData;
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.init.CacheContext;
+import com.gyee.runeconomy.model.auto.ProBasicEquipmentPoint;
+import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
+import com.gyee.runeconomy.model.auto.ProBasicPowerstationPoint;
+import com.gyee.runeconomy.util.DateUtils;
+import com.gyee.runeconomy.util.realtimesource.IEdosUtil;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Controller
+public class CommonController {
+    @Resource
+    private IEdosUtil edosUtil;
+
+
+    /**
+     * 查询公司
+     *
+     * @return
+     */
+    @GetMapping("/findCompanys")
+    @ResponseBody
+    @ApiOperation(value = "查询公司", notes = "查询公司")
+    public R findCompanys(@RequestParam(value = "regionid", required = false) String regionid) throws Exception {
+        List<ProBasicOrganizeTree> cpls = CacheContext.cpls;
+        if (StringUtils.isNotEmpty(regionid)){
+            cpls = cpls.stream().filter(i->i.getId().equals(regionid)).collect(Collectors.toList());
+        }
+
+        if (StringUtils.isNotNull(cpls)) {
+            return R.data(ResultMsg.ok(cpls));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 查询设备测点
+     *
+     * @return
+     */
+    @GetMapping("/findWtPoints")
+    @ResponseBody
+    @ApiOperation(value = "查询设备测点", notes = "查询设备测点")
+    public R findWtPoints(@RequestParam(value = "uniformcodes", required = true) String unifromcodes,
+                          @RequestParam(value = "wtid", required = true) String wtid) {
+
+        Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
+        Map<String, ProBasicEquipmentPoint> equipmentPointMap = wtpAimap.get(wtid);
+
+        List<ProBasicEquipmentPoint> resultList = new ArrayList<>();
+
+        String[] split = unifromcodes.split(",");
+        Arrays.stream(split).forEach(s -> {
+            resultList.add(equipmentPointMap.get(s));
+        });
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询场站测点
+     *
+     * @return
+     */
+    @GetMapping("/findWpPoints")
+    @ResponseBody
+    @ApiOperation(value = "查询场站测点", notes = "查询场站测点")
+    public R findWpPoints(@RequestParam(value = "uniformcodes", required = true) String unifromcodes,
+                          @RequestParam(value = "wpid", required = true) String wpid) {
+
+        Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap = CacheContext.wppointmap;
+        Map<String, ProBasicPowerstationPoint> powerstationPointMap = wppointmap.get(wpid);
+
+        List<ProBasicPowerstationPoint> resultList = new ArrayList<>();
+
+        String[] split = unifromcodes.split(",");
+        Arrays.stream(split).forEach(s -> {
+            resultList.add(powerstationPointMap.get(s));
+        });
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 查询调度场站测点
+     *
+     * @return
+     */
+    @GetMapping("/findSubPoints")
+    @ResponseBody
+    @ApiOperation(value = "查询调度场站测点", notes = "查询调度场站测点")
+    public R findSubPoints(@RequestParam(value = "uniformcodes", required = true) String unifromcodes,
+                          @RequestParam(value = "wpid", required = true) String wpid) {
+
+        Map<String, Map<String, ProBasicPowerstationPoint>> subwppointmap = CacheContext.subwppointmap;
+        Map<String, ProBasicPowerstationPoint> powerstationPointMap = subwppointmap.get(wpid);
+
+        List<ProBasicPowerstationPoint> resultList = new ArrayList<>();
+
+        String[] split = unifromcodes.split(",");
+        Arrays.stream(split).forEach(s -> {
+            resultList.add(powerstationPointMap.get(s));
+        });
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询期次测点
+     *
+     * @return
+     */
+    @GetMapping("/findProPoints")
+    @ResponseBody
+    @ApiOperation(value = "查询期次测点", notes = "查询期次测点")
+    public R findProPoints(@RequestParam(value = "uniformcodes", required = true) String unifromcodes,
+                          @RequestParam(value = "wpid", required = true) String wpid) {
+
+        Map<String, Map<String, ProBasicPowerstationPoint>> propointmap = CacheContext.propointmap;
+        Map<String, ProBasicPowerstationPoint> powerstationPointMap = propointmap.get(wpid);
+
+        List<ProBasicPowerstationPoint> resultList = new ArrayList<>();
+
+        String[] split = unifromcodes.split(",");
+        Arrays.stream(split).forEach(s -> {
+            resultList.add(powerstationPointMap.get(s));
+        });
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询测点曲线
+     *
+     * @return
+     */
+    @GetMapping("/findPointFitting")
+    @ResponseBody
+    @ApiOperation(value = "查询测点曲线", notes = "查询测点曲线")
+    public R findPointFitting(@RequestParam(value = "pointIds", required = true) String pointIds,
+                              @RequestParam(value = "begin", required = true) String begin,
+                              @RequestParam(value = "end", required = true) String end,
+                              @RequestParam(value = "interval", required = true) String interval) {
+        Date beginDate = DateUtils.parseDate1(begin);
+        Date endDate = DateUtils.parseDate1(end);
+        List<List<PointData>> resultList = new ArrayList<>();
+
+        String[] points = pointIds.split(",");
+        Arrays.stream(points).forEach(p -> {
+            List<PointData> datasSnap = null;
+            try {
+                if (!p.equals("INITIAL")){
+                    datasSnap = edosUtil.getHistoryDatasSnap(p, beginDate.getTime() / 1000, endDate.getTime() / 1000, null, Long.parseLong(interval));
+                }
+                resultList.add(datasSnap);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        });
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询测点值
+     *
+     * @return
+     */
+    @GetMapping("/findPointDatas")
+    @ResponseBody
+    @ApiOperation(value = "查询测点值", notes = "查询测点值")
+    public R findPointDatas(@RequestParam(value = "pointIds", required = true) String pointIds) throws Exception {
+
+
+        List<String> pointList = new ArrayList<>();
+
+        String[] points = pointIds.split(",");
+
+        Arrays.stream(points).forEach(p -> {
+            pointList.add(p);
+        });
+        List<PointData> resultList = edosUtil.getRealData(pointList);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+}

+ 103 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/OutputSpeedController.java

@@ -0,0 +1,103 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.init.CacheContext;
+import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
+import com.gyee.runeconomy.model.auto.ProEconInOrOutSpeedTotal;
+import com.gyee.runeconomy.service.outputspeed.OutputSpeedService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+
+
+@Controller
+@RequestMapping("/outputspeed")
+@Api(value = "切入切出管理",tags =  "切入切出管理")
+public class OutputSpeedController {
+
+    @Resource
+    private OutputSpeedService outputSpeedService;
+
+    /**切入切出列表**/
+    @PostMapping("/outputSpeedlist")
+    @ResponseBody
+    @ApiOperation(value = "切入切出列表", notes = "切入切出列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "cmId", value = "公司编号或者区域编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "0全部、光伏(-2)、风场(-1)", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = false, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R outputSpeedlist( Integer pageNum, Integer pageSize,String cmId,String type, String wpId, String recorddate) {
+
+        Page<ProEconInOrOutSpeedTotal> pageInfo=outputSpeedService.outputSpeedlist(pageNum,pageSize,cmId,type,wpId,recorddate);
+        if(pageInfo!=null && !pageInfo.getRecords().isEmpty())
+        {
+
+            for(ProEconInOrOutSpeedTotal pwg:pageInfo.getRecords())
+            {
+                if(CacheContext.wtmap.containsKey(pwg.getWindturbineId()))
+                {
+                    ProBasicOrganizeTree wt= CacheContext.wtmap.get(pwg.getWindturbineId());
+                    pwg.setWtcode(wt.getAname());
+                    pwg.setModelId(wt.getModelId());
+                }
+
+            }
+        }
+        return R.data(ResultMsg.ok(pageInfo));
+
+    }
+
+    /**切入切出历史列表**/
+    @PostMapping("/outputspeedhistorylist")
+    @ResponseBody
+    @ApiOperation(value = "切入切出历史列表", notes = "切入切出历史列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "cmId", value = "公司编号或者区域编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "0全部、光伏(-2)、风场(-1)", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = false, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = false, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "beginDate", value = "开始日期", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "endDate", value = "结束日期", required = true, dataType = "string", paramType = "query")})
+
+    public R outputspeedhistorylist(Integer pageNum, Integer pageSize,String  cmId,String type, String wpId,String wtId, String beginDate,String endDate) {
+
+
+        Page<ProEconInOrOutSpeedTotal> pageInfo=outputSpeedService.outputspeedhistorylist(pageNum,pageSize,cmId,type,wpId,wtId,beginDate,endDate);
+
+        if(pageInfo!=null && !pageInfo.getRecords().isEmpty())
+        {
+
+            for(ProEconInOrOutSpeedTotal pwg:pageInfo.getRecords())
+            {
+                if(CacheContext.wtmap.containsKey(pwg.getWindturbineId()))
+                {
+                    ProBasicOrganizeTree wt= CacheContext.wtmap.get(pwg.getWindturbineId());
+                    pwg.setWtcode(wt.getAname());
+                    pwg.setModelId(wt.getModelId());
+                }
+
+            }
+        }
+        return R.data(ResultMsg.ok(pageInfo));
+//        return AjaxResult.successData(ResultCode.SUCCESS, pageInfo);
+
+    }
+
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicBranchController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-05-13
+ */
+@RestController
+@RequestMapping("//pro-basic-branch")
+public class ProBasicBranchController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicCompanyController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 省公司表 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-company")
+public class ProBasicCompanyController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicEnergyGroupController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 集团 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-energy-group")
+public class ProBasicEnergyGroupController {
+
+}

+ 81 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicEquipmentController.java

@@ -0,0 +1,81 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProBasicEquipment;
+import com.gyee.runeconomy.service.auto.IProBasicEquipmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 风机&光伏 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-equipment")
+public class ProBasicEquipmentController {
+
+
+    @Autowired
+    private IProBasicEquipmentService proBasicEquipmentService;
+
+
+    /**
+     * 多条件获取设备列表
+     *
+     * @param companyId
+     * @param windpowerstationIds
+     * @param projectIds
+     * @param lineIds
+     * @param type
+     * @return
+     */
+    @GetMapping("equipment-list")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R getWtPowerCurveFittingList(
+            @RequestParam(value = "companyId", required = true) String companyId,
+            @RequestParam(value = "windpowerstationIds", required = false) String windpowerstationIds,
+            @RequestParam(value = "projectIds", required = false) String projectIds,
+            @RequestParam(value = "lineIds", required = false) String lineIds,
+            @RequestParam(value = "type", required = false) String type) {
+
+        List<ProBasicEquipment> list = proBasicEquipmentService.getProBasicEquipmentList(companyId, windpowerstationIds, projectIds, lineIds, type);
+
+        if (null != list) {
+            return R.data(ResultMsg.ok(list));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 多条件获取设备列表
+     *
+     * @param wpid
+     * @return
+     */
+    @GetMapping("equipmentsByWpid")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R getWtPowerCurveFittingList(
+            @RequestParam(value = "wpid", required = false) String wpid) {
+
+        List<ProBasicEquipment> list = proBasicEquipmentService.getProBasicEquipmentList(wpid);
+
+        if (null != list) {
+            return R.data(ResultMsg.ok(list));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicLineController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 集电线路 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-line")
+public class ProBasicLineController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicOrganizeTreeController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-06-08
+ */
+@RestController
+@RequestMapping("//pro-basic-organize-tree")
+public class ProBasicOrganizeTreeController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicPowerstationController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场站表 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-powerstation")
+public class ProBasicPowerstationController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicProjectController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 工程表 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-project")
+public class ProBasicProjectController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicRegionController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 区域 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-region")
+public class ProBasicRegionController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicSquareController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 方阵 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-square")
+public class ProBasicSquareController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicSubStationController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 调度场站名称 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-basic-sub-station")
+public class ProBasicSubStationController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicUserController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-05-16
+ */
+@RestController
+@RequestMapping("//pro-basic-user")
+public class ProBasicUserController {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProBasicWeatherStationController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 气象站名称 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-04-04
+ */
+@RestController
+@RequestMapping("//pro-basic-weather-station")
+public class ProBasicWeatherStationController {
+
+}

+ 67 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconBenchmarkingBetweenController.java

@@ -0,0 +1,67 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.gyee.common.util.DateUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconBenchmarkingBetween;
+import com.gyee.runeconomy.service.auto.IProEconBenchmarkingBetweenService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-02-03
+ */
+@RestController
+@RequestMapping("//pro-econ-benchmarking-between")
+public class ProEconBenchmarkingBetweenController {
+
+    @Autowired
+    private IProEconBenchmarkingBetweenService proEconBenchmarkingBetweenService;
+
+    /**
+     * 值际损失电量
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/zjwxssl")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R zjwxssl(@RequestParam(value = "beginDate",required = true)String beginDate,
+                     @RequestParam(value = "endDate",required = true)String endDate){
+        Date begin = DateUtils.parseDate(beginDate);
+        Date end = DateUtils.parseDate(endDate);
+        List<ProEconBenchmarkingBetween> resultList = proEconBenchmarkingBetweenService.findByBeginAndEnd(begin,end);
+        if (null != resultList) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 保存值际对标
+     * @param beginDate
+     * @return
+     */
+    @GetMapping("/savezjdb")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R savezjdb(@RequestParam(value = "beginDate",required = true)String beginDate) throws Exception {
+        Date begin = DateUtils.parseDate(beginDate);
+        String date = DateUtils.toDate1(begin);
+        proEconBenchmarkingBetweenService.saveBeanchmarkList(date,date);
+        return R.data(ResultMsg.ok());
+    }
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconDutyScheduleController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-02-03
+ */
+@RestController
+@RequestMapping("//pro-econ-duty-schedule")
+public class ProEconDutyScheduleController {
+
+}

+ 110 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconEquipmentInfoDayTopController.java

@@ -0,0 +1,110 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconEquipmentInfoDayTop;
+import com.gyee.runeconomy.service.auto.IProEconEquipmentInfoDayTopService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 风机日信息表排行 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-25
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info-day-top")
+@Api(value = "风机信息表排行", tags = "风机信息表排行")
+public class ProEconEquipmentInfoDayTopController {
+
+
+    @Autowired
+    private IProEconEquipmentInfoDayTopService proEconEquipmentInfoDayTopService;
+
+
+    /**
+     * 风机信息量化评级管理
+     *
+     * @param companyId
+     * @param types
+     * @param staType
+     * @return
+     */
+    @GetMapping(value = "/equipmentinfo-day-list")
+    @ApiOperation(value = "风机信息量化评级管理列表", notes = "风机信息量化评级管理列表")
+    public R getEquipmentInfoDayTopList(
+            @RequestParam(value = "companyId", required = false) String companyId,
+            @RequestParam(value = "windpowerstationId", required = false) String windpowerstationId,
+            @RequestParam(value = "types", required = true) Integer types,
+            @RequestParam(value = "staType", required = true) String staType,
+            @RequestParam(value = "date", required = true) String date) {
+
+        List<ProEconEquipmentInfoDayTop> list = proEconEquipmentInfoDayTopService.getEquipmentInfoDayTopList(companyId, windpowerstationId, types, staType, date);
+        if (null != list) {
+            return R.data(ResultMsg.ok(list));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 风机信息量化评级管理单机历史记录
+     *
+     * @param windturbineId
+     * @param types
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping(value = "/equipmentinfo-day-history-list")
+    @ApiOperation(value = "风机信息量化评级管理历史记录", notes = "风机信息量化评级管理历史记录")
+    public R getEquipmentInfoDayTopHistoryList(
+            @RequestParam(value = "windturbineId", required = false) String windturbineId,
+            @RequestParam(value = "types", required = true) Integer types,
+            @RequestParam(value = "beginDate", required = true) String beginDate,
+            @RequestParam(value = "endDate", required = true) String endDate) {
+
+        List<ProEconEquipmentInfoDayTop> list = proEconEquipmentInfoDayTopService.getEquipmentInfoDayTopHistoryList(windturbineId, types, beginDate, endDate);
+        if (null != list) {
+            return R.data(ResultMsg.ok(list));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 风机信息量化评级比较
+     *
+     * @param ids
+     * @return
+     */
+    @GetMapping(value = "/equipmentinfo-day-compare-list")
+    @ApiOperation(value = "风机信息量化评级比较", notes = "风机信息量化评级比较")
+    public R getEquipmentInfoDayTopCompareList(
+            @RequestParam(value = "ids", required = true) List<Long> ids,
+            @RequestParam(value = "types", required = true) Integer types) {
+
+        Map<String, Object> map = proEconEquipmentInfoDayTopService.getEquipmentInfoDayTopCompareList(ids,types);
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+}

+ 46 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPointCodeController.java

@@ -0,0 +1,46 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconPointCode;
+import com.gyee.runeconomy.service.auto.IProEconPointCodeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 指标查询表 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-23
+ */
+@RestController
+@RequestMapping("//pro-econ-point-code")
+public class ProEconPointCodeController {
+
+
+    @Autowired
+    private IProEconPointCodeService proEconPointCodeService;
+
+
+    @GetMapping(value = "/point_code_list")
+    @ApiOperation(value = "指标点", notes = "指标点")
+    public R getEconPointCodeList(){
+
+        List<ProEconPointCode> list = proEconPointCodeService.getEconPointCodeList();
+        if (null != list) {
+            return R.data(ResultMsg.ok(list));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+}

+ 53 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay1Controller.java

@@ -0,0 +1,53 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconPowerstationInfoDay1;
+import com.gyee.runeconomy.service.auto.IProEconPowerstationInfoDay1Service;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 场站五损电量 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-21
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day1")
+public class ProEconPowerstationInfoDay1Controller {
+
+
+    @Resource
+    private IProEconPowerstationInfoDay1Service proEconPowerstationInfoDay1Service;
+
+    /**
+     * 查询
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping(value = "/listByPage")
+    @ApiOperation(value = "省公司-列表", notes = "省公司-列表")
+    public R findList(@RequestParam(value = "pageNum", required = true) String pageNum,
+                      @RequestParam(value = "pageSize", required = true) String pageSize) {
+        IPage<ProEconPowerstationInfoDay1> list = proEconPowerstationInfoDay1Service.list(pageNum,pageSize);
+        if (null != list) {
+            return R.data(ResultMsg.ok(list));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay2Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场站五损时间 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day2")
+public class ProEconPowerstationInfoDay2Controller {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay3Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场站五损次数 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day3")
+public class ProEconPowerstationInfoDay3Controller {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay4Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场站三率mtbf 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day4")
+public class ProEconPowerstationInfoDay4Controller {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay5Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 电表发电量 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day5")
+public class ProEconPowerstationInfoDay5Controller {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay6Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 测风塔出线功率 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day6")
+public class ProEconPowerstationInfoDay6Controller {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconPowerstationInfoDay7Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 离散率系统效率 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//pro-econ-powerstation-info-day7")
+public class ProEconPowerstationInfoDay7Controller {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/ProEconTargetdataController.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2023-05-16
+ */
+@RestController
+@RequestMapping("//pro-econ-targetdata")
+public class ProEconTargetdataController {
+
+}

+ 216 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/SingleAnalysisController.java

@@ -0,0 +1,216 @@
+package com.gyee.runeconomy.controller;
+
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.init.CacheContext;
+import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
+import com.gyee.runeconomy.model.vo.SingleAnalysisVo;
+import com.gyee.runeconomy.service.singleanalysis.SingleAnalysisService;
+import com.gyee.runeconomy.util.DateUtils;
+import com.gyee.runeconomy.util.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+@Controller
+@RequestMapping("/singleanalysis")
+@Api(value = "单机性能分析" ,tags="单机性能分析")
+public class SingleAnalysisController {
+
+    @Resource
+    private SingleAnalysisService singleAnalysisService;
+
+    @PostMapping("/singleanalysisMain")
+    @ResponseBody
+    @ApiOperation(value = "查询单机性能分析首页", notes = "查询单机性能分析首页")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+             @ApiImplicitParam(name = "cmId", value = "公司编号或者区域编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "0全部、光伏(-2)、风场(-1)", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = false, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "year", value = "年份", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "month", value = "月份", required = true, dataType = "string", paramType = "query")})
+
+    public R singleanalysisMain(Integer pageNum, Integer pageSize,String cmId,String type, String wpId, String year, String month) throws Exception {
+
+        Map<String,Object> map=new HashMap<>();
+        List<SingleAnalysisVo> vos =new ArrayList<>();
+
+        if ( StringUtils.notEmp(year) && StringUtils.notEmp(month)) {
+
+            Calendar cal = Calendar.getInstance();
+            int newyear=cal.get(Calendar.YEAR);
+            int newmonth=cal.get(Calendar.MONTH)+1;
+            Date recordDate=null;
+            if(Integer.valueOf(year)==newyear && Integer.valueOf(month) == newmonth)
+            {
+                cal.add(Calendar.DAY_OF_MONTH,-1);
+                recordDate= DateUtils.truncate(cal.getTime());
+            }else
+            {
+                cal.set(Calendar.YEAR,Integer.valueOf(year));
+                cal.set(Calendar.MONTH,Integer.valueOf(month)-1);
+                cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+                recordDate= DateUtils.truncate(cal.getTime());
+            }
+
+
+            map =singleAnalysisService.SingleAnalysisList(pageNum, pageSize,cmId,type, wpId,recordDate);
+
+
+        }
+
+        return R.data(ResultMsg.ok(map));
+
+    }
+
+    /**
+     * 单机信息总览子页面
+     * @param wtId
+     * @param year
+     * @param month
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/singleanalysisSub")
+    @ResponseBody
+    @ApiOperation(value = "查询单机性能分析子页面", notes = "查询单机性能分析子页面")
+    @ApiImplicitParams({
+
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "year", value = "年份", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "month", value = "月份", required = true, dataType = "string", paramType = "query")})
+
+    public R singleanalysisSub(String wtId, String year, String month) throws Exception {
+
+        Map<String,Object> map=new HashMap<>();
+
+        if (StringUtils.notEmp(wtId) && StringUtils.notEmp(year) && StringUtils.notEmp(month)) {
+            Calendar cal = Calendar.getInstance();
+            int newyear=cal.get(Calendar.YEAR);
+            int newmonth=cal.get(Calendar.MONTH)+1;
+            Date recordDate=null;
+            if(Integer.valueOf(year)==newyear && Integer.valueOf(month) == newmonth)
+            {
+                cal.add(Calendar.DAY_OF_MONTH,-1);
+                recordDate= DateUtils.truncate(cal.getTime());
+            }else
+            {
+                cal.set(Calendar.YEAR,Integer.valueOf(year));
+                cal.set(Calendar.MONTH,Integer.valueOf(month)-1);
+                cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+                recordDate= DateUtils.truncate(cal.getTime());
+            }
+
+            String wtcode=null;
+            if(CacheContext.wtmap.containsKey(wtId))
+            {
+                ProBasicOrganizeTree wt= CacheContext.wtmap.get(wtId);
+                wtcode=wt.getAname();
+
+            }
+
+            SingleAnalysisVo  byzb =singleAnalysisService.SingleAnalysisListByWtId(wtId,recordDate);
+
+            byzb.setWtcode(wtcode);
+            cal.add(Calendar.YEAR,-1);
+            Date lastYear=DateUtils.truncate(cal.getTime());
+
+            SingleAnalysisVo  tqzb =singleAnalysisService.SingleAnalysisListByWtId(wtId,lastYear);
+            SingleAnalysisVo  tbzb =singleAnalysisService.SingleAnalysisListByWtId(byzb,tqzb);
+
+            tqzb.setWtcode(wtcode);
+            tbzb.setWtcode(wtcode);
+
+            cal.setTime(recordDate);
+            cal.add(Calendar.MONTH,-1);
+
+            Date lastMonth=DateUtils.truncate(cal.getTime());
+            SingleAnalysisVo  hqzb =singleAnalysisService.SingleAnalysisListByWtId(wtId,lastMonth);
+            SingleAnalysisVo  hbzb =singleAnalysisService.SingleAnalysisListByWtId(byzb,hqzb);
+
+            hqzb.setWtcode(wtcode);
+            hbzb.setWtcode(wtcode);
+
+            map.put("byzb",byzb);//本月指标
+            map.put("tqzb",tqzb);//全年同期
+            map.put("tbzb",tbzb);//同比指标
+            map.put("hqzb",hqzb);//上月同期
+            map.put("hbzb",hbzb);//环比指标
+        }
+
+//        if (null!=map) {
+//            return AjaxResult.successData(ResultCode.SUCCESS, map);
+//        } else {
+//            return AjaxResult.successData(ResultCode.SUCCESS, map);
+//        }
+
+        return R.data(ResultMsg.ok(map));
+    }
+
+
+    /**
+     * 单机信息总览图表接口(3个)
+     * @param wtId
+     * @param year
+     * @param month
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/singleanalysisChart")
+    @ResponseBody
+    @ApiOperation(value = "单机信息总览图表接口(3个) 发电量和风速、五项损失、静风频率和待机时间", notes = "单机信息总览图表接口(3个) 发电量和风速、五项损失、静风频率和待机时间")
+    @ApiImplicitParams({
+
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "year", value = "年份", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "month", value = "月份", required = true, dataType = "string", paramType = "query")})
+
+    public R singleanalysisChart(String wtId, String year, String month) throws Exception {
+
+        Map<String,List<SingleAnalysisVo>> map =new HashMap<>();
+
+        if (StringUtils.notEmp(wtId) && StringUtils.notEmp(year) && StringUtils.notEmp(month)) {
+
+            Calendar cal = Calendar.getInstance();
+            cal.set(Calendar.HOUR_OF_DAY, 0);
+            cal.set(Calendar.MINUTE, 0);
+            cal.set(Calendar.SECOND, 0);
+            cal.set(Calendar.MILLISECOND,0);
+
+            cal.set(Calendar.YEAR, Integer.valueOf(year));
+            cal.set(Calendar.MONTH, Integer.valueOf(month) - 1);
+            cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
+            Date beginDate = cal.getTime();
+            cal.add(Calendar.MONTH, 1);
+            Date endDate = cal.getTime();
+
+            map =singleAnalysisService.SingleAnalysisListByWtIdDetiml(wtId,beginDate,endDate);
+
+        }
+
+//        map.put("ff",fdlfsls);//发电量和风速
+//        map.put("ws",wsls);//五项损失,绑定五个
+//        map.put("jd",jfpldjsjls);//静风频率和待机时间
+
+//        if (null!=map) {
+//            return AjaxResult.successData(ResultCode.SUCCESS, map);
+//        } else {
+//            return AjaxResult.successData(ResultCode.SUCCESS, map);
+//        }
+        return R.data(ResultMsg.ok(map));
+    }
+
+
+}

+ 368 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/bmk/BenchmarkingController.java

@@ -0,0 +1,368 @@
+package com.gyee.runeconomy.controller.bmk;/*
+@author   谢生杰
+@date   2022/11/23-13:16
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.util.DateUtils;
+import com.gyee.common.util.SortUtils;
+import com.gyee.common.vo.benchmark.FjjxbVo;
+import com.gyee.common.vo.benchmark.FjjxbmxVo;
+import com.gyee.common.vo.benchmark.WxsslVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProBasicCompany;
+import com.gyee.runeconomy.model.auto.ProBasicLine;
+import com.gyee.runeconomy.model.auto.ProBasicPowerstation;
+import com.gyee.runeconomy.model.auto.ProBasicProject;
+import com.gyee.runeconomy.service.bmk.BenchmarkingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("//benchmarking")
+@Api(value = "对标管理",tags =  "对标管理")
+public class BenchmarkingController {
+
+    @Resource
+    private BenchmarkingService benchmarkingService;
+
+
+    @GetMapping(value = "/companys")
+    @ApiOperation(value = "公司列表", notes = "公司列表")
+    public R companys()  {
+        List<ProBasicCompany> resultList = benchmarkingService.companys();
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+    @GetMapping(value = "/companysByRg")
+    @ApiOperation(value = "根据区域查询公司列表", notes = "根据区域查询公司列表")
+    public R companysByRg(@RequestParam(value = "regionid", required = true) String regionid)  {
+        List<ProBasicCompany> resultList = benchmarkingService.companys().stream().filter(i->i.getRegionId().equals(regionid)).collect(Collectors.toList());
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+    @GetMapping(value = "/wpByCplist")
+    @ApiOperation(value = "场站列表", notes = "场站列表")
+    public R wpByCplist(@RequestParam(value = "companyids", required = true) String companyids,
+                        @RequestParam(value = "type", required = false) String type) {
+
+        List<ProBasicPowerstation> resultList = benchmarkingService.wpByCplist(companyids,type);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+    @GetMapping(value = "/pjByWplist")
+    @ApiOperation(value = "项目列表", notes = "项目列表")
+    public R pjByWplist(@RequestParam(value = "wpids", required = true) String wpids)  {
+
+        List<ProBasicProject> resultList = benchmarkingService.pjByWplist(wpids);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @GetMapping(value = "/lnByPjlist")
+    @ApiOperation(value = "线路列表", notes = "线路列表")
+    public R lnByPjlist(@RequestParam(value = "pjids", required = true) String pjids)  {
+
+        List<ProBasicLine> resultList = benchmarkingService.lnByPjlist(pjids);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @GetMapping(value = "/performance")
+    @ApiOperation(value = "风机绩效榜", notes = "风机绩效榜")
+    public R performance(@RequestParam(value = "companyid", required = true) String companyid,
+                         @RequestParam(value = "getype", required = true) String getype,
+                         @RequestParam(value = "sttype", required = true) String sttype,
+                         @RequestParam(value = "beginDate", required = true) String beginDate,
+                         @RequestParam(value = "endDate", required = true) String endDate,
+                         @RequestParam(value = "wpids", required = true) String wpids,
+                         @RequestParam(value = "projectids", required = true) String projectids,
+                         @RequestParam(value = "lineids", required = true) String lineids,
+                         @RequestParam(value = "target",required = false) String target,
+                         @RequestParam(value = "sort",required = false) String sort){
+        List<FjjxbVo> resultList = benchmarkingService.performance(companyid,getype,sttype,beginDate,endDate,wpids,projectids,lineids,target,sort);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @GetMapping(value = "/performanceMX")
+    @ApiOperation(value = "风机绩效榜明细", notes = "风机绩效榜明细")
+    public R performanceMX(@RequestParam(value = "companyid", required = true) String companyid,
+                           @RequestParam(value = "getype", required = true) String getype,
+                           @RequestParam(value = "sttype", required = true) String sttype,
+                           @RequestParam(value = "beginDate", required = true) String beginDate,
+                           @RequestParam(value = "endDate", required = true) String endDate,
+                           @RequestParam(value = "wpids", required = true) String wpids,
+                           @RequestParam(value = "projectids", required = true) String projectids,
+                           @RequestParam(value = "lineids", required = true) String lineids,
+                           @RequestParam(value = "target",required = true) String target,
+                           @RequestParam(value = "sort",required = true) String sort){
+        List<FjjxbmxVo> resultList = benchmarkingService.performanceMX(companyid,getype,sttype,beginDate,endDate,wpids,projectids,lineids,target,sort);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @GetMapping("/wxssl")
+    @ResponseBody
+    @ApiOperation(value = "五项损失率", notes = "五项损失率")
+    public R wxssl(@RequestParam(value = "companys",required = true) String companys,
+                   @RequestParam(value = "type",required = true) String type,
+                    @RequestParam(value = "wpids",required = true) String wpids,
+                   @RequestParam(value = "projectids",required = true) String projectids,
+                   @RequestParam(value = "lineids",required = true) String lineids,
+                   @RequestParam(value = "beginDate",required = true) String beginDate,
+                   @RequestParam(value = "endDate",required = true) String endDate,
+                   @RequestParam(value = "target",required = true) String target,
+                   @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<WxsslVo> resultList = benchmarkingService.wxssl(companys,type,wpids,projectids,lineids,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @GetMapping("/cndb")
+    @ResponseBody
+    @ApiOperation(value = "场内对标", notes = "场内对标")
+    public R cndb(@RequestParam(value = "companys",required = true) String companys,
+                  @RequestParam(value = "type",required = true) String type,
+                  @RequestParam(value = "wpid",required = true) String wpid,
+                  @RequestParam(value = "beginDate",required = true) String beginDate,
+                  @RequestParam(value = "endDate",required = true) String endDate,
+                  @RequestParam(value = "target",required = true) String target,
+                  @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<WxsslVo> resultList = benchmarkingService.cndb(companys,type,wpid,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @GetMapping("/cndbthb")
+    @ResponseBody
+    @ApiOperation(value = "场内对标同环比", notes = "场内对标同环比")
+    public R cndbthb(@RequestParam(value = "companys",required = true) String companys,
+                  @RequestParam(value = "type",required = true) String type,
+                  @RequestParam(value = "wpid",required = true) String wpid
+    ) throws Exception {
+        List<WxsslVo> resultList = new ArrayList<>();
+        //获取当前时间
+        String endDate = DateUtils.toDate1(new Date());
+        Date date = DateUtils.parseDate(endDate);
+        String  beginDate = DateUtils.toDate1(DateUtils.getFirstAndLastDayOfMonth(date));
+        List<WxsslVo> dateList = benchmarkingService.cndbthb(companys,type,wpid,beginDate,endDate);
+        if(dateList != null && dateList.size()>0){
+            dateList.get(0).setName("当月");
+            resultList.add((dateList != null && dateList.size()>0)?dateList.get(0): null);
+        }
+
+
+        String yestmonthLastday =  DateUtils.toDate1(DateUtils.getYestmonthLastday(date));
+        String  yestmonthbeginday = DateUtils.toDate1(DateUtils.getFirstAndLastDayOfMonth(DateUtils.parseDate(yestmonthLastday)));
+        List<WxsslVo> hbList = benchmarkingService.cndbthb(companys,type,wpid,yestmonthbeginday,yestmonthLastday);
+        if(hbList != null && hbList.size()>0){
+            hbList.get(0).setName("环比");
+            resultList.add((hbList != null && hbList.size()>0)?hbList.get(0): null);
+        }
+
+
+        Date  subOneYear = DateUtils.subOneYear(date);
+        String tbbeginDate = DateUtils.toDate1(DateUtils.getMonthFirstZero(DateUtils.toDate1(subOneYear)));
+        String tbendDate = DateUtils.toDate1(DateUtils.getMonthLast(subOneYear));
+        List<WxsslVo> tbList = benchmarkingService.cndbthb(companys,type,wpid,tbbeginDate,tbendDate);
+        if(tbList != null && tbList.size()>0){
+            tbList.get(0).setName("同比");
+            resultList.add((tbList != null && tbList.size()>0)?tbList.get(0):  null);
+        }
+
+
+        SortUtils.sort(resultList,"llfdl",SortUtils.DESC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setZhpm(i+1);
+        }
+        SortUtils.sort(resultList,"fdl",SortUtils.DESC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setFdlpm(i+1);
+        }
+        SortUtils.sort(resultList,"fnlyl",SortUtils.DESC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setFnlylpm(i+1);
+        }
+        SortUtils.sort(resultList,"gzssdl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setGzssdlpm(i+1);
+        }
+        SortUtils.sort(resultList,"gzssl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setGzsslpm(i+1);
+        }
+        SortUtils.sort(resultList,"jxssdl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setJxssdlpm(i+1);
+        }
+        SortUtils.sort(resultList,"jxssl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setJxsslpm(i+1);
+        }
+        SortUtils.sort(resultList,"xdssdl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setXdssdlpm(i+1);
+        }
+        SortUtils.sort(resultList,"qfl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setQflpm(i+1);
+        }
+        SortUtils.sort(resultList,"xnssdl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setXnssdlpm(i+1);
+        }
+        SortUtils.sort(resultList,"xnssl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setXnsslpm(i+1);
+        }
+        SortUtils.sort(resultList,"slssdl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setSlssdlpm(i+1);
+        }
+        SortUtils.sort(resultList,"slssl",SortUtils.ASC);
+        for (int i=0;i<resultList.size();i++){
+            resultList.get(i).setSlsslpm(i+1);
+        }
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @GetMapping("/cjdb")
+    @ResponseBody
+    @ApiOperation(value = "场际对标", notes = "场际对标")
+    public R cjdb(@RequestParam(value = "companys",required = true) String companys,
+                  @RequestParam(value = "type",required = true) String type,
+                  @RequestParam(value = "wpids",required = true) String wpids,
+                  @RequestParam(value = "beginDate",required = true) String beginDate,
+                  @RequestParam(value = "endDate",required = true) String endDate,
+                  @RequestParam(value = "target",required = true) String target,
+                  @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<WxsslVo> resultList = benchmarkingService.cjdb(companys,type,wpids,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @GetMapping("/xmdb")
+    @ResponseBody
+    @ApiOperation(value = "项目对标", notes = "项目对标")
+    public R xmdb(@RequestParam(value = "companys",required = true) String companys,
+                  @RequestParam(value = "type",required = true) String type,
+                  @RequestParam(value = "wpids",required = true) String wpids,
+                  @RequestParam(value = "projectids",required = true) String projectids,
+                  @RequestParam(value = "beginDate",required = true) String beginDate,
+                  @RequestParam(value = "endDate",required = true) String endDate,
+                  @RequestParam(value = "target",required = true) String target,
+                  @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<WxsslVo> resultList = benchmarkingService.xmdb(companys,type,wpids,projectids,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @GetMapping("/xldb")
+    @ResponseBody
+    @ApiOperation(value = "线路对标", notes = "线路对标")
+    public R xldb(@RequestParam(value = "companys",required = true) String companys,
+                  @RequestParam(value = "type",required = true) String type,
+                  @RequestParam(value = "wpids",required = true) String wpids,
+                  @RequestParam(value = "projectids",required = true) String projectids,
+                  @RequestParam(value = "lineids",required = true) String lineids,
+                  @RequestParam(value = "beginDate",required = true) String beginDate,
+                  @RequestParam(value = "endDate",required = true) String endDate,
+                  @RequestParam(value = "target",required = true) String target,
+                  @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<WxsslVo> resultList = benchmarkingService.xldb(companys,type,wpids,projectids,lineids,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 对标页面详情
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/details")
+    @ResponseBody
+    @ApiOperation(value = "对标详情", notes = "对标详情")
+    public R details(@RequestParam(value = "id",required = true)String id,
+                     @RequestParam(value = "beginDate",required = true)String beginDate,
+                     @RequestParam(value = "endDate",required = true)String endDate,
+                     @RequestParam(value = "target",required = true) String target,
+                     @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<WxsslVo> resultList =  benchmarkingService.details(id,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+}

+ 180 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindpowerDetailChartController.java

@@ -0,0 +1,180 @@
+package com.gyee.runeconomy.controller.goodness;
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.WpwindDayInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 风场风资源图表
+ */
+@Controller
+@RequestMapping("/goodness")
+@Api(value = "风场风资源图表", tags = "风场风资源图表")
+public class WindpowerDetailChartController {
+
+    @Resource
+    private WpwindDayInfoService wpwindDayInfoService;
+
+
+    /*
+     * 风场日最大风速
+     */
+    @GetMapping("/wprzdfs")
+    @ResponseBody
+    @ApiOperation(value = "风场日最大风速", notes = "风场日最大风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wprzdfs(String wpId, String recorddate) {
+
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        map = wpwindDayInfoService.wprzdfs(wpId, recorddate);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 风场月最大风速
+     */
+    @GetMapping("/wpyzdfs")
+    @ResponseBody
+    @ApiOperation(value = "风场月最大风速", notes = "风场月最大风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wpyzdfs(String wpId, String recorddate) {
+
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        map = wpwindDayInfoService.wpyzdfs(wpId, recorddate);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+    /*
+     * 风场年最大风速
+     */
+    @GetMapping("/wpnzdfs")
+    @ResponseBody
+    @ApiOperation(value = "风场年最大风速", notes = "风场年最大风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wpnzdfs(String wpId, String recorddate) {
+
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        map = wpwindDayInfoService.wpnzdfs(wpId, recorddate);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+    /*
+     * 风场日风向频率
+     */
+    @GetMapping("/wprfxpl")
+    @ResponseBody
+    @ApiOperation(value = "风场日风向频率", notes = "风场日风向频率")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wprfxpl(String wpId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        map = wpwindDayInfoService.wprfxpl(wpId, recorddate);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+    /*
+     * 风场月风向频率
+     */
+    @GetMapping("/wpyfxpl")
+    @ResponseBody
+    @ApiOperation(value = "风场月风向频率", notes = "风场月风向频率")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wpyfxpl(String wpId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+
+
+        map = wpwindDayInfoService.wpyfxpl(wpId, recorddate);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 风场年风向频率
+     */
+    @GetMapping("/wpnfxpl")
+    @ResponseBody
+    @ApiOperation(value = "风场年风向频率", notes = "风场年风向频率")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wpnfxpl(String wpId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+
+
+        map = wpwindDayInfoService.wpnfxpl(wpId, recorddate);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+}
+
+
+
+
+}

+ 176 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineDetailChartController.java

@@ -0,0 +1,176 @@
+package com.gyee.runeconomy.controller.goodness;
+
+import com.gyee.common.vo.benchmark.ValueVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.WtwindDayInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 风机风资源图表
+ */
+@Controller
+@RequestMapping("/goodness")
+@Api(value = "风机风资源图表",tags =  "风机风资源图表")
+public class WindturbineDetailChartController {
+
+    @Resource
+    private WtwindDayInfoService wtwindDayInfoService;
+
+
+
+    /*
+     * 风机日最大风速
+     */
+    @GetMapping("/wtrzdfs")
+    @ResponseBody
+    @ApiOperation(value = "风机日最大风速", notes = "风机日最大风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wtrzdfs(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+
+        wtwindDayInfoService.rzdfs(wtId, recorddate, map, vos);
+
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 风机月最大风速
+     */
+    @GetMapping("/wtyzdfs")
+    @ResponseBody
+    @ApiOperation(value = "风机月最大风速", notes = "风机月最大风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wtyzdfs(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+        wtwindDayInfoService.yzdfs(wtId, recorddate, map, vos);
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 风机年最大风速
+     */
+    @GetMapping("/wtnzdfs")
+    @ResponseBody
+    @ApiOperation(value = "风机年最大风速", notes = "风机年最大风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wtnzdfs(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+        wtwindDayInfoService.nzdfs(wtId, recorddate, map, vos);
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+    /*
+     * 风机日风向频率
+     */
+    @GetMapping("/wtrfxpl")
+    @ResponseBody
+    @ApiOperation(value = "风机日风向频率", notes = "风机日风向频率")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wtrfxpl(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+        wtwindDayInfoService.rfxpl(wtId, recorddate, map, vos);
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+
+    /*
+     * 风机月风向频率
+     */
+    @GetMapping("/wtyfxpl")
+    @ResponseBody
+    @ApiOperation(value = "风机月风向频率", notes = "风机月风向频率")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wtyfxpl(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+        wtwindDayInfoService.yfxpl(wtId, recorddate, map, vos);
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+
+
+    /*
+     * 风机年风向频率
+     */
+    @GetMapping("/wtnfxpl")
+    @ResponseBody
+    @ApiOperation(value = "风机年风向频率", notes = "风机年风向频率")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wtnfxpl(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+        wtwindDayInfoService.nfxpl(wtId, recorddate, map, vos);
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+}

+ 316 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineDetailLineChartController.java

@@ -0,0 +1,316 @@
+package com.gyee.runeconomy.controller.goodness;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.common.util.DateUtils;
+import com.gyee.common.vo.benchmark.DataVo;
+import com.gyee.runeconomy.dto.EchartDataVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconBrownoutsEvent2;
+import com.gyee.runeconomy.model.auto.ProEconInOrOutSpeedTotal;
+import com.gyee.runeconomy.model.auto.ProEconShutdownEvent2;
+import com.gyee.runeconomy.service.BrownoutsEvent2Service;
+import com.gyee.runeconomy.service.ShutdownEvent2Service;
+import com.gyee.runeconomy.service.auto.IProEconInOrOutSpeedTotalService;
+import com.gyee.runeconomy.service.goodness.WindturbinegoodnessService;
+import com.gyee.runeconomy.util.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * 风机区间图表功能展示
+ */
+@Controller
+@RequestMapping("/goodness")
+@Api(value = "单机信息总览风机区间图表",tags =  "单机信息总览风机区间图表")
+public class WindturbineDetailLineChartController {
+    @Resource
+    private WindturbinegoodnessService windturbinegoodnessService;
+    @Resource
+    private IProEconInOrOutSpeedTotalService proEconInOrOutSpeedTotalService;
+
+    @Resource
+    private ShutdownEvent2Service shutdownEvent2Service;
+    @Resource
+    private BrownoutsEvent2Service brownoutsEvent2Service;
+
+
+    /**
+     * 获得功率曲线数据查询
+     *
+     * @param wtId
+     * @param recorddate
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/findWtRealPowerChar")
+    @ResponseBody
+    @ApiOperation(value = "查询功率曲线数据信息", notes = "查询功率曲线数据信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R findWtRealPowerChar(String wtId, String recorddate) throws Exception {
+        Date date = DateUtils.parseDate(recorddate);
+        List<DataVo> result = windturbinegoodnessService.findWtRealPowerChar(wtId, date);
+
+//
+//        System.out.println( JSONArray.toJSON(result));
+
+        if (null != result) {
+            return R.data(ResultMsg.ok(result));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+    /**
+     * 获得曲线区间区分功能数据查询
+     *
+     * @param wtId
+     * @param recorddate
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/getplotBands")
+    @ResponseBody
+    @ApiOperation(value = "获得曲线区间区分功能数据", notes = "获得曲线区间区分功能数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R getplotBands(String wtId, String recorddate) throws Exception {
+        Date date = DateUtils.parseDate(recorddate);
+        List<List<EchartDataVo>> result = windturbinegoodnessService.getplotBands(wtId, date);
+
+        if (null != result) {
+            return R.data(ResultMsg.ok(result));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 获取切入风速
+     *
+     * @param wtId
+     * @param recorddate
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/getInputSmall")
+    @ResponseBody
+    @ApiOperation(value = "获取切入风速", notes = "获取切入风速")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R getInputSmall(String wtId, String recorddate) throws Exception {
+        Date date = DateUtils.parseDate(recorddate);
+        double inputsmall=0.0;
+        QueryWrapper<ProEconInOrOutSpeedTotal> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("windturbine_id",wtId).eq("record_date",date);
+        List<ProEconInOrOutSpeedTotal> ls = proEconInOrOutSpeedTotalService.list(queryWrapper);
+//                .stream().filter(i->
+//                i.getWindturbineId().equals(wtId)
+//                && i.getRecordDate().compareTo(DateUtils.truncate(date))==0
+//        ).collect(Collectors.toList());
+        if(!ls.isEmpty())
+        {
+            ProEconInOrOutSpeedTotal is=ls.get(0);
+            if(StringUtils.notEmp(is) && StringUtils.notEmp(is.getMonthInputSmall()) )
+            {
+                inputsmall=is.getMonthInputSmall();
+            }else
+            {
+                inputsmall=3.0;
+            }
+
+        }
+        return R.data(ResultMsg.ok(inputsmall));
+    }
+
+    /**
+     * 获取24小时功率曲线
+     *
+     * @param wtId
+     * @param recorddate
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/findRealPowerCharBy24")
+    @ResponseBody
+    @ApiOperation(value = "获取24小时功率曲线", notes = "获取24小时功率曲线")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R findRealPowerCharBy24(String wtId, String recorddate) throws Exception {
+        List<DataVo> resultList = new ArrayList<>();
+        if (StringUtils.notEmp(recorddate) && StringUtils.notEmp(wtId)) {
+
+            resultList = windturbinegoodnessService.findRealPowerCharBy24(wtId, DateUtils.parseDate(recorddate));
+        }
+
+        if (null != resultList) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+    /*
+     * 单台风机当日报警记录
+     */
+    @PostMapping("/bjjllist")
+    @ResponseBody
+    @ApiOperation(value = "单台风机当日报警记录", notes = "单台风机当日报警记录")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R bjjllist(Integer pageNum, Integer pageSize, String wtId, String recorddate) {
+
+        //
+        Page<ProEconShutdownEvent2> resultList =new Page<>();
+        if(StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate))
+        {
+            Calendar cal = Calendar.getInstance();
+            cal.set(Calendar.HOUR_OF_DAY, 0);
+            cal.set(Calendar.MINUTE, 0);
+            cal.set(Calendar.SECOND, 0);
+
+            cal.setTime(DateUtils.parseDate(recorddate));
+            Date beginDate = cal.getTime();
+            cal.add(Calendar.DAY_OF_MONTH, 1);
+            Date endDate = cal.getTime();
+
+            resultList= shutdownEvent2Service.getShutdownEventList(pageNum, pageSize, wtId, beginDate,endDate);
+        }
+        if (null != resultList) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 单台风机当日停机记录
+     */
+    @PostMapping("/gzjllist")
+    @ResponseBody
+    @ApiOperation(value = "单台风机当日停机记录", notes = "单台风机当日停机记录")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R gzjllist(Integer pageNum, Integer pageSize,String wtId, String recorddate) {
+
+        Page<ProEconShutdownEvent2> resultList =new Page<>();
+        if(StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate))
+        {
+            Calendar cal = Calendar.getInstance();
+            cal.set(Calendar.HOUR_OF_DAY, 0);
+            cal.set(Calendar.MINUTE, 0);
+            cal.set(Calendar.SECOND, 0);
+
+            cal.setTime(DateUtils.parseDate(recorddate));
+            Date beginDate = cal.getTime();
+            cal.add(Calendar.DAY_OF_MONTH, 1);
+            Date endDate = cal.getTime();
+
+            resultList= shutdownEvent2Service.getShutdownEventList(pageNum, pageSize, wtId, beginDate,endDate);
+        }
+        if (null != resultList) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 单台风机当日限电记录
+     */
+    @PostMapping("/xdjllist")
+    @ResponseBody
+    @ApiOperation(value = "单台风机当日限电记录", notes = "单台风机当日限电记录")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R xdjllist(Integer pageNum, Integer pageSize, String wtId, String recorddate) {
+
+        Page<ProEconBrownoutsEvent2> resultList =new Page<>();
+        if(StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate))
+        {
+            Calendar cal = Calendar.getInstance();
+            cal.set(Calendar.HOUR_OF_DAY, 0);
+            cal.set(Calendar.MINUTE, 0);
+            cal.set(Calendar.SECOND, 0);
+
+            cal.setTime(DateUtils.parseDate(recorddate));
+            Date beginDate = cal.getTime();
+            cal.add(Calendar.DAY_OF_MONTH, 1);
+            Date endDate = cal.getTime();
+
+            resultList= brownoutsEvent2Service.getBrownoutsEvent2List(pageNum, pageSize, wtId, beginDate,endDate);
+        }
+        if (null != resultList) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 获取区域弹出列表信息
+     *
+
+     */
+    @GetMapping("/plotBandAjax")
+    @ResponseBody
+    @ApiOperation(value = "获取区域弹出列表信息", notes = "获取区域弹出列表信息")
+    @ApiImplicitParams({
+
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "beginDate", value = "开始时间", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "endDate", value = "结束时间", required = true, dataType = "string", paramType = "query")})
+
+    public R plotBandAjax(String wtId,String beginDate,String endDate) throws Exception {
+
+        Map<String, String> map = new HashMap<>();
+
+
+        if (StringUtils.notEmp(wtId) && StringUtils.notEmp(beginDate) && StringUtils.notEmp(endDate) ) {
+
+            map=windturbinegoodnessService.getPlotBand(wtId,beginDate,endDate);
+
+
+        }
+
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+}

+ 283 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineDetailPieChartAController.java

@@ -0,0 +1,283 @@
+package com.gyee.runeconomy.controller.goodness;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.common.util.DateUtils;
+import com.gyee.runeconomy.dto.DataVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconInOrOutSpeedTotal2;
+import com.gyee.runeconomy.service.auto.IProEconInOrOutSpeedTotal2Service;
+import com.gyee.runeconomy.util.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 单机性能分析列表
+ */
+@Controller
+@RequestMapping("/goodness")
+@Api(value = "单机信息总览饼图",tags =  "单机信息总览饼图")
+public class WindturbineDetailPieChartAController {
+    @Resource
+    private IProEconInOrOutSpeedTotal2Service proEconInOrOutSpeedTotal2Service;
+
+    /**
+     * 饼图图表
+     *
+     * @param wtId
+     * @param recorddate
+     * @return
+     */
+    @GetMapping("/pieChart")
+    @ResponseBody
+    @ApiOperation(value = "查询等级评估日所有信息", notes = "查询等级评估日所有信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "类型 1:日小风切入,2:月小风切入,3:月小风切入,4:日小风停机,5:月小风停机,6:年小风停机", required = true, dataType = "string", paramType = "query")})
+
+    public R pieChart(String wtId, String recorddate, String type) {
+
+        List<DataVo> vos=new ArrayList<>();
+
+        if (StringUtils.notEmp(recorddate) && StringUtils.notEmp(wtId) && StringUtils.notEmp(type)) {
+
+            Date date= DateUtils.parseDate(recorddate);
+
+            QueryWrapper<ProEconInOrOutSpeedTotal2> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("windturbine_id",wtId).eq("record_date",date);
+            List<ProEconInOrOutSpeedTotal2> ls = proEconInOrOutSpeedTotal2Service.list(queryWrapper);
+//                    .stream().filter(i->
+//                    i.getWindturbineId().equals(wtId)
+//            && i.getRecordDate().compareTo(DateUtils.truncate(date)) ==0
+//            ).collect(Collectors.toList());
+
+            if (!ls.isEmpty()) {
+
+                vos=new ArrayList<DataVo>();
+                ProEconInOrOutSpeedTotal2 io = ls.get(0);
+
+                DataVo vo1 = new DataVo();
+                DataVo vo2 = new DataVo();
+                DataVo vo3 = new DataVo();
+                DataVo vo4 = new DataVo();
+                DataVo vo5 = new DataVo();
+                DataVo vo6 = new DataVo();
+                DataVo vo7 = new DataVo();
+                switch (Integer.valueOf(type)) {
+                    case 1:// 日小风切入
+                        vo1.setName("日小于2风");
+                        vo1.setValue1(io.getDaya1());
+                        vo1.setValue2(io.getDaya8());
+
+                        vo2.setName("日2-2.5风");
+                        vo2.setValue1(io.getDaya2());
+                        vo2.setValue2(io.getDaya9());
+
+                        vo3.setName("日2.5-3风");
+                        vo3.setValue1(io.getDaya3());
+                        vo3.setValue2(io.getDaya10());
+
+                        vo4.setName("日3-3.5风");
+                        vo4.setValue1(io.getDaya4());
+                        vo4.setValue2(io.getDaya11());
+
+                        vo5.setName("日3.5-4风");
+                        vo5.setValue1(io.getDaya5());
+                        vo5.setValue2(io.getDaya12());
+
+                        vo6.setName("日4-5风");
+                        vo6.setValue1(io.getDaya6());
+                        vo6.setValue2(io.getDaya13());
+
+                        vo7.setName("日大于5风");
+                        vo7.setValue1(io.getDaya7());
+                        vo7.setValue2(io.getDaya14());
+
+                        break;
+                    case 2:// 月小风切入
+                        vo1.setName("月小于2风");
+                        vo1.setValue1(io.getMontha1());
+                        vo1.setValue2(io.getMontha8());
+
+                        vo2.setName("月2-2.5风");
+                        vo2.setValue1(io.getMontha2());
+                        vo2.setValue2(io.getMontha9());
+
+                        vo3.setName("月2.5-3风");
+                        vo3.setValue1(io.getMontha3());
+                        vo3.setValue2(io.getMontha10());
+
+                        vo4.setName("月3-3.5风");
+                        vo4.setValue1(io.getMontha4());
+                        vo4.setValue2(io.getMontha11());
+
+                        vo5.setName("月3.5-4风");
+                        vo5.setValue1(io.getMontha5());
+                        vo5.setValue2(io.getMontha12());
+
+                        vo6.setName("月4-5风");
+                        vo6.setValue1(io.getMontha6());
+                        vo6.setValue2(io.getMontha13());
+
+                        vo7.setName("月大于5风");
+                        vo7.setValue1(io.getMontha7());
+                        vo7.setValue2(io.getMontha14());
+
+                        break;
+                    case 3: // 年小风切入
+                        vo1.setName("年小于2风");
+                        vo1.setValue1(io.getYeara1());
+                        vo1.setValue2(io.getYeara8());
+
+                        vo2.setName("年2-2.5风");
+                        vo2.setValue1(io.getYeara2());
+                        vo2.setValue2(io.getYeara9());
+
+                        vo3.setName("年2.5-3风");
+                        vo3.setValue1(io.getYeara3());
+                        vo3.setValue2(io.getYeara10());
+
+                        vo4.setName("年3-3.5风");
+                        vo4.setValue1(io.getYeara4());
+                        vo4.setValue2(io.getYeara11());
+
+                        vo5.setName("年3.5-4风");
+                        vo5.setValue1(io.getYeara5());
+                        vo5.setValue2(io.getYeara12());
+
+                        vo6.setName("年4-5风");
+                        vo6.setValue1(io.getYeara6());
+                        vo6.setValue2(io.getYeara13());
+
+                        vo7.setName("年大于5风");
+                        vo7.setValue1(io.getYeara7());
+                        vo7.setValue2(io.getYeara14());
+
+                        break;
+                    case 4:// 日小风停机
+                        vo1.setName("日小于2风");
+                        vo1.setValue1(io.getDayb1());
+                        vo1.setValue2(io.getDayb8());
+
+                        vo2.setName("日2-2.5风");
+                        vo2.setValue1(io.getDayb2());
+                        vo2.setValue2(io.getDayb9());
+
+                        vo3.setName("日2.5-3风");
+                        vo3.setValue1(io.getDayb3());
+                        vo3.setValue2(io.getDayb10());
+
+                        vo4.setName("日3-3.5风");
+                        vo4.setValue1(io.getDayb4());
+                        vo4.setValue2(io.getDayb11());
+
+                        vo5.setName("日3.5-4风");
+                        vo5.setValue1(io.getDayb5());
+                        vo5.setValue2(io.getDayb12());
+
+                        vo6.setName("日4-5风");
+                        vo6.setValue1(io.getDayb6());
+                        vo6.setValue2(io.getDayb13());
+
+                        vo7.setName("日大于5风");
+                        vo7.setValue1(io.getDayb7());
+                        vo7.setValue2(io.getDayb14());
+
+                        break;
+                    case 5:// 月小风停机
+                        vo1.setName("月小于2风");
+                        vo1.setValue1(io.getMonthb1());
+                        vo1.setValue2(io.getMonthb8());
+
+                        vo2.setName("月2-2.5风");
+                        vo2.setValue1(io.getMonthb2());
+                        vo2.setValue2(io.getMonthb9());
+
+                        vo3.setName("月2.5-3风");
+                        vo3.setValue1(io.getMonthb3());
+                        vo3.setValue2(io.getMonthb10());
+
+                        vo4.setName("月3-3.5风");
+                        vo4.setValue1(io.getMonthb4());
+                        vo4.setValue2(io.getMonthb11());
+
+                        vo5.setName("月3.5-4风");
+                        vo5.setValue1(io.getMonthb5());
+                        vo5.setValue2(io.getMonthb12());
+
+                        vo6.setName("月4-5风");
+                        vo6.setValue1(io.getMonthb6());
+                        vo6.setValue2(io.getMonthb13());
+
+                        vo7.setName("月大于5风");
+                        vo7.setValue1(io.getMonthb7());
+                        vo7.setValue2(io.getMonthb14());
+
+                        break;
+                    case 6: // 年小风停机
+                        vo1.setName("年小于2风");
+                        vo1.setValue1(io.getYearb1());
+                        vo1.setValue2(io.getYearb8());
+
+                        vo2.setName("年2-2.5风");
+                        vo2.setValue1(io.getYearb2());
+                        vo2.setValue2(io.getYearb9());
+
+                        vo3.setName("年2.5-3风");
+                        vo3.setValue1(io.getYearb3());
+                        vo3.setValue2(io.getYearb10());
+
+                        vo4.setName("年3-3.5风");
+                        vo4.setValue1(io.getYearb4());
+                        vo4.setValue2(io.getYearb11());
+
+                        vo5.setName("年3.5-4风");
+                        vo5.setValue1(io.getYearb5());
+                        vo5.setValue2(io.getYearb12());
+
+                        vo6.setName("年4-5风");
+                        vo6.setValue1(io.getYearb6());
+                        vo6.setValue2(io.getYearb13());
+
+                        vo7.setName("年大于5风");
+                        vo7.setValue1(io.getYearb7());
+                        vo7.setValue2(io.getYearb14());
+
+                        break;
+                    default:
+                        break;
+                }
+
+                vos.add(vo1);
+                vos.add(vo2);
+                vos.add(vo3);
+                vos.add(vo4);
+                vos.add(vo5);
+                vos.add(vo6);
+                vos.add(vo7);
+            }
+
+        }
+
+        if (null != vos) {
+            return R.data(ResultMsg.ok(vos));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+
+}

+ 342 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbineGoodnessDetailController.java

@@ -0,0 +1,342 @@
+package com.gyee.runeconomy.controller.goodness;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.common.util.DateUtils;
+import com.gyee.common.vo.benchmark.ValueVo;
+import com.gyee.runeconomy.dto.DataVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.dto.SawVo;
+import com.gyee.runeconomy.init.CacheContext;
+import com.gyee.runeconomy.model.auto.*;
+import com.gyee.runeconomy.service.auto.IProEconWindturbineGoodnessService;
+import com.gyee.runeconomy.service.auto.IProEconWtAlysisDayService;
+import com.gyee.runeconomy.service.auto.IProEconWtCurveFittingMonthService;
+import com.gyee.runeconomy.service.auto.IProEconWtwindDayInfoService;
+import com.gyee.runeconomy.util.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * 风机明细信息页面
+ */
+@Controller
+@RequestMapping("/goodness")
+@Api(value = "单机信息总览详细信息",tags =  "单机信息总览详细信息")
+public class WindturbineGoodnessDetailController {
+    @Resource
+    private IProEconWindturbineGoodnessService proEconWindturbineGoodnessService;
+    @Resource
+    private IProEconWtwindDayInfoService proEconWtwindDayInfoService;
+    @Resource
+    private IProEconWtAlysisDayService proEconWtAlysisDayService;
+
+    @Resource
+    private IProEconWtCurveFittingMonthService proEconWtCurveFittingMonthService;
+
+
+    private String jfpl;
+
+
+    /**
+     * 获得明细页面显示信息
+     *
+     * @param wtId
+     * @param recorddate
+     * @return
+     */
+    @GetMapping("/wadAjax")
+    @ResponseBody
+    @ApiOperation(value = "查询明细页面显示信息", notes = "查询明细页面显示信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R wadAjax(String wtId, String recorddate) {
+
+        ProEconWtAlysisDay wtday = new ProEconWtAlysisDay();
+        if (StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate)) {
+
+            Date date=DateUtils.parseDate(recorddate);
+            QueryWrapper<ProEconWtAlysisDay> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("record_date",date).eq("windturbine_id",wtId);
+            List<ProEconWtAlysisDay>  wtadls=proEconWtAlysisDayService.list(queryWrapper);
+//                    .stream().filter(i->i.getWindturbineId().equals(wtId )
+//           && i.getRecordDate().compareTo(date)==0
+//            ).collect(Collectors.toList());
+
+            if(!wtadls.isEmpty())
+            {
+                wtday=wtadls.get(0);
+            }
+        }
+        if (null != wtday) {
+            return R.data(ResultMsg.ok(wtday));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+
+    }
+
+
+    /*
+     * 单台风机当月报警排行
+     */
+    @PostMapping("/bjphlist")
+    @ResponseBody
+    @ApiOperation(value = "单台风机当月报警排行", notes = "单台风机当月报警排行")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R bjphlist( Integer pageNum, Integer pageSize, String wtId, String recorddate) {
+        List<SawVo> resultList =new ArrayList<>();
+        if(StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate))
+        {
+
+            Calendar cal = Calendar.getInstance();
+            cal.set(Calendar.HOUR_OF_DAY, 0);
+            cal.set(Calendar.MINUTE, 0);
+            cal.set(Calendar.SECOND, 0);
+
+            cal.setTime(DateUtils.parseDate(recorddate));
+            Date beginDate = cal.getTime();
+            cal.add(Calendar.DAY_OF_MONTH, 1);
+            Date endDate = cal.getTime();
+//            resultList = alarmsnapService.getWarningRecordsTop(tablepar, wtId, beginDate, endDate);
+
+        }
+        if (null != resultList) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 获取明细页面功率曲线
+     */
+    @GetMapping("/glchat")
+    @ResponseBody
+    @ApiOperation(value = "获取明细页面功率曲线", notes = "获取明细页面功率曲线")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R glchat(String wtId, String recorddate) {
+
+        List<DataVo> datavos = new ArrayList<>();
+        if (StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate)) {
+            Date date = DateUtils.parseDate(recorddate);
+            Map<String, Map<Double, ProBasicModelPowerRd>> modelPowermap = CacheContext.theoreticalPowerMap;
+            Map<String, ProBasicOrganizeTree> wtmap = CacheContext.wtmap;
+            Map<Double, ProBasicModelPowerRd> map = null;
+
+            Calendar cal=Calendar.getInstance();
+            cal.setTime(date);
+
+            int year=cal.get(Calendar.YEAR);
+            int month=cal.get(Calendar.MONTH)+1;
+
+            QueryWrapper<ProEconWtCurveFittingMonth> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("windturbine_id",wtId).eq("year",String.valueOf(year)).eq("month",String.valueOf(month));
+
+            List<ProEconWtCurveFittingMonth> wcls = proEconWtCurveFittingMonthService.list(queryWrapper);
+//                    .stream().filter(i->
+//                    i.getWindturbineId().equals(wtId)
+//                    && i.getYear().equals(String.valueOf(year)) && i.getMonth().equals(String.valueOf(month))
+//            ).collect(Collectors.toList());
+            if (!wcls.isEmpty()) {
+                if (wtmap.containsKey(wtId)) {
+                    ProBasicOrganizeTree wt = wtmap.get(wtId);
+                    if (modelPowermap.containsKey(wt.getModelId())) {
+                        map = modelPowermap.get(wt.getModelId());
+                    }
+                }
+                double temp = 0.0;
+                for (ProEconWtCurveFittingMonth wc : wcls) {
+                    DataVo vo = new DataVo();
+
+                    int c = (int) wc.getSpeed().intValue();
+
+                    if (c == wc.getSpeed()) {
+                        vo.setValue1(wc.getSpeed());// 风速
+                        vo.setValue2(wc.getActualPower());// 实际拟合功率
+                        vo.setValue3(wc.getOptimalPower());// 最优拟合功率
+
+                        if (null != map && StringUtils.notEmp(wc.getSpeed()) && map.containsKey(String.valueOf(wc.getSpeed()))) {
+                            ProBasicModelPowerRd mp = map.get(String.valueOf(wc.getSpeed()));
+                            vo.setValue4(mp.getEnsurePower());// 保证功率曲线
+                            temp = mp.getEnsurePower();
+                        } else {
+                            vo.setValue4(temp);// 保证功率曲线
+                        }
+
+                        datavos.add(vo);
+                    }
+
+                }
+            }
+        }
+        if (null != datavos) {
+            return R.data(ResultMsg.ok(datavos));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+    /*
+     * 获取风机风资源
+     */
+    @GetMapping("/fjfzy")
+    @ResponseBody
+    @ApiOperation(value = "获取风机风资源", notes = "获取风机风资源")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R fjfzy(String wtId, String recorddate) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ValueVo> vos = new ArrayList<ValueVo>();
+        if (StringUtils.notEmp(wtId) && StringUtils.notEmp(recorddate)) {
+
+            Date date = DateUtils.parseDate(recorddate);
+
+            QueryWrapper<ProEconWtwindDayInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("windturbine_id",wtId).eq("record_date",date);
+            List<ProEconWtwindDayInfo> wtdls = proEconWtwindDayInfoService.list(queryWrapper);
+//                    .stream().filter(i->
+//                    i.getWindturbineId().equals(wtId)
+//                    && i.getRecordDate().compareTo(date) ==0
+//            ).collect(Collectors.toList());
+
+
+            if (!wtdls.isEmpty()) {
+
+                ProEconWtwindDayInfo winfo = wtdls.get(0);
+                int c = (int) winfo.getCb().intValue();
+
+                jfpl = "静风频率为" + c;
+                for (int i = 0; i < 16; i++) {
+                    ValueVo vo = new ValueVo();
+
+                    switch (i) {
+                        case 0:
+                            // vo.setName("N("+winfo.getN4()+"/"+winfo.getN()+")");
+                            vo.setName("N");
+                            vo.setData1(winfo.getN2());
+                            break;
+                        case 1:
+                            // vo.setName("NNE("+winfo.getNne4()+"/"+winfo.getNne()+")");
+                            vo.setName("NNE");
+                            vo.setData1(winfo.getNne2());
+                            break;
+                        case 2:
+                            // vo.setName("NE("+winfo.getNe4()+"/"+winfo.getNe()+")");
+                            vo.setName("NE");
+                            vo.setData1(winfo.getNe2());
+                            break;
+                        case 3:
+                            // vo.setName("ENE("+winfo.getEne4()+"/"+winfo.getEne()+")");
+                            vo.setName("ENE");
+                            vo.setData1(winfo.getEne2());
+
+                            break;
+                        case 4:
+                            // vo.setName("E("+winfo.getE4()+"/"+winfo.getE()+")");
+                            vo.setName("E");
+                            vo.setData1(winfo.getE2());
+                            break;
+                        case 5:
+                            // vo.setName("ESE("+winfo.getEse()+"/"+winfo.getEse()+")");
+                            vo.setName("ESE");
+                            vo.setData1(winfo.getEse2());
+                            break;
+                        case 6:
+                            // vo.setName("SE("+winfo.getSe4()+"/"+winfo.getSe()+")");
+                            vo.setName("SE");
+                            vo.setData1(winfo.getSe2());
+                            break;
+                        case 7:
+                            // vo.setName("SSE("+winfo.getSse4()+"/"+winfo.getSse()+")");
+                            vo.setName("SSE");
+                            vo.setData1(winfo.getSse2());
+                            break;
+                        case 8:
+                            // vo.setName("S("+winfo.getS4()+"/"+winfo.getS()+")");
+                            vo.setName("S");
+                            vo.setData1(winfo.getS2());
+                            break;
+                        case 9:
+                            // vo.setName("SSW("+winfo.getSsw4()+"/"+winfo.getSsw()+")");
+                            vo.setName("SSW");
+                            vo.setData1(winfo.getSsw2());
+                            break;
+                        case 10:
+                            // vo.setName("SW("+winfo.getSw4()+"/"+winfo.getSw()+")");
+                            vo.setName("SW");
+                            vo.setData1(winfo.getSw2());
+                            break;
+                        case 11:
+                            // vo.setName("WSW("+winfo.getWsw4()+"/"+winfo.getWsw()+")");
+                            vo.setName("WSW");
+                            vo.setData1(winfo.getWsw2());
+
+                            break;
+                        case 12:
+                            // vo.setName("W("+winfo.getW4()+"/"+winfo.getW()+")");
+                            vo.setName("W");
+                            vo.setData1(winfo.getW2());
+                            break;
+                        case 13:
+                            // vo.setName("WNW("+winfo.getWnw4()+"/"+winfo.getWnw()+")");
+                            vo.setName("WNW");
+                            vo.setData1(winfo.getWnw2());
+                            break;
+                        case 14:
+                            // vo.setName("NW("+winfo.getNw4()+"/"+winfo.getNw()+")");
+                            vo.setName("NW");
+                            vo.setData1(winfo.getNw2());
+                            break;
+                        case 15:
+                            // vo.setName("NNW("+winfo.getNnw4()+"/"+winfo.getNnw()+")");
+                            vo.setName("NNW");
+                            vo.setData1(winfo.getNnw2());
+                            break;
+
+                        default:
+                            break;
+                    }
+
+                    vos.add(vo);
+                }
+
+
+                map.put("jfpl", jfpl);
+                map.put("data", vos);
+            }
+
+
+        }
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+
+}

+ 153 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/WindturbinegoodnessController.java

@@ -0,0 +1,153 @@
+package com.gyee.runeconomy.controller.goodness;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.threerate.PvVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.init.CacheContext;
+import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
+import com.gyee.runeconomy.model.auto.ProEconWindturbineGoodness;
+import com.gyee.runeconomy.model.auto.ProEconWtAlysisDay;
+import com.gyee.runeconomy.service.WtAlysisDayService;
+import com.gyee.runeconomy.service.goodness.WindturbinegoodnessService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 单机性能分析列表
+ */
+@Controller
+@RequestMapping("/goodness")
+@Api(value = "单机信息总览首页",tags =  "单机信息总览首页")
+public class WindturbinegoodnessController {
+    @Resource
+    private WindturbinegoodnessService windturbinegoodnessService;
+    @Resource
+    private WtAlysisDayService wtAlysisDayService;
+
+
+    /**
+     * 获得单机性能总览列表信息
+     * @return
+     */
+    @PostMapping("/windturbinegoodness")
+    @ResponseBody
+    @ApiOperation(value = "获得单机性能总览列表信息", notes = "获得单机性能总览列表信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "cmId", value = "公司编号或者区域编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "0全部、光伏(-2)、风场(-1)", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "wpId", value = "风场编号", required = false, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+
+    public R windturbinegoodness( Integer pageNum, Integer pageSize,String cmId,String type,  String wpId, String recorddate) {
+
+        Page<ProEconWindturbineGoodness> resultList = windturbinegoodnessService.windturbinegoodnessList(pageNum,pageSize, cmId,type,wpId, recorddate);
+
+        if(resultList!=null && !resultList.getRecords().isEmpty())
+        {
+
+            for(ProEconWindturbineGoodness pwg:resultList.getRecords())
+            {
+                if(CacheContext.wtmap.containsKey(pwg.getWindturbineId()))
+                {
+                    ProBasicOrganizeTree wt= CacheContext.wtmap.get(pwg.getWindturbineId());
+                    pwg.setWtcode(wt.getAname());
+
+                    if(CacheContext.modelMap.containsKey(wt.getModelId()))
+                    {
+                        pwg.setModelId(CacheContext.modelMap.get(wt.getModelId()).getAname());
+                    }
+                }
+
+            }
+        }
+        return R.data(ResultMsg.ok(resultList));
+    }
+
+
+    /**
+     * 获得单机性能总览历史列表信息
+     */
+    @PostMapping("/goodhistorylist")
+    @ResponseBody
+    @ApiOperation(value = "获得单机性能总览历史列表信息", notes = "获得单机性能总览历史列表信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "wtId", value = "风机编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "beginDate", value = "开始日期", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "endDate", value = "结束日期", required = true, dataType = "string", paramType = "query")})
+
+    public R goodhistorylist( Integer pageNum, Integer pageSize, String wtId, String beginDate, String endDate) {
+
+        Page<ProEconWtAlysisDay> resultList = wtAlysisDayService.wtAlysisDayList(pageNum, pageSize,wtId, beginDate,  endDate);
+
+        if(resultList!=null && !resultList.getRecords().isEmpty())
+        {
+
+            for(ProEconWtAlysisDay pwg:resultList.getRecords())
+            {
+                if(CacheContext.wtmap.containsKey(pwg.getWindturbineId()))
+                {
+                    ProBasicOrganizeTree wt= CacheContext.wtmap.get(pwg.getWindturbineId());
+                    pwg.setWtcode(wt.getAname());
+
+                }
+
+            }
+        }
+        return R.data(ResultMsg.ok(resultList));
+
+    }
+
+
+
+    @GetMapping("/pvgoodness")
+    @ResponseBody
+    @ApiOperation(value = "光伏性能分析", notes = "光伏性能分析")
+    public R pvgoodness(@RequestParam(value = "companys",required = true) String companys,
+                  @RequestParam(value = "wpid",required = true) String wpid,
+                    @RequestParam(value = "recorddate",required = true) String recorddate,
+                  @RequestParam(value = "target",required = true) String target,
+                  @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<PvVo> resultList = windturbinegoodnessService.pvgoodness(companys,wpid,recorddate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @GetMapping("/pvgoodnesshis")
+    @ResponseBody
+    @ApiOperation(value = "光伏性能分析历史", notes = "光伏性能分析历史")
+    public R pvgoodness(
+                        @RequestParam(value = "wpid",required = true) String wpid,
+                        @RequestParam(value = "wtid",required = true) String wtid,
+                        @RequestParam(value = "beginDate",required = true) String beginDate,
+                        @RequestParam(value = "endDate",required = true) String endDate,
+                        @RequestParam(value = "target",required = true) String target,
+                        @RequestParam(value = "sort",required = true) String sort
+    ){
+        List<PvVo> resultList = windturbinegoodnessService.pvgoodnesshis(wpid,wtid,beginDate,endDate,target,sort);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+}

+ 97 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/homepage/EconomyHomePageController.java

@@ -0,0 +1,97 @@
+package com.gyee.runeconomy.controller.homepage;
+
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.dto.response.ProEconPointCodeDTO;
+import com.gyee.runeconomy.service.homepage.EconomyPointHomePageService;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 省公司表 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@Log4j2
+@RestController
+@RequestMapping("//economy")
+public class EconomyHomePageController {
+
+
+    @Autowired
+    private EconomyPointHomePageService economyPointHomePageService;
+
+
+    /**
+     * 经济运行首页指标
+     *
+     * @param regionId
+     * @param companyId
+     * @param staType
+     * @param dateType
+     * @return
+     */
+    @GetMapping(value = "/home-page")
+    @ApiOperation(value = "经济运行-首页", notes = "经济运行-首页")
+    public R getEconomyPointHomePageInfo(@RequestParam(value = "regionId", required = false) String regionId,
+                                         @RequestParam(value = "companyId", required = false) String companyId,
+                                         @RequestParam(value = "foreignKeyId", required = true) String foreignKeyId,
+                                         @RequestParam(value = "staType", required = true) String staType,
+                                         @RequestParam(value = "dateType", required = true) String dateType,
+                                         @RequestParam(value = "pointCode", required = false) String pointCode
+
+    ) throws Exception {
+
+        Map<String ,Object> map  = economyPointHomePageService.getEconomyPointHomePageInfo(foreignKeyId,regionId, companyId, staType, dateType,pointCode);
+        if (null != map) {
+            return R.data(ResultMsg.ok(map));
+        } else {
+             return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 首页指标排行
+     * @param foreignKeyId
+     * @param dateType
+     * @param pointCode
+     * @return
+     * @throws Exception
+     */
+    @GetMapping(value = "/point-ranking")
+    @ApiOperation(value = "经济运行-首页指标排行", notes = "经济运行-首页指标排行")
+    public R getEconomyPointRanking(
+            @RequestParam(value = "foreignKeyId", required = true) String foreignKeyId,
+            @RequestParam(value = "dateType", required = true) String dateType,
+            @RequestParam(value = "staType", required = true) String staType,
+            @RequestParam(value = "pointCode", required = true) String pointCode,
+            @RequestParam(value = "popup", required = false) boolean popup
+    )  {
+
+        List<ProEconPointCodeDTO> dtos = null;
+        try {
+            dtos = economyPointHomePageService.getEconomyPointRanking(foreignKeyId, dateType, pointCode, popup,staType);
+        } catch (Exception e) {
+            log.error("请求异常", e);
+            return R.error(ResultMsg.error());
+        }
+        return R.data(ResultMsg.ok(dtos));
+    }
+
+
+
+
+}

+ 46 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/AgcController.java

@@ -0,0 +1,46 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/4/3-17:15
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.monitor.AgcVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.monitor.AgcService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Controller
+@RequestMapping("/agc")
+@Api(value = "agc监视",tags =  "agc监视")
+public class AgcController {
+    @Resource
+    private AgcService agcService;
+
+    /**
+     * agc监视
+     * @return
+     */
+    @GetMapping("/monitor")
+    @ResponseBody
+    @ApiOperation(value = "AGC监视", notes = "AGC监视")
+    public R monitor(@RequestParam(value = "type",required = true) String type,
+                   @RequestParam(value = "company",required = true) String company) throws Exception {
+
+        List<AgcVo> resultList = agcService.monitor(company,type);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+}

+ 67 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/AnemometerTowerController.java

@@ -0,0 +1,67 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/5/11-9:25
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProBasicWeatherStation;
+import com.gyee.runeconomy.service.monitor.AnemometerTowerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/tower")
+@Api(value = "测风塔",tags =  "测风塔")
+public class AnemometerTowerController {
+    @Resource
+    private AnemometerTowerService anemometerTowerService;
+
+
+    /**
+     * 测风塔数据
+     * @return
+     */
+    @GetMapping("/info")
+    @ResponseBody
+    @ApiOperation(value = "数据信息", notes = "数据信息")
+    public R info(@RequestParam(value = "weatherid",required = true) String weatherid) throws Exception {
+
+        Map<String,Double> resultMap = anemometerTowerService.info(weatherid);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 根据场站查询测风塔
+     * @return
+     */
+    @GetMapping("/towerByWp")
+    @ResponseBody
+    @ApiOperation(value = "根据场站查询测风塔", notes = "根据场站查询测风塔")
+    public R towerByWp(@RequestParam(value = "wpid",required = true) String wpid) throws Exception {
+
+        List<ProBasicWeatherStation> resultList = anemometerTowerService.towerByWp(wpid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+}

+ 106 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/ComprehensiveController.java

@@ -0,0 +1,106 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/4/3-14:38
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.monitor.CompreVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.init.CacheContext;
+import com.gyee.runeconomy.model.auto.ProEconTestingPoint;
+import com.gyee.runeconomy.service.monitor.ComprehensiveService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Controller
+@RequestMapping("/comprehensive")
+@Api(value = "综合指标/数据列表",tags =  "综合指标/数据列表")
+public class ComprehensiveController {
+    @Resource
+    private ComprehensiveService comprehensiveService;
+
+    /**
+     * 综合指标-指标查询
+     * @return
+     */
+    @GetMapping("/targets")
+    @ResponseBody
+    @ApiOperation(value = "综合指标-获取指标", notes = "综合指标-获取指标")
+    public R targets(@RequestParam(value = "type",required = true) String type)  {
+
+        List<ProEconTestingPoint> resultList = comprehensiveService.targets(type);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 数据指标-指标查询
+     * @return
+     */
+    @GetMapping("/wttargets")
+    @ResponseBody
+    @ApiOperation(value = "数据指标-获取指标", notes = "数据指标-获取指标")
+    public R wttargets(@RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "part",required = true) String part)  {
+
+        List<ProEconTestingPoint> resultList = comprehensiveService.wttargets(type,part);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 综合指标-列表查询
+     * @return
+     */
+    @GetMapping("/listing")
+    @ResponseBody
+    @ApiOperation(value = "综合指标-列表查询", notes = "综合指标-列表查询")
+    public R listing(@RequestParam(value = "type",required = true) String type,
+                   @RequestParam(value = "company",required = true) String company,
+                     @RequestParam(value = "targets",required = true) String targets) throws Exception {
+
+        List<CompreVo> resultList = comprehensiveService.listing(company,type,targets);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 数据指标-列表查询
+     * @return
+     */
+    @GetMapping("/wtlisting")
+    @ResponseBody
+    @ApiOperation(value = "数据指标-列表查询", notes = "数据指标-列表查询")
+    public R wtlisting(@RequestParam(value = "type",required = true) String type,
+                     @RequestParam(value = "company",required = true) String company,
+                       @RequestParam(value = "wpid",required = true) String wpid,
+                     @RequestParam(value = "targets",required = true) String targets,
+                       @RequestParam(value = "pageSize",required = true) String pageSize,
+                       @RequestParam(value = "pageNum",required = true) String pageNum) {
+        int count = CacheContext.wpwtmap.get(wpid).size();
+        List<CompreVo> resultList = comprehensiveService.wtlisting(company,type,targets,wpid,pageSize,pageNum);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList,count));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+}

+ 85 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/DeviceDetailsController.java

@@ -0,0 +1,85 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/4/6-15:20
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.monitor.AgcVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconTestingPoint;
+import com.gyee.runeconomy.model.vo.ProTreeVo;
+import com.gyee.runeconomy.service.monitor.DeviceDetailsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/detail")
+@Api(value = "设备详情",tags =  "设备详情")
+public class DeviceDetailsController {
+    @Resource
+    private DeviceDetailsService deviceDetailsService;
+
+    /**
+     * 左侧树形
+     * @return
+     */
+    @GetMapping("/tree")
+    @ResponseBody
+    @ApiOperation(value = "左侧树形", notes = "左侧树形")
+    public R tree(@RequestParam(value = "wpid",required = true) String wpid) throws Exception {
+
+        List<ProTreeVo> resultList = deviceDetailsService.tree(wpid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 监测信息
+     * @return
+     */
+    @GetMapping("/info")
+    @ResponseBody
+    @ApiOperation(value = "监测信息", notes = "监测信息")
+    public R info(@RequestParam(value = "wtid",required = true) String wtid) throws Exception {
+
+        Map<String,Double> resultMap = deviceDetailsService.info(wtid);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 获取统一编码
+     * @return
+     */
+    @GetMapping("/getuniformcode")
+    @ResponseBody
+    @ApiOperation(value = "获取统一编码", notes = "获取统一编码")
+    public R getuniformcode(@RequestParam(value = "part",required = true) String part,
+                            @RequestParam(value = "wtid",required = true) String wtid) throws Exception {
+
+        Map<String,List<ProEconTestingPoint>> resultMap = deviceDetailsService.getuniformcode(part,wtid);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+}

+ 83 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/LandformsController.java

@@ -0,0 +1,83 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/5/10-16:06
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
+import com.gyee.runeconomy.model.vo.LandformsVo;
+import com.gyee.runeconomy.service.monitor.LandformsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Controller
+@RequestMapping("/landforms")
+@Api(value = "地貌图",tags =  "地貌图")
+public class LandformsController {
+    @Resource
+    private LandformsService landformsService;
+
+    /**
+     * 地貌图数据
+     * @return
+     */
+    @GetMapping("/data")
+    @ResponseBody
+    @ApiOperation(value = "数据信息", notes = "数据信息")
+    public R data(@RequestParam(value = "foreignkeyid",required = true) String foreignkeyid) throws Exception {
+
+        List<LandformsVo> resultList = landformsService.data(foreignkeyid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 根据期次查询阵区
+     * @return
+     */
+    @GetMapping("/sqByPj")
+    @ResponseBody
+    @ApiOperation(value = "根据期次查询阵区", notes = "根据期次查询阵区")
+    public R sqByPj(@RequestParam(value = "pjid",required = true) String pjid) throws Exception {
+
+        List<ProBasicOrganizeTree> resultList = landformsService.sqByPj(pjid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 根据逆变器查询数据列表
+     * @return
+     */
+    @GetMapping("/inverData")
+    @ResponseBody
+    @ApiOperation(value = "逆变器数据列表", notes = "逆变器数据列表")
+    public R inverData(@RequestParam(value = "squareid",required = true) String squareid) throws Exception {
+
+        List<Object> resultList = landformsService.inverData(squareid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+}

+ 88 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/MatrixController.java

@@ -0,0 +1,88 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/3/28-8:43
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.monitor.MatrixService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/matrix")
+@Api(value = "矩阵",tags =  "矩阵")
+public class MatrixController {
+    @Resource
+    private MatrixService matrixService;
+
+
+    /**
+     * 基础矩阵
+     * @return
+     */
+    @GetMapping("/basic")
+    @ResponseBody
+    @ApiOperation(value = "基础矩阵", notes = "基础矩阵")
+    public R basic(@RequestParam(value = "type",required = true) String type,
+                      @RequestParam(value = "company",required = true) String company) throws Exception {
+
+        Map<String,Object> resultMap = matrixService.basic(company,type);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 明细矩阵
+     * @return
+     */
+    @GetMapping("/detailed")
+    @ResponseBody
+    @ApiOperation(value = "明细矩阵", notes = "明细矩阵")
+    public R detailed(@RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "company",required = true) String company) throws Exception {
+
+        Map<String,Object> resultMap = matrixService.matrixMX(company,type);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 单场矩阵
+     * @return
+     */
+    @GetMapping("/single")
+    @ResponseBody
+    @ApiOperation(value = "单场矩阵", notes = "单场矩阵")
+    public R single(@RequestParam(value = "wpid",required = true) String wpid) throws Exception {
+
+        Map<String,Object> resultMap = matrixService.single(wpid);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+
+
+
+}

+ 185 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/MonitorController.java

@@ -0,0 +1,185 @@
+package com.gyee.runeconomy.controller.monitor;
+
+import com.gyee.runeconomy.dto.AjaxResult;
+import com.gyee.runeconomy.dto.DataVo;
+import com.gyee.runeconomy.dto.PowercurveVo;
+import com.gyee.runeconomy.dto.ProjectplanVo;
+import com.gyee.runeconomy.service.monitor.MonitorService;
+import com.gyee.runeconomy.util.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 监视中心首页
+ */
+
+@Controller
+@RequestMapping("/cockpit")
+@Api(value = "驾驶舱", tags = "驾驶舱")
+
+public class MonitorController {
+    @Autowired
+    private MonitorService monitorService;
+
+    @GetMapping("/monitor")
+    @ResponseBody
+    @ApiOperation(value = "首页", notes = "首页")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query")})
+
+    public AjaxResult getinformation(String wpId) throws Exception {
+
+        Map<String, String> map = new HashMap<>();
+        if (!wpId.isEmpty()) {
+            map = monitorService.getcockpit(wpId);
+        }
+        if (null != map) {
+            return AjaxResult.successData(200, map);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+    @GetMapping("/Powercurve24")
+    @ResponseBody
+    @ApiOperation(value = "24小时功率曲线", notes = "24小时功率曲线")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query")})
+    public AjaxResult Powercurve24(String wpId) throws Exception {
+
+        List<PowercurveVo> resultList = new ArrayList<>();
+        if (StringUtils.notEmp(wpId)) {
+            resultList = monitorService.Powercurve24(wpId);
+        }
+
+        if (null != resultList) {
+            return AjaxResult.successData(200, resultList);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+    @GetMapping("Realtime")
+    @ResponseBody
+    @ApiOperation(value = "实时数据", notes = "实时数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "uniformCode", value = "统一编码", required = true, dataType = "string", paramType = "query")
+    })
+    public AjaxResult Realtime(String wpId,String uniformCode) throws Exception {
+
+        List<PowercurveVo> resultList = new ArrayList<>();
+        if (StringUtils.notEmp(wpId)) {
+            resultList = monitorService.Realtimevalue(wpId,uniformCode);
+        }
+
+        if (null != resultList) {
+            return AjaxResult.successData(200, resultList);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+    @GetMapping("Utilizationhours")
+    @ResponseBody
+    @ApiOperation(value = "利用小时", notes = "利用小时")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "timetype", value = "统一编码", required = true, dataType = "string", paramType = "query")
+    })
+    public AjaxResult Utilizationhours(String wpId,String timetype) throws Exception {
+
+        List<PowercurveVo> resultList = new ArrayList<>();
+        if (StringUtils.notEmp(wpId)) {
+            resultList = monitorService.hoursvalue(wpId,timetype);
+        }
+
+        if (null != resultList) {
+            return AjaxResult.successData(200, resultList);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+    @GetMapping("Planproject")
+    @ResponseBody
+    @ApiOperation(value = "计划电量", notes = "计划电量")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "timetype", value = "统一编码", required = true, dataType = "string", paramType = "query")
+    })
+    public AjaxResult Planproject(String wpId,String timetype) throws Exception {
+
+        List<ProjectplanVo> resultList = new ArrayList<>();
+        if (StringUtils.notEmp(wpId)) {
+            resultList = monitorService.planvalue(wpId,timetype);
+        }
+
+        if (null != resultList) {
+            return AjaxResult.successData(200, resultList);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+    @GetMapping("/projectplan")
+    @ResponseBody
+    @ApiOperation(value = "首页计划电量", notes = "首页计划电量")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query")})
+
+    public AjaxResult projectplan(String wpId) throws Exception {
+
+        Map<String, String> map = new HashMap<>();
+        if (!wpId.isEmpty()) {
+            map = monitorService.plan(wpId);
+        }
+        if (null != map) {
+            return AjaxResult.successData(200, map);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+    @GetMapping("GroupRealtime")
+    @ResponseBody
+    @ApiOperation(value = "首页实时数据", notes = "首页实时数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "wpId", value = "场站编号", required = true, dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "uniformCode", value = "统一编码", required = true, dataType = "string", paramType = "query")
+    })
+    public AjaxResult GroupRealtime(String wpId,String uniformCode) throws Exception {
+
+        List<DataVo> resultList = new ArrayList<>();
+        if (StringUtils.notEmp(wpId)) {
+            resultList = monitorService.GroupRealtimevalue(wpId,uniformCode);
+        }
+
+        if (null != resultList) {
+            return AjaxResult.successData(200, resultList);
+        } else {
+            return AjaxResult.error(500, "操作失败");
+        }
+
+    }
+
+
+}

+ 66 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/StationMonitorController.java

@@ -0,0 +1,66 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/4/12-8:39
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.monitor.AgcVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProBasicPowerstation;
+import com.gyee.runeconomy.model.auto.ProEconPowerstationInfoDay1;
+import com.gyee.runeconomy.service.monitor.StationMonitorService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/station")
+@Api(value = "场站监视",tags =  "场站监视")
+public class StationMonitorController {
+    @Resource
+    private StationMonitorService stationMonitorService;
+
+    /**
+     * 场站数据
+     * @return
+     */
+    @GetMapping("/caldata")
+    @ResponseBody
+    @ApiOperation(value = "场站信息", notes = "场站信息")
+    public R caldata(@RequestParam(value = "wpid",required = true) String wpid) throws Exception {
+
+        Map<String,Object> resultMap = stationMonitorService.caldata(wpid);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 场站每日电量
+     * @return
+     */
+    @GetMapping("/hisdata")
+    @ResponseBody
+    @ApiOperation(value = "场站每日电量", notes = "场站每日电量")
+    public R hisdata(@RequestParam(value = "wpid",required = true) String wpid) throws Exception {
+
+        List<ProEconPowerstationInfoDay1> resultList = stationMonitorService.hisdata(wpid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+}

+ 47 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/monitor/StatusController.java

@@ -0,0 +1,47 @@
+package com.gyee.runeconomy.controller.monitor;/*
+@author   谢生杰
+@date   2023/4/4-9:50
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.monitor.StatusVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.monitor.StatusService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Controller
+@RequestMapping("/status")
+@Api(value = "状态监视",tags =  "状态监视")
+public class StatusController {
+
+    @Resource
+    private StatusService statusService;
+
+    /**
+     * 状态监视
+     * @return
+     */
+    @GetMapping("/monitor")
+    @ResponseBody
+    @ApiOperation(value = "状态监视", notes = "状态监视")
+    public R monitor(@RequestParam(value = "type",required = true) String type,
+                     @RequestParam(value = "company",required = true) String company) throws Exception {
+
+        List<StatusVo> resultList = statusService.monitor(company,type);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList,resultList.size()));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+}

+ 85 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/performacompare/EquipmentPerformaCompareController.java

@@ -0,0 +1,85 @@
+package com.gyee.runeconomy.controller.performacompare;
+
+
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProEconWtPowerCurveFitting;
+import com.gyee.runeconomy.service.performacompare.EquipmentPerformaCompareService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 单机新能比较 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//performa-compare")
+@Api(value = "单机新能比较", tags = "单机新能比较")
+public class EquipmentPerformaCompareController {
+
+
+    @Autowired
+    private EquipmentPerformaCompareService equipmentPerformaCompareService;
+
+
+    /**
+     * 单机横向对比列表
+     * @param type 风场 -1 ;光伏 -2
+     * @param dateType  日 1;月 2; 年 3
+     * @param windturbineIds 设别ids
+     * @param date 日期
+     * @return
+     */
+    @GetMapping("/equipment-performa-compare")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R daydjhxdbtop(
+            @RequestParam(value = "type", required = true) String type,
+            @RequestParam(value = "dateType", required = true) String dateType,
+            @RequestParam(value = "windturbineIds", required = true) String windturbineIds,
+            @RequestParam(value = "date", required = true) String date) {
+
+        List<Object> objects = null;
+        try {
+            objects = equipmentPerformaCompareService.getEquipmentPerformaCompareList(dateType, windturbineIds, date,type);
+            return R.data(ResultMsg.ok(objects));
+        } catch (Exception e) {
+            return R.data(ResultMsg.error());
+        }
+
+    }
+
+
+    /**
+     * 实际拟合曲线
+     * @param windturbineIds
+     * @return
+     */
+    @GetMapping("curve-fitting")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R getWtPowerCurveFittingList(
+            @RequestParam(value = "windturbineIds", required = true) String windturbineIds ){
+
+        Map<String, List<ProEconWtPowerCurveFitting>> map = null;
+        try {
+            map = equipmentPerformaCompareService.getgroupProEconWtPowerCurveFittingList(windturbineIds);
+            return R.data(ResultMsg.ok(map));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error(ResultMsg.error());
+        }
+
+
+    }
+
+
+}

+ 81 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/performance/PerformanceCurvefittingController.java

@@ -0,0 +1,81 @@
+package com.gyee.runeconomy.controller.performance;
+
+
+import com.gyee.common.vo.curve.CurveVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.PerformanceCurvefittingService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 功率曲线拟合 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//performance")
+@Api(value = "功率曲线拟合", tags = "功率曲线拟合")
+public class PerformanceCurvefittingController {
+
+
+    @Autowired
+    private PerformanceCurvefittingService performanceCurvefittingService;
+
+    /**
+     * 功率列表
+     * @param windturbineIds 风机ids
+     * @param type 0:全部;-1:风电;-2:光伏(暂时默认 -1;没有光伏的功率曲线)
+     * @param dateType 1:日;2:月;3:年
+     * @return
+     */
+    @GetMapping("/curvefitting")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R curvefittinglist(@RequestParam(value = "windturbineIds", required = true) String windturbineIds,
+                          @RequestParam(value = "type", required = true) String type,
+                          @RequestParam(value = "dateType", required = true) String dateType
+    ) {
+        Map<String, List<CurveVo>> curvefitting = null;
+        try {
+            curvefitting = performanceCurvefittingService.curveFittingList(windturbineIds, type, dateType);
+            return R.data(ResultMsg.ok(curvefitting));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.data(ResultMsg.error());
+        }
+    }
+
+
+
+    /**
+     * 功率曲线拟合
+     * @param windturbineIds 风机ids
+     * @param type 0:全部;-1:风电;-2:光伏(暂时默认 -1;没有光伏的功率曲线)
+     * @param dateType 1:日;2:月;3:年
+     * @return
+     */
+    @GetMapping("/curve-fitting")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R curvefitting(@RequestParam(value = "windturbineIds", required = true) String windturbineIds,
+                          @RequestParam(value = "type", required = true) String type,
+                          @RequestParam(value = "dateType", required = true) String dateType
+    ) {
+        Map<String, List<CurveVo>> curvefitting = null;
+        try {
+            curvefitting = performanceCurvefittingService.curvefitting(windturbineIds, type, dateType);
+            return R.data(ResultMsg.ok(curvefitting));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.data(ResultMsg.error());
+        }
+    }
+}

+ 376 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/specific/SpecificController.java

@@ -0,0 +1,376 @@
+package com.gyee.runeconomy.controller.specific;/*
+@author   谢生杰
+@date   2022/11/23-21:39
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.vo.specific.SpecificCenterVo;
+import com.gyee.common.vo.specific.SpecificTarget;
+import com.gyee.common.vo.specific.SpecificTargetVo;
+import com.gyee.common.vo.specific.SpecificTopVo;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.service.specific.SpecificService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("//specific")
+@Api(value = "专题分析",tags =  "专题分析")
+public class SpecificController {
+
+    @Resource
+    private SpecificService specificService;
+
+
+    /**
+     * 查询专题分析列表上
+     * @return
+     */
+    @GetMapping("/maintoplist")
+    @ResponseBody
+    @ApiOperation(value = "综合分析1", notes = "综合分析1")
+    public R maintoplist(@RequestParam(value = "companys",required = true) String companys,
+                         @RequestParam(value = "type",required = true) String type,
+                         @RequestParam(value = "month",required = true) String month) throws ParseException {
+
+        List<SpecificTopVo> resultList = specificService.maintoplist(companys,type,month);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+
+    }
+
+    /**
+     * 查询专题分析列表下
+     * @return
+     */
+    @GetMapping("/maincenterlist")
+    @ResponseBody
+    @ApiOperation(value = "综合分析2", notes = "综合分析2")
+    public R maincenterlist(@RequestParam(value = "companys",required = true) String companys,
+                            @RequestParam(value = "type",required = true) String type,
+                            @RequestParam(value = "month",required = true) String month) throws ParseException {
+
+        Map<String,List<SpecificCenterVo>> resultMap = specificService.maincenterlist(companys,type,month);
+        if (StringUtils.isNotNull(resultMap)) {
+            return R.data(ResultMsg.ok(resultMap));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+
+    /**
+     * 查询风能利用率功能
+     * @return
+     */
+    @GetMapping("/fnlylList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-风能利用率", notes = "专题分析-风能利用率")
+    public R fnlylList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.fnlylList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询发电量
+     * @return
+     */
+    @GetMapping("/fdlList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-发电量", notes = "专题分析-发电量")
+    public R fdlList(@RequestParam(value = "companys",required = true) String companys,
+                     @RequestParam(value = "type",required = true) String type,
+                     @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.fdlList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询综合厂用电量
+     * @return
+     */
+    @GetMapping("/zhcydlList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-综合厂用电量", notes = "专题分析-综合厂用电量")
+    public R zhcydlList(@RequestParam(value = "companys",required = true) String companys,
+                        @RequestParam(value = "type",required = true) String type,
+                        @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.zhcydlList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询故障损失率
+     * @return
+     */
+    @GetMapping("/gzsslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-故障损失率", notes = "专题分析-故障损失率")
+    public R gzsslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.gzsslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询维护损失率
+     * @return
+     */
+    @GetMapping("/whsslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-维护损失率", notes = "专题分析-维护损失率")
+    public R whsslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.whsslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询限电损失率
+     * @return
+     */
+    @GetMapping("/xdsslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-限电损失率", notes = "专题分析-限电损失率")
+    public R xdsslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.xdsslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询性能损失率
+     * @return
+     */
+    @GetMapping("/xnsslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-性能损失率", notes = "专题分析-性能损失率")
+    public R xnsslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.xnsslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询受累损失率
+     * @return
+     */
+    @GetMapping("/slsslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-受累损失率", notes = "专题分析-受累损失率")
+    public R slsslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.slsslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询复位及时率
+     * @return
+     */
+    @GetMapping("/fwjslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-复位及时率", notes = "专题分析-复位及时率")
+    public R fwjslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.fwjslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询状态转换率
+     * @return
+     */
+    @GetMapping("/ztzhlList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-状态转换率", notes = "专题分析-状态转换率")
+    public R ztzhlList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.ztzhlList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询消缺及时率
+     * @return
+     */
+    @GetMapping("/xqjslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-消缺及时率", notes = "专题分析-消缺及时率")
+    public R xqjslList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.xqjslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询系统效率
+     * @return
+     */
+    @GetMapping("/xtxlList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-系统效率", notes = "专题分析-系统效率")
+    public R xtxlList(@RequestParam(value = "companys",required = true) String companys,
+                       @RequestParam(value = "type",required = true) String type,
+                       @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.xtxlList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询离散率
+     * @return
+     */
+    @GetMapping("/lslList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-离散率", notes = "专题分析-离散率")
+    public R lslList(@RequestParam(value = "companys",required = true) String companys,
+                      @RequestParam(value = "type",required = true) String type,
+                      @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.lslList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询转换效率
+     * @return
+     */
+    @GetMapping("/zhxlList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-转换效率", notes = "专题分析-转换效率")
+    public R zhxlList(@RequestParam(value = "companys",required = true) String companys,
+                     @RequestParam(value = "type",required = true) String type,
+                     @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.zhxlList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询MTBF
+     * @return
+     */
+    @GetMapping("/mtbfList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-MTBF分析", notes = "专题分析-MTBF分析")
+    public R mtbfList(@RequestParam(value = "companys",required = true) String companys,
+                      @RequestParam(value = "type",required = true) String type,
+                      @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.mtbfList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+
+    /**
+     * 查询MTTR
+     * @return
+     */
+    @GetMapping("/mttrList")
+    @ResponseBody
+    @ApiOperation(value = "专题分析-MTTR分析", notes = "专题分析-MTTR分析")
+    public R mttrList(@RequestParam(value = "companys",required = true) String companys,
+                      @RequestParam(value = "type",required = true) String type,
+                      @RequestParam(value = "year",required = true) String year) throws ParseException {
+
+        List<SpecificTarget> resultList = specificService.mttrList(companys,type,year);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        }else{
+             return R.error(ResultMsg.error());
+        }
+    }
+}

+ 108 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/threerate/ThreeRateController.java

@@ -0,0 +1,108 @@
+package com.gyee.runeconomy.controller.threerate;
+
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.dto.response.FwjslDTO;
+import com.gyee.runeconomy.dto.response.QxjslDTO;
+import com.gyee.runeconomy.service.threerate.ThreeRateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 三率 前端控制器
+ * </p>
+ *
+ * @author wang
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("//threerate")
+public class ThreeRateController {
+
+
+    @Autowired
+    private ThreeRateService threeRateService;
+
+
+    /**
+     * 复位及时率
+     *
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/reset-timely-rate")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R getResetTimelyRateInfo(
+            @RequestParam(value = "companyId", required = false) String companyId,
+            @RequestParam(value = "windpowerstationId", required = false) String windpowerstationId,
+            @RequestParam(value = "beginDate", required = true) String beginDate,
+            @RequestParam(value = "endDate", required = true) String endDate
+    ) {
+
+        List<FwjslDTO> resultlist = threeRateService.getResetTimelyRateInfo(companyId, windpowerstationId, beginDate, endDate);
+        if (StringUtils.isNotNull(resultlist)) {
+            return R.data(ResultMsg.ok(resultlist));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 状态转换率
+     *
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/state-conversion-rate")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R getStateConversionRateInfo(
+            @RequestParam(value = "companyId", required = false) String companyId,
+            @RequestParam(value = "windpowerstationId", required = false) String windpowerstationId,
+            @RequestParam(value = "beginDate", required = true) String beginDate,
+            @RequestParam(value = "endDate", required = true) String endDate
+    ) {
+        Map<String, List<FwjslDTO>> resultlist = threeRateService.getStateConversionRateInfo(companyId, windpowerstationId, beginDate, endDate);
+        if (StringUtils.isNotNull(resultlist)) {
+            return R.data(ResultMsg.ok(resultlist));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    /**
+     * 消缺及时率
+     *
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/defects-eliminat-rate")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R getDefectsEliminatRateList(
+            @RequestParam(value = "companyId", required = false) String companyId,
+            @RequestParam(value = "windpowerstationId", required = false) String windpowerstationId,
+            @RequestParam(value = "beginDate", required = true) String beginDate,
+            @RequestParam(value = "endDate", required = true) String endDate
+    ) {
+        List<QxjslDTO> resultlist = threeRateService.getDefectsEliminatRateList(companyId, windpowerstationId,beginDate, endDate);
+        if (StringUtils.isNotNull(resultlist)) {
+            return R.data(ResultMsg.ok(resultlist));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+}

+ 98 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/update/TargetEnterController.java

@@ -0,0 +1,98 @@
+package com.gyee.runeconomy.controller.update;/*
+@author   谢生杰
+@date   2023/5/16-9:54
+*/
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.dto.R;
+import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.model.auto.ProBasicPowerstation;
+import com.gyee.runeconomy.model.auto.ProBasicUser;
+import com.gyee.runeconomy.model.auto.ProEconTargetdata;
+import com.gyee.runeconomy.service.update.TargetEnterService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+@RequestMapping("//enter")
+public class TargetEnterController {
+    @Resource
+    private TargetEnterService targetEnterService;
+
+    @PostMapping(value = "/enter")
+    @ApiOperation(value = "登录", notes = "登录")
+    public R login(@RequestBody ProBasicUser user
+                                    ) {
+        ProBasicUser proBasicUser = targetEnterService.login(user);
+        if (StringUtils.isNotNull(proBasicUser)) {
+            return R.data(ResultMsg.ok(proBasicUser));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @PostMapping(value = "/target")
+    @ApiOperation(value = "增", notes = "增")
+    public R save(@RequestBody ProEconTargetdata data) {
+        boolean b = targetEnterService.save(data);
+        if (b) {
+            return R.data(ResultMsg.ok(b));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @PutMapping(value = "/target")
+    @ApiOperation(value = "改", notes = "改")
+    public R update(@RequestBody ProEconTargetdata data) {
+        boolean b = targetEnterService.update(data);
+        if (b) {
+            return R.data(ResultMsg.ok(b));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @DeleteMapping(value = "/target/{id}")
+    @ApiOperation(value = "删", notes = "删")
+    public R delete(@PathVariable String id) {
+        boolean b = targetEnterService.delete(id);
+        if (b) {
+            return R.data(ResultMsg.ok(b));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+    @GetMapping(value = "/target")
+    @ApiOperation(value = "查", notes = "查")
+    public R get(@RequestParam(value = "wpid", required = true) String wpid,
+                 @RequestParam(value = "date", required = true) String date) {
+        List<ProEconTargetdata> resultList  = targetEnterService.get(wpid,date);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+    @GetMapping(value = "/wpls")
+    @ApiOperation(value = "查场站", notes = "查场站")
+    public R wpls(@RequestParam(value = "wpid", required = true) String wpid) {
+        List<ProBasicPowerstation> resultList  = targetEnterService.wpls(wpid);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.data(ResultMsg.ok(resultList));
+        } else {
+            return R.error(ResultMsg.error());
+        }
+    }
+
+
+
+}

+ 104 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/AjaxResult.java

@@ -0,0 +1,104 @@
+package com.gyee.runeconomy.dto;
+
+import java.util.HashMap;
+
+/**
+* @ClassName: AjaxResult
+* @Description: ajax操作消息提醒
+* @author gyee
+* @date 2018年8月18日
+*
+ */
+public class AjaxResult extends HashMap<String, Object>
+{
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 初始化一个新创建的 Message 对象
+     */
+    public AjaxResult()
+    {
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @return 错误消息
+     */
+    public static AjaxResult error()
+    {
+        return error(1, "操作失败");
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @param msg 内容
+     * @return 错误消息
+     */
+    public static AjaxResult error(String msg)
+    {
+        return error(500, msg);
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @param code 错误码
+     * @param msg 内容
+     * @return 错误消息
+     */
+    public static AjaxResult error(int code, String msg)
+    {
+        AjaxResult json = new AjaxResult();
+        json.put("code", code);
+        json.put("msg", msg);
+        return json;
+    }
+
+    /**
+     * 返回成功消息
+     * 
+     * @param msg 内容
+     * @return 成功消息
+     */
+    public static AjaxResult success(String msg)
+    {
+        AjaxResult json = new AjaxResult();
+        json.put("msg", msg);
+        json.put("code", 200);
+        return json;
+    }
+    
+    /**
+     * 返回成功消息
+     * 
+     * @return 成功消息
+     */
+    public static AjaxResult success()
+    {
+        return AjaxResult.success("操作成功");
+    }
+    
+    public static AjaxResult successData(int code, Object value){
+    	 AjaxResult json = new AjaxResult();
+    	 json.put("code", code);
+         json.put("data", value);
+         return json;
+    }
+   
+    
+    /**
+     * 返回成功消息
+     * 
+     * @param key 键值
+     * @param value 内容
+     * @return 成功消息
+     */
+    @Override
+    public AjaxResult put(String key, Object value)
+    {
+        super.put(key, value);
+        return this;
+    }
+}

+ 364 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/DataVo.java

@@ -0,0 +1,364 @@
+
+package com.gyee.runeconomy.dto;
+
+/**
+ * 
+ * 
+ * 项目名称:nxfd 类名称:DataVo 类描述: 创建人:石林 创建时间:2014-3-4 下午2:34:22 修改人:shilinno1
+ * 修改时间:2014-3-4 下午2:34:22 修改备注:
+ * 
+ * @version
+ * 
+ */
+
+public class DataVo {
+
+
+    private Long time;
+    private String timestr;
+    private Double value1;
+
+    private Double value2;
+
+    private Double value3;
+
+    private Double value4;
+
+    private Double value5;
+
+    private Double value6;
+
+    private Double value7;
+
+    private Double value8;
+
+    private Double value9;
+
+    private Double value10;
+
+    private Double value11;
+
+    private Double value12;
+
+    private Double value13;
+
+    private Double speed;
+
+    private String name;
+
+    private String url;
+
+    private String aName;
+
+    private String desc;
+
+    private String datefomat;
+
+    private Long minRange;
+    private Long pointInterval;
+    private Integer year;
+    private Integer month;
+    private Integer day;
+    private String id;
+    private Integer hours;
+    private Integer minutes;
+    private Integer seconds;
+
+    private Long beginDate;
+    private Long endDate;
+    private Long beginDateDay;
+    private Long endDateDay;
+
+    private String value;
+
+    private ValueObjVo valueObjVo;
+
+    public ValueObjVo getValueObjVo() {
+        return valueObjVo;
+    }
+
+    public void setValueObjVo(ValueObjVo valueObjVo) {
+        this.valueObjVo = valueObjVo;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public Long getMinRange() {
+        return minRange;
+    }
+
+    public void setMinRange(Long minRange) {
+        this.minRange = minRange;
+    }
+
+    public Long getPointInterval() {
+        return pointInterval;
+    }
+
+    public void setPointInterval(Long pointInterval) {
+        this.pointInterval = pointInterval;
+    }
+
+    public Integer getHours() {
+        return hours;
+    }
+
+    public void setHours(Integer hours) {
+        this.hours = hours;
+    }
+
+    public Integer getMinutes() {
+        return minutes;
+    }
+
+    public void setMinutes(Integer minutes) {
+        this.minutes = minutes;
+    }
+
+    public Integer getSeconds() {
+        return seconds;
+    }
+
+    public void setSeconds(Integer seconds) {
+        this.seconds = seconds;
+    }
+
+    public Long getTime() {
+        return time;
+    }
+
+    public void setTime(Long time) {
+        this.time = time;
+    }
+
+    public Double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+
+    public Double getValue1() {
+        return value1;
+    }
+
+    public void setValue1(Double value1) {
+        this.value1 = value1;
+    }
+
+    public Double getValue2() {
+        return value2;
+    }
+
+    public void setValue2(Double value2) {
+        this.value2 = value2;
+    }
+
+    public Double getValue3() {
+        return value3;
+    }
+
+    public void setValue3(Double value3) {
+        this.value3 = value3;
+    }
+
+    public Double getValue4() {
+        return value4;
+    }
+
+    public void setValue4(Double value4) {
+        this.value4 = value4;
+    }
+
+    public Double getValue5() {
+        return value5;
+    }
+
+    public void setValue5(Double value5) {
+        this.value5 = value5;
+    }
+
+    public Double getValue6() {
+        return value6;
+    }
+
+    public void setValue6(Double value6) {
+        this.value6 = value6;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getaName() {
+        return aName;
+    }
+
+    public void setaName(String aName) {
+        this.aName = aName;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getYear() {
+        return year;
+    }
+
+    public void setYear(Integer year) {
+        this.year = year;
+    }
+
+    public Integer getMonth() {
+        return month;
+    }
+
+    public void setMonth(Integer month) {
+        this.month = month;
+    }
+
+    public Integer getDay() {
+        return day;
+    }
+
+    public void setDay(Integer day) {
+        this.day = day;
+    }
+
+    public Long getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Long beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Long getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Long endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getDatefomat() {
+        return datefomat;
+    }
+
+    public void setDatefomat(String datefomat) {
+        this.datefomat = datefomat;
+    }
+
+    public Long getBeginDateDay() {
+        return beginDateDay;
+    }
+
+    public void setBeginDateDay(Long beginDateDay) {
+        this.beginDateDay = beginDateDay;
+    }
+
+    public Long getEndDateDay() {
+        return endDateDay;
+    }
+
+    public void setEndDateDay(Long endDateDay) {
+        this.endDateDay = endDateDay;
+    }
+
+    public String getTimestr() {
+        return timestr;
+    }
+
+    public void setTimestr(String timestr) {
+        this.timestr = timestr;
+    }
+
+    public Double getValue7() {
+        return value7;
+    }
+
+    public void setValue7(Double value7) {
+        this.value7 = value7;
+    }
+
+    public Double getValue8() {
+        return value8;
+    }
+
+    public void setValue8(Double value8) {
+        this.value8 = value8;
+    }
+
+    public Double getValue9() {
+        return value9;
+    }
+
+    public void setValue9(Double value9) {
+        this.value9 = value9;
+    }
+
+    public Double getValue10() {
+        return value10;
+    }
+
+    public void setValue10(Double value10) {
+        this.value10 = value10;
+    }
+
+    public Double getValue11() {
+        return value11;
+    }
+
+    public void setValue11(Double value11) {
+        this.value11 = value11;
+    }
+
+    public Double getValue12() {
+        return value12;
+    }
+
+    public void setValue12(Double value12) {
+        this.value12 = value12;
+    }
+
+    public Double getValue13() {
+        return value13;
+    }
+
+    public void setValue13(Double value13) {
+        this.value13 = value13;
+    }
+
+}

+ 72 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/EchartDataVo.java

@@ -0,0 +1,72 @@
+
+package com.gyee.runeconomy.dto;
+
+/**
+ *
+ */
+
+public class EchartDataVo {
+
+    private String name;
+    private String xAxis;
+
+    private ItemStyle itemStyle;
+
+    private String time1;
+    private String time2;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getxAxis() {
+        return xAxis;
+    }
+
+    public void setxAxis(String xAxis) {
+        this.xAxis = xAxis;
+    }
+
+    public String getTime1() {
+        return time1;
+    }
+
+    public void setTime1(String time1) {
+        this.time1 = time1;
+    }
+
+    public String getTime2() {
+        return time2;
+    }
+
+    public void setTime2(String time2) {
+        this.time2 = time2;
+    }
+
+    public ItemStyle getItemStyle() {
+        return itemStyle;
+    }
+
+    public void setItemStyle(ItemStyle itemStyle) {
+        this.itemStyle = itemStyle;
+    }
+
+    public class ItemStyle
+    {
+
+        private String color;
+        public String getColor() {
+            return color;
+        }
+
+        public void setColor(String color) {
+            this.color = color;
+        }
+
+    }
+
+}

+ 181 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/EquipmentInfoDayTopDTO.java

@@ -0,0 +1,181 @@
+package com.gyee.runeconomy.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+@Data
+public class EquipmentInfoDayTopDTO {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 风场编号
+     */
+    private String windpowerstationId;
+
+    /**
+     * 风场名称
+     */
+    private String windpowerstationName;
+
+    /**
+     * 风机编号
+     */
+    private String windturbineId;
+
+    /**
+     * 风机名称
+     */
+    private String windturbineName;
+
+    /**
+     * 日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date recordDate;
+
+    /**
+     * 发电量
+     */
+    private Double fdl;
+
+    /**
+     * 理论发电量
+     */
+    private Double llfdl;
+
+    /**
+     * 平均风速
+     */
+    private Double fs;
+
+    /**
+     * 平均功率
+     */
+    private Double gl;
+
+    /**
+     * 故障损失电量
+     */
+    private Double gzssdl;
+
+    /**
+     * 电损失电量
+     */
+    private Double xdssdl;
+
+
+    /**
+     * 护损失电量
+     */
+    private Double whssdl;
+
+
+    /**
+     * 性能损失电量
+     */
+    private Double xnssdl;
+
+
+    /**
+     * 故障时间
+     */
+    private Double gzsj;
+
+    /**
+     * 维护时间
+     */
+    private Double whsj;
+
+    /**
+     * 运行时间
+     */
+    private Double yxsj;
+
+    /**
+     * 停机时间
+     */
+    private Double tjsj;
+
+
+    /**
+     * 利用小时数
+     */
+    private Double lyxs;
+
+    /**
+     * 拟合优度
+     */
+    private Double nhyd;
+
+    /**
+     * 设备可利用率
+     */
+    private Double sbklyl;
+
+
+    /**
+     * 等效可用系数
+     */
+    private Double dxkyxs;
+
+    /**
+     * 有效风时数
+     */
+    private Double yxfss;
+
+    /**
+     * 小风切入
+     */
+    private Double xfqr;
+
+    /**
+     * 静风频率
+     */
+    private Double jfpl;
+
+
+    /**
+     * 功率一致性系数
+     */
+    private Double glyzxxs;
+
+
+    /**
+     * 类型
+     */
+    private Integer types;
+
+    /**
+     * 综合排名
+     */
+    private Integer rank;
+
+    /**
+     * 年
+     */
+    private Integer year;
+
+    /**
+     * 月
+     */
+    private Integer month;
+
+    /**
+     * 分数
+     */
+    private Double score;
+
+    /**
+     * 等级
+     */
+    private String level;
+
+}

+ 115 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/PowercurveVo.java

@@ -0,0 +1,115 @@
+package com.gyee.runeconomy.dto;
+
+public class PowercurveVo {
+    private Double bzgl;
+
+    private Double sjgl;
+
+    private Double ssfs;
+
+    private Double llgl;
+
+    private Double gzzs;
+
+    private Integer hours;
+
+    private String name;
+
+    private Double fnlyl;
+
+    private Double rfdl;
+
+    private Double nfdl;
+
+    private Double yfdl;
+
+    public Double getYfdl() {
+        return yfdl;
+    }
+
+    public void setYfdl(Double yfdl) {
+        this.yfdl = yfdl;
+    }
+
+    public Double getNfdl() {
+        return nfdl;
+    }
+
+    public void setNfdl(Double nfdl) {
+        this.nfdl = nfdl;
+    }
+
+    public Double getRfdl() {
+        return rfdl;
+    }
+
+    public void setRfdl(Double rfdl) {
+        this.rfdl = rfdl;
+    }
+
+    public Double getFnlyl() {
+        return fnlyl;
+    }
+
+    public void setFnlyl(Double fnlyl) {
+        this.fnlyl = fnlyl;
+    }
+
+    public Double getBzgl() {
+        return bzgl;
+    }
+
+    public void setBzgl(Double bzgl) {
+        this.bzgl = bzgl;
+    }
+
+    public Double getSjgl() {
+        return sjgl;
+    }
+
+    public void setSjgl(Double sjgl) {
+        this.sjgl = sjgl;
+    }
+
+    public Double getSsfs() {
+        return ssfs;
+    }
+
+    public void setSsfs(Double ssfs) {
+        this.ssfs = ssfs;
+    }
+
+    public Double getLlgl() {
+        return llgl;
+    }
+
+    public void setLlgl(Double llgl) {
+        this.llgl = llgl;
+    }
+
+    public Integer getHours() {
+        return hours;
+    }
+
+    public void setHours(Integer hours) {
+        this.hours = hours;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Double getGzzs() {
+        return gzzs;
+    }
+
+    public void setGzzs(Double gzzs) {
+        this.gzzs = gzzs;
+    }
+
+
+
+}

+ 34 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ProjectplanVo.java

@@ -0,0 +1,34 @@
+package com.gyee.runeconomy.dto;
+
+public class ProjectplanVo {
+    private Double jhdl;
+
+    private Double sjdl;
+
+    private Integer hours;
+
+
+    public Double getJhdl() {
+        return jhdl;
+    }
+
+    public void setJhdl(Double jhdl) {
+        this.jhdl = jhdl;
+    }
+
+    public Double getSjdl() {
+        return sjdl;
+    }
+
+    public void setSjdl(Double sjdl) {
+        this.sjdl = sjdl;
+    }
+
+    public Integer getHours() {
+        return hours;
+    }
+
+    public void setHours(Integer hours) {
+        this.hours = hours;
+    }
+}

+ 36 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/R.java

@@ -0,0 +1,36 @@
+package com.gyee.runeconomy.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName : R
+ * @Author : xieshengjie
+ * @Date: 2021/5/16 16:59
+ * @Description : 结果集
+ */
+@Data
+public class R {
+
+    @ApiModelProperty(value = "返回码")
+    private Integer code;
+    @ApiModelProperty(value = "返回数据")
+    private ResultMsg data = new ResultMsg();
+
+    private R(){}
+
+    public static R error(ResultMsg error){
+        R r = new R();
+        r.setData(error);
+        r.setCode(ResultCode.ERROR1);
+        return r;
+    }
+
+    public static R data(ResultMsg ok) {
+
+        R r = new R();
+        r.setCode(ResultCode.SUCCESS0);
+        r.setData(ok);
+        return r;
+    }
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ResultCode.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.dto;
+
+/**
+ * @ClassName : ResultCode
+ * @Author : xieshengjie
+ * @Date: 2021/5/16 17:01
+ * @Description : 结果状态
+ */
+public class ResultCode {
+    public static Integer SUCCESS = 200;
+    public static Integer ERROR = 500;
+
+    public static Integer SUCCESS0 = 0;
+    public static Integer ERROR1 = -1;
+
+}

+ 87 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ResultInfo.java

@@ -0,0 +1,87 @@
+package com.gyee.runeconomy.dto;
+
+import lombok.Data;
+
+/**
+ *@ClassName ResultInfo
+ *@Description 返回结果类统一封装
+ *@Author 谢生杰
+ *@Date 2020/9/25 18:53
+ *@Version 1.0
+ **/
+@Data
+public class ResultInfo {
+    // 状态码
+    private Integer code;
+    // 消息
+    private String message;
+    // 数据对象
+    private Object result;
+
+    private Integer total;
+
+    /**
+     * 无参构造器
+     */
+    public ResultInfo() {
+        super();
+    }
+
+    public ResultInfo(Status status) {
+        super();
+        this.code = status.code;
+        this.message = status.message;
+    }
+
+    public ResultInfo result(Object result) {
+        this.result = result;
+        return this;
+    }
+
+    public ResultInfo message(String message) {
+        this.message = message;
+        return this;
+    }
+    public ResultInfo total(Integer total) {
+        this.total = total;
+        return this;
+    }
+
+    /**
+     * 只返回状态,状态码,消息
+     *
+     * @param code
+     * @param message
+     */
+    public ResultInfo(Integer code, String message) {
+        super();
+        this.code = code;
+        this.message = message;
+    }
+
+    /**
+     * 只返回状态,状态码,数据对象
+     *
+     * @param code
+     * @param result
+     */
+    public ResultInfo(Integer code, Object result) {
+        super();
+        this.code = code;
+        this.result = result;
+    }
+
+    /**
+     * 返回全部信息即状态,状态码,消息,数据对象
+     *
+     * @param code
+     * @param message
+     * @param result
+     */
+    public ResultInfo(Integer code, String message, Object result) {
+        super();
+        this.code = code;
+        this.message = message;
+        this.result = result;
+    }
+}

+ 96 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ResultMsg.java

@@ -0,0 +1,96 @@
+package com.gyee.runeconomy.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName : R
+ * @Author : xieshengjie
+ * @Date: 2021/5/16 16:59
+ * @Description : 结果集
+ */
+@Data
+public class ResultMsg{
+    @ApiModelProperty(value = "是否成功")
+    private Boolean success;
+    @ApiModelProperty(value = "返回码")
+    private Integer code;
+    @ApiModelProperty(value = "返回消息")
+    private String message;
+    @ApiModelProperty(value = "总数量")
+    private Integer count;
+    @ApiModelProperty(value = "返回数据")
+    private Object data = new Object();
+
+    public ResultMsg(){}
+    public static ResultMsg ok(){
+        ResultMsg r = new ResultMsg();
+        r.setSuccess(true);
+        r.setCode(ResultCode.SUCCESS);
+        r.setMessage("成功");
+        return r;
+    }
+
+
+    public static ResultMsg ok(Object data ){
+        ResultMsg r = new ResultMsg();
+        r.setSuccess(true);
+        r.setCode(ResultCode.SUCCESS);
+        r.setData(data);
+        r.setMessage("成功");
+        return r;
+    }
+
+    public static ResultMsg ok(Object data,Integer count ){
+        ResultMsg r = new ResultMsg();
+        r.setSuccess(true);
+        r.setCode(ResultCode.SUCCESS);
+        r.setData(data);
+        r.setMessage("成功");
+        r.setCount(count);
+        return r;
+    }
+
+
+    public static ResultMsg ok(Integer count){
+        ResultMsg r = new ResultMsg();
+        r.setSuccess(true);
+        r.setCode(ResultCode.SUCCESS);
+        r.setMessage("成功");
+        r.setCount(count);
+        return r;
+    }
+    public static ResultMsg error(){
+        ResultMsg r = new ResultMsg();
+        r.setSuccess(false);
+        r.setCode(ResultCode.ERROR);
+        r.setMessage("失败");
+        return r;
+    }
+
+
+    public ResultMsg success(Boolean success){
+        this.setSuccess(success);
+        return this;
+    }
+    public ResultMsg message(String message){
+        this.setMessage(message);
+        return this;
+    }
+    public static ResultMsg errorMsg(String msg){
+        ResultMsg r = new ResultMsg();
+        r.setSuccess(false);
+        r.setCode(ResultCode.ERROR);
+        r.setMessage(msg);
+        return r;
+    }
+    public ResultMsg code(Integer code){
+        this.setCode(code);
+        return this;
+    }
+
+    public  ResultMsg data(Object value){
+        this.setData(value);
+        return this;
+    }
+}

+ 49 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/SawVo.java

@@ -0,0 +1,49 @@
+package com.gyee.runeconomy.dto;
+
+public class SawVo implements java.io.Serializable {
+
+	// Fields
+
+	private static final long serialVersionUID = 1L;
+
+	private Integer num;
+	private String name;
+	private Integer frequency;
+	private Integer frequencyday;
+	private Double totalhours;
+	
+	
+	
+	public Integer getFrequencyday() {
+		return frequencyday;
+	}
+	public void setFrequencyday(Integer frequencyday) {
+		this.frequencyday = frequencyday;
+	}
+	public Integer getNum() {
+		return num;
+	}
+	public void setNum(Integer num) {
+		this.num = num;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Integer getFrequency() {
+		return frequency;
+	}
+	public void setFrequency(Integer frequency) {
+		this.frequency = frequency;
+	}
+	public Double getTotalhours() {
+		return totalhours;
+	}
+	public void setTotalhours(Double totalhours) {
+		this.totalhours = totalhours;
+	}
+	
+	
+}

+ 42 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/Status.java

@@ -0,0 +1,42 @@
+package com.gyee.runeconomy.dto;
+/**
+ *@ClassName Status
+ *@Description 枚举类对象
+ *@Author 谢生杰
+ *@Date 2020/9/25 18:54
+ *@Version 1.0
+ **/
+public enum Status {
+    // 公共
+    SUCCESS(2000, "成功"),
+    UNKNOWN_ERROR(9998,"未知异常"),
+    SYSTEM_ERROR(9999, "系统异常"),
+
+
+    INSUFFICIENT_PERMISSION(4003, "权限不足"),
+
+    WARN(9000, "失败"),
+    REQUEST_PARAMETER_ERROR(1002, "请求参数错误"),
+
+
+
+    // 登录
+    LOGIN_EXPIRE(2001, "未登录或者登录失效"),
+    LOGIN_CODE_ERROR(2002, "登录验证码错误"),
+    LOGIN_ERROR(2003, "用户名不存在或密码错误"),
+    LOGIN_USER_STATUS_ERROR(2004, "用户状态不正确"),
+    LOGOUT_ERROR(2005, "退出失败,token不存在"),
+    LOGIN_USER_NOT_EXIST(2006, "该用户不存在"),
+    LOGIN_USER_EXIST(2007, "该用户已存在");
+
+
+
+
+    public int code;
+    public String message;
+
+    Status(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+}

+ 62 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ValueObjVo.java

@@ -0,0 +1,62 @@
+/** 
+ * Project Name:nxfd2 
+ * File Name:Value.java 
+ * Package Name:com.hcks.cmfds.vo 
+ * Date:2016-7-12下午04:16:42 
+ * Copyright (c) 2016, chenzhou1025@126.com All Rights Reserved. 
+ * 
+ */
+
+package com.gyee.runeconomy.dto;
+
+/**
+ * ClassName:Value <br/>
+ * Function: TODO ADD FUNCTION. <br/>
+ * Reason: TODO ADD REASON. <br/>
+ * Date: 2016-7-12 下午04:16:42 <br/>
+ * 
+ * @author 石林
+ * @version
+ * @since JDK 1.6
+ * @see
+ */
+public class ValueObjVo {
+
+    private Double value;
+    private String symbol;
+    private Integer symbolSize;
+    private Double symbolRotate;
+
+    public Double getValue() {
+        return value;
+    }
+
+    public void setValue(Double value) {
+        this.value = value;
+    }
+
+    public String getSymbol() {
+        return symbol;
+    }
+
+    public void setSymbol(String symbol) {
+        this.symbol = symbol;
+    }
+
+    public Integer getSymbolSize() {
+        return symbolSize;
+    }
+
+    public void setSymbolSize(Integer symbolSize) {
+        this.symbolSize = symbolSize;
+    }
+
+    public Double getSymbolRotate() {
+        return symbolRotate;
+    }
+
+    public void setSymbolRotate(Double symbolRotate) {
+        this.symbolRotate = symbolRotate;
+    }
+
+}

+ 15 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/ZllglDTO.java

@@ -0,0 +1,15 @@
+
+package com.gyee.runeconomy.dto;
+
+import lombok.Data;
+
+@Data
+public class ZllglDTO {
+
+    private String id;
+    private String modelId;//机型
+    private double speed;
+    private double theoryPower;
+    private double ensurePower;
+
+}

+ 371 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/EconHomePagePointRateDTO.java

@@ -0,0 +1,371 @@
+package com.gyee.runeconomy.dto.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 经济运行首页指标率响应类
+ */
+@Data
+public class EconHomePagePointRateDTO {
+
+//    curr
+//    ring
+//    with
+    /**
+     * 故障损失率
+     */
+    private BigDecimal currGzsll;
+    private BigDecimal ringGzslzzl;
+    private BigDecimal withGzslzzl;
+
+    /**
+     * 检修损失率
+     */
+    private BigDecimal currJxsll;
+    private BigDecimal ringJxslzzl;
+    private BigDecimal withJxslzzl;
+
+
+    /**
+     * 限电损失率
+     */
+    private BigDecimal currXdsll;
+    private BigDecimal ringXdslzzl;
+    private BigDecimal withXdslzzl;
+
+    /**
+     * 受累损失率
+     */
+    private BigDecimal currSlsll;
+    private BigDecimal ringSlslzzl;
+    private BigDecimal withSlslzzl;
+
+
+    /**
+     * 性能损失率
+     */
+    private BigDecimal currXNsll;
+    private BigDecimal ringXnslzzl;
+    private BigDecimal withXnslzzl;
+
+
+    /**
+     * 复位及时率/综合效率
+     */
+    private BigDecimal currFwjsl;
+    private BigDecimal ringFwjszzl;
+    private BigDecimal withFwjszzl;
+
+    /**
+     * 状态转换率/离散率
+     */
+    private BigDecimal currZtzhl;
+    private BigDecimal ringZtzhzzl;
+    private BigDecimal withZtzhzzl;
+
+    /**
+     * 消缺及时率/转换效率
+     */
+    private BigDecimal currXqjsl;
+    private BigDecimal ringXqjszzl;
+    private BigDecimal withXqjszzl;
+
+    /**
+     * 综合常用电率
+     */
+    private BigDecimal currZhcydl;
+    private BigDecimal ringZhcydzzl;
+    private BigDecimal withZhcydzzl;
+    /**
+     * 功率曲线符合率
+     */
+    private BigDecimal currGlqxfhl;
+    private BigDecimal ringGlqxfhzzl;
+    private BigDecimal withGlqxfhzzl;
+
+    /**
+     * 设备可利用率
+     */
+    private BigDecimal currSbklyl;
+    private BigDecimal ringSbklyzzl;
+    private BigDecimal withSbklyzzl;
+
+    public BigDecimal getCurrGzsll() {
+        if(null == currGzsll){
+            return new BigDecimal(0.00);
+        }
+        currGzsll = compare100(currGzsll);
+        return currGzsll;
+    }
+
+    public BigDecimal getRingGzslzzl() {
+        if(null == ringGzslzzl){
+            return new BigDecimal(0.00);
+        }
+        ringGzslzzl = compare100(ringGzslzzl);
+        return ringGzslzzl;
+    }
+
+    public BigDecimal getWithGzslzzl() {
+        if(null == withGzslzzl){
+            return new BigDecimal(0.00);
+        }
+        withGzslzzl = compare100(withGzslzzl);
+        return withGzslzzl;
+    }
+
+    public BigDecimal getCurrJxsll() {
+        if(null == currJxsll){
+            return new BigDecimal(0.00);
+        }
+        currJxsll = compare100(currJxsll);
+        return currJxsll;
+    }
+
+    public BigDecimal getRingJxslzzl() {
+        if(null == ringJxslzzl){
+            return new BigDecimal(0.00);
+        }
+        ringJxslzzl = compare100(ringJxslzzl);
+        return ringJxslzzl;
+    }
+
+    public BigDecimal getWithJxslzzl() {
+        if(null == withJxslzzl){
+            return new BigDecimal(0.00);
+        }
+        withJxslzzl = compare100(withJxslzzl);
+        return withJxslzzl;
+    }
+
+    public BigDecimal getCurrXdsll() {
+        if(null == currXdsll){
+            return new BigDecimal(0.00);
+        }
+        currXdsll = compare100(currXdsll);
+        return currXdsll;
+    }
+
+    public BigDecimal getRingXdslzzl() {
+        if(null == ringXdslzzl){
+            return new BigDecimal(0.00);
+        }
+        ringXdslzzl = compare100(ringXdslzzl);
+        return ringXdslzzl;
+    }
+
+    public BigDecimal getWithXdslzzl() {
+        if(null == withXdslzzl){
+            return new BigDecimal(0.00);
+        }
+        withXdslzzl = compare100(withXdslzzl);
+        return withXdslzzl;
+    }
+
+    public BigDecimal getCurrSlsll() {
+        if(null == currSlsll){
+            return new BigDecimal(0.00);
+        }
+        currSlsll = compare100(currSlsll);
+        return currSlsll;
+    }
+
+    public BigDecimal getRingSlslzzl() {
+        if(null == ringSlslzzl){
+            return new BigDecimal(0.00);
+        }
+        ringSlslzzl = compare100(ringSlslzzl);
+        return ringSlslzzl;
+    }
+
+    public BigDecimal getWithSlslzzl() {
+        if(null == withSlslzzl){
+            return new BigDecimal(0.00);
+        }
+        withSlslzzl = compare100(withSlslzzl);
+        return withSlslzzl;
+    }
+
+    public BigDecimal getCurrXNsll() {
+        if(null == currXNsll){
+            return new BigDecimal(0.00);
+        }
+        currXNsll = compare100(currXNsll);
+        return currXNsll;
+    }
+
+    public BigDecimal getRingXnslzzl() {
+        if(null == ringXnslzzl){
+            return new BigDecimal(0.00);
+        }
+        ringXnslzzl = compare100(ringXnslzzl);
+        return ringXnslzzl;
+    }
+
+    public BigDecimal getWithXnslzzl() {
+        if(null == withXnslzzl){
+            return new BigDecimal(0.00);
+        }
+        withXnslzzl = compare100(withXnslzzl);
+        return withXnslzzl;
+    }
+
+    public BigDecimal getCurrFwjsl() {
+        if(null == currFwjsl){
+            return new BigDecimal(0.00);
+        }
+        currFwjsl = compare100(currFwjsl);
+        return currFwjsl;
+    }
+
+    public BigDecimal getRingFwjszzl() {
+        if(null == ringFwjszzl){
+            return new BigDecimal(0.00);
+        }
+        ringFwjszzl = compare100(ringFwjszzl);
+        return ringFwjszzl;
+    }
+
+    public BigDecimal getWithFwjszzl() {
+        if(null == withFwjszzl){
+            return new BigDecimal(0.00);
+        }
+        withFwjszzl = compare100(withFwjszzl);
+        return withFwjszzl;
+    }
+
+    public BigDecimal getCurrZtzhl() {
+        if(null == currZtzhl){
+            return new BigDecimal(0.00);
+        }
+        currZtzhl = compare100(currZtzhl);
+        return currZtzhl;
+    }
+
+    public BigDecimal getRingZtzhzzl() {
+        if(null == ringZtzhzzl){
+            return new BigDecimal(0.00);
+        }
+        ringZtzhzzl = compare100(ringZtzhzzl);
+        return ringZtzhzzl;
+    }
+
+    public BigDecimal getWithZtzhzzl() {
+        if(null == withZtzhzzl){
+            return new BigDecimal(0.00);
+        }
+        withZtzhzzl = compare100(withZtzhzzl);
+        return withZtzhzzl;
+    }
+
+    public BigDecimal getCurrXqjsl() {
+        if(null == currXqjsl){
+            return new BigDecimal(0.00);
+        }
+        currXqjsl = compare100(currXqjsl);
+        return currXqjsl;
+    }
+
+    public BigDecimal getRingXqjszzl() {
+        if(null == ringXqjszzl){
+            return new BigDecimal(0.00);
+        }
+        ringXqjszzl = compare100(ringXqjszzl);
+        return ringXqjszzl;
+    }
+
+    public BigDecimal getWithXqjszzl() {
+        if(null == withXqjszzl){
+            return new BigDecimal(0.00);
+        }
+        withXqjszzl = compare100(withXqjszzl);
+        return withXqjszzl;
+    }
+
+    public BigDecimal getCurrZhcydl() {
+        if(null == currZhcydl){
+            return new BigDecimal(0.00);
+        }
+        currZhcydl = compare100(currZhcydl);
+        return currZhcydl;
+    }
+
+    public BigDecimal getRingZhcydzzl() {
+        if(null == ringZhcydzzl){
+            return new BigDecimal(0.00);
+        }
+        ringZhcydzzl = compare100(ringZhcydzzl);
+        return ringZhcydzzl;
+    }
+
+    public BigDecimal getWithZhcydzzl() {
+        if(null == withZhcydzzl){
+            return new BigDecimal(0.00);
+        }
+        withZhcydzzl = compare100(withZhcydzzl);
+        return withZhcydzzl;
+    }
+
+    public BigDecimal getCurrGlqxfhl() {
+        if(null == currGlqxfhl){
+            return new BigDecimal(0.00);
+        }
+        currGlqxfhl = compare100(currGlqxfhl);
+        return currGlqxfhl;
+    }
+
+    public BigDecimal getRingGlqxfhzzl() {
+        if(null == ringGlqxfhzzl){
+            return new BigDecimal(0.00);
+        }
+        ringGlqxfhzzl = compare100(ringGlqxfhzzl);
+        return ringGlqxfhzzl;
+    }
+
+    public BigDecimal getWithGlqxfhzzl() {
+        if(null == withGlqxfhzzl){
+            return new BigDecimal(0.00);
+        }
+        withGlqxfhzzl = compare100(withGlqxfhzzl);
+        return withGlqxfhzzl;
+    }
+
+    public BigDecimal getCurrSbklyl() {
+        if(null == currSbklyl){
+            return new BigDecimal(0.00);
+        }
+        currSbklyl = compare100(currSbklyl);
+        return currSbklyl;
+    }
+
+    public BigDecimal getRingSbklyzzl() {
+        if(null == ringSbklyzzl){
+            return new BigDecimal(0.00);
+        }
+        ringSbklyzzl = compare100(ringSbklyzzl);
+        return ringSbklyzzl;
+    }
+
+    public BigDecimal getWithSbklyzzl() {
+        if(null == withSbklyzzl){
+            return new BigDecimal(0.00);
+        }
+        withSbklyzzl = compare100(withSbklyzzl);
+        return withSbklyzzl;
+    }
+
+    private BigDecimal compare100(BigDecimal a) {
+        BigDecimal b = new BigDecimal(100);
+        if (b.compareTo(a) == -1) {
+            a = new BigDecimal(100);
+        }
+
+        if (a.compareTo(BigDecimal.ZERO) == -1) {
+            a = new BigDecimal(0);
+        }
+        return a;
+
+    }
+}

+ 36 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/FwjslDTO.java

@@ -0,0 +1,36 @@
+package com.gyee.runeconomy.dto.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : FwjslVo
+ * @Author : admin
+ * @Date: 2022-11-23
+ * @Description : 复位及时率Dto
+ * */
+@Data
+public class FwjslDTO implements Serializable {
+    private static final long serialVersionUID = -9120640092604681619L;
+//	--5分钟复位及时次数
+//	--10分钟复位及时次数
+//	--15分钟复位及时次数
+//	--20分钟复位及时次数
+//    --总复位次数
+
+    private Integer ordernum;
+
+    private String wpid;
+    private Date date;
+    private double yfwcs;
+    private double wfz;
+    private double wfzfwl;
+    private double sfz;
+    private double sfzfwl;
+    private double swfz;
+    private double swfzfwl;
+    private double esfz;
+    private double esfzfwl;
+}

+ 34 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/ProEconPointCodeDTO.java

@@ -0,0 +1,34 @@
+package com.gyee.runeconomy.dto.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ProEconPointCodeDTO {
+
+    private String stationname;
+    private String stationcode;
+    private String description;
+    private BigDecimal value;
+
+
+    public BigDecimal getValue() {
+        return compare100(value);
+    }
+
+
+    private BigDecimal compare100(BigDecimal a) {
+
+        if (null == a) {
+            a = new BigDecimal(0);
+
+        }
+
+        if (a.compareTo(BigDecimal.ZERO) == -1) {
+            a = new BigDecimal(0);
+        }
+        return a;
+
+    }
+}

+ 17 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/dto/response/QxjslDTO.java

@@ -0,0 +1,17 @@
+package com.gyee.runeconomy.dto.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class QxjslDTO implements Serializable {
+    private static final long serialVersionUID = 6002241313346335418L;
+
+    private Integer ordernum;
+
+    private String wpid;
+    private Long gzCount;
+    private Long xqCount;
+    private Double xqjsl;
+}

+ 957 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/init/CacheContext.java

@@ -0,0 +1,957 @@
+package com.gyee.runeconomy.init;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.gyee.common.model.StringUtils;
+import com.gyee.runeconomy.model.auto.*;
+import com.gyee.runeconomy.service.auto.*;
+import com.gyee.runeconomy.service.realtimelibrary.TheoreticalPowerService;
+import com.gyee.runeconomy.util.redis.RedisService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName : CacheContext
+ * @Author : xieshengjie
+ * @Date: 2021/5/18 9:35
+ * @Description : 缓存
+ */
+@Component
+public class CacheContext implements CommandLineRunner {
+    Logger logger = LoggerFactory.getLogger(CacheContext.class);
+
+    private final String QS = "0";
+
+    @Resource
+    private IProBasicEquipmentService proBasicEquipmentService;
+    @Resource
+    private IProBasicLineService proBasicLineService;
+    @Resource
+    private IProBasicProjectService proBasicProjectService;
+
+    @Resource
+    private IProBasicPowerstationService proBasicWindpowerstationService;
+    @Resource
+    private IProBasicMeterPointService proBasicMeterPointService;
+    @Resource
+    private IProEconEquipmentmodelService proEconEquipmentmodelService;
+
+    @Resource
+    private IProBasicWindturbinePowerService proBasicWindturbinePowerService;
+    @Resource
+    private RedisService redisService;
+    @Resource
+    private IProBasicModelPowerService proBasicModelPowerService;
+    @Resource
+    private IProBasicSubStationService proBasicSubStationService;
+    @Resource
+    private IProBasicWeatherStationService proBasicWeatherStationService;
+    @Resource
+    private IProBasicSquareService proBasicSquareService;
+    @Resource
+    private IProBasicCompanyService proBasicCompanyService;
+    @Resource
+    private IProBasicRegionService proBasicRegionService;
+    @Resource
+    private IProBasicEnergyGroupService proBasicEnergyGroupService;
+    @Resource
+    private IProBasicBranchService proBasicBranchService;
+    @Resource
+    private TheoreticalPowerService theoreticalPowerService;
+    @Resource
+    private IProBasicModelPowerRdService proBasicModelPowerRdService;
+    @Resource
+    private IProBasicPowerstationPointService proBasicPowerstationPointService;
+    @Resource
+    private IProBasicEquipmentPointService proBasicEquipmentPointService;
+
+    @Resource
+    private IProBasicOrganizeTreeService proBasicOrganizeTreeService;
+
+
+    public static List<ProBasicBranch> bnls = new ArrayList<>();
+//    public static List<ProBasicEquipment> wtls = new ArrayList<>();
+//    public static List<ProBasicProject> pjls = new ArrayList<>();
+//    public static List<ProBasicLine>  lnls = new ArrayList<>();
+//    public static List<ProBasicSubStation>  subwpls = new ArrayList<>();
+    public static List<ProBasicWeatherStation>  weawpls = new ArrayList<>();
+//    public static List<ProBasicSquare> sqls = new ArrayList<>();
+//    public static List<ProBasicPowerstation>  wpls = new ArrayList<>();
+//    public static List<ProBasicPowerstation>  wplsf = new ArrayList<>();
+//    public static List<ProBasicPowerstation>  wplsG = new ArrayList<>(); //光电集合
+    public static List<ProBasicPowerstation>  zwpls = new ArrayList<>();
+//    public static List<ProBasicCompany>  cpls = new ArrayList<>();
+    public static List<ProBasicCompany>  cpls1 = new ArrayList<>();
+//    public static List<ProBasicRegion>  rgls = new ArrayList<>();
+//    public static List<ProBasicEnergyGroup>  gpls = new ArrayList<>();
+
+    public static List<ProBasicOrganizeTree> sqls = new ArrayList<>(); //阵区
+    public static List<ProBasicOrganizeTree> cpls = new ArrayList<>();//公司
+    public static List<ProBasicOrganizeTree> rgls = new ArrayList<>();//区域
+    public static List<ProBasicOrganizeTree> gpls = new ArrayList<>();//集团
+    public static List<ProBasicOrganizeTree> wpls = new ArrayList<>();//场站
+    public static List<ProBasicOrganizeTree> wtls = new ArrayList<>();//设备
+    public static List<ProBasicOrganizeTree> pjls = new ArrayList<>();//期次
+    public static List<ProBasicOrganizeTree>  lnls = new ArrayList<>();
+    public static List<ProBasicOrganizeTree>  subwpls = new ArrayList<>(); //变电所
+    public static List<ProBasicOrganizeTree>  wplsf = new ArrayList<>();
+    public static List<ProBasicOrganizeTree>  wplsG = new ArrayList<>(); //光电集合
+
+
+//    public static Map<String,ProBasicProject> pjmap = new HashMap<>();
+//    public static Map<String,ProBasicLine> lnmap = new HashMap<>();
+//    public static Map<String,ProBasicRegion> rgmap = new HashMap<>();
+//    public static Map<String,ProBasicCompany> cpmap = new HashMap<>();
+//    public static Map<String,ProBasicEnergyGroup> gpmap = new HashMap<>();
+
+    public static Map<String,ProBasicOrganizeTree> sqmap = new HashMap<>();
+    public static Map<String,ProBasicOrganizeTree> cpmap = new HashMap<>();
+    public static Map<String,ProBasicOrganizeTree> rgmap = new HashMap<>();
+    public static Map<String,ProBasicOrganizeTree> gpmap = new HashMap<>();
+    public static Map<String, ProBasicOrganizeTree> wtmap = new HashMap<>();
+    public static Map<String,ProBasicOrganizeTree> pjmap = new HashMap<>();
+    public static Map<String,ProBasicOrganizeTree> lnmap = new HashMap<>();
+    public static Map<String, ProBasicOrganizeTree> wpmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> rgcpmap = new HashMap<>();//区域子公司
+    public static Map<Object,List<ProBasicOrganizeTree>> cpwpmap = new HashMap<>();//公司场站
+    public static Map<Object,List<ProBasicOrganizeTree>> wpwtmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> pjwtmap = new HashMap<>();
+    public static Map<String,List<ProBasicOrganizeTree>> protreejmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> lnwtmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> cmwtlsmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> rgwtlsmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> sqwtmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> prolinemap = new HashMap<>();
+//    public static Map<Object,List<ProBasicOrganizeTree>> cpwpmap = new HashMap<>();
+    public static Map<String,List<ProBasicOrganizeTree>> wpmapls = new HashMap<>();
+    public static Map<Object,Map<String,ProBasicOrganizeTree>> cmwtmap = new HashMap<>();
+    public static Map<Object,List<ProBasicOrganizeTree>> wppromap = new HashMap<>();
+    public static Map<String,String> wtstandardmap = new HashMap<>();//标杆
+
+
+//    public static Map<String,List<ProBasicPowerstation>> cpwpmap = new HashMap<>();
+//    public static Map<String,List<ProBasicPowerstation>> wpmapls = new HashMap<>();
+    public static Map<String,List<ProBasicPowerstation>> stationls = new HashMap<>();
+    public static Map<String,List<ProBasicBranch>> wtbnmap = new HashMap<>();
+//    public static Map<String,List<ProBasicCompany>> rgcpmap = new HashMap<>();
+//    public static Map<String,ProBasicSquare> sqmap = new HashMap<>();
+//    public static Map<String, ProBasicPowerstation> wpmap = new HashMap<>();
+    public static List<ProBasicMeterPoint>  meterpoints = new ArrayList<>();
+    public static Map<String,ProBasicMeterPoint>  meterpointMap = new HashMap<>();
+//    public static Map<String,List<ProBasicProject>> wppromap = new HashMap<>();
+    public static Map<String,List<ProBasicProject>> projmap = new HashMap<>();
+//    public static Map<String,List<ProBasicLine>> prolinemap = new HashMap<>();
+//    public static Map<String,List<ProBasicEquipment>> wpwtmap = new HashMap<>();
+//    public static Map<String,List<ProBasicEquipment>> pjwtmap = new HashMap<>();
+//    public static Map<String,List<ProBasicEquipment>> lnwtmap = new HashMap<>();
+//    public static Map<String,List<ProBasicEquipment>> cmwtlsmap = new HashMap<>();
+//    public static Map<String,List<ProBasicEquipment>> rgwtlsmap = new HashMap<>();
+//    public static Map<String,Map<String,ProBasicEquipment>> cmwtmap = new HashMap<>();
+//    public static Map<String,List<ProBasicEquipment>> sqwtmap = new HashMap<>();
+    public static Map<String, Map<String, ProBasicEquipmentPoint>> bnAimap = new HashMap<>();
+    public static Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = new HashMap<>();// 风电机测点AI表
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> linepointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> propointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> wppointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> subwppointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> weatherwppointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> companypointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> regionpointmap =new HashMap<>();
+    public static Map<String,Map<String, ProBasicPowerstationPoint>> grouppointmap =new HashMap<>();
+
+    public static Map<String,Map<Double,Double>> zbzglMap = new HashMap<>();
+    public static Map<String,ProEconEquipmentmodel> modelMap = new HashMap<>();
+    public static Map<String,Map<Double,Double>> zzsglMap = new HashMap<>();
+    public static Map<String,Double> modelpower = new HashMap<>();
+
+//    public static Map<String,String> wtstandardmap = new HashMap<>();
+//    public static Map<String, ProBasicEquipment> wtmap = new HashMap<>();
+
+    public static Map<String,Map<Double,ProBasicModelPower>> modelpowermap = new TreeMap<>();
+
+    public static List<ProBasicModelPower> mpls=new ArrayList<>();
+
+    public static List<ProEconEquipmentmodel> equipmentmodels=new ArrayList<>();
+
+    public static Map<String,List<ProBasicEquipment>> subWtsMap = new HashMap<>();
+    public static List<ProBasicModelPowerRd> theoreticalPowerList=new ArrayList<>();
+    public static Map<String, Map<Double,ProBasicModelPowerRd>> theoreticalPowerMap = new HashMap<>(); //理论,保证功率
+    public static Map<String, Map<Double,ProEconWtPowerCurveFitting>> curveFittingPowerMap = new HashMap<>(); //自算,最优功率
+    public static Map<String,List<ProBasicStatusPoint>> statusMap = new HashMap<>();
+
+    @Override
+    public void run(String... args) throws Exception {
+        logger.info("缓存开始------------------------------------------------------------");
+
+
+        bnls = proBasicBranchService.list();
+        bnls.stream().forEach(bn->{
+            String bnString = redisService.get(bn.getId());
+            Map<String, ProBasicEquipmentPoint> stringWindturbinetestingpointnewMap = JSONObject.parseObject(bnString, new TypeReference<Map<String, ProBasicEquipmentPoint>>() {
+            });
+            bnAimap.put(bn.getId(),stringWindturbinetestingpointnewMap);
+
+            if (wtbnmap.containsKey(bn.getInteverId())){
+                wtbnmap.get(bn.getInteverId()).add(bn);
+            }else {
+                List<ProBasicBranch> bns = new ArrayList<>();
+                bns.add(bn);
+                wtbnmap.put(bn.getInteverId(),bns);
+            }
+        });
+
+        equipmentmodels = proEconEquipmentmodelService.list();
+        equipmentmodels.stream().forEach(e->{
+            modelMap.put(e.getId(),e);
+        });
+        mpls=proBasicModelPowerService.list();
+        mpls.sort(Comparator.comparing(ProBasicModelPower::getSpeed));
+        if(!mpls.isEmpty())
+        {
+
+            for(ProBasicModelPower mp:mpls)
+            {
+                if(modelpowermap.containsKey(mp.getModelId()))
+                {
+                    Map<Double,ProBasicModelPower> tempmap=modelpowermap.get(mp.getModelId());
+                    tempmap.put(mp.getSpeed(),mp);
+
+                }else {
+                    Map<Double,ProBasicModelPower> tempmap=new HashMap<>();
+                    tempmap.put(mp.getSpeed(),mp);
+                    modelpowermap.put(mp.getModelId(),tempmap);
+                }
+            }
+        }
+
+
+//        sqls=proBasicSquareService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());
+//        if (!sqls.isEmpty())
+//        {
+//            for(ProBasicSquare sq:sqls)
+//            {
+//                sqmap.put(sq.getId(),sq);
+//            }
+//        }
+
+        //树形方阵
+        sqls = proBasicOrganizeTreeService.list().stream().filter(i->i.getOrgType().contains("AG") && i.getIsAble()==1).collect(Collectors.toList());
+        if (!sqls.isEmpty())
+        {
+            for (ProBasicOrganizeTree sq : sqls)
+            {
+                sqmap.put(sq.getParentCode(),sq);
+            }
+        }
+
+//        cpls=proBasicCompanyService.list().stream().filter(i->i.getIsAble().equals(1)).collect(Collectors.toList());
+//
+//        cpls1=proBasicCompanyService.list().stream().filter(i->i.getSpare2().equals("1")).collect(Collectors.toList());
+//        if (!cpls.isEmpty())
+//        {
+//            for(ProBasicCompany sq:cpls)
+//            {
+//                cpmap.put(sq.getId(),sq);
+//
+//                if (redisService.hasKey(sq.getId()+"0")){
+//                    String cp0String = redisService.get(sq.getId()+"0");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    companypointmap.put(sq.getId()+"0",stringWindpowerstationpointnewMap);
+//                }
+//                if (redisService.hasKey(sq.getId()+"-1")){
+//                    String cp1String = redisService.get(sq.getId()+"-1");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    companypointmap.put(sq.getId()+"-1",stringWindpowerstationpointnewMap);
+//                }
+//                if (redisService.hasKey(sq.getId()+"-2")){
+//                    String cp2String = redisService.get(sq.getId()+"-2");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    companypointmap.put(sq.getId()+"-2",stringWindpowerstationpointnewMap);
+//                }
+//
+//
+//
+//
+//            }
+//
+//        }
+
+        //三级公司树形
+        cpls=proBasicOrganizeTreeService.list().stream().filter(i->i.getIsAble().equals(1) && i.getOrgType().contains("ZGS")).collect(Collectors.toList());
+        if (!cpls.isEmpty())
+        {
+            for(ProBasicOrganizeTree sq:cpls)
+            {
+                cpmap.put(sq.getParentCode(),sq);
+
+                if (redisService.hasKey(sq.getParentCode()+"0")){
+                    String cp0String = redisService.get(sq.getParentCode()+"0");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    companypointmap.put(sq.getParentCode()+"0",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getParentCode()+"-1")){
+                    String cp1String = redisService.get(sq.getParentCode()+"-1");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    companypointmap.put(sq.getParentCode()+"-1",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getParentCode()+"-2")){
+                    String cp2String = redisService.get(sq.getParentCode()+"-2");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    companypointmap.put(sq.getParentCode()+"-2",stringWindpowerstationpointnewMap);
+                }
+            }
+        }
+
+//        rgls=proBasicRegionService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());
+//
+//
+//        if  (!rgls.isEmpty())
+//        {
+//            for(ProBasicRegion sq:rgls)
+//            {
+//                rgmap.put(sq.getId(),sq);
+//
+//                if (redisService.hasKey(sq.getId()+"0")){
+//                    String cp0String = redisService.get(sq.getId()+"0");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    regionpointmap.put(sq.getId()+"0",stringWindpowerstationpointnewMap);
+//                }
+//                if (redisService.hasKey(sq.getId()+"-1")){
+//                    String cp1String = redisService.get(sq.getId()+"-1");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    regionpointmap.put(sq.getId()+"-1",stringWindpowerstationpointnewMap);
+//                }
+//                if (redisService.hasKey(sq.getId()+"-2")){
+//                    String cp2String = redisService.get(sq.getId()+"-2");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    regionpointmap.put(sq.getId()+"-2",stringWindpowerstationpointnewMap);
+//                }
+//            }
+//        }
+
+
+        //区域树形
+        rgls=proBasicOrganizeTreeService.list().stream().filter(i->i.getIsAble()==1 && i.getOrgType().contains("RGN")).collect(Collectors.toList());
+        if  (!rgls.isEmpty())
+        {
+            for(ProBasicOrganizeTree sq:rgls)
+            {
+                rgmap.put(sq.getParentCode(),sq);
+
+                if (redisService.hasKey(sq.getParentCode()+"0")){
+                    String cp0String = redisService.get(sq.getParentCode()+"0");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    regionpointmap.put(sq.getParentCode()+"0",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getParentCode()+"-1")){
+                    String cp1String = redisService.get(sq.getParentCode()+"-1");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    regionpointmap.put(sq.getParentCode()+"-1",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(sq.getParentCode()+"-2")){
+                    String cp2String = redisService.get(sq.getParentCode()+"-2");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    regionpointmap.put(sq.getParentCode()+"-2",stringWindpowerstationpointnewMap);
+                }
+            }
+        }
+//
+//        List<ProBasicEnergyGroup> energyGroups = proBasicEnergyGroupService.list();
+//        gpls = energyGroups.stream().filter(e->e.getIsAble()==1 && e.getId().endsWith("FGS")).collect(Collectors.toList());
+//
+//        if  (!gpls.isEmpty())
+//        {
+//            for(ProBasicEnergyGroup gp:gpls)
+//            {
+//                gpmap.put(gp.getId(),gp);
+//
+//                if (redisService.hasKey(gp.getId()+"0")){
+//                    String cp0String = redisService.get(gp.getId()+"0");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    grouppointmap.put(gp.getId()+"0",stringWindpowerstationpointnewMap);
+//                }
+//                if (redisService.hasKey(gp.getId()+"-1")){
+//                    String cp1String = redisService.get(gp.getId()+"-1");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    grouppointmap.put(gp.getId()+"-1",stringWindpowerstationpointnewMap);
+//                }
+//                if (redisService.hasKey(gp.getId()+"-2")){
+//                    String cp2String = redisService.get(gp.getId()+"-2");
+//                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//                    });
+//                    grouppointmap.put(gp.getId()+"-2",stringWindpowerstationpointnewMap);
+//                }
+//            }
+//        }
+
+
+
+        //集团树形
+        List<ProBasicOrganizeTree> energyGroupList = proBasicOrganizeTreeService.list();
+        gpls = energyGroupList.stream().filter(e->e.getIsAble()==1 && e.getOrgType().contains("JT")).collect(Collectors.toList());
+
+        if  (!gpls.isEmpty())
+        {
+            for(ProBasicOrganizeTree gp:gpls)
+            {
+                gpmap.put(gp.getParentCode(),gp);
+
+                if (redisService.hasKey(gp.getParentCode()+"0")){
+                    String cp0String = redisService.get(gp.getParentCode()+"0");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp0String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    grouppointmap.put(gp.getParentCode()+"0",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(gp.getParentCode()+"-1")){
+                    String cp1String = redisService.get(gp.getParentCode()+"-1");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp1String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    grouppointmap.put(gp.getParentCode()+"-1",stringWindpowerstationpointnewMap);
+                }
+                if (redisService.hasKey(gp.getParentCode()+"-2")){
+                    String cp2String = redisService.get(gp.getParentCode()+"-2");
+                    Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(cp2String, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+                    });
+                    grouppointmap.put(gp.getParentCode()+"-2",stringWindpowerstationpointnewMap);
+                }
+            }
+        }
+
+
+
+//        for(ProBasicCompany cp:cpls)
+//        {
+//            if (rgcpmap.containsKey(cp.getRegionId())){
+//                rgcpmap.get(cp.getRegionId()).add(cp);
+//            }else {
+//                List<ProBasicCompany> wps = new ArrayList<>();
+//                wps.add(cp);
+//                rgcpmap.put(cp.getRegionId(),wps);
+//            }
+//        }
+
+
+        //区域子公司树形
+        for(ProBasicOrganizeTree cp:cpls)
+        {
+            if (rgcpmap.containsKey(cp.getOrgType().contains("RGN"))){
+                rgcpmap.get(cp.getOrgType().contains("RGN")).add(cp);
+            }else {
+                List<ProBasicOrganizeTree> wps = new ArrayList<>();
+                wps.add(cp);
+                rgcpmap.put(cp.getOrgType().contains("RGN"),wps);
+            }
+        }
+
+//        for(ProBasicPowerstation wp:wpls)
+//        {
+//            if (cpwpmap.containsKey(wp.getCompanyId())){
+//                cpwpmap.get(wp.getCompanyId()).add(wp);
+//            }else {
+//                List<ProBasicPowerstation> wps = new ArrayList<>();
+//                wps.add(wp);
+//                cpwpmap.put(wp.getCompanyId(),wps);
+//            }
+//        }
+
+        for(ProBasicOrganizeTree wp:wpls)
+        {
+            if (cpwpmap.containsKey(wp.getOrgType().contains("STA"))){
+                cpwpmap.get(wp.getOrgType().contains("STA")).add(wp);
+            }else {
+                List<ProBasicOrganizeTree> wps = new ArrayList<>();
+                wps.add(wp);
+                cpwpmap.put(wp.getOrgType().contains("STA"),wps);
+            }
+        }
+
+
+//        wtls = proBasicEquipmentService.list().stream().filter(i->i.getIsable()==1).collect(Collectors.toList());
+//        logger.info(wtls.size()+"");
+//        wtls.forEach(wt->{
+//            if(modelMap.containsKey(wt.getModelId()))
+//            {
+//                ProEconEquipmentmodel equipmentmodel = modelMap.get(wt.getModelId());
+//                modelpower.put(wt.getId(),equipmentmodel.getPowerProduction().doubleValue());
+//            }
+//
+//
+//            wtmap.put(wt.getId(),wt);
+//            //标杆风机初始化
+//            wtstandardmap.put(wt.getId(),wt.getId());
+//            String wtString = redisService.get(wt.getId());
+//            Map<String, ProBasicEquipmentPoint> stringWindturbinetestingpointnewMap = JSONObject.parseObject(wtString, new TypeReference<Map<String, ProBasicEquipmentPoint>>() {
+//            });
+//            wtpAimap.put(wt.getId(),stringWindturbinetestingpointnewMap);
+//
+//
+//            if (wpwtmap.containsKey(wt.getWindpowerstationId())){
+//                wpwtmap.get(wt.getWindpowerstationId()).add(wt);
+//            }else {
+//                List<ProBasicEquipment> wps = new ArrayList<>();
+//                wps.add(wt);
+//                wpwtmap.put(wt.getWindpowerstationId(),wps);
+//            }
+//
+//            if (pjwtmap.containsKey(wt.getProjectId())){
+//                pjwtmap.get(wt.getProjectId()).add(wt);
+//            }else {
+//                List<ProBasicEquipment> pjs = new ArrayList<>();
+//                pjs.add(wt);
+//                pjwtmap.put(wt.getProjectId(),pjs);
+//            }
+//            if (lnwtmap.containsKey(wt.getLineId())){
+//                lnwtmap.get(wt.getLineId()).add(wt);
+//            }else {
+//                List<ProBasicEquipment> lnls = new ArrayList<>();
+//                lnls.add(wt);
+//                lnwtmap.put(wt.getLineId(),lnls);
+//            }
+//            if (cmwtlsmap.containsKey(wt.getCompanyId())){
+//                cmwtlsmap.get(wt.getCompanyId()).add(wt);
+//            }else {
+//                List<ProBasicEquipment> cmls = new ArrayList<>();
+//                cmls.add(wt);
+//                cmwtlsmap.put(wt.getCompanyId(),cmls);
+//            }
+//            if (rgwtlsmap.containsKey(wt.getRegionId())){
+//                rgwtlsmap.get(wt.getRegionId()).add(wt);
+//            }else {
+//                List<ProBasicEquipment> rgls = new ArrayList<>();
+//                rgls.add(wt);
+//                rgwtlsmap.put(wt.getRegionId(),rgls);
+//            }
+//
+//            if (sqwtmap.containsKey(wt.getSquareId())){
+//                sqwtmap.get(wt.getSquareId()).add(wt);
+//            }else {
+//                List<ProBasicEquipment> lnls = new ArrayList<>();
+//                lnls.add(wt);
+//                sqwtmap.put(wt.getSquareId(),lnls);
+//            }
+//
+//            if (cmwtmap.containsKey(wt.getCompanyId())){
+//                cmwtmap.get(wt.getCompanyId()).put(wt.getId(),wt);
+//            }else {
+//                Map<String,ProBasicEquipment> map=new HashMap<>();
+//                map.put(wt.getId(),wt);
+//                cmwtmap.put(wt.getCompanyId(),map);
+//            }
+//        });
+
+
+
+        //树形设备
+        wtls = proBasicOrganizeTreeService.list().stream().filter(i->i.getIsAble()==1 && i.getId().endsWith("_EQ")).collect(Collectors.toList());
+        logger.info(wtls.size()+"");
+        wtls.forEach(wt->{
+            if(modelMap.containsKey(wt.getModelId()))
+            {
+                ProEconEquipmentmodel equipmentmodel = modelMap.get(wt.getModelId());
+                modelpower.put(wt.getId(),equipmentmodel.getPowerProduction().doubleValue());
+            }
+
+
+            wtmap.put(wt.getId(),wt);
+            //标杆风机初始化
+            wtstandardmap.put(wt.getId(),wt.getId());
+            String wtString = redisService.get(wt.getId());
+            Map<String, ProBasicEquipmentPoint> stringWindturbinetestingpointnewMap = JSONObject.parseObject(wtString, new TypeReference<Map<String, ProBasicEquipmentPoint>>() {
+            });
+            wtpAimap.put(wt.getId(),stringWindturbinetestingpointnewMap);
+
+
+            if (wpwtmap.containsKey(wt.getOrgType().contains("STA"))){
+                wpwtmap.get(wt.getOrgType().contains("STA")).add(wt);
+            }else {
+                List<ProBasicOrganizeTree> wps = new ArrayList<>();
+                wps.add(wt);
+                wpwtmap.put(wt.getOrgType().contains("STA"),wps);
+            }
+
+            if (pjwtmap.containsKey(wt.getOrgType().contains("EG"))){
+                pjwtmap.get(wt.getOrgType().contains("EG")).add(wt);
+            }else {
+                List<ProBasicOrganizeTree> pjs = new ArrayList<>();
+                pjs.add(wt);
+                pjwtmap.put(wt.getOrgType().contains("EG"),pjs);
+            }
+
+            if (lnwtmap.containsKey(wt.getOrgType().contains("LN"))){
+                lnwtmap.get(wt.getOrgType().contains("LN")).add(wt);
+            }else {
+                List<ProBasicOrganizeTree> lnls = new ArrayList<>();
+                lnls.add(wt);
+                lnwtmap.put(wt.getOrgType().contains("LN"),lnls);
+            }
+            if (cmwtlsmap.containsKey(wt.getOrgType().contains("ZGS"))){
+                cmwtlsmap.get(wt.getOrgType().contains("ZGS")).add(wt);
+            }else {
+                List<ProBasicOrganizeTree> cmls = new ArrayList<>();
+                cmls.add(wt);
+                cmwtlsmap.put(wt.getOrgType().contains("ZGS"),cmls);
+            }
+            if (rgwtlsmap.containsKey(wt.getOrgType().contains("RGN"))){
+                rgwtlsmap.get(wt.getOrgType().contains("RGN")).add(wt);
+            }else {
+                List<ProBasicOrganizeTree> rgls = new ArrayList<>();
+                rgls.add(wt);
+                rgwtlsmap.put(wt.getOrgType().contains("RGN"),rgls);
+            }
+
+            if (sqwtmap.containsKey(wt.getOrgType().contains("AG"))){
+                sqwtmap.get(wt.getOrgType().contains("AG")).add(wt);
+            }else {
+                List<ProBasicOrganizeTree> lnls = new ArrayList<>();
+                lnls.add(wt);
+                sqwtmap.put(wt.getOrgType().contains("AG"),lnls);
+            }
+
+            if (cmwtmap.containsKey(wt.getOrgType().contains("ZGS"))){
+                cmwtmap.get(wt.getOrgType().contains("ZGS")).put(wt.getId(),wt);
+            }else {
+                Map<String,ProBasicOrganizeTree> map=new HashMap<>();
+                map.put(wt.getId(),wt);
+                cmwtmap.put(wt.getOrgType().contains("ZGS"),map);
+            }
+        });
+
+
+//
+//        //初始化标杆风机
+//        for(ProBasicEquipment wt:wtls)
+//        {
+//            if(wpwtmap.containsKey(wt.getLineId()))
+//            {
+//                List<ProBasicEquipment> wts=wpwtmap.get(wt.getLineId());
+//                for(ProBasicEquipment w:wts)
+//                {
+//                    if(StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard()!=0)
+//                    {
+//                        wtstandardmap.put(wt.getId(),w.getId());
+//                        break;
+//                    }
+//                }
+//            }
+//            if(pjwtmap.containsKey(wt.getLineId()))
+//            {
+//                List<ProBasicEquipment> wts=pjwtmap.get(wt.getLineId());
+//                for(ProBasicEquipment w:wts)
+//                {
+//                    if(StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard()!=0)
+//                    {
+//                        wtstandardmap.put(wt.getId(),w.getId());
+//                        break;
+//                    }
+//                }
+//            }
+//            if(lnwtmap.containsKey(wt.getLineId()))
+//            {
+//                List<ProBasicEquipment> wts=lnwtmap.get(wt.getLineId());
+//                for(ProBasicEquipment w:wts)
+//                {
+//                    if(StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard()!=0)
+//                    {
+//                        wtstandardmap.put(wt.getId(),w.getId());
+//                        break;
+//                    }
+//                }
+//            }
+//        }
+
+
+        //树形初始化标杆风机
+        for(ProBasicOrganizeTree wt : wtls)
+        {
+            if(wpwtmap.containsKey(wt.getOrgType().contains("LN")))
+            {
+                List<ProBasicOrganizeTree> wts=wpwtmap.get(wt.getOrgType().contains("LN"));
+                for(ProBasicOrganizeTree w:wts)
+                {
+                    if(StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard()!=0)
+                    {
+                        wtstandardmap.put(wt.getId(),w.getId());
+                        break;
+                    }
+                }
+            }
+            if(pjwtmap.containsKey(wt.getOrgType().contains("LN")))
+            {
+                List<ProBasicOrganizeTree> wts=pjwtmap.get(wt.getOrgType().contains("LN"));
+                for(ProBasicOrganizeTree w:wts)
+                {
+                    if(StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard()!=0)
+                    {
+                        wtstandardmap.put(wt.getId(),w.getId());
+                        break;
+                    }
+                }
+            }
+            if(lnwtmap.containsKey(wt.getOrgType().contains("LN")))
+            {
+                List<ProBasicOrganizeTree> wts=lnwtmap.get(wt.getOrgType().contains("LN"));
+                for(ProBasicOrganizeTree w:wts)
+                {
+                    if(StringUtils.notEmp(w.getIsStandard()) && w.getIsStandard()!=0)
+                    {
+                        wtstandardmap.put(wt.getId(),w.getId());
+                        break;
+                    }
+                }
+            }
+        }
+
+
+
+
+//        pjls = proBasicProjectService.list().stream().filter(i-> i.getIsAble()==1).collect(Collectors.toList());
+//        pjls.stream().forEach(p->{
+//            pjmap.put(p.getId(),p);
+//            if (wppromap.containsKey(p.getWindpowerstationId())){
+//                wppromap.get(p.getWindpowerstationId()).add(p);
+//            }else {
+//                List<ProBasicProject> prolist = new ArrayList<>();
+//                prolist.add(p);
+//                wppromap.put(p.getWindpowerstationId(),prolist);
+//            }
+//            String pjString = redisService.get(p.getId());
+//            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(pjString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//            });
+//            propointmap.put(p.getId(),stringWindpowerstationpointnewMap);
+//
+//        });
+
+
+        //期次场站树形
+        pjls = proBasicOrganizeTreeService.list().stream().filter(i-> i.getIsAble()==1 && i.getOrgType().contains("EG")).collect(Collectors.toList());
+        pjls.stream().forEach(p->{
+            pjmap.put(p.getId(),p);
+            if (wppromap.containsKey(p.getOrgType().contains("STA"))){
+                wppromap.get(p.getOrgType().contains("STA")).add(p);
+            }else {
+                List<ProBasicOrganizeTree> prolist = new ArrayList<>();
+                prolist.add(p);
+                wppromap.put(p.getOrgType().contains("STA"),prolist);
+            }
+            String pjString = redisService.get(p.getId());
+            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(pjString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+            });
+            propointmap.put(p.getId(),stringWindpowerstationpointnewMap);
+
+        });
+
+
+
+//        projmap = pjls.stream().collect(Collectors.groupingBy(ProBasicProject::getWindpowerstationId));
+
+//        subwpls = proBasicSubStationService.list().stream().filter(i-> i.getIsAble()==1).collect(Collectors.toList());
+//        subwpls.stream().forEach(sub->{
+//
+//            String subString = redisService.get(sub.getId());
+//            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(subString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//            });
+//            subwppointmap.put(sub.getId(),stringWindpowerstationpointnewMap);
+//
+//        });
+
+
+
+        subwpls = proBasicOrganizeTreeService.list().stream().filter(i-> i.getIsAble()==1 && i.getOrgType().contains("SBS")).collect(Collectors.toList());
+        subwpls.stream().forEach(sub->{
+
+            String subString = redisService.get(sub.getId());
+            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(subString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+            });
+            subwppointmap.put(sub.getId(),stringWindpowerstationpointnewMap);
+
+        });
+
+
+        weawpls = proBasicWeatherStationService.list().stream().filter(i-> i.getIsAble()==1).collect(Collectors.toList());
+        weawpls.stream().forEach(weather->{
+
+            String subString = redisService.get(weather.getId());
+            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(subString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+            });
+            weatherwppointmap.put(weather.getId(),stringWindpowerstationpointnewMap);
+
+
+        });
+
+//
+//        //线路
+//        lnls = proBasicLineService.list().stream().filter(i-> StringUtils.isNotNull(pjmap.get(i.getProjectId())) && i.getIsAble()==1).collect(Collectors.toList());
+//        lnls.stream().forEach(l->{
+//            lnmap.put(l.getId(),l);
+//            if (prolinemap.containsKey(l.getProjectId())){
+//                prolinemap.get(l.getProjectId()).add(l);
+//            }else {
+//                List<ProBasicLine> lineList = new ArrayList<>();
+//                lineList.add(l);
+//                prolinemap.put(l.getProjectId(),lineList);
+//            }
+//            String lnString = redisService.get(l.getId());
+//            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(lnString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//            });
+//            linepointmap.put(l.getId(),stringWindpowerstationpointnewMap);
+//        });
+
+
+        //树形线路
+        lnls = proBasicOrganizeTreeService.list().stream().filter(i-> StringUtils.isNotNull(pjmap.get(i.getOrgType().contains("EG"))) && i.getIsAble()==1).collect(Collectors.toList());
+        lnls.stream().forEach(l->{
+            lnmap.put(l.getId(),l);
+            if (prolinemap.containsKey(l.getOrgType().contains("EG"))){
+                prolinemap.get(l.getOrgType().contains("EG")).add(l);
+            }else {
+                List<ProBasicOrganizeTree> lineList = new ArrayList<>();
+                lineList.add(l);
+                prolinemap.put(l.getOrgType().contains("EG"),lineList);
+            }
+            String lnString = redisService.get(l.getId());
+            Map<String, ProBasicPowerstationPoint> stringWindpowerstationpointnewMap = JSONObject.parseObject(lnString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+            });
+            linepointmap.put(l.getId(),stringWindpowerstationpointnewMap);
+        });
+
+//
+//        zwpls = proBasicWindpowerstationService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());
+//        wpls = proBasicWindpowerstationService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());
+//        for(ProBasicPowerstation wp:wpls)
+//        {
+//            if (cpwpmap.containsKey(wp.getCompanyId())){
+//                cpwpmap.get(wp.getCompanyId()).add(wp);
+//            }else {
+//                List<ProBasicPowerstation> wps = new ArrayList<>();
+//                wps.add(wp);
+//                cpwpmap.put(wp.getCompanyId(),wps);
+//            }
+//        }
+//        meterpoints = proBasicMeterPointService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());
+//        meterpoints.stream().forEach(meterpoint -> {
+//            meterpointMap.put(meterpoint.getId(),meterpoint);
+//        });
+
+
+        for(ProBasicOrganizeTree wp:wpls)
+        {
+            if (cpwpmap.containsKey(wp.getOrgType().contains("ZGS"))){
+                cpwpmap.get(wp.getOrgType().contains("ZGS")).add(wp);
+            }else {
+                List<ProBasicOrganizeTree> wps = new ArrayList<>();
+                wps.add(wp);
+                cpwpmap.put(wp.getOrgType().contains("ZGS"),wps);
+            }
+        }
+        meterpoints = proBasicMeterPointService.list().stream().filter(i->i.getIsAble()==1).collect(Collectors.toList());
+        meterpoints.stream().forEach(meterpoint -> {
+            meterpointMap.put(meterpoint.getId(),meterpoint);
+        });
+
+//        wpls.stream().forEach(wp->{
+//
+//            wpmap.put(wp.getId(),wp);
+//            String wpString = redisService.get(wp.getId());
+//            Map<String, ProBasicPowerstationPoint> stringMapMap = JSONObject.parseObject(wpString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+//            });
+//            wppointmap.put(wp.getId(),stringMapMap);
+//        });
+
+        wpls.stream().forEach(wp->{
+
+            wpmap.put(wp.getId(),wp);
+            String wpString = redisService.get(wp.getId());
+            Map<String, ProBasicPowerstationPoint> stringMapMap = JSONObject.parseObject(wpString, new TypeReference<Map<String, ProBasicPowerstationPoint>>() {
+            });
+            wppointmap.put(wp.getId(),stringMapMap);
+        });
+
+
+
+//        if (!wpls.isEmpty()) {
+//            for (ProBasicPowerstation wp : wpls) {
+//                if (wp.getId().endsWith("FDC_STA")) {
+//                    wplsf.add(wp);
+//                }
+//                if (wp.getId().endsWith("GDC_STA")) {
+//                    wplsG.add(wp);
+//                }
+//
+//                if(wpmapls.containsKey(wp.getId()))
+//                {
+//                    List<ProBasicPowerstation> ls=wpmapls.get(wp.getId());
+//                    ls.add(wp);
+//                    wpmapls.put(wp.getId(),ls);
+//                }else {
+//                    List<ProBasicPowerstation> ls=new ArrayList<>();
+//                    ls.add(wp);
+//                    wpmapls.put(wp.getId(),ls);
+//                }
+//
+//                wpmap.put(wp.getId(),wp);
+//            }
+//        }
+
+        if (!wpls.isEmpty()) {
+            for (ProBasicOrganizeTree wp : wpls) {
+                if (wp.getEleType().contains("F")) {
+                    wplsf.add(wp);
+                }
+                if (wp.getEleType().contains("G")) {
+                    wplsG.add(wp);
+                }
+
+                if(wpmapls.containsKey(wp.getId()))
+                {
+                    List<ProBasicOrganizeTree> ls=wpmapls.get(wp.getId());
+                    ls.add(wp);
+                    wpmapls.put(wp.getId(),ls);
+                }else {
+                    List<ProBasicOrganizeTree> ls=new ArrayList<>();
+                    ls.add(wp);
+                    wpmapls.put(wp.getId(),ls);
+                }
+
+                wpmap.put(wp.getId(),wp);
+            }
+        }
+
+
+        String llglString = redisService.get("ZLLGL");
+        theoreticalPowerMap = JSONObject.parseObject(llglString, new TypeReference<Map<String, Map<Double,ProBasicModelPowerRd>>>() {
+        });
+
+        llglString = redisService.get("ZLLGLLS");
+        theoreticalPowerList=  JSONObject.parseObject(llglString, new TypeReference<List<ProBasicModelPowerRd>>() {
+        });
+
+        String sszzt = redisService.get("SSZZT");
+        statusMap = JSONObject.parseObject(sszzt, new TypeReference<Map<String,List<ProBasicStatusPoint>>>() {
+        });
+
+
+
+        logger.info("缓存结束------------------------------------------------------------");
+    }
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicBranchMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicBranch;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wang
+ * @since 2023-05-13
+ */
+public interface ProBasicBranchMapper extends BaseMapper<ProBasicBranch> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicCompanyMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicCompany;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 省公司表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicCompanyMapper extends BaseMapper<ProBasicCompany> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicEnergyGroupMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicEnergyGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 集团 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicEnergyGroupMapper extends BaseMapper<ProBasicEnergyGroup> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicEquipmentMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicEquipment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 风机&光伏 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicEquipmentMapper extends BaseMapper<ProBasicEquipment> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicEquipmentPointMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicEquipmentPoint;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 设备测点 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicEquipmentPointMapper extends BaseMapper<ProBasicEquipmentPoint> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicLineMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicLine;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 集电线路 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicLineMapper extends BaseMapper<ProBasicLine> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicMeterPointMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicMeterPoint;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 电计量点表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicMeterPointMapper extends BaseMapper<ProBasicMeterPoint> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicModelPowerMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicModelPower;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicModelPowerMapper extends BaseMapper<ProBasicModelPower> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicModelPowerRdMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicModelPowerRd;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-06
+ */
+public interface ProBasicModelPowerRdMapper extends BaseMapper<ProBasicModelPowerRd> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicOrganizeTreeMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicOrganizeTree;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wang
+ * @since 2023-06-08
+ */
+public interface ProBasicOrganizeTreeMapper extends BaseMapper<ProBasicOrganizeTree> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicPowerstationMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicPowerstation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 场站表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-12
+ */
+public interface ProBasicPowerstationMapper extends BaseMapper<ProBasicPowerstation> {
+
+}

+ 20 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicPowerstationPointMapper.java

@@ -0,0 +1,20 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicPowerstationPoint;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 场站测点,期次测点,线路测点,三级公司测点,区域测点
+
+
+
++方阵测点 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicPowerstationPointMapper extends BaseMapper<ProBasicPowerstationPoint> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicProjectMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicProject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 工程表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicProjectMapper extends BaseMapper<ProBasicProject> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicProjectPlanMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicProjectPlan;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 工程计划表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+public interface ProBasicProjectPlanMapper extends BaseMapper<ProBasicProjectPlan> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicRealtimeDbconfigMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicRealtimeDbconfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 实时数据库配置表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+public interface ProBasicRealtimeDbconfigMapper extends BaseMapper<ProBasicRealtimeDbconfig> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicRegionMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicRegion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 区域 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicRegionMapper extends BaseMapper<ProBasicRegion> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicSquareMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicSquare;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 方阵 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicSquareMapper extends BaseMapper<ProBasicSquare> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicStatusPointMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicStatusPoint;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-17
+ */
+public interface ProBasicStatusPointMapper extends BaseMapper<ProBasicStatusPoint> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicSubStationMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicSubStation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 调度场站名称 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-31
+ */
+public interface ProBasicSubStationMapper extends BaseMapper<ProBasicSubStation> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicUserMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wang
+ * @since 2023-05-16
+ */
+public interface ProBasicUserMapper extends BaseMapper<ProBasicUser> {
+
+}

+ 16 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicWeatherStationMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.runeconomy.mapper.auto;
+
+import com.gyee.runeconomy.model.auto.ProBasicWeatherStation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 气象站名称 Mapper 接口
+ * </p>
+ *
+ * @author wang
+ * @since 2023-04-04
+ */
+public interface ProBasicWeatherStationMapper extends BaseMapper<ProBasicWeatherStation> {
+
+}

+ 0 - 0
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/mapper/auto/ProBasicWindturbinePowerMapper.java


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