Jelajahi Sumber

项目更新

xujuanning 6 bulan lalu
induk
melakukan
64dd383d7b
100 mengubah file dengan 3430 tambahan dan 2 penghapusan
  1. 33 0
      .idea/dataSources.xml
  2. 10 0
      .idea/mybatisx/templates.xml
  3. 13 0
      .idea/sqldialects.xml
  4. 7 1
      common/pom.xml
  5. 1 1
      common/src/main/java/com/gyee/common/CommonMain.java
  6. 132 0
      data-adapter/pom.xml
  7. 13 0
      data-adapter/src/main/java/com/gyee/dataadapter/DataAdapterApplication.java
  8. 14 0
      data-adapter/src/main/java/com/gyee/dataadapter/cache/MqttCache.java
  9. 258 0
      data-adapter/src/main/java/com/gyee/dataadapter/config/DataConverterManager.java
  10. 47 0
      data-adapter/src/main/java/com/gyee/dataadapter/config/MqttConfig.java
  11. 41 0
      data-adapter/src/main/java/com/gyee/dataadapter/config/MqttConnect.java
  12. 198 0
      data-adapter/src/main/java/com/gyee/dataadapter/config/MqttServer.java
  13. 84 0
      data-adapter/src/main/java/com/gyee/dataadapter/config/PushCallback.java
  14. 39 0
      data-adapter/src/main/java/com/gyee/dataadapter/controller/AdapterController.java
  15. 44 0
      data-adapter/src/main/java/com/gyee/dataadapter/controller/SubscribeController.java
  16. 51 0
      data-adapter/src/main/java/com/gyee/dataadapter/dao/MyWebClient.java
  17. 15 0
      data-adapter/src/main/java/com/gyee/dataadapter/entity/Login.java
  18. 14 0
      data-adapter/src/main/java/com/gyee/dataadapter/entity/PointData.java
  19. 40 0
      data-adapter/src/main/java/com/gyee/dataadapter/entity/PointInfo.java
  20. 12 0
      data-adapter/src/main/java/com/gyee/dataadapter/entity/TotalPointData.java
  21. 9 0
      data-adapter/src/main/java/com/gyee/dataadapter/entity/User.java
  22. 15 0
      data-adapter/src/main/java/com/gyee/dataadapter/service/IAdapterService.java
  23. 110 0
      data-adapter/src/main/java/com/gyee/dataadapter/service/impl/AdapterServiceImpl.java
  24. 28 0
      data-adapter/src/main/resources/application.yaml
  25. 158 0
      generationXK-service/pom.xml
  26. 214 0
      generationXK-service/src/main/java/com/gyee/generation/GenerationMain.java
  27. 155 0
      generationXK-service/src/main/java/com/gyee/generation/config/GeneratorCodeConfig.java
  28. 56 0
      generationXK-service/src/main/java/com/gyee/generation/config/ThreadPoolTaskConfig.java
  29. 91 0
      generationXK-service/src/main/java/com/gyee/generation/config/XxlJobConfig.java
  30. 22 0
      generationXK-service/src/main/java/com/gyee/generation/config/mybatis/CustomizedSqlInjector.java
  31. 75 0
      generationXK-service/src/main/java/com/gyee/generation/config/mybatis/InsertOrUpdateBath.java
  32. 28 0
      generationXK-service/src/main/java/com/gyee/generation/config/mybatis/RootMapper.java
  33. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ActivePowerDataController.java
  34. 78 0
      generationXK-service/src/main/java/com/gyee/generation/controller/AnalysisNewController.java
  35. 25 0
      generationXK-service/src/main/java/com/gyee/generation/controller/CacheController.java
  36. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/EquipmentmodelController.java
  37. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/InterruptionController.java
  38. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/InterruptionItemController.java
  39. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/LineController.java
  40. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/MeterpointController.java
  41. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/MeterpointvalueController.java
  42. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicBoxchangeController.java
  43. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicBranchController.java
  44. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicCompanyController.java
  45. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicEnergyGroupController.java
  46. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicEquipmentController.java
  47. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicEquipmentPointController.java
  48. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicInverterController.java
  49. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicJunctionboxController.java
  50. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicLineController.java
  51. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicMaintransformerController.java
  52. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicMeterPointController.java
  53. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicModelPowerController.java
  54. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicModelPowerRdController.java
  55. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicPhotovoltaicPointController.java
  56. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicPowerstationController.java
  57. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicPowerstationPointController.java
  58. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicProjectController.java
  59. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicProjectPlanController.java
  60. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicRealtimeDbconfigController.java
  61. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicRegionController.java
  62. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicSquareController.java
  63. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicStatusPointController.java
  64. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicSubStationController.java
  65. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicSubStationTestpointController.java
  66. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicWeatherStationController.java
  67. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicWindturbinePowerController.java
  68. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEcoWindspecificInfoDayController.java
  69. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconActivePowerDataController.java
  70. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconAnalysisSubprojectWindcanController.java
  71. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconAnalysisSubprojectWindcannotController.java
  72. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconAnalysisSubtableBottomController.java
  73. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconBenchmarkController.java
  74. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconBrownoutsEvent2Controller.java
  75. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconBrownoutsEventController.java
  76. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittMonthMainController.java
  77. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittMonthSubController.java
  78. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittingMainController.java
  79. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittingSubController.java
  80. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconElectricaltestPointController.java
  81. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalDayController.java
  82. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalIndexController.java
  83. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalMonthController.java
  84. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalYearController.java
  85. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqTargetController.java
  86. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDayDetailedController.java
  87. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDayInfoController.java
  88. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDeviatPowerController.java
  89. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDeviatSpeedController.java
  90. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfo15minuteController.java
  91. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay1Controller.java
  92. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay2Controller.java
  93. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay3Controller.java
  94. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay4Controller.java
  95. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay5Controller.java
  96. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay6Controller.java
  97. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDayTopController.java
  98. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentmodelController.java
  99. 20 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconFaultLiminatedefectsController.java
  100. 0 0
      generationXK-service/src/main/java/com/gyee/generation/controller/ProEconInOrOutSpeedTotal2Controller.java

+ 33 - 0
.idea/dataSources.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+    <data-source source="LOCAL" name="admin_1" uuid="2ec8658d-a635-4464-ba73-a1bc060beb5e">
+      <driver-ref>postgresql</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>org.postgresql.Driver</jdbc-driver>
+      <jdbc-url>jdbc:postgresql://rm-cn-adn3tj2bu00032so.rwlb.rds.aliyuncs.com:5432/admin_1</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+    <data-source source="LOCAL" name="smartwindpower@10.220.1.5" uuid="27031d7f-c412-4296-8c42-17a6aee4daad">
+      <driver-ref>postgresql</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>org.postgresql.Driver</jdbc-driver>
+      <jdbc-url>jdbc:postgresql://10.220.1.5:15432/smartwindpower</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+    <data-source source="LOCAL" name="postgres@123.60.219.66" uuid="43053514-c798-46b8-9730-774126a5f46e">
+      <driver-ref>postgresql</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>org.postgresql.Driver</jdbc-driver>
+      <jdbc-url>jdbc:postgresql://123.60.219.66:5432/postgres</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+    <data-source source="LOCAL" name="postgres@123.60.219.66 [2]" uuid="855613aa-fd31-4a63-b3a3-1c2d70df693e">
+      <driver-ref>postgresql</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>org.postgresql.Driver</jdbc-driver>
+      <jdbc-url>jdbc:postgresql://123.60.219.66:5432/postgres</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+  </component>
+</project>

+ 10 - 0
.idea/mybatisx/templates.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="TemplatesSettings">
+    <option name="templateConfigs">
+      <TemplateContext>
+        <option name="projectPath" value="$PROJECT_DIR$" />
+      </TemplateContext>
+    </option>
+  </component>
+</project>

+ 13 - 0
.idea/sqldialects.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="SqlDialectMappings">
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_group.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_info.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_lock.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_log.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_log_report.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_logglue.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_registry.sql" dialect="PostgreSQL" />
+    <file url="file://$PROJECT_DIR$/../宁夏分公司/基础表配置/xxl-job/xxl_job_user.sql" dialect="PostgreSQL" />
+  </component>
+</project>

+ 7 - 1
common/pom.xml

@@ -10,6 +10,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>common</artifactId>
+    <version>1.0-SNAPSHOT</version>
 
     <dependencies>
 
@@ -21,7 +22,12 @@
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
-            <version>5.1.0</version>
+            <version>5.8.25</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-webflux</artifactId>
         </dependency>
         <!-- SpringBoot整合Web组件 -->
 

+ 1 - 1
common/src/main/java/com/gyee/common/CommonMain.java

@@ -11,7 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * @Description : 通用主启动类
  */
 @SpringBootApplication
-@MapperScan("com.gyee.common.mapper")
+//@MapperScan("com.gyee.common.mapper")
 public class CommonMain {
     public static void main(String[] args) {
         SpringApplication.run(CommonMain.class, args);

+ 132 - 0
data-adapter/pom.xml

@@ -0,0 +1,132 @@
+<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>runeconmy-nx</artifactId>
+        <groupId>org.example</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.gyee</groupId>
+    <artifactId>data-adapter</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>data-adapter</name>
+    <description>data-adapter</description>
+    <properties>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring-boot.version>2.3.12.RELEASE</spring-boot.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.integration</groupId>
+            <artifactId>spring-integration-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-integration</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.integration</groupId>
+            <artifactId>spring-integration-stream</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.integration</groupId>
+            <artifactId>spring-integration-mqtt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-webflux</artifactId>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>2.0.40</version>
+        </dependency>
+        <dependency>
+            <groupId>antlr</groupId>
+            <artifactId>antlr</artifactId>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.2.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot</artifactId>
+        </dependency>
+
+    </dependencies>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- https://mvnrepository.com/artifact/org.json/json -->
+            <dependency>
+                <groupId>org.json</groupId>
+                <artifactId>json</artifactId>
+                <version>20231013</version>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <configuration>
+                    <mainClass>com.gyee.dataadapter.DataAdapterApplication</mainClass>
+                    <skip>false</skip>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>repackage</id>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 13 - 0
data-adapter/src/main/java/com/gyee/dataadapter/DataAdapterApplication.java

@@ -0,0 +1,13 @@
+package com.gyee.dataadapter;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class DataAdapterApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(DataAdapterApplication.class, args);
+    }
+
+}

+ 14 - 0
data-adapter/src/main/java/com/gyee/dataadapter/cache/MqttCache.java

@@ -0,0 +1,14 @@
+package com.gyee.dataadapter.cache;
+
+import com.gyee.dataadapter.entity.PointInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class MqttCache {
+    public static Map<String, PointInfo> subData = new HashMap<>();
+
+
+}

+ 258 - 0
data-adapter/src/main/java/com/gyee/dataadapter/config/DataConverterManager.java

@@ -0,0 +1,258 @@
+package com.gyee.dataadapter.config;
+
+import com.gyee.dataadapter.entity.PointInfo;
+import lombok.Data;
+
+import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 数据转换工具
+ */
+@Data
+public class DataConverterManager {
+    /**
+     * 序号
+     */
+    private int index = 0;
+    private byte[] datas;
+    /**
+     * 版本号
+     */
+    private String version = "";
+    /**
+     * 点位数量
+     */
+    private int pointCount = 0;
+    /**
+     * 压缩算法
+     */
+    private byte zipType;
+
+    private List<PointInfo> pintInfos = new ArrayList<>();
+
+    public DataConverterManager(byte[] bs) {
+        datas = bs;
+
+        // 初始化
+        init();
+
+    }
+
+    private void init() {
+        // 消息头,版本号数量
+        version = getString(4);
+        // 点位数量
+        pointCount = getInt();
+
+        zipType = getByte();
+
+        initPoint();
+    }
+
+    /**
+     * 初始化内容
+     */
+    private void initPoint() {
+        while (index < datas.length) {
+            PointInfo pi = getPointInfo();
+            pintInfos.add(pi);
+        }
+    }
+
+    private PointInfo getPointInfo() {
+        PointInfo pi = new PointInfo();
+        // 数据源
+        byte source = getByte();
+        pi.setSource(source);
+        // 点名长度
+        int pnameLen = getUshort();
+        String pname = getString(pnameLen);
+        pi.setPath(pname);
+        // 值类型
+        byte vtype = getByte();
+        pi.setValueType(vtype);
+        int vlen = 0;
+        if (vtype == 0 || vtype == 254) {
+            // 值长度
+            vlen = getUshort();
+        }
+        // 获取的实际值
+        Object val = getValueByType(vtype, vlen);
+        pi.setValue(val);
+        // 时间戳
+//        long ts = getLong();
+//        pi.setTime(ts);
+        //时间戳转为时间
+        String dateTime = getDateTime();
+        pi.setTime(dateTime);
+        // 状态码
+        int status = getInt();
+        // 质量位
+        byte q = getByte();
+        pi.setQuality(q);
+        return pi;
+    }
+
+    /**
+     * 获取实际值
+     *
+     * @param vtype 值类型
+     * @param vlen  值长度
+     * @return 实际值
+     */
+    private Object getValueByType(byte vtype, int vlen) {
+        Object val = null;
+        switch (vtype) {
+            case 0:
+                val = getString(vlen);
+                break;
+            case 1:
+                val = getBool();
+                break;
+            case 2:
+                val = getUshort();
+                break;
+            case 3:
+                val = getInt();
+                break;
+            case 4:
+                val = getLong();
+                break;
+            case 5:
+                val = getFloat();
+                break;
+            case 6:
+                val = getDouble();
+                break;
+            case 7:
+                val = getString(vlen);
+                break;
+            case 8:
+                val = getUshort();
+                break;
+            case 9:
+                val = getInt();
+                break;
+            case 10:
+                val = getLong();
+                break;
+            case 11:
+                val = getString(vlen);
+                break;
+        }
+        return val;
+    }
+
+    private double getDouble() {
+        int count = 8;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+        toReverserBytes(bs);
+        float val = ByteBuffer.wrap(bs).getFloat();
+        index += count;
+
+        return val;
+    }
+
+    private float getFloat() {
+        int count = 4;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+        toReverserBytes(bs);
+        float val = ByteBuffer.wrap(bs).getFloat();
+
+        index += count;
+
+        return val;
+    }
+
+    private long getLong() {
+        int count = 8;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+        toReverserBytes(bs);
+        long val = ByteBuffer.wrap(bs).getLong();
+        val /= 10000;
+
+        index += count;
+        return val;
+    }
+
+    private String getDateTime() {
+        int count = 8;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+        toReverserBytes(bs);
+        long val = ByteBuffer.wrap(bs).getLong();
+        val /= 10000;
+
+        Instant instant = Instant.ofEpochMilli(val);
+        LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
+
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String formattedDateTime = dateTime.format(formatter);
+
+        index += count;
+        return formattedDateTime;
+    }
+
+
+    private boolean getBool() {
+        byte b = getByte();
+        return b != 0;
+    }
+
+
+    private int getInt() {
+        int count = 4;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+        toReverserBytes(bs);
+        int val = ByteBuffer.wrap(bs).getInt();
+
+        index += count;
+
+        return val;
+    }
+
+    private short getUshort() {
+        int count = 2;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+        //toReverserBytes(bs);
+        short ushortValue = (short) ((bs[0] & 0xFF) | ((bs[1] & 0xFF) << 8));
+
+        index += count;
+
+        return ushortValue;
+    }
+
+    private String getString(int count) {
+        String str = new String(Arrays.copyOfRange(datas, index, count + index), StandardCharsets.UTF_8);
+
+        index += count;
+
+        return str;
+    }
+
+
+    private byte getByte() {
+        int count = 1;
+        byte[] bs = Arrays.copyOfRange(datas, index, count + index);
+
+        index += count;
+
+        return bs[0];
+    }
+
+    private void toReverserBytes(byte[] bytes) {
+        for (int i = 0; i < bytes.length / 2; i++) {
+            byte temp = bytes[i];
+            bytes[i] = bytes[bytes.length - 1 - i];
+            bytes[bytes.length - 1 - i] = temp;
+        }
+    }
+
+}

+ 47 - 0
data-adapter/src/main/java/com/gyee/dataadapter/config/MqttConfig.java

@@ -0,0 +1,47 @@
+package com.gyee.dataadapter.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Data
+@Configuration
+@ConfigurationProperties(MqttConfig.PREFIX)
+public class MqttConfig {
+    public static final String PREFIX = "publish.mqtt";
+    /**
+     * 服务端地址
+     */
+    private String host;
+
+    /**
+     * 客户端id
+     */
+    private String clientid;
+
+    /**
+     * 服务端用户名
+     */
+    private String username;
+
+    /**
+     * 服务端密码
+     */
+    private String password;
+
+    /**
+     *是否清理session
+     */
+    private boolean cleansession;
+
+    /**
+     * 心跳时间
+     */
+    private int keepalive;
+
+    /**
+     * 连接超时时间
+     */
+    private int connectionTimeout;
+
+}

+ 41 - 0
data-adapter/src/main/java/com/gyee/dataadapter/config/MqttConnect.java

@@ -0,0 +1,41 @@
+package com.gyee.dataadapter.config;
+
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * 创建MqttConnectOptions连接对象
+ */
+@Component
+public class MqttConnect {
+
+    @Resource
+    private MqttConfig config;
+
+    public MqttConnect(MqttConfig config) {
+        this.config = config;
+    }
+
+    public MqttConnectOptions getOptions() {
+        MqttConnectOptions options = new MqttConnectOptions();
+        options.setCleanSession(config.isCleansession());
+        options.setUserName(config.getUsername());
+        options.setPassword(config.getPassword().toCharArray());
+        options.setConnectionTimeout(config.getConnectionTimeout());
+        //设置心跳
+        options.setKeepAliveInterval(config.getKeepalive());
+        return options;
+    }
+
+    public MqttConnectOptions getOptions(MqttConnectOptions options) {
+
+        options.setCleanSession(options.isCleanSession());
+        options.setUserName(options.getUserName());
+        options.setPassword(options.getPassword());
+        options.setConnectionTimeout(options.getConnectionTimeout());
+        options.setKeepAliveInterval(options.getKeepAliveInterval());
+        return options;
+    }
+}

+ 198 - 0
data-adapter/src/main/java/com/gyee/dataadapter/config/MqttServer.java

@@ -0,0 +1,198 @@
+package com.gyee.dataadapter.config;
+
+import org.eclipse.paho.client.mqttv3.*;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 发布端:主要实现发布消息和订阅主题,接收消息在回调类PushCallback中
+ * 要发布消息的时候只需要调用sendMQTTMessage方法就OK了
+ */
+@Service
+public class MqttServer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MqttServer.class);
+
+    /* 订阅者客户端对象 */
+    private MqttClient subsribeClient;
+
+    /**
+     * 发布者客户端对象
+     * 这里订阅者和发布者的MqttClient对象分别命名是为了让发布者和订阅者分开,
+     * 如果订阅者和发布者都用一个MqttClient链接对象,则会出现两方都订阅了某个主题后,
+     * 谁发送了消息,都会自己接收到自己发的消息,所以分开写,里面主要就是回调类的设置setCallback
+     */
+    private MqttClient publishClient;
+
+    /* 主题对象 */
+    public MqttTopic topic;
+
+    /* 消息内容对象 */
+    public MqttMessage message;
+
+    @Resource
+    private MqttConnect mqttConnect;
+
+    @Resource
+    private MqttConfig config;
+
+    public MqttServer() {
+        LOGGER.info("9011上线了");
+    }
+
+    /**
+     * 发布者客户端和服务端建立连接
+     */
+    public MqttClient publishConnect() {
+        //防止重复创建MQTTClient实例
+        try {
+            if (publishClient == null) {
+                //先让客户端和服务器建立连接,MemoryPersistence设置clientid的保存形式,默认为以内存保存
+                publishClient = new MqttClient(config.getHost(), config.getClientid(), new MemoryPersistence());
+                //发布消息不需要回调连接
+                //client.setCallback(new PushCallback());
+            }
+
+            MqttConnectOptions options = mqttConnect.getOptions();
+            //判断拦截状态*
+            if (!publishClient.isConnected()) {
+                publishClient.connect(options);
+                LOGGER.info("---------------------连接成功");
+            } else {//这里的逻辑是如果连接成功就重新连接
+                publishClient.disconnect();
+                publishClient.connect(mqttConnect.getOptions(options));
+                LOGGER.info("---------------------连接成功");
+            }
+        } catch (MqttException e) {
+            LOGGER.info(e.toString());
+        }
+        return publishClient;
+    }
+
+    /**
+     * 订阅端的链接方法,关键是回调类的设置,要对订阅的主题消息进行处理
+     * 断线重连方法,如果是持久订阅,重连时不需要再次订阅
+     * 如果是非持久订阅,重连是需要重新订阅主题 取决于options.setCleanSession(true);
+     * true为非持久订阅
+     */
+    public void subsribeConnect() {
+        try {
+            //防止重复创建MQTTClient实例
+            if (subsribeClient == null) {
+                //clientId不能和其它的clientId一样,否则会出现频繁断开连接和重连的问题
+                System.out.println("host: " + config.getHost() + "   " + "客户端id: " + config.getClientid());
+                subsribeClient = new MqttClient(config.getHost(), config.getClientid(), new MemoryPersistence());// MemoryPersistence设置clientid的保存形式,默认为以内存保存
+                //如果是订阅者则添加回调类,发布不需要,PushCallback类在后面
+                subsribeClient.setCallback(new PushCallback(MqttServer.this));
+            }
+            MqttConnectOptions options = mqttConnect.getOptions();
+            //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的
+            if (!subsribeClient.isConnected()) {
+                subsribeClient.connect(options);
+            } else {//这里的逻辑是如果连接成功就重新连接
+                subsribeClient.disconnect();
+                subsribeClient.connect(mqttConnect.getOptions(options));
+            }
+            LOGGER.info("----------Mqtt客户端连接成功");
+        } catch (MqttException e) {
+            LOGGER.info(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * 把组装好的消息发出去
+     */
+    public boolean publish(MqttTopic topic, MqttMessage message) {
+
+        MqttDeliveryToken token = null;
+        try {
+            //把消息发送给对应的主题
+            token = topic.publish(message);
+            token.waitForCompletion();
+            //检查发送是否成功
+            boolean flag = token.isComplete();
+
+            StringBuffer sbf = new StringBuffer(200);
+            sbf.append("给主题为'" + topic.getName());
+            sbf.append("'发布消息:");
+            if (flag) {
+                sbf.append("成功!消息内容是:" + new String(message.getPayload()));
+            } else {
+                sbf.append("失败!");
+            }
+            LOGGER.info(sbf.toString());
+        } catch (MqttException e) {
+            LOGGER.info(e.toString());
+        }
+        return token.isComplete();
+    }
+
+    /**
+     * MQTT发送指令:主要是组装消息体
+     *
+     * @param topic 主题
+     * @param data  消息内容
+     * @param qos   消息级别
+     */
+    public void sendMQTTMessage(String topic, String data, int qos) {
+
+        try {
+            this.publishClient = publishConnect();
+            this.topic = this.publishClient.getTopic(topic);
+            message = new MqttMessage();
+            //消息等级
+            //level 0:消息最多传递一次,不再关心它有没有发送到对方,也不设置任何重发机制
+            //level 1:包含了简单的重发机制,发送消息之后等待接收者的回复,如果没收到回复则重新发送消息。这种模式能保证消息至少能到达一次,但无法保证消息重复
+            //level 2: 有了重发和重复消息发现机制,保证消息到达对方并且严格只到达一次
+            message.setQos(qos);
+            //如果重复消费,则把值改为true,然后发送一条空的消息,之前的消息就会覆盖,然后在改为false
+            message.setRetained(false);
+
+            message.setPayload(data.getBytes());
+
+            //将组装好的消息发出去
+            publish(this.topic, message);
+        } catch (Exception e) {
+            LOGGER.info(e.toString());
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 订阅端订阅消息
+     *
+     * @param topic 要订阅的主题
+     * @param qos   订阅消息的级别
+     */
+    public void init(String topic, int qos) {
+        //建立连接
+        subsribeConnect();
+        //以某个消息级别订阅某个主题
+        try {
+            subsribeClient.subscribe(topic, qos);
+        } catch (MqttException e) {
+            LOGGER.info(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * 订阅端取消订阅消息
+     *
+     * @param topic 要订阅的主题
+     */
+    public void unionInit(String topic) {
+        //建立连接
+        subsribeConnect();
+        //取消订阅某个主题
+        try {
+            //MQTT 协议中订阅关系是持久化的,因此如果不需要订阅某些 Topic,需要调用 unsubscribe 方法取消订阅关系。
+            subsribeClient.unsubscribe(topic);
+        } catch (MqttException e) {
+            LOGGER.info(e.getMessage(), e);
+        }
+    }
+}

+ 84 - 0
data-adapter/src/main/java/com/gyee/dataadapter/config/PushCallback.java

@@ -0,0 +1,84 @@
+package com.gyee.dataadapter.config;
+
+import com.gyee.dataadapter.cache.MqttCache;
+import com.gyee.dataadapter.entity.PointInfo;
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.LocalDateTime;
+import java.util.*;
+
+/**
+ * 主要用来接收和处理订阅主题的消息
+ */
+public class PushCallback implements MqttCallback {
+    private static final Logger LOGGER = LoggerFactory.getLogger(PushCallback.class);
+
+    private MqttServer mqttServer;
+
+    public PushCallback(MqttServer mqttServer) {
+        this.mqttServer = mqttServer;
+    }
+
+
+    public void connectionLost(Throwable cause) {
+        // 连接丢失后,一般在这里面进行重连
+        LOGGER.info("---------------------连接断开,可以做重连");
+        mqttServer.subsribeConnect();
+
+        while (true) {
+            try {
+                //如果没有发生异常说明连接成功,如果发生异常,则死循环
+                Thread.sleep(1000);
+                break;
+            } catch (Exception e) {
+                continue;
+            }
+        }
+    }
+
+
+    /**
+     * 发送消息,消息到达后处理方法
+     *
+     * @param token
+     */
+    public void deliveryComplete(IMqttDeliveryToken token) {
+        System.out.println("deliveryComplete---------" + token.isComplete());
+    }
+
+
+    /**
+     * 接收所订阅的主题的消息并处理
+     *
+     * @param topic
+     * @param message
+     */
+    public void messageArrived2(String topic, MqttMessage message) throws Exception {
+        // subscribe后得到的消息会执行到这里面
+        String result = new String(message.getPayload(), "UTF-8");
+        System.out.println("接收消息主题 : " + topic);
+        System.out.println("接收消息Qos : " + message.getQos());
+        System.out.println("接收消息内容 : " + result);
+        System.out.println(message.getPayload().toString());
+        //这里可以针对收到的消息做处理,比如持久化
+    }
+
+
+    public void messageArrived(String topic, MqttMessage message) throws Exception {
+        DataConverterManager dm = new DataConverterManager(message.getPayload());
+        System.out.print(LocalDateTime.now().getMinute()+",");
+        List<PointInfo> pis = dm.getPintInfos();
+        for (PointInfo pi :pis) {
+            if (!MqttCache.subData.containsKey(pi.getPath())) {
+                MqttCache.subData.put(pi.getPath(),pi);
+            } else {
+                MqttCache.subData.replace(pi.getPath(),pi);
+            }
+        }
+    }
+
+}

+ 39 - 0
data-adapter/src/main/java/com/gyee/dataadapter/controller/AdapterController.java

@@ -0,0 +1,39 @@
+package com.gyee.dataadapter.controller;
+
+import com.gyee.dataadapter.service.impl.AdapterServiceImpl;
+import com.gyee.dataadapter.entity.PointInfo;
+import com.gyee.dataadapter.entity.TotalPointData;
+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;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/adapter")
+public class AdapterController {
+    @Resource
+    private AdapterServiceImpl dataClient;
+
+    @GetMapping(value = "/history/list")
+    public TotalPointData history(@RequestParam(value = "start") String start,
+                               @RequestParam(value = "end") String end,
+                               @RequestParam(value = "sampleType", required = false) int sampleType,
+                               @RequestParam(value = "sampleRate", required = false) int sampleRate,
+                               @RequestParam(value = "paths") String paths,
+                               @RequestParam(value = "pageIndex",required = false) String pageIndex,
+                               @RequestParam(value = "pageSize",required = false) String pageSize,
+                               @RequestParam(value = "isDesc",required = false,defaultValue = "false") boolean isDesc) {
+        return dataClient.getTotalData(start, end, sampleType, sampleRate, paths, pageIndex, pageSize, isDesc);
+    }
+
+
+    @GetMapping(value = "/latest/list")
+    public Map<String, PointInfo> latest(@RequestParam(value = "paths") String paths) {
+        return dataClient.getLatestData(paths);
+    }
+
+
+}

+ 44 - 0
data-adapter/src/main/java/com/gyee/dataadapter/controller/SubscribeController.java

@@ -0,0 +1,44 @@
+package com.gyee.dataadapter.controller;
+
+import com.gyee.dataadapter.config.MqttServer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping(value = "/subscribe")
+public class SubscribeController implements ApplicationRunner {
+    @Resource
+    private MqttServer mqttserver;
+
+
+    @Value("${subscribe.topic}")
+    private String topic;
+
+    @Value("${subscribe.qos}")
+    private int qos;
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+
+        mqttserver.init(topic, qos);
+    }
+
+
+    /**
+     * 订阅主题
+     * @param topic 主题
+     * @param qos 消息级别
+     * @return
+     */
+    @RequestMapping(value = "HUIANTOGUANGYAO")
+    public String Subscribe(String topic, int qos) {
+        mqttserver.init(topic, qos);
+        return "订阅主题'"+topic+"'成功";
+    }
+}

+ 51 - 0
data-adapter/src/main/java/com/gyee/dataadapter/dao/MyWebClient.java

@@ -0,0 +1,51 @@
+package com.gyee.dataadapter.dao;
+
+import io.netty.handler.ssl.SslContext;
+import io.netty.handler.ssl.SslContextBuilder;
+import io.netty.handler.ssl.SslProvider;
+import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
+import org.springframework.http.client.reactive.ReactorClientHttpConnector;
+import org.springframework.stereotype.Component;
+import org.springframework.web.reactive.function.client.WebClient;
+import reactor.netty.http.client.HttpClient;
+
+import java.time.Duration;
+
+@Component
+public class MyWebClient {
+
+    public final WebClient webClient;
+
+    public MyWebClient(WebClient.Builder webClientBuilder) {
+        this.webClient = webClientBuilder
+                .clientConnector(new ReactorClientHttpConnector(
+                        HttpClient.create()
+                                .secure(sslContextSpec -> {
+                                    sslContextSpec.sslContext(sslContext());
+                                })
+                                .responseTimeout(Duration.ofMillis(30000))  // 设置 Netty 的连接超时
+                ))
+                .baseUrl("https://10.220.1.5:5300")
+//                .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) // 示例:添加默认头部
+                .codecs(configurer -> {
+                    // 根据您的 Spring WebFlux 版本,调整缓冲区大小的方式可能有所不同
+                    // 这里假设您想要设置响应的缓冲区大小
+                    configurer.defaultCodecs().maxInMemorySize(16 * 1024 * 1024); // 示例:调整最大内存中的缓冲区大小
+                })
+                .build();
+    }
+
+    private SslContext sslContext() {
+        try {
+            return SslContextBuilder.forClient()
+                    .sslProvider(SslProvider.JDK)
+                    .trustManager(InsecureTrustManagerFactory.INSTANCE)
+                    .build();
+        } catch (Exception e) {
+            // 处理异常,这里简单抛出运行时异常
+            throw new RuntimeException("Failed to create SSL context", e);
+        }
+    }
+
+
+}

+ 15 - 0
data-adapter/src/main/java/com/gyee/dataadapter/entity/Login.java

@@ -0,0 +1,15 @@
+package com.gyee.dataadapter.entity;
+
+import lombok.Data;
+
+@Data
+public class Login {
+        private String token;
+        private String userName;
+        private String email;
+        private String id;
+        private String name;
+        private String isInitPassword;
+        private String role;
+        private String message;
+}

+ 14 - 0
data-adapter/src/main/java/com/gyee/dataadapter/entity/PointData.java

@@ -0,0 +1,14 @@
+package com.gyee.dataadapter.entity;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class PointData {
+    private String path;
+    private double value;
+    private LocalDateTime time;
+    private String quality;
+    private int timelable;
+}

+ 40 - 0
data-adapter/src/main/java/com/gyee/dataadapter/entity/PointInfo.java

@@ -0,0 +1,40 @@
+package com.gyee.dataadapter.entity;
+
+import lombok.Data;
+
+/**
+ * 测点信息
+ */
+@Data
+public class PointInfo {
+    /**
+     * 数据源
+     */
+    private byte source;
+
+    /**
+     * 测点
+     */
+    private String path;
+    /**
+     * 值类型
+     */
+    private byte valueType;
+    /**
+     * 值
+     */
+    private Object value;
+    /**
+     * 时间戳
+     */
+//    private long time;
+    /**
+     * 时间
+     */
+    private String time;
+    /**
+     * 质量
+     */
+    private byte quality;
+
+}

+ 12 - 0
data-adapter/src/main/java/com/gyee/dataadapter/entity/TotalPointData.java

@@ -0,0 +1,12 @@
+package com.gyee.dataadapter.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TotalPointData {
+    private int TotalCount;
+    private int TotalPage;
+    private List<PointData> Data;
+}

+ 9 - 0
data-adapter/src/main/java/com/gyee/dataadapter/entity/User.java

@@ -0,0 +1,9 @@
+package com.gyee.dataadapter.entity;
+
+import lombok.Data;
+
+@Data
+public class User {
+    private String UserName;
+    private String Password;
+}

+ 15 - 0
data-adapter/src/main/java/com/gyee/dataadapter/service/IAdapterService.java

@@ -0,0 +1,15 @@
+package com.gyee.dataadapter.service;
+
+import com.gyee.dataadapter.entity.PointInfo;
+import com.gyee.dataadapter.entity.TotalPointData;
+
+import java.util.Map;
+
+public interface IAdapterService{
+    //历史数据接口
+    TotalPointData getTotalData(String start, String end, int sampleType, int sampleRate, String paths,
+                                String pageIndex, String pageSize, boolean isDesc);
+
+    //实时数据接口
+    Map<String, PointInfo> getLatestData(String paths);
+}

File diff ditekan karena terlalu besar
+ 110 - 0
data-adapter/src/main/java/com/gyee/dataadapter/service/impl/AdapterServiceImpl.java


+ 28 - 0
data-adapter/src/main/resources/application.yaml

@@ -0,0 +1,28 @@
+server:
+  port: 9011
+
+# Mqtt相关配置
+publish:
+  mqtt:
+    host: tcp://10.220.1.5:2883
+    username: admin@scada.com
+    password: Scada135}+?
+    cleansession: false
+    clientid: HUIANTOGUANGYAO
+    keepalive: 10
+    connectionTimeout: 3000
+
+
+spring:
+  datasource:
+    # pg数据库连接配置
+    type: com.alibaba.druid.pool.DruidDataSource
+    driver-class-name: org.postgresql.Driver
+    url: jdbc:postgresql://10.220.1.5:15432/smartwindpower
+    username: smartuser
+    password: smart123!@#
+
+subscribe:
+  topic: scada/public/HUIANTOGUANGYAO/tag_values
+  qos: 0
+

+ 158 - 0
generationXK-service/pom.xml

@@ -0,0 +1,158 @@
+<?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>runeconmy-nx</artifactId>
+        <groupId>org.example</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>generationXK-service</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.opencsv</groupId>
+            <artifactId>opencsv</artifactId>
+            <version>4.4</version>
+        </dependency>
+        <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.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.oracle</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.3</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.17</version>
+            <scope>compile</scope>
+        </dependency>
+        <!-- ********************** plugin ********************** -->
+        <!-- groovy-all -->
+        <dependency>
+            <groupId>org.codehaus.groovy</groupId>
+            <artifactId>groovy</artifactId>
+        </dependency>
+        <!-- xxl-job-core -->
+
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <version>42.6.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.17</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.1.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.taosdata.jdbc</groupId>
+            <artifactId>taos-jdbcdriver</artifactId>
+            <version>3.2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.5.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.example</groupId>
+            <artifactId>common</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
+        <!-- xxl-job-core -->
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>2.3.1</version>
+        </dependency>
+
+<!--        <dependency>-->
+<!--            <groupId>com.gyee</groupId>-->
+<!--            <artifactId>data-adapter</artifactId>-->
+<!--            <version>1.0.0-SNAPSHOT</version>-->
+<!--        </dependency>-->
+
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.7.1</version>
+                <configuration>
+                    <!--maven编译时将本地引用的jar包一起打包-->
+                    <includeSystemScope>true</includeSystemScope>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 214 - 0
generationXK-service/src/main/java/com/gyee/generation/GenerationMain.java

@@ -0,0 +1,214 @@
+package com.gyee.generation;
+
+import com.gyee.generation.service.ReCalSevice;
+import com.gyee.generation.util.SpringUtils;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import java.util.Calendar;
+
+/**
+ * @ClassName : GenerationMain
+ * @Author : xieshengjie
+ * @Date: 2022/2/28 14:55
+ * @Description :
+ */
+@SpringBootApplication
+@MapperScan({"com.gyee.generation.mapper"})
+public class GenerationMain {
+
+
+    public static void main(String[] args) throws Exception {
+        SpringApplication.run(GenerationMain.class, args);
+
+        System.out.println("启动完成");
+
+//        /*************************风机历史计算服务**************************/
+//        Calendar c = Calendar.getInstance();
+//        Logger logger = LoggerFactory.getLogger(GenerationMain.class);
+//
+//        while (true) {
+//
+//            Date begin = new Date();
+//            Date end = null;
+//            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            logger.info(df.format(c.getTime()).toString());
+//
+//
+//            EquipmentInfo1Service equipmentInfo1Service = SpringUtils.getBean("equipmentInfo1Service");
+//            EquipmentInfo2Service equipmentInfo2Service = SpringUtils.getBean("equipmentInfo2Service");
+//            EquipmentInfo3Service equipmentInfo3Service = SpringUtils.getBean("equipmentInfo3Service");
+//
+//
+//            equipmentInfo1Service.calEquipmentInfoDay(begin);
+//            logger.info("equipmentInfo1Service完成一次!。。。。。。");
+//            TimeUnit.SECONDS.sleep(3);
+//            equipmentInfo2Service.calEquipmentInfoDay(begin);
+//            logger.info("equipmentInfo2Service完成一次!。。。。。。");
+//            TimeUnit.SECONDS.sleep(3);
+//            equipmentInfo3Service.calEquipmentInfoDay(begin);
+//            logger.info("equipmentInfo3Service完成一次!。。。。。。");
+//            TimeUnit.SECONDS.sleep(3);
+//            logger.info("equipmentInfo5Service开始!。。。。。。");
+//            EquipmentInfo5Service equipmentInfo5Service = SpringUtils.getBean("equipmentInfo5Service");
+//            TimeUnit.SECONDS.sleep(3);
+//            EquipmentInfo4Service equipmentInfo4Service = SpringUtils.getBean("equipmentInfo4Service");
+//            TimeUnit.SECONDS.sleep(3);
+//            equipmentInfo5Service.calEquipmentInfoDay(begin);
+//            logger.info("equipmentInfo5Service完成一次!。。。。。。");
+//            logger.info("equipmentInfo4Service开始!。。。。。。");
+//            equipmentInfo4Service.calEquipmentInfoDay(begin);
+//            logger.info("equipmentInfo4Service完成一次!。。。。。。");
+//
+//            WtAlysisDayService wtAlysisDayService = SpringUtils.getBean("wtAlysisDayService");
+//
+//            EquipmentInfoDayTopService equipmentInfoDayTopService = SpringUtils.getBean("equipmentInfoDayTopService");
+//            equipmentInfoDayTopService.calEquipmentInfoDayTop(begin);
+//            equipmentInfoDayTopService.calEquipmentInfoMonthTop(begin);
+//            equipmentInfoDayTopService.calEquipmentInfoYearTop(begin);
+//
+//            TimeUnit.SECONDS.sleep(3);
+//            logger.info("wtAlysisyService开始!。。。。。。");
+//            wtAlysisDayService.calEquipmentInfoDay(begin);
+//            logger.info("wtAlysisyService完成!。。。。。。");
+//            end = new Date();
+//            logger.info(df.format(end).toString());
+//            logger.info("完成一次!。。。。。。");
+//            logger.info("执行用时" + com.gyee.generation.util.DateUtils.secondsDiff(begin, end) + "秒");
+//
+//            TimeUnit.MINUTES.sleep(15);
+//        }
+//
+//        /*************************风机历史计算服务**************************/
+//
+//
+//        /*************************逆变器历史计算服务**************************/
+//        Calendar c = Calendar.getInstance();
+//        Logger logger = LoggerFactory.getLogger(GenerationMain.class);
+//
+//        while (true) {
+//
+//            Date begin = new Date();
+//            Date end = null;
+//            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            logger.info(df.format(c.getTime()).toString());
+//
+//
+//            EquipmentInfo1Service equipmentInfo1Service = SpringUtils.getBean("equipmentInfo1Service");
+//            EquipmentInfo2Service equipmentInfo2Service = SpringUtils.getBean("equipmentInfo2Service");
+//            EquipmentInfo3Service equipmentInfo3Service = SpringUtils.getBean("equipmentInfo3Service");
+//
+//
+//            equipmentInfo1Service.calEquipmentInfoDay(begin);
+//            TimeUnit.SECONDS.sleep(3);
+//            equipmentInfo2Service.calEquipmentInfoDay(begin);
+//            TimeUnit.SECONDS.sleep(3);
+//            equipmentInfo3Service.calEquipmentInfoDay(begin);
+//            TimeUnit.SECONDS.sleep(3);
+//
+//
+//            end = new Date();
+//            logger.info(df.format(end).toString());
+//            logger.info("完成一次!。。。。。。");
+//            logger.info("执行用时" + com.gyee.generation.util.DateUtils.secondsDiff(begin, end) + "秒");
+//            TimeUnit.MINUTES.sleep(15);
+//        }
+//
+//        /*************************逆变器历史计算服务**************************/
+//
+//
+//        /*************************15分钟实时状态计算服务**************************/
+//        Calendar c = Calendar.getInstance();
+//
+//
+//        while (true) {
+//
+//            Date begin = new Date();
+//            Date end = null;
+//            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            System.out.println(df.format(c.getTime()).toString());
+//
+//
+//
+//
+//            CycleCalculationService cycleCalculationService= SpringUtils.getBean("cycleCalculationService");
+//
+//            cycleCalculationService.saveCyle();
+//
+//
+//            end = new Date();
+//            System.out.println(df.format(end).toString());
+//            System.out.println("完成一次!。。。。。。");
+//            System.out.println("执行用时" + com.gyee.generation.util.DateUtils.secondsDiff(begin, end) + "秒");
+//            Thread.sleep(3000);
+//        }
+//
+//        /*************************状态实时状态计算服务**************************/
+//
+//        /*************************健康管理测点导出**************************/
+//        Calendar c = Calendar.getInstance();
+//
+//
+//        Date begin = new Date();
+//        Date end = null;
+//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        System.out.println(df.format(c.getTime()).toString());
+//
+//
+//        InitialPointGoldenXkByEqService initialPointGoldenXkByEqService = SpringUtils.getBean("initialPointGoldenXkByEqService");
+//
+//        initialPointGoldenXkByEqService.initalJkfc();
+//        initialPointGoldenXkByEqService.initalJkfj();
+//
+//
+//        end = new Date();
+//        System.out.println(df.format(end).toString());
+//        System.out.println("完成一次!。。。。。。");
+//        System.out.println("执行用时" + com.gyee.generation.util.DateUtils.secondsDiff(begin, end) + "秒");
+//
+//
+//        /*************************健康管理测点导出**************************/
+//
+//
+// /*************************redis缓存**************************/
+//        Calendar c = Calendar.getInstance();
+//
+//
+//        Date begin = new Date();
+//        Date end = null;
+//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        System.out.println(df.format(c.getTime()).toString());
+//
+//
+//        CacheService cacheService= SpringUtils.getBean("cacheService");
+//        cacheService.initRedisCache();
+//
+//        end = new Date();
+//        System.out.println(df.format(end).toString());
+//        System.out.println("完成一次!。。。。。。");
+//        System.out.println("执行用时" + com.gyee.generation.util.DateUtils.secondsDiff(begin, end) + "秒");
+//
+//
+//        /*************************redis缓存**************************/
+//
+
+
+        /*************************重算设备历史数据**************************/
+        Calendar c = Calendar.getInstance();
+
+
+        c.add(Calendar.DAY_OF_MONTH, -1);
+        ReCalSevice reCalSevice = SpringUtils.getBean("reCalSevice");
+//        //重算风机
+//        reCalSevice.calWt(c.getTime());
+        //重算逆变器
+        reCalSevice.calIn(c.getTime());
+
+
+
+        /*************************重算设备历史数据**************************/
+
+
+    }
+}

+ 155 - 0
generationXK-service/src/main/java/com/gyee/generation/config/GeneratorCodeConfig.java

@@ -0,0 +1,155 @@
+package com.gyee.generation.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(projectPath+"/realtime/generationXK-service"+ "/src/main/java");
+        gc.setAuthor("shilin");
+        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.83.68.165:1521:gdsj");
+
+        dsc.setDriverName("org.postgresql.Driver");
+        dsc.setUsername("postgres");
+        dsc.setPassword("gd123");
+        dsc.setUrl("jdbc:postgresql://10.81.3.151:5432/IMS_NEM_JN");
+//        dsc.setDriverName("org.postgresql.Driver");
+//        dsc.setUsername("postgres");
+//        dsc.setPassword("postgres");
+//        dsc.setUrl("jdbc:postgresql://192.168.11.248:5432/IMS_NEM_SD");
+//        dsc.setUrl("jdbc:postgresql://124.70.75.91:5432/jn_test");
+//        dsc.setUsername("postgres");
+//        dsc.setPassword("gd123");
+        mpg.setDataSource(dsc);
+
+
+
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+//        pc.setModuleName(scanner("模块名"));
+        pc.setParent("com.gyee.generation");
+        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();
+    }
+}

+ 56 - 0
generationXK-service/src/main/java/com/gyee/generation/config/ThreadPoolTaskConfig.java

@@ -0,0 +1,56 @@
+package com.gyee.generation.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Configuration
+public class ThreadPoolTaskConfig {
+    /**
+     *   默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,
+     *	当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;
+     *  当队列满了,就继续创建线程,当线程数量大于等于maxPoolSize后,开始使用拒绝策略拒绝
+     */
+
+    /** 核心线程数(默认线程数) */
+    private static final int corePoolSize =12;
+    /** 最大线程数 */
+    private static final int maxPoolSize = 30;
+    /** 允许线程空闲时间(单位:默认为秒) */
+    private static final int keepAliveTime = 30;
+    /** 缓冲队列大小 */
+    private static final int queueCapacity = 240;
+    /** 允许等待最长时间 */
+    private static final int awaitTime = 60;
+    /** 线程池名前缀 */
+    private static final String threadNamePrefix = "GYEE-Thread-";
+
+    private ThreadPoolTaskExecutor executor;
+
+    public ThreadPoolTaskExecutor getExecutor(){
+        if (executor == null)
+            executor = taskExecutor();
+
+        return executor;
+    }
+
+
+    private 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;
+    }
+
+}

+ 91 - 0
generationXK-service/src/main/java/com/gyee/generation/config/XxlJobConfig.java

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

+ 22 - 0
generationXK-service/src/main/java/com/gyee/generation/config/mybatis/CustomizedSqlInjector.java

@@ -0,0 +1,22 @@
+package com.gyee.generation.config.mybatis;
+
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
+
+import java.util.List;
+
+/**
+ * 自定义方法SQL注入器
+ */
+public class CustomizedSqlInjector extends DefaultSqlInjector {
+    /**
+     * 如果只需增加方法,保留mybatis plus自带方法,
+     * 可以先获取super.getMethodList(),再添加add
+     */
+    @Override
+    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
+        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
+        methodList.add(new InsertOrUpdateBath());
+        return methodList;
+    }
+}

+ 75 - 0
generationXK-service/src/main/java/com/gyee/generation/config/mybatis/InsertOrUpdateBath.java

@@ -0,0 +1,75 @@
+package com.gyee.generation.config.mybatis;
+
+
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+        import com.baomidou.mybatisplus.core.metadata.TableInfo;
+        import org.apache.ibatis.executor.keygen.NoKeyGenerator;
+        import org.apache.ibatis.mapping.MappedStatement;
+        import org.apache.ibatis.mapping.SqlSource;
+        import org.springframework.util.StringUtils;
+
+public class InsertOrUpdateBath extends AbstractMethod {
+
+    @Override
+    public MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) {
+        final String sql = "<script>insert into %s %s values %s ON DUPLICATE KEY UPDATE %s</script>";
+        final String tableName = tableInfo.getTableName();
+        final String filedSql = prepareFieldSql(tableInfo);
+        final String modelValuesSql = prepareModelValuesSql(tableInfo);
+        final String duplicateKeySql =prepareDuplicateKeySql(tableInfo);
+        final String sqlResult = String.format(sql, tableName, filedSql, modelValuesSql,duplicateKeySql);
+        //System.out.println("savaorupdatesqlsql="+sqlResult);
+        SqlSource sqlSource = languageDriver.createSqlSource(configuration, sqlResult, modelClass);
+        return this.addInsertMappedStatement(mapperClass, modelClass, "mysqlInsertOrUpdateBath", sqlSource, new NoKeyGenerator(), null, null);
+    }
+
+    /**
+     * 准备ON DUPLICATE KEY UPDATE sql
+     * @param tableInfo
+     * @return
+     */
+    private String prepareDuplicateKeySql(TableInfo tableInfo) {
+        final StringBuilder duplicateKeySql = new StringBuilder();
+        if(!StringUtils.isEmpty(tableInfo.getKeyColumn())) {
+            duplicateKeySql.append(tableInfo.getKeyColumn()).append("=values(").append(tableInfo.getKeyColumn()).append("),");
+        }
+
+        tableInfo.getFieldList().forEach(x -> {
+            duplicateKeySql.append(x.getColumn())
+                    .append("=values(")
+                    .append(x.getColumn())
+                    .append("),");
+        });
+        duplicateKeySql.delete(duplicateKeySql.length() - 1, duplicateKeySql.length());
+        return duplicateKeySql.toString();
+    }
+
+    /**
+     * 准备属性名
+     * @param tableInfo
+     * @return
+     */
+    private String prepareFieldSql(TableInfo tableInfo) {
+        StringBuilder fieldSql = new StringBuilder();
+        fieldSql.append(tableInfo.getKeyColumn()).append(",");
+        tableInfo.getFieldList().forEach(x -> {
+            fieldSql.append(x.getColumn()).append(",");
+        });
+        fieldSql.delete(fieldSql.length() - 1, fieldSql.length());
+        fieldSql.insert(0, "(");
+        fieldSql.append(")");
+        return fieldSql.toString();
+    }
+
+    private String prepareModelValuesSql(TableInfo tableInfo){
+        final StringBuilder valueSql = new StringBuilder();
+        valueSql.append("<foreach collection=\"list\" item=\"item\" index=\"index\" open=\"(\" separator=\"),(\" close=\")\">");
+        if(!StringUtils.isEmpty(tableInfo.getKeyProperty())) {
+            valueSql.append("#{item.").append(tableInfo.getKeyProperty()).append("},");
+        }
+        tableInfo.getFieldList().forEach(x -> valueSql.append("#{item.").append(x.getProperty()).append("},"));
+        valueSql.delete(valueSql.length() - 1, valueSql.length());
+        valueSql.append("</foreach>");
+        return valueSql.toString();
+    }
+}

+ 28 - 0
generationXK-service/src/main/java/com/gyee/generation/config/mybatis/RootMapper.java

@@ -0,0 +1,28 @@
+package com.gyee.generation.config.mybatis;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 根Mapper,给表Mapper继承用的,可以自定义通用方法
+ * {@link BaseMapper}
+ * {@link com.baomidou.mybatisplus.extension.service.IService}
+ * {@link com.baomidou.mybatisplus.extension.service.impl.ServiceImpl}
+ */
+public interface RootMapper<T> extends BaseMapper<T> {
+
+    /**
+     * 自定义批量插入
+     * 如果要自动填充,@Param(xx) xx参数名必须是 list/collection/array 3个的其中之一
+     */
+    int insertBatch(@Param("list") List<T> list);
+
+    /**
+     * 自定义批量新增或更新
+     * 如果要自动填充,@Param(xx) xx参数名必须是 list/collection/array 3个的其中之一
+     */
+    int insertOrUpdateBath(@Param("list") List<T> list);
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ActivePowerDataController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 动态功率数据 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-27
+ */
+@RestController
+@RequestMapping("//active-power-data")
+public class ActivePowerDataController {
+
+}

+ 78 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/AnalysisNewController.java

@@ -0,0 +1,78 @@
+package com.gyee.generation.controller;
+
+import com.gyee.common.config.R;
+import com.gyee.common.util.DateUtils;
+import com.gyee.generation.service.AnalysisNewService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Calendar;
+import java.util.Date;
+
+@RestController
+@RequestMapping("//analysis")
+@Api(value = "底码", tags = "底码")
+public class AnalysisNewController {
+
+    @Resource
+    private AnalysisNewService analysisNewService;
+
+//    @Scheduled(cron = "0 15 0 * * ?")
+    @GetMapping(value = "/companys")
+    @ApiOperation(value = "公司列表", notes = "公司列表")
+    public R companys() throws Exception {
+        analysisNewService.companys();
+
+        return null;
+    }
+
+//    @Scheduled(cron = "0 30 0 * * ?")
+    @GetMapping(value = "/can")
+    @ApiOperation(value = "公司列表", notes = "公司列表")
+    public R cans() throws Exception {
+        // 获取当前日期
+        Date currentDate = new Date();
+
+        // 创建 Calendar 对象,并设置为当前日期
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(currentDate);
+
+        // 将时间设为0点
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+
+        // 设置 beginDate 为前一天的0点
+        calendar.add(Calendar.DAY_OF_MONTH, -1);
+        Date beginDate = calendar.getTime();
+
+        // 设置 endDate 为当天的0点
+        calendar.add(Calendar.DAY_OF_MONTH, 1);
+        Date endDate = calendar.getTime();
+
+
+        //补充数据可将其打开
+//        for (int i = 0; i < 44; i++) {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//
+//        String beginDateStr = sdf.format(beginDate);
+//        String endDateStr = sdf.format(endDate);
+
+
+        String yesterday = DateUtils.getYesterdayStr("yyyy-MM-dd");
+        analysisNewService.saveWindProject();
+
+//          beginDate = DateUtils.addDays(beginDate, -1);
+//          calendar.add(Calendar.DAY_OF_MONTH, -1);
+//          endDate = calendar.getTime();
+//        }
+
+        return null;
+    }
+}

+ 25 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/CacheController.java

@@ -0,0 +1,25 @@
+package com.gyee.generation.controller;
+
+import com.gyee.generation.model.vo.AjaxResult;
+import com.gyee.generation.service.initalcache.CacheService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("//cachae")
+public class CacheController {
+
+    @Resource
+    private CacheService cacheService;
+    @GetMapping(value = "/qd")
+    public AjaxResult getinformation(String wpId) throws Exception {
+
+            cacheService.initRedisCache();
+
+            return AjaxResult.success();
+
+    }
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/EquipmentmodelController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2022-03-28
+ */
+@RestController
+@RequestMapping("//equipmentmodel")
+public class EquipmentmodelController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/InterruptionController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 根据风电机状态判断通讯中断并记录。 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-27
+ */
+@RestController
+@RequestMapping("//interruption")
+public class InterruptionController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/InterruptionItemController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 记录通讯中断表中的记录的分解过程。 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-27
+ */
+@RestController
+@RequestMapping("//interruption-item")
+public class InterruptionItemController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/LineController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2022-02-28
+ */
+@RestController
+@RequestMapping("//line")
+public class LineController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/MeterpointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2022-02-28
+ */
+@RestController
+@RequestMapping("//meterpoint")
+public class MeterpointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/MeterpointvalueController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2022-03-21
+ */
+@RestController
+@RequestMapping("//meterpointvalue")
+public class MeterpointvalueController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicBoxchangeController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 箱变 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-boxchange")
+public class ProBasicBoxchangeController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicBranchController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicCompanyController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicEnergyGroupController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicEquipmentController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风机 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-windturbine")
+public class ProBasicEquipmentController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicEquipmentPointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 设备测点 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-equipment-point")
+public class ProBasicEquipmentPointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicInverterController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 逆变器 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-inverter")
+public class ProBasicInverterController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicJunctionboxController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 汇流箱 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-junctionbox")
+public class ProBasicJunctionboxController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicLineController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicMaintransformerController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 主变表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-01-30
+ */
+@RestController
+@RequestMapping("//pro-basic-maintransformer")
+public class ProBasicMaintransformerController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicMeterPointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 电计量点表 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-meter-point")
+public class ProBasicMeterPointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicModelPowerController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-basic-model-power")
+public class ProBasicModelPowerController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicModelPowerRdController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-06
+ */
+@RestController
+@RequestMapping("//pro-basic-model-power-rd")
+public class ProBasicModelPowerRdController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicPhotovoltaicPointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 光伏测点 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-photovoltaic-point")
+public class ProBasicPhotovoltaicPointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicPowerstationController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicPowerstationPointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场站测点 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-wppoint")
+public class ProBasicPowerstationPointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicProjectController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicProjectPlanController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 工程计划表 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-project-plan")
+public class ProBasicProjectPlanController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicRealtimeDbconfigController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 实时数据库配置表 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-realtime-dbconfig")
+public class ProBasicRealtimeDbconfigController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicRegionController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicSquareController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicStatusPointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-17
+ */
+@RestController
+@RequestMapping("//pro-basic-status-point")
+public class ProBasicStatusPointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicSubStationController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 变电所 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-windsub-station")
+public class ProBasicSubStationController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicSubStationTestpointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-09-17
+ */
+@RestController
+@RequestMapping("//pro-basic-sub-station-testpoint")
+public class ProBasicSubStationTestpointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicWeatherStationController.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProBasicWindturbinePowerController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风机功率曲线 前端控制器
+ * </p>
+ *
+ * @author 石林
+ * @since 2022-10-13
+ */
+@RestController
+@RequestMapping("//pro-basic-windturbine-power")
+public class ProBasicWindturbinePowerController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEcoWindspecificInfoDayController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 日专题分析 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-eco-windspecific-info-day")
+public class ProEcoWindspecificInfoDayController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconActivePowerDataController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 动态功率数据 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-27
+ */
+@RestController
+@RequestMapping("//pro-econ-active-power-data")
+public class ProEconActivePowerDataController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconAnalysisSubprojectWindcanController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电项目表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-11-29
+ */
+@RestController
+@RequestMapping("//pro-econ-analysis-subproject-windcan")
+public class ProEconAnalysisSubprojectWindcanController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconAnalysisSubprojectWindcannotController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电项目不可编辑表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-11-29
+ */
+@RestController
+@RequestMapping("//pro-econ-analysis-subproject-windcannot")
+public class ProEconAnalysisSubprojectWindcannotController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconAnalysisSubtableBottomController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电表底 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-11-29
+ */
+@RestController
+@RequestMapping("//pro-econ-analysis-subtable-bottom")
+public class ProEconAnalysisSubtableBottomController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconBenchmarkController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 对标管理 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-benchmark")
+public class ProEconBenchmarkController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconBrownoutsEvent2Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 与停机事件关联(限电停机时),数据库中无关联,程序控制 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-25
+ */
+@RestController
+@RequestMapping("//pro-econ-brownouts-event2")
+public class ProEconBrownoutsEvent2Controller {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconBrownoutsEventController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 与停机事件关联(限电停机时),数据库中无关联,程序控制 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-brownouts-event")
+public class ProEconBrownoutsEventController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittMonthMainController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电机月拟合曲线主表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-curve-fitt-month-main")
+public class ProEconCurveFittMonthMainController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittMonthSubController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电机月拟合曲线子表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-curve-fitt-month-sub")
+public class ProEconCurveFittMonthSubController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittingMainController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电机拟合曲线主表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-curve-fitting-main")
+public class ProEconCurveFittingMainController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconCurveFittingSubController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风电机拟合曲线子表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-curve-fitting-sub")
+public class ProEconCurveFittingSubController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconElectricaltestPointController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 电气测点 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-electricaltest-point")
+public class ProEconElectricaltestPointController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalDayController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-02-21
+ */
+@RestController
+@RequestMapping("//pro-econ-eq-original-day")
+public class ProEconEqOriginalDayController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalIndexController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-02-21
+ */
+@RestController
+@RequestMapping("//pro-econ-eq-original-index")
+public class ProEconEqOriginalIndexController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalMonthController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-02-21
+ */
+@RestController
+@RequestMapping("//pro-econ-eq-original-month")
+public class ProEconEqOriginalMonthController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqOriginalYearController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-02-21
+ */
+@RestController
+@RequestMapping("//pro-econ-eq-original-year")
+public class ProEconEqOriginalYearController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEqTargetController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-02-21
+ */
+@RestController
+@RequestMapping("//pro-econ-eq-target")
+public class ProEconEqTargetController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDayDetailedController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 设备日明细 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-day-detailed")
+public class ProEconEquipmentDayDetailedController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDayInfoController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风机绩效榜 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-day-info")
+public class ProEconEquipmentDayInfoController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDeviatPowerController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author xieshengjie
+ * @since 2023-04-27
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-deviat-power")
+public class ProEconEquipmentDeviatPowerController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentDeviatSpeedController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author xieshengjie
+ * @since 2023-04-27
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-deviat-speed")
+public class ProEconEquipmentDeviatSpeedController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfo15minuteController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 电设备15分钟信息表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-04
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info15-minute")
+public class ProEconEquipmentInfo15minuteController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay1Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 五损电量 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-01
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info-day1")
+public class ProEconEquipmentInfoDay1Controller {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay2Controller.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay3Controller.java

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

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay4Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 五损曲线偏差率切入性能 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-01
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info-day4")
+public class ProEconEquipmentInfoDay4Controller {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay5Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 三率 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-01
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info-day5")
+public class ProEconEquipmentInfoDay5Controller {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDay6Controller.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 离散率转换效率 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-01
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info-day6")
+public class ProEconEquipmentInfoDay6Controller {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentInfoDayTopController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 风机日信息表排行 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-11-09
+ */
+@RestController
+@RequestMapping("//pro-econ-equipment-info-day-top")
+public class ProEconEquipmentInfoDayTopController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconEquipmentmodelController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 设备型号 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-equipmentmodel")
+public class ProEconEquipmentmodelController {
+
+}

+ 20 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconFaultLiminatedefectsController.java

@@ -0,0 +1,20 @@
+package com.gyee.generation.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 故障消缺及时率 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2022-10-21
+ */
+@RestController
+@RequestMapping("//pro-econ-fault-liminatedefects")
+public class ProEconFaultLiminatedefectsController {
+
+}

+ 0 - 0
generationXK-service/src/main/java/com/gyee/generation/controller/ProEconInOrOutSpeedTotal2Controller.java


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini