Browse Source

宁夏风公司

王波 8 months ago
commit
b5816d4ef6
100 changed files with 8835 additions and 0 deletions
  1. 12 0
      .idea/encodings.xml
  2. 14 0
      .idea/misc.xml
  3. 124 0
      .idea/workspace.xml
  4. 23 0
      README.md
  5. 136 0
      common/pom.xml
  6. 19 0
      common/src/main/java/com/gyee/common/CommonMain.java
  7. 150 0
      common/src/main/java/com/gyee/common/config/GeneratorCodeConfig.java
  8. 71 0
      common/src/main/java/com/gyee/common/config/R.java
  9. 12 0
      common/src/main/java/com/gyee/common/config/ResultCode.java
  10. 278 0
      common/src/main/java/com/gyee/common/contant/Contant.java
  11. 370 0
      common/src/main/java/com/gyee/common/contant/ContantXk.java
  12. 104 0
      common/src/main/java/com/gyee/common/domain/AjaxResult.java
  13. 74 0
      common/src/main/java/com/gyee/common/model/Alertrule2.java
  14. 39 0
      common/src/main/java/com/gyee/common/model/Alertrulefailure.java
  15. 87 0
      common/src/main/java/com/gyee/common/model/CharsetKit.java
  16. 1015 0
      common/src/main/java/com/gyee/common/model/Convert.java
  17. 7 0
      common/src/main/java/com/gyee/common/model/DNAStatVal.java
  18. 6 0
      common/src/main/java/com/gyee/common/model/DNAVal.java
  19. 65 0
      common/src/main/java/com/gyee/common/model/Evaluationdatasource.java
  20. 49 0
      common/src/main/java/com/gyee/common/model/Healthconfig.java
  21. 57 0
      common/src/main/java/com/gyee/common/model/P3DeviceFault.java
  22. 70 0
      common/src/main/java/com/gyee/common/model/P3DeviceFeatures.java
  23. 65 0
      common/src/main/java/com/gyee/common/model/PointData.java
  24. 49 0
      common/src/main/java/com/gyee/common/model/Risktype.java
  25. 41 0
      common/src/main/java/com/gyee/common/model/Safeprecstard.java
  26. 94 0
      common/src/main/java/com/gyee/common/model/StrFormatter.java
  27. 476 0
      common/src/main/java/com/gyee/common/model/StringUtils.java
  28. 15 0
      common/src/main/java/com/gyee/common/model/algorithm/PointVo.java
  29. 238 0
      common/src/main/java/com/gyee/common/util/BigDecimalUtils.java
  30. 63 0
      common/src/main/java/com/gyee/common/util/ClassUtil.java
  31. 33 0
      common/src/main/java/com/gyee/common/util/CommonUtils.java
  32. 35 0
      common/src/main/java/com/gyee/common/util/CopyUtils.java
  33. 1168 0
      common/src/main/java/com/gyee/common/util/DateUtils.java
  34. 137 0
      common/src/main/java/com/gyee/common/util/DoubleUtils.java
  35. 172 0
      common/src/main/java/com/gyee/common/util/HttpClientUtil.java
  36. 73 0
      common/src/main/java/com/gyee/common/util/JSONUtil.java
  37. 126 0
      common/src/main/java/com/gyee/common/util/JSONUtils.java
  38. 96 0
      common/src/main/java/com/gyee/common/util/JwtUtil.java
  39. 28 0
      common/src/main/java/com/gyee/common/util/MD5Utils.java
  40. 168 0
      common/src/main/java/com/gyee/common/util/RandomUtil.java
  41. 49 0
      common/src/main/java/com/gyee/common/util/ReflexUtil.java
  42. 89 0
      common/src/main/java/com/gyee/common/util/RestTemplateUtil.java
  43. 344 0
      common/src/main/java/com/gyee/common/util/SortUtils.java
  44. 56 0
      common/src/main/java/com/gyee/common/util/algorithm/GDJTLineBuild.java
  45. 230 0
      common/src/main/java/com/gyee/common/util/algorithm/LineBuild.java
  46. 23 0
      common/src/main/java/com/gyee/common/util/algorithm/MathUtils.java
  47. 36 0
      common/src/main/java/com/gyee/common/util/algorithm/Underdelivery.java
  48. 18 0
      common/src/main/java/com/gyee/common/vo/algorithm/LineParameters.java
  49. 17 0
      common/src/main/java/com/gyee/common/vo/analysis/AnalsisUpdateVo.java
  50. 18 0
      common/src/main/java/com/gyee/common/vo/analysis/AnalysisMainVo.java
  51. 15 0
      common/src/main/java/com/gyee/common/vo/analysis/AnalysisSubVo.java
  52. 18 0
      common/src/main/java/com/gyee/common/vo/analysis/BdzVo.java
  53. 19 0
      common/src/main/java/com/gyee/common/vo/analysis/DeskObject.java
  54. 73 0
      common/src/main/java/com/gyee/common/vo/analysis/DynamicBean.java
  55. 41 0
      common/src/main/java/com/gyee/common/vo/analysis/EnergyDailyVo.java
  56. 355 0
      common/src/main/java/com/gyee/common/vo/benchmark/DataVo.java
  57. 15 0
      common/src/main/java/com/gyee/common/vo/benchmark/DjhxdbInitVo.java
  58. 46 0
      common/src/main/java/com/gyee/common/vo/benchmark/DjhxdbtopVo.java
  59. 73 0
      common/src/main/java/com/gyee/common/vo/benchmark/DynamicBean.java
  60. 30 0
      common/src/main/java/com/gyee/common/vo/benchmark/FjjxbVo.java
  61. 37 0
      common/src/main/java/com/gyee/common/vo/benchmark/FjjxbmxVo.java
  62. 15 0
      common/src/main/java/com/gyee/common/vo/benchmark/FzyVo.java
  63. 67 0
      common/src/main/java/com/gyee/common/vo/benchmark/GoodCompareVo.java
  64. 18 0
      common/src/main/java/com/gyee/common/vo/benchmark/OpeVo.java
  65. 32 0
      common/src/main/java/com/gyee/common/vo/benchmark/Operation.java
  66. 17 0
      common/src/main/java/com/gyee/common/vo/benchmark/RankingVo.java
  67. 70 0
      common/src/main/java/com/gyee/common/vo/benchmark/ValueVo.java
  68. 52 0
      common/src/main/java/com/gyee/common/vo/benchmark/WxsslVo.java
  69. 20 0
      common/src/main/java/com/gyee/common/vo/curve/CurveVo.java
  70. 17 0
      common/src/main/java/com/gyee/common/vo/datacenter/CurveVo.java
  71. 20 0
      common/src/main/java/com/gyee/common/vo/datacenter/ParameterComparisonVo.java
  72. 19 0
      common/src/main/java/com/gyee/common/vo/datacenter/PointDataVo.java
  73. 16 0
      common/src/main/java/com/gyee/common/vo/datacenter/RealExport.java
  74. 10 0
      common/src/main/java/com/gyee/common/vo/healthmanager/CompareVo.java
  75. 27 0
      common/src/main/java/com/gyee/common/vo/matrix/MatrixVo.java
  76. 24 0
      common/src/main/java/com/gyee/common/vo/monitor/AgcVo.java
  77. 16 0
      common/src/main/java/com/gyee/common/vo/monitor/CompreVo.java
  78. 10 0
      common/src/main/java/com/gyee/common/vo/monitor/FittingBoVo.java
  79. 15 0
      common/src/main/java/com/gyee/common/vo/monitor/FittingVo.java
  80. 15 0
      common/src/main/java/com/gyee/common/vo/monitor/MatrixLineVo.java
  81. 32 0
      common/src/main/java/com/gyee/common/vo/monitor/MatrixPowerVo.java
  82. 28 0
      common/src/main/java/com/gyee/common/vo/monitor/MatrixProVo.java
  83. 21 0
      common/src/main/java/com/gyee/common/vo/monitor/MatrixVo.java
  84. 14 0
      common/src/main/java/com/gyee/common/vo/monitor/MatrixWpVo.java
  85. 37 0
      common/src/main/java/com/gyee/common/vo/monitor/StatusVo.java
  86. 34 0
      common/src/main/java/com/gyee/common/vo/specific/SpecificCenterVo.java
  87. 16 0
      common/src/main/java/com/gyee/common/vo/specific/SpecificTarget.java
  88. 26 0
      common/src/main/java/com/gyee/common/vo/specific/SpecificTargetVo.java
  89. 43 0
      common/src/main/java/com/gyee/common/vo/specific/SpecificTopVo.java
  90. 29 0
      common/src/main/java/com/gyee/common/vo/targetdata/KkxzbfxVo.java
  91. 44 0
      common/src/main/java/com/gyee/common/vo/targetdata/NxzbfxVo.java
  92. 33 0
      common/src/main/java/com/gyee/common/vo/threerate/FwjslVo.java
  93. 26 0
      common/src/main/java/com/gyee/common/vo/threerate/PvVo.java
  94. 24 0
      common/src/main/java/com/gyee/common/vo/threerate/QxjslVo.java
  95. 70 0
      common/src/main/resources/application.yml
  96. 42 0
      common/src/test/java/com/gyee/common/CommonMainTest.java
  97. 129 0
      pom.xml
  98. 180 0
      runeconomy-xk/pom.xml
  99. 66 0
      runeconomy-xk/src/main/java/com/gyee/RunEconomyApplication.java
  100. 0 0
      runeconomy-xk/src/main/java/com/gyee/runeconomy/config/CorsConfig.java

+ 12 - 0
.idea/encodings.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$APPLICATION_HOME_DIR$/jbr/bin/src/main/java" charset="UTF-8" />
+    <file url="file://$APPLICATION_HOME_DIR$/jbr/bin/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/common/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/common/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/runeconomy-xk/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
+  </component>
+</project>

+ 14 - 0
.idea/misc.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 124 - 0
.idea/workspace.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="SELECTIVE" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="c9251c3e-9f2f-4b6c-a5f7-503156fe13c0" name="Changes" comment="" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="GitToolBoxStore">
+    <option name="projectConfigVersion" value="5" />
+  </component>
+  <component name="KubernetesApiPersistence"><![CDATA[{}]]></component>
+  <component name="KubernetesApiProvider"><![CDATA[{
+  "isMigrated": true
+}]]></component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="MavenImportPreferences">
+    <option name="generalSettings">
+      <MavenGeneralSettings>
+        <option name="customMavenHome" value="$PROJECT_DIR$/../../apache-maven-3.8.8-bin/apache-maven-3.8.8" />
+        <option name="mavenHomeTypeForPersistence" value="CUSTOM" />
+        <option name="userSettingsFile" value="D:\work\apache-maven-3.8.8-bin\apache-maven-3.8.8\conf\settings.xml" />
+      </MavenGeneralSettings>
+    </option>
+  </component>
+  <component name="ProjectColorInfo">{
+  &quot;associatedIndex&quot;: 1
+}</component>
+  <component name="ProjectId" id="2iwn3jPr2YFMSRwqKgOLfEkwsXR" />
+  <component name="ProjectViewState">
+    <option name="autoscrollFromSource" value="true" />
+    <option name="autoscrollToSource" value="true" />
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "Spring Boot.RunEconomyApplication.executor": "Debug",
+    "WebServerToolWindowFactoryState": "false",
+    "kotlin-language-version-configured": "true",
+    "last_opened_file_path": "D:/work/workspaces/sis",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "settings.editor.selected.configurable": "spring",
+    "vue.rearranger.settings.migration": "true"
+  }
+}]]></component>
+  <component name="ReactorSettings">
+    <option name="notificationShown" value="true" />
+  </component>
+  <component name="RunManager" selected="Spring Boot.RunEconomyApplication">
+    <configuration default="true" type="JetRunConfigurationType">
+      <module name="runeconomy-nx" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
+      <module name="runeconomy-nx" />
+      <option name="filePath" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="CommonMain" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
+      <module name="common" />
+      <option name="SPRING_BOOT_MAIN_CLASS" value="com.gyee.common.CommonMain" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="RunEconomyApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
+      <module name="runeconomy-xk" />
+      <option name="SPRING_BOOT_MAIN_CLASS" value="com.gyee.RunEconomyApplication" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+  </component>
+  <component name="SharedIndexes">
+    <attachedChunks>
+      <set>
+        <option value="bundled-jdk-9f38398b9061-39b83d9b5494-intellij.indexing.shared.core-IU-241.18034.62" />
+        <option value="bundled-js-predefined-1d06a55b98c1-0b3e54e931b4-JavaScript-IU-241.18034.62" />
+      </set>
+    </attachedChunks>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="c9251c3e-9f2f-4b6c-a5f7-503156fe13c0" name="Changes" comment="" />
+      <created>1720410312095</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1720410312095</updated>
+      <workItem from="1720410313228" duration="3048000" />
+      <workItem from="1720420026232" duration="1223000" />
+      <workItem from="1720421274226" duration="538000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+  <component name="XSLT-Support.FileAssociations.UIState">
+    <expand />
+    <select />
+  </component>
+</project>

+ 23 - 0
README.md

@@ -0,0 +1,23 @@
+# sis
+
+
+##模块:
+### common -- 公共类型和方法
+* data -- 公共数据类型
+* utils -- 公共方法
+
+### cache -- 数据缓存模块
+
+
+### realtime -- 实时计算
+
+
+### web -- 接口层
+
+
+
+
+
+
+
+

+ 136 - 0
common/pom.xml

@@ -0,0 +1,136 @@
+<?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>common</artifactId>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.1.0</version>
+        </dependency>
+        <!-- SpringBoot整合Web组件 -->
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.10</version>
+        </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>
+            <version>2.3.28</version>
+        </dependency>
+        <!--mysql-connector-java-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.oracle</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.3</version>
+        </dependency>
+        <!--常用工具类 -->
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-math3</artifactId>
+            <version>3.6.1</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib</artifactId>
+            <version>2.2.2</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <version>1.9.13</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <version>3.1</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.11.0</version>
+        </dependency>
+
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.3.7.RELEASE</version>
+                <configuration>
+                    <classifier>exec</classifier>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 19 - 0
common/src/main/java/com/gyee/common/CommonMain.java

@@ -0,0 +1,19 @@
+package com.gyee.common;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @ClassName : CommonMain
+ * @Author : xieshengjie
+ * @Date: 2021/9/28 17:32
+ * @Description : 通用主启动类
+ */
+@SpringBootApplication
+@MapperScan("com.gyee.common.mapper")
+public class CommonMain {
+    public static void main(String[] args) {
+        SpringApplication.run(CommonMain.class, args);
+    }
+}

+ 150 - 0
common/src/main/java/com/gyee/common/config/GeneratorCodeConfig.java

@@ -0,0 +1,150 @@
+package com.gyee.common.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 + "/src/main/java");
+        gc.setAuthor("谢生杰");
+        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("nxfdprod");
+        dsc.setPassword("gdnxfd123");
+        dsc.setUrl("jdbc:oracle:thin:@49.4.50.80:1521:gdnxfd");
+        mpg.setDataSource(dsc);
+
+//        dsc.setDriverName("com.cloudera.impala.jdbc41.Driver");
+//        dsc.setUrl("jdbc:impala://192.168.1.67:21050/gyee_test");
+//        mpg.setDataSource(dsc);
+
+
+
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+//        pc.setModuleName(scanner("模块名"));
+        pc.setParent("com.gyee.common");
+        pc.setEntity("model.auto");
+//        pc.setMapper("mapper.auto");
+//        pc.setService("service.auto");
+//        pc.setServiceImpl("service.auto.impl");
+//        pc.setController("controller.auto");
+        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();
+    }
+}

+ 71 - 0
common/src/main/java/com/gyee/common/config/R.java

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

+ 12 - 0
common/src/main/java/com/gyee/common/config/ResultCode.java

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

+ 278 - 0
common/src/main/java/com/gyee/common/contant/Contant.java

@@ -0,0 +1,278 @@
+package com.gyee.common.contant;
+
+/**
+ * @ClassName : Contant
+ * @Author : xieshengjie
+ * @Date: 2021/6/15 22:28
+ * @Description : 常量类
+ */
+
+public class Contant {
+
+    //五项损失
+    public static final String WXSS = "RFDL,AI022,RDJSSDL-ZS,RSTSSDL-ZS,RXNSSDL-ZS,RQXSSDL-ZS,RGZSSDL-ZS,NSZSSDL-ZS,RJXSSDL-ZS,RLZSSDL-ZS,RQFSSDL-ZS,RXDSSDL-ZS,RWZSSDL-ZS,RTZSSDL-ZS";
+    //操作指令
+    public static final String opePoints = "CI0668,CI0669,CI0670";
+
+    public static final String benchPoints = "RSDJZSDL,RSSTZSDL,RXNZSDL,RSQXZSDL,RGZZSDL,RSZZSDL,RJXZSDL,RLZZSDL,RQFZSDL,RXDZSDL,RWZZSDL,RTZZSDL";
+    //场站五损电量编码
+    public static final String fiveLossPoints = "RXNSSDL,RDJSSDL,RQXJCLSSDL,RSDTJSSDL,RGZSSDL,RCNSLGZSSDL,RJXSSDL,RCNSLJXSSDL,RXDTJSSDL,RQFDL,RCWSLTQSSDL,RCWSLDWSSDL";
+
+    public static final String monthbenchPoints = "YSDJZSDL,YSSTZSDL,YXNZSDL,YSQXZSDL,YGZZSDL,YSZZSDL,YJXZSDL,YLZZSDL,YQFZSDL,YXDZSDL,YWZZSDL,YTZZSDL";
+
+    public static final String RFDLB = "RFDLB"; //日发电量(升压站)
+    public static final String YFDLB = "YFDLB";//月发电量(升压站)
+    public static final String NFDLB = "NFDLB";//年发电量(升压站)
+
+    public static final String RFDL = "RFDL"; //日发电量
+    public static final String YFDL = "YFDL";//月发电量
+    public static final String NFDL = "NFDL";//年发电量
+
+    public static final String SWDLB = "SWDLB"; //日上网发电量
+    public static final String SWDLY = "SWDLY"; //月上网发电量
+    public static final String SWDLN = "SWDLN"; //年上网发电量
+
+    public static final String GWGWB="GWGWB";//工网电量
+    public static final String GWGWY="GWGWY";//月工网电量
+    public static final String GWGWN="GWGWN";//年工网电量
+
+    public static final String NWGWB="NWGWB";//农网电量
+    public static final String NWGWY="NWGWY";//月农网电量
+    public static final String NWGWN="NWGWN";//年农网电量
+
+    public static final String CYDLB="CYDLB";//场用电量
+    public static final String CYDLY="CYDLY";//月场用电量
+    public static final String CYDLN="CYDLN";//年场用电量
+
+    public static final String FNLYL = "FNLYL";//风能利用率
+    public static final String AQTS = "AQTS";
+
+    public static final String ZZYGL = "ZZYGL";//最优功率
+    public static final String RPJFS = "RPJFS"; //日平均风速
+    public static final String YPJFS = "YPJFS"; //月平均风速
+    public static final String NPJFS = "NPJFS";  //年平均风速
+    public static final String RPJGL = "RPJGL"; //日平均功率
+    public static final String YPJGL = "YPJGL"; //月平均功率
+    public static final String NPJGL = "NPJGL"; //年平均功率
+    public static final String SSFS = "SSFS"; //实时风速
+    public static final String SSZGL = "SSZGL"; //实时功率
+    public static final String AI022 = "AI022"; //风机实时风速
+    public static final String AI130 = "AI130"; //风机实时功率
+    public static final String AIG013 = "AIG013"; //风机实时功率
+    public static final String AI064 = "AI064"; //风机日发电量
+    public static final String AI138 = "AI138"; //风机月发电量
+    public static final String AI139 = "AI139"; //风机年发电量
+
+    //判断数据中断(风速,功率,绕组温度,电流,电压)
+    public static final String INTERRUPTION ="AI022,AI130,AI045,AI061,AI058";
+    public static final String INTERRUPTIONGF ="AIG013,AIG017,AIG009,AIG006";
+    //判断状态
+    public static final String MX000 = "MX000"; //待机
+    public static final String MX002 = "MX002";//运行
+    public static final String MX003 = "MX003";//降出力运行
+    public static final String MX008 = "MX008";//维护
+    public static final String MX006 = "MX006";//故障
+
+    public static final String MX004 = "MX004";//限电
+    public static final String MX012 = "MX012";//离线(光伏关机)
+    //判断降出力
+    public static final String AI134 = "AI134"; //叶轮转速给定
+    public static final String AI129 = "AI129"; //转矩给定
+    public static final String AI178 = "AI178";//发电状态下的转速给定
+    public static final String AI443 = "AI443";//scada有功设定值
+
+    public static final String ZTMX = "ZTMX"; //状态明细
+    public static final String FJ5T = "FJZT"; //五种状态
+    public static final String AI422 = "AI422";  //AI状态码
+
+    public static final String RSSQFZT = "RSSQFZT";  //实时欠发状态
+
+    public static final String IRRAD = "FCCFTFS70";
+
+    //明细状态
+    public static final String CNGZNUM = "CNGZNUM";  //场内受累故障台数(明细)
+    public static final String CNJXNUM = "CNJXNUM";  //场内受累检修台数(明细)
+    public static final String DJNUM = "DJNUM";  //待机台数(明细)
+    public static final String DWSLNUM = "DWSLNUM";   //电网受累台数(明细)
+    public static final String FDNUM = "FDNUM";   //发电台数(明细)
+    public static final String FDJCLNUM = "FDJCLNUM";   //缺陷降出力台数(明细)
+    public static final String GZNUM = "GZNUM";   //故障台数(明细)
+    public static final String HJSLNUM = "HJSLNUM";   //环境受累台数(明细)
+    public static final String JXNUM = "JXNUM";   //检修台数(明细)
+    public static final String LXNUM = "LXNUM";  //离线台数(明细)
+    public static final String TJNUM = "TJNUM";  //手动停机台数(明细)
+    public static final String XDJCLNUM = "XDJCLNUM";  //限电降出力台数(明细)
+    public static final String XDTJNUM = "XDTJNUM";  //限电停机台数(明细)
+    //六种状态
+    public static final String DJTS = "DJTS";   //待机台数
+    public static final String GZTJ = "GZTJ";   //故障停机台数
+    public static final String TXZD = "TXZD";  //通讯中断台数
+    public static final String WHTJ = "WHTJ";  //维护停机台数
+    public static final String XDTS = "XDTS";  //限电台数
+    public static final String YXTS = "YXTS";  //运行台数
+    public static final String SLTS = "SLTS";  //受累台数
+
+    public static final String ZSGL = "ZSGL";//风机自算功率
+    public static final String ZZSGL = "ZZSGL";//场站自算功率
+    public static final String BZGL = "BZGL";//风机保证功率
+    public static final String ZBZGL = "ZBZGL";//场站保证功率
+
+    //风机日损失电量
+    public static final String WTRDJSSDL ="RDJSSDL-ZS";  //待机损失电量
+    public static final String WTRSTSSDL ="RSTSSDL-ZS"; //手动停机损失电量
+    public static final String WTRXNSSDL = "RXNSSDL-ZS"; //性能损失电量
+    public static final String WTRQXSSDL = "RQXSSDL-ZS";//降出力损失电量
+
+    public static final String WTRGZSSDL = "RGZSSDL-ZS"; //故障损失电量
+    public static final String WTRSZSSDL = "RSZSSDL-ZS"; //受累故障损失电量
+
+    public static final String WTRJXSSDL = "RJXSSDL-ZS";//维护损失电量
+    public static final String WTRLZSSDL = "RLZSSDL-ZS";//受累检修损失电量
+
+    public static final String WTRQFSSDL = "RQFSSDL-ZS";//限电欠发损失电量
+    public static final String WTRXDSSDL = "RXDSSDL-ZS";//限电损失电量
+
+    public static final String WTRWZSSDL = "RWZSSDL-ZS";//电网受累
+    public static final String WTRTZSSDL = "RTZSSDL-ZS";//天气受累
+
+
+    public static final String GZSSDL ="GZSSDL";  //故障损失电量
+    public static final String WHSSDL ="WHSSDL"; //维护损失电量
+    public static final String XNSSDL = "XNSSDL"; //性能损失电量
+    public static final String XDSSDL = "XDSSDL";//限电损失电量
+    public static final String SLSSDL = "SLSSDL";//受累损失电量
+    //风机月损失电量
+    public static final String WTYDJSSDL ="YDJSSDL-ZS";  //待机损失电量
+    public static final String WTYSTSSDL ="YSTSSDL-ZS"; //手动停机损失电量
+    public static final String WTYXNSSDL = "YXNSSDL-ZS"; //性能损失电量
+    public static final String WTYQXSSDL = "YQXSSDL-ZS";//降出力损失电量
+
+    public static final String WTYGZSSDL = "YGZSSDL-ZS"; //故障损失电量
+    public static final String WTYSZSSDL = "YSZSSDL-ZS"; //受累故障损失电量
+
+    public static final String WTYJXSSDL = "YJXSSDL-ZS";//维护损失电量
+    public static final String WTYLZSSDL = "YLZSSDL-ZS";//受累检修损失电量
+
+    public static final String WTYQFSSDL = "YQFSSDL-ZS";//限电欠发损失电量
+    public static final String WTYXDSSDL = "YXDSSDL-ZS";//限电损失电量
+
+    public static final String WTYWZSSDL = "YWZSSDL-ZS";//电网受累
+    public static final String WTYTZSSDL = "YTZSSDL-ZS";//天气受累
+    //风机年损失电量
+    public static final String WTNDJSSDL ="NDJSSDL-ZS";  //待机损失电量
+    public static final String WTNSTSSDL ="NSTSSDL-ZS"; //手动停机损失电量
+    public static final String WTNXNSSDL = "NXNSSDL-ZS"; //性能损失电量
+    public static final String WTNQXSSDL = "NQXSSDL-ZS";//降出力损失电量
+
+    public static final String WTNGZSSDL = "NGZSSDL-ZS"; //故障损失电量
+    public static final String WTNSZSSDL = "NSZSSDL-ZS"; //受累故障损失电量
+
+    public static final String WTNJXSSDL = "NJXSSDL-ZS";//维护损失电量
+    public static final String WTNLZSSDL = "NLZSSDL-ZS";//受累检修损失电量
+
+    public static final String WTNQFSSDL = "NQFSSDL-ZS";//限电欠发损失电量
+    public static final String WTNXDSSDL = "NXDSSDL-ZS";//限电损失电量
+
+    public static final String WTNWZSSDL = "NWZSSDL-ZS";//电网受累
+    public static final String WTNTZSSDL = "NTZSSDL-ZS";//天气受累
+
+    //场站日五损
+    public static final String RSDJZSDL ="RSDJZSDL";  //待机损失电量
+    public static final String RSSTZSDL ="RSSTZSDL"; //手动停机损失电量
+    public static final String RXNZSDL = "RXNZSDL"; //性能损失电量
+    public static final String RSQXZSDL = "RSQXZSDL";//降出力损失电量
+    public static final String RGZZSDL = "RGZZSDL"; //故障损失电量
+    public static final String RSZZSDL = "RSZZSDL"; //受累故障损失电量
+    public static final String RJXZSDL = "RJXZSDL";//维护损失电量
+    public static final String RLZZSDL = "RLZZSDL";//受累检修损失电量
+    public static final String RQFZSDL = "RQFZSDL";//限电欠发损失电量
+    public static final String RXDZSDL = "RXDZSDL";//限电损失电量
+    public static final String RWZZSDL = "RWZZSDL";//电网受累
+    public static final String RTZZSDL = "RTZZSDL";//天气受累
+    //场站月五损
+    public static final String YSDJZSDL ="YSDJZSDL";  //待机损失电量
+    public static final String YSSTZSDL ="YSSTZSDL"; //手动停机损失电量
+    public static final String YXNZSDL = "YXNZSDL"; //性能损失电量
+    public static final String YSQXZSDL = "YSQXZSDL";//降出力损失电量
+    public static final String YGZZSDL = "YGZZSDL"; //故障损失电量
+    public static final String YSZZSDL = "YSZZSDL"; //受累故障损失电量
+    public static final String YJXZSDL = "YJXZSDL";//维护损失电量
+    public static final String YLZZSDL = "YLZZSDL";//受累检修损失电量
+    public static final String YQFZSDL = "YQFZSDL";//限电欠发损失电量
+    public static final String YXDZSDL = "YXDZSDL";//限电损失电量
+    public static final String YWZZSDL = "YWZZSDL";//电网受累
+    public static final String YTZZSDL = "YTZZSDL";//天气受累
+    //场站年五损
+    public static final String NSDJZSDL ="NSDJZSDL";  //待机损失电量
+    public static final String NSSTZSDL ="NSSTZSDL"; //手动停机损失电量
+    public static final String NXNZSDL = "NXNZSDL"; //性能损失电量
+    public static final String NSQXZSDL = "NSQXZSDL";//降出力损失电量
+    public static final String NGZZSDL = "NGZZSDL"; //故障损失电量
+    public static final String NSZZSDL = "NSZZSDL"; //受累故障损失电量
+    public static final String NJXZSDL = "NJXZSDL";//维护损失电量
+    public static final String NLZZSDL = "NLZZSDL";//受累检修损失电量
+    public static final String NQFZSDL = "NQFZSDL";//限电欠发损失电量
+    public static final String NXDZSDL = "NXDZSDL";//限电损失电量
+    public static final String NWZZSDL = "NWZZSDL";//电网受累
+    public static final String NTZZSDL = "NTZZSDL";//天气受累
+
+    //欠发发电量
+    public static final String R0QFZT = "R0QFZT";
+    public static final String R1QFZT = "R1QFZT";
+    public static final String R2QFZT = "R2QFZT";
+    public static final String R3QFZT = "R3QFZT";
+    public static final String R4QFZT = "R4QFZT";
+
+    //节能减排
+    public static final String JPEYHL = "JPEYHL";   //减排二氧化硫
+    public static final String JPEYHT = "JPEYHT";   //减排二氧化碳
+    public static final String JYBM = "JYBM";   //节约标煤
+    public static final String JYS = "JYS";   //节约用水
+
+
+
+    public static final String TPOINT_WP_XDTS = "XDTS";// 限电台数
+    public static final String TPOINT_WP_YXTS = "YXTS";// 运行台数
+    public static final String TPOINT_WP_DJTS = "DJTS"; // 待机台数
+    public static final String TPOINT_WP_WHTJ = "WHTJ";// 维护台数
+    public static final String TPOINT_WP_GZTJ = "GZTJ";// 故障台数
+    public static final String TPOINT_WP_TXZD = "TXZD";// 离线台数
+    public static final String TPOINT_WP_DWSLTS = "DWSLNUM";// 受累台数
+    public static final String TPOINT_WP_HJSLTS = "HJSLNUM";// 受累台数
+    public static final String TPOINT_WT_YCGL = "FCFGCDQ0001";// 预测功率
+    public static final String TPOINT_WP_BZGL = "ZBZGL";// 保证功率
+    public static final String TPOINT_WP_YFGL = "ZZSGL";// 应发功率
+    public static final String TPOINT_WP_SJGL = "SSZGL";// 实际功率
+    public static final String TPOINT_WP_AGC = "AGC002";// agc
+    public static final String TPOINT_WP_CXGL = "AGC001";// 出线功率SSFS
+    public static final String TPOINT_WP_SSFS = "SSFS";// 实时风速
+
+
+    public static final String TPOINT_WP_DJNUM = "DJNUM"; //待机明细
+
+    public static final String TPOINT_WP_MATRIX = "XDTS,YXTS,DJTS,WHTJ,GZTJ,TXZD,SSFS,SLTS,FCFGCDQ0001,ZBZGL,ZZSGL,SSZGL,AGC002,AGC001";
+
+
+    public static final String TPOINT_WT_FJZT = "FJZT" ;
+
+    public static final String XDSL = "XDSL" ; //限电受累
+
+    public static final String XDZT = "XDZT" ; //限电状态
+
+    public static final String XCLZT = "XCLZT"; //限出力状态
+
+  //  DI11139 DI10923
+  public static final String DI11139 = "DI11139";
+    public static final String DI10923 = "DI10923";
+
+    public static final String LLGL = "LLGL"; //理论功率
+
+
+    public static final String ZHGL = "ZHGL"; //最优功率
+
+    public static final String RKYDL = "RKYDL"; //日可用电量
+    public static final String RFDLC = "RFDLC"; //日理论发电量
+
+
+    public static final String GZZT = "GZZT"; //故障状态
+}

+ 370 - 0
common/src/main/java/com/gyee/common/contant/ContantXk.java

@@ -0,0 +1,370 @@
+package com.gyee.common.contant;
+
+/**
+ * 信控统一编码
+ */
+
+public class ContantXk {
+    public static final String  AQTS= "AQTS";//安全天数
+    public static final String  CZZT= "CZZT";//场站状态
+    public static final String  SBJRZT= "SBJRZT";//场站设备接入状态
+    public static final String  DQJRZT= "DQJRZT";//场站电气接入状态
+    public static final String  AGCJRZT= "AGCJRZT";//场站AGC/AVC接入状态
+    public static final String  GLYCJRZT= "GLYCJRZT";//场站功率预测接入状态
+    public static final String  QXZJRZT= "QXZJRZT";//场站测风塔接入状态
+    public static final String  SSPJFS= "SSPJFS";//场站实时平均风速
+    public static final String  SSPJGZD = "SSPJGZD";
+    public static final String  SSZGL= "SSZGL";//场站实时总功率
+    public static final String  SSZGLSYZ= "SSZGLSYZ";//场站实时总功率 升压站
+    public static final String  SSZLLGL= "SSZLLGL";//场站实时总理论功率
+    public static final String  SSZBZGL= "SSZBZGL";//场站实时总保证功率
+    public static final String  SSZNHGLZS= "SSZNHGLZS";//场站实时总拟合功率(自算)
+    public static final String  ZYCGL = "ZYCGL";   //总预测功率
+    public static final String  SSZZYGL= "SSZZYGL";//场站实时总最优功率
+    public static final String  SSZKYGL= "SSZKYGL";//场站实时总可用功率
+    public static final String  RPJGL= "RPJGL";//日平均功率
+    public static final String  RPJFS= "RPJFS";//日平均风速
+    public static final String  RPJGZD= "RPJGZD";//日平均光照度
+    public static final String  RFDL= "RFDL";//日发电量
+    public static final String  RKYDL= "RKYDL";//日可用电量
+    public static final String  RLLFDL= "RLLFDL";//日理论发电量
+    public static final String  RLLFDLZS= "RLLFDLZS"; //日理论发电量自算
+    public static final String  RGZSSDL= "RGZSSDL";//日故障损失电量
+    public static final String  RCNSLGZSSDL= "RCNSLGZSSDL";//日场内受累故障损失电量
+    public static final String  RJXSSDL= "RJXSSDL";//日检修损失电量
+    public static final String  RCNSLJXSSDL= "RCNSLJXSSDL";//日场内受累检修损失电量
+    public static final String  RDJSSDL= "RDJSSDL";//日待机损失电量
+    public static final String  RQXJCLSSDL= "RQXJCLSSDL";//日缺陷降出力损失电量
+    public static final String  RSDTJSSDL= "RSDTJSSDL";//日手动停机损失电量
+    public static final String  RXNSSDL= "RXNSSDL";//日性能损失电量
+    public static final String  RXDTJSSDL= "RXDTJSSDL";//日限电停机损失电量
+    public static final String  RXDJCLSSDL= "RXDJCLSSDL";//日限电降出力损失电量
+    public static final String  RCWSLDWSSDL= "RCWSLDWSSDL";//日场外受累电网损失电量
+    public static final String  RCWSLTQSSDL= "RCWSLTQSSDL";//日场外受累天气损失电量
+    public static final String  RZFDL= "RZFDL";//日增发电量
+    public static final String  RQFDL= "RQFDL";//日欠发电量
+    public static final String  YPJGL= "YPJGL";//月平均功率
+    public static final String  YPJFS= "YPJFS";//月平均风速
+    public static final String  YPJGZD= "YPJGZD";//月平均光照度
+    public static final String  YFDL= "YFDL";//月发电量
+    public static final String  YKYDL= "YKYDL";//月可用电量
+    public static final String  YLLFDL= "YLLFDL";//月理论发电量
+    public static final String  YLLFDLZS= "YLLFDLZS";//月理论发电量自算
+    public static final String  YGZSSDL= "YGZSSDL";//月故障损失电量
+    public static final String  YCNSLGZSSDL= "YCNSLGZSSDL";//月场内受累故障损失电量
+    public static final String  YJXSSDL= "YJXSSDL";//月检修损失电量
+    public static final String  YCNSLJXSSDL= "YCNSLJXSSDL";//月场内受累检修损失电量
+    public static final String  YDJSSDL= "YDJSSDL";//月待机损失电量
+    public static final String  YQXJCLSSDL= "YQXJCLSSDL";//月缺陷降出力损失电量
+    public static final String  YSDTJSSDL= "YSDTJSSDL";//月手动停机损失电量
+    public static final String  YXNSSDL= "YXNSSDL";//月性能损失电量
+    public static final String  YXDTJSSDL= "YXDTJSSDL";//月限电停机损失电量
+    public static final String  YXDJCLSSDL= "YXDJCLSSDL";//月限电降出力损失电量
+    public static final String  YCWSLDWSSDL= "YCWSLDWSSDL";//月场外受累电网损失电量
+    public static final String  YCWSLTQSSDL= "YCWSLTQSSDL";//月场外受累天气损失电量
+    public static final String  YZFDL= "YZFDL";//月增发电量
+    public static final String  YQFDL= "YQFDL";//月欠发电量
+    public static final String  NPJGL= "NPJGL";//年平均功率
+    public static final String  NPJFS= "NPJFS";//年平均风速
+    public static final String  NPJGZD= "NPJGZD";//年平均光照度
+    public static final String  NFDL= "NFDL";//年发电量
+    public static final String  NKYDL= "NKYDL";//年可用电量
+    public static final String  NLLFDL= "NLLFDL";//年理论发电量
+    public static final String  NLLFDLZS= "NLLFDLZS";//年理论发电量
+    public static final String  NGZSSDL= "NGZSSDL";//年故障损失电量
+    public static final String  NCNSLGZSSDL= "NCNSLGZSSDL";//年场内受累故障损失电量
+    public static final String  NJXSSDL= "NJXSSDL";//年检修损失电量
+    public static final String  NCNSLJXSSDL= "NCNSLJXSSDL";//年场内受累检修损失电量
+    public static final String  NDJSSDL= "NDJSSDL";//年待机损失电量
+    public static final String  NQXJCLSSDL= "NQXJCLSSDL";//年缺陷降出力损失电量
+    public static final String  NSDTJSSDL= "NSDTJSSDL";//年手动停机损失电量
+    public static final String  NXNSSDL= "NXNSSDL";//年性能损失电量
+    public static final String  NXDTJSSDL= "NXDTJSSDL";//年限电停机损失电量
+    public static final String  NXDJCLSSDL= "NXDJCLSSDL";//年限电降出力损失电量
+    public static final String  NCWSLDWSSDL= "NCWSLDWSSDL";//年场外受累电网损失电量
+    public static final String  NCWSLTQSSDL= "NCWSLTQSSDL";//年场外受累天气损失电量
+    public static final String  NZFDL= "NZFDL";//年增发电量
+    public static final String  NQFDL= "NQFDL";//年欠发电量
+    public static final String  PJFS15= "PJFS15";//15分钟平均风速
+    public static final String  PJGZD15= "PJGZD15";//15分钟光照度
+    public static final String  PJGL15= "PJGL15";//15分钟平均功率
+    public static final String  FDL15= "FDL15";//15分钟发电量
+    public static final String  KYDL15= "KYDL15";//15分钟可用电量
+    public static final String  LLFDL15= "LLFDL15";//15分钟理论发电量
+    public static final String  LLFDL15ZS= "LLFDL15ZS";//15分钟理论发电量
+    public static final String  GZSSDL15= "GZSSDL15";//15分钟故障损失电量
+    public static final String  CNSLGZSSDL15= "CNSLGZSSDL15";//15分钟场内受累故障损失电量
+    public static final String  JXSSDL15= "JXSSDL15";//15分钟检修损失电量
+    public static final String  CNSLJXSSDL15= "CNSLJXSSDL15";//15分钟场内受累检修损失电量
+    public static final String  DJSSDL15= "DJSSDL15";//15分钟待机损失电量
+    public static final String  QXJCLSSDL15= "QXJCLSSDL15";//15分钟缺陷降出力损失电量
+    public static final String  SDTJSSDL15= "SDTJSSDL15";//15分钟手动停机损失电量
+    public static final String  XNSSDL15= "XNSSDL15";//15分钟性能损失电量
+    public static final String  XDTJSSDL15= "XDTJSSDL15";//15分钟限电停机损失电量
+    public static final String  XDJCLSSDL15= "XDJCLSSDL15";//15分钟限电降出力损失电量
+    public static final String  CWSLDWSSDL15= "CWSLDWSSDL15";//15分钟场外受累电网损失电量
+    public static final String  CWSLTQSSDL15= "CWSLTQSSDL15";//15分钟场外受累天气损失电量
+    public static final String  ZFDL15= "ZFDL15";//15分钟增发电量
+    public static final String  QFDL15= "QFDL15";//15分钟欠发电量
+    public static final String  RFDLSYZ= "RFDLSYZ";//日发电量(升压站)
+    public static final String  YFDLSYZ= "YFDLSYZ";//月发电量(升压站)
+    public static final String  NFDLSYZ= "NFDLSYZ";//年发电量(升压站)
+    public static final String  RSWDL= "RSWDL";//日上网电量
+    public static final String  YSWDL= "YSWDL";//月上网电量
+    public static final String  NSWDL= "NSWDL";//年上网电量
+    public static final String  RGWGWDL= "RGWGWDL";//日工网购网电量
+    public static final String  YGWGWDL= "YGWGWDL";//月工网购网电量
+    public static final String  NGWGWDL= "NGWGWDL";//年工网购网电量
+    public static final String  RNWGWDL= "RNWGWDL";//日农网购网电量
+    public static final String  YNWGWDL= "YNWGWDL";//月农网购网电量
+    public static final String  NNWGWDL= "NNWGWDL";//年农网购网电量
+    public static final String  RCYDL= "RCYDL";//日厂用电量
+    public static final String  YCYDL= "YCYDL";//月厂用电量
+    public static final String  NCYDL= "NCYDL";//年厂用电量
+    public static final String  AIG007= "AIG007";
+    public static final String  AIEMI002= "AIEMI002";
+
+    public static final String  DJTSMX= "DJTSMX";//待机台数(明细)
+    public static final String  SDTJTSMX= "SDTJTSMX";//手动停机台数(明细)
+    public static final String  XNTSMX= "XNTSMX";//性能台数(明细)
+    public static final String  QXJCLTSMX= "QXJCLTSMX";//缺陷降出力台数(明细)
+    public static final String  GZTSMX= "GZTSMX";//故障台数(明细)
+    public static final String  CNSLGZTSMX= "CNSLGZTSMX";//场内受累故障台数(明细)
+    public static final String  JXTSMX= "JXTSMX";//检修台数(明细)
+    public static final String  CNSLJXTSMX= "CNSLJXTSMX";//场内受累检修台数(明细)
+    public static final String  XDTJTSMX= "XDTJTSMX";//限电停机台数(明细)
+    public static final String  XDJCLTSMX= "XDJCLTSMX";//限电降出力台数(明细)
+    public static final String  CWSLDWTSMX= "CWSLDWTSMX";//场外受累电网台数(明细)
+    public static final String  CWSLTQTSMX= "CWSLTQTSMX";//场外受累天气台数(明细)
+    public static final String  LXTSMX= "LXTSMX";//离线台数(明细)
+    public static final String  TXZDTSMX= "TXZDTSMX";//通讯中断台数(明细)
+
+    public static final String  DJTS= "DJTS";//待机台数
+    public static final String  GZTJTS= "GZTJTS";//故障停机台数
+    public static final String  TXZDTS= "TXZDTS";//通讯中断台数
+    public static final String  JXTJTS= "JXTJTS";//维护停机台数
+    public static final String  SLTS= "SLTS";//受累台数
+    public static final String  XDTS= "XDTS";//限电台数
+    public static final String  YXTS= "YXTS";//运行台数
+
+    public static final String  RZHD= "RZHD";//日自耗电
+    public static final String  YZHD= "YZHD";//月自耗电
+    public static final String  NZHD= "NZHD";//年自耗电
+    public static final String  ZHD15= "ZHD15";//15分钟自耗电
+
+
+    public static final String  SBZT= "SBZT";//设备状态
+    public static final String  MXZT= "MXZT";//设备明细状态
+    public static final String  ZTCXSJ= "ZTCXSJ";//设备当前状态下持续时间
+    public static final String  SSBF= "SSBF";//设备实时补风风速
+    public static final String  SSBG= "SSBG";//设备实时补光
+    public static final String  XDZT= "XDZT";//设备限电状态
+    public static final String  GPZT= "GPZT";//设备挂牌状态(原限电受累)
+    public static final String  LSQFZT= "LSQFZT";//设备历史欠发状态
+    public static final String  SSQFZT= "SSQFZT";//设备实时欠发状态
+    public static final String  LLGL= "LLGL";//设备理论功率
+    public static final String  BZGL= "BZGL";//设备保证功率
+    public static final String  ZSGL= "ZSGL";//设备拟合功率(自算)
+    public static final String  ZYGL= "ZYGL";//设备最优功率
+    public static final String  KYGL= "KYGL";//设备可用功率
+
+
+
+
+
+    public static final String  CJ_SSFS= "AI066";//设备风速,光照
+    public static final String  CJ_SSGL= "AI114";//设备有功功率
+    public static final String  CJ_SSZS= "AI060";//转速
+    public static final String  CJ_FDZTXZSGD= "AI061";//发电状态下的转速给定
+    public static final String  CJ_SCADA_YGSD= "AI003";//scada有功设定值
+    public static final String  CJ_YLZSGD= "AI110";//叶轮转速给定
+    public static final String  CJ_FDL= "AI121";//发电量
+    public static final String  CJ_DWGL = "AI107";  //电网功率
+    public static final String  CJ_FX = "AI067";  //风向
+    public static final String  CJ_WGGL = "AI107";  //风向
+    public static final String  CJ_DFJD = "AI073";  //对风角度
+
+    public static final String TPOINT_WP_AGC = "AGC002";// agc
+    public static final String TPOINT_WP_CXGL = "AGC001";// 出线
+    public static final String TPOINT_WP_YGSX = "AGC003";// 有功上限
+    public static final String TPOINT_WP_YGXX = "AGC004";// 有功下限
+    public static final String TPOINT_WP_YF = "AGC005";// 远方
+    public static final String TPOINT_WP_TT = "AGC006";// 投退
+    public static final String TPOINT_WP_JBS = "AGC007";// 减闭锁
+    public static final String TPOINT_WP_ZBS = "AGC008";// 增闭锁
+    public static final String TPOINT_WP_XDZT = "AGC009";// 限电状态
+    public static final String TPOINT_WP_ZSGL = "AGC010";// 自算功率
+    public static final String TPOINT_WP_YCGL = "FCFGDQDT0001";// 预测功率
+
+
+    public static final String SSGLSYZ= "SSGLSYZ";//线路实时功率 升压站 采集点
+
+
+
+
+    public static final String NBQSRGL = "AIG067";   //逆变器输入功率
+    public static final String NBQSCGL = "AI114";   //逆变器输出功率
+    public static final String ZLDL = "ZLDL";   //支路电流
+    public static final String JLDL = "AI075";   //交流电流
+    public static final String JLDY = "AIG055";   //交流电压
+
+
+    public static final String QXZWD = "QXZWD";//气象站温度
+
+    public static final String FCCFTFS10 = "FCCFTFS10";//测风塔10米风速
+    public static final String FCCFTFX10 = "FCCFTFX10";//测风塔10米风向
+    public static final String FCCFTFS30 = "FCCFTFS30";//测风塔30米风速
+    public static final String FCCFTFX30 = "FCCFTFX30";//测风塔30米风向
+    public static final String FCCFTFS50 = "FCCFTFS50";//测风塔50米风速
+    public static final String FCCFTFX50 = "FCCFTFX50";//测风塔50米风向
+    public static final String FCCFTFS70 = "FCCFTFS70";//测风塔70米风速
+    public static final String FCCFTFX70 = "FCCFTFX70";//测风塔70米风向
+    public static final String FCCFTWD = "FCCFTWD";//测风塔温度
+    public static final String FCCFTSD = "FCCFTSD";//测风塔湿度
+    public static final String KQMD = "KQMD";//测风塔空气密度
+    public static final String FCCFTYQ = "FCCFTYQ";//测风塔压强
+    //判断数据中断(风速,功率,绕组温度,电流,电压)
+    public static final String INTERRUPTION ="AI066,AI114,AI004";
+
+//    public static final String INTERRUPTION ="AI066,AI114,AI004,AI075,AI093";
+    public static final String INTERRUPTIONGF ="AI114,AI075,AIG055";
+
+
+    public static final String QCZT = "QCZT";  //全场状态
+
+    public static final String JYM = "JYM";
+    public static final String JYS = "JYS";
+    public static final String JYEYHT = "CO2";
+    public static final String JYEYHL = "SO2";
+    public static final String RLYXS = "RLYXS";
+    public static final String YLYXS = "YLYXS";
+    public static final String NLYXS = "NLYXS";
+    public static final String SBKLYL = "SBKLYL";
+    public static final String DXKYXS = "DXKYXS";
+    public static final String FNLYL = "FNLYL";
+
+
+    public static final String QXZFS = "QXZFS";
+    public static final String QXZFX = "QXZFX";
+
+
+    public static final String AI042 = "AI042"; //齿轮箱轴1温度
+    public static final String AI043 = "AI043"; //齿轮箱轴2温度
+    public static final String AI038 = "AI038"; //齿轮箱入口油温
+    public static final String AI039 = "AI039"; //齿轮箱油温
+
+
+    public static final String AI092 = "AI092"; //轴承A温度
+    public static final String AI062 = "AI062"; //轴承B温度
+    public static final String AI004 = "AI004"; //U1绕组温度
+    public static final String AI006 = "AI006"; //V1绕组温度
+    public static final String AI008 = "AI008"; //W1绕组温度
+    public static final String AI059 = "AI059"; //发电机冷却风温度
+
+    public static final String AI050 = "AI050"; //电容器温度1
+    public static final String AI051 = "AI051"; //电容器温度2
+    public static final String AI052 = "AI052"; //电容器温度3
+    public static final String AI076 = "AI076"; //A相电压
+    public static final String AI078 = "AI078"; //B相电压
+    public static final String AI080 = "AI080"; //C相电压
+    public static final String AI020 = "AI020"; //变桨变流器温度
+    public static final String AI035 = "AI035"; //变频器温度2
+    public static final String AI036 = "AI036"; //变频器温度3
+    public static final String AI045 = "AI045"; //伺服电机温度
+    public static final String AI047 = "AI047"; //电机温度2
+    public static final String AI048 = "AI048"; //电机温度3
+    public static final String AI029 = "AI029"; //变桨控制柜温度1
+    public static final String AI030 = "AI030"; //变桨控制柜温度2
+    public static final String AI031 = "AI031"; //变桨控制柜温度3
+
+    public static final String AI085 = "AI085"; //塔底柜温度
+    public static final String AI099 = "AI099"; //塔顶柜温度
+
+    public static final String AI074 = "AI074"; //机舱温度
+
+    public static final String JKZT001= "JKZT001"; //风机实时健康状态
+    public static final String JKZT002= "JKZT002"; //齿轮箱实时健康状态
+    public static final String JKZT003= "JKZT003"; //发电机实时健康状态
+    public static final String JKZT004= "JKZT004"; //控制因素实时健康状态
+    public static final String JKZT005= "JKZT005"; //机舱系统健康状态
+    public static final String JKJL001= "JKJL001"; //风机实时健康结果值
+    public static final String JKJL002= "JKJL002"; //齿轮箱实时健康结果值
+    public static final String JKJL003= "JKJL003"; //发电机实时健康结果值
+    public static final String JKJL004= "JKJL004"; //控制因素实时健康结果值
+    public static final String JKJL005= "JKJL005"; //机舱系统健康结果值
+    public static final String JKYC001= "JKYC001"; //风机健康预测-4小时
+    public static final String JKYC002= "JKYC002"; //齿轮箱健康预测-4小时
+    public static final String JKYC003= "JKYC003"; //发电机健康预测-4小时
+    public static final String JKYC004= "JKYC004"; //控制因素健康预测-4小时
+    public static final String JKYC005= "JKYC005"; //机舱系统健康预测-4小时
+    public static final String JKYC006= "JKYC006"; //风机健康预测-1天
+    public static final String JKYC007= "JKYC007"; //齿轮箱健康预测-1天
+    public static final String JKYC008= "JKYC008"; //发电机健康预测-1天
+    public static final String JKYC009= "JKYC009"; //控制因素健康预测-1天
+    public static final String JKYC010= "JKYC010"; //机舱系统健康预测-1天
+    public static final String JKYC011= "JKYC011"; //风机健康预测-3天
+    public static final String JKYC012= "JKYC012"; //齿轮箱健康预测-3天
+    public static final String JKYC013= "JKYC013"; //发电机健康预测-3天
+    public static final String JKYC014= "JKYC014"; //控制因素健康预测-3天
+    public static final String JKYC015= "JKYC015"; //机舱系统健康预测-3天
+    public static final String JKYC016= "JKYC016"; //风机健康预测-7天
+    public static final String JKYC017= "JKYC017"; //齿轮箱健康预测-7天
+    public static final String JKYC018= "JKYC018"; //发电机健康预测-7天
+    public static final String JKYC019= "JKYC019"; //控制因素健康预测-7天
+    public static final String JKYC020= "JKYC020"; //机舱系统健康预测-7天
+    public static final String JKYC021= "JKYC021"; //风机健康预测-1个月
+    public static final String JKYC022= "JKYC022"; //齿轮箱健康预测-1个月
+    public static final String JKYC023= "JKYC023"; //发电机健康预测-1个月
+    public static final String JKYC024= "JKYC024"; //控制因素健康预测-1个月
+    public static final String JKYC025= "JKYC025"; //机舱系统健康预测-1个月
+    public static final String JKZT100= "JKZT100"; //风机01总健康状态
+    public static final String JKZS= "JKZS"; //健康指数
+    public static final String JKSLLH001= "JKSLLH001"; //风机良好数量
+    public static final String JKSLHG001= "JKSLHG001"; //风机合格数量
+    public static final String JKSLZY001= "JKSLZY001"; //风机注意数量
+    public static final String JKSLYZ001= "JKSLYZ001"; //风机严重数量
+    public static final String JKSLLH002= "JKSLLH002"; //齿轮箱良好数量
+    public static final String JKSLHG002= "JKSLHG002"; //齿轮箱合格数量
+    public static final String JKSLZY002= "JKSLZY002"; //齿轮箱注意数量
+    public static final String JKSLYZ002= "JKSLYZ002"; //齿轮箱严重数量
+    public static final String JKSLLH003= "JKSLLH003"; //发电机良好数量
+    public static final String JKSLHG003= "JKSLHG003"; //发电机合格数量
+    public static final String JKSLZY003= "JKSLZY003"; //发电机注意数量
+    public static final String JKSLYZ003= "JKSLYZ003"; //发电机严重数量
+    public static final String JKSLLH004= "JKSLLH004"; //空置因素良好数量
+    public static final String JKSLHG004= "JKSLHG004"; //空置因素合格数量
+    public static final String JKSLZY004= "JKSLZY004"; //空置因素注意数量
+    public static final String JKSLYZ004= "JKSLYZ004"; //空置因素严重数量
+    public static final String JKSLLH005= "JKSLLH005"; //机舱系统良好数量
+    public static final String JKSLHG005= "JKSLHG005"; //机舱系统合格数量
+    public static final String JKSLZY005= "JKSLZY005"; //机舱系统注意数量
+    public static final String JKSLYZ005= "JKSLYZ005"; //机舱系统严重数量
+
+
+
+    public static final String  ZJZT= "ZJZT";//中间状态
+
+    public static final String MX000 = "MX000"; //待机
+    public static final String MX001 = "MX001";//手动停机
+    public static final String MX002 = "MX002";//正常发电
+    public static final String MX003 = "MX003";//发电降出力
+    public static final String MX004 = "MX004";//故障
+    public static final String MX005 = "MX005"; //故障受累
+    public static final String MX006 = "MX006";//检修
+    public static final String MX007 = "MX007";//检修受累
+    public static final String MX008 = "MX008";//限电降出力
+    public static final String MX009 = "MX009";//限电停机
+    public static final String MX010 = "MX010";//电网受累
+    public static final String MX011 = "MX011";//环境受累
+    public static final String MX012 = "MX012";//通讯中断
+    public static final String MX013 = "MX013";//设备离线
+
+    //新配置预测
+    public static final String FSYC="FSYC"; //风速预测
+    public static final String GZYC = "GZYC"; //光照预测
+    public static final String GLYC = "GLYC"; //功率预测
+    public static final String GCGZQD = "GCGZQD"; //场站光照
+
+
+
+}

+ 104 - 0
common/src/main/java/com/gyee/common/domain/AjaxResult.java

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

+ 74 - 0
common/src/main/java/com/gyee/common/model/Alertrule2.java

@@ -0,0 +1,74 @@
+package com.gyee.common.model;/*
+@author   谢生杰
+@date   2022/9/19-11:46
+*/
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class Alertrule2 {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value="ID",type = IdType.INPUT)
+    private String id;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("DESCRIPTION")
+    private String description;
+
+    @TableField("EXPRESSION")
+    private String expression;
+
+    @TableField("TAG")
+    private String tag;
+
+    @TableField("RANK")
+    private String rank;
+
+    @TableField("ENABLED")
+    private Integer enabled;
+
+    @TableField("MODELID")
+    private String modelid;
+
+    @TableField("EDNAVALUE")
+    private Long ednavalue;
+
+    @TableField("CATEGORY")
+    private String category;
+
+    @TableField("RANGE")
+    private String range;
+
+    @TableField("STATION")
+    private String station;
+
+    @TableField("WINDTURBINE")
+    private String windturbine;
+
+    @TableField("LINE")
+    private String line;
+
+    @TableField("PROJECT")
+    private String project;
+
+    @TableField("ELECTRICAL")
+    private String electrical;
+
+    @TableField("TASKSTART")
+    private String taskstart;
+
+    @TableField("RELATEDPARTS")
+    private String relatedparts;
+
+    @TableField("CREATETIME")
+    private Date createtime;
+
+}

+ 39 - 0
common/src/main/java/com/gyee/common/model/Alertrulefailure.java

@@ -0,0 +1,39 @@
+package com.gyee.common.model;/*
+@author   谢生杰
+@date   2022/9/19-11:47
+*/
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class Alertrulefailure {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "ID",type = IdType.INPUT)
+    private String id;
+
+    @TableField("TID")
+    private String tid;
+
+    @TableField("GZPC")
+    private String gzpc;
+
+    @TableField("GZYY")
+    private String gzyy;
+
+    @TableField("GQJ")
+    private String gqj;
+
+    @TableField("XQSC")
+    private Integer xqsc;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("MODEL")
+    private String model;
+
+}

+ 87 - 0
common/src/main/java/com/gyee/common/model/CharsetKit.java

@@ -0,0 +1,87 @@
+package com.gyee.common.model;
+
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * 字符集工具类
+ * 
+ * @author fc
+ *
+ */
+public class CharsetKit
+{
+    /** ISO-8859-1 */
+    public static final String ISO_8859_1 = "ISO-8859-1";
+    /** UTF-8 */
+    public static final String UTF_8 = "UTF-8";
+    /** GBK */
+    public static final String GBK = "GBK";
+
+    /** ISO-8859-1 */
+    public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1);
+    /** UTF-8 */
+    public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8);
+    /** GBK */
+    public static final Charset CHARSET_GBK = Charset.forName(GBK);
+
+    /**
+     * 转换为Charset对象
+     * 
+     * @param charset 字符集,为空则返回默认字符集
+     * @return Charset
+     */
+    public static Charset charset(String charset)
+    {
+        return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset);
+    }
+
+    /**
+     * 转换字符串的字符集编码
+     * 
+     * @param source 字符串
+     * @param srcCharset 源字符集,默认ISO-8859-1
+     * @param destCharset 目标字符集,默认UTF-8
+     * @return 转换后的字符集
+     */
+    public static String convert(String source, String srcCharset, String destCharset)
+    {
+        return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset));
+    }
+
+    /**
+     * 转换字符串的字符集编码
+     * 
+     * @param source 字符串
+     * @param srcCharset 源字符集,默认ISO-8859-1
+     * @param destCharset 目标字符集,默认UTF-8
+     * @return 转换后的字符集
+     */
+    public static String convert(String source, Charset srcCharset, Charset destCharset)
+    {
+        if (null == srcCharset)
+        {
+            srcCharset = StandardCharsets.ISO_8859_1;
+        }
+
+        if (null == destCharset)
+        {
+            srcCharset = StandardCharsets.UTF_8;
+        }
+
+        if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset))
+        {
+            return source;
+        }
+        return new String(source.getBytes(srcCharset), destCharset);
+    }
+
+    /**
+     * @return 系统字符集编码
+     */
+    public static String systemCharset()
+    {
+        return Charset.defaultCharset().name();
+    }
+
+}

File diff suppressed because it is too large
+ 1015 - 0
common/src/main/java/com/gyee/common/model/Convert.java


+ 7 - 0
common/src/main/java/com/gyee/common/model/DNAStatVal.java

@@ -0,0 +1,7 @@
+package com.gyee.common.model;
+
+public class DNAStatVal {
+	public DNAVal avg = new DNAVal();
+	public DNAVal max = new DNAVal();
+	public DNAVal min = new DNAVal();
+}

+ 6 - 0
common/src/main/java/com/gyee/common/model/DNAVal.java

@@ -0,0 +1,6 @@
+package com.gyee.common.model;
+public class DNAVal {
+	public double DValue;
+	public int Time;
+	public short Status;
+}

+ 65 - 0
common/src/main/java/com/gyee/common/model/Evaluationdatasource.java

@@ -0,0 +1,65 @@
+package com.gyee.common.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2022-02-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("EVALUATIONDATASOURCE")
+public class Evaluationdatasource extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "TARGETID",type = IdType.INPUT)
+    private String targetid;
+
+    @TableField("TARGETNAME")
+    private String targetname;
+
+    @TableField("DATASOURCETABLE")
+    private String datasourcetable;
+
+    @TableField("DATASOURCEFIELD")
+    private String datasourcefield;
+
+    @TableField("STATISTICALMETHOD")
+    private String statisticalmethod;
+
+    @TableField("CONDITION")
+    private String condition;
+
+    @TableField("SORT")
+    private String sort;
+
+    @TableField("GROUPBYFIELDS")
+    private String groupbyfields;
+
+    @TableField("CYCLE")
+    private String cycle;
+
+    @TableField("FIELDTYPE")
+    private BigDecimal fieldtype;
+
+    @TableField("TYPE")
+    private String type;
+
+    @TableField("GENERALFORMULA")
+    private String generalformula;
+
+
+}

+ 49 - 0
common/src/main/java/com/gyee/common/model/Healthconfig.java

@@ -0,0 +1,49 @@
+package com.gyee.common.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2022-09-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("HEALTHCONFIG")
+public class Healthconfig extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableField("ID")
+    private String id;
+
+    @TableField("WPID")
+    private String wpid;
+
+    @TableField("WPNAME")
+    private String wpname;
+
+    @TableField("MODELID")
+    private String modelid;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("FORMULA")
+    private String formula;
+
+    @TableField("FORMULAMAX")
+    private String formulamax;
+
+    @TableField("FORMULASCORE")
+    private Double formulascore;
+
+
+}

+ 57 - 0
common/src/main/java/com/gyee/common/model/P3DeviceFault.java

@@ -0,0 +1,57 @@
+package com.gyee.common.model;/*
+@author   谢生杰
+@date   2022/9/19-11:44
+*/
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.sql.Blob;
+import java.util.Date;
+
+@Data
+public class P3DeviceFault {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value="ID",type = IdType.INPUT)
+    private String id;
+
+    @TableField("CODE")
+    private String code;
+
+    @TableField("FAULTID")
+    private String faultid;
+
+    @TableField("HALTTYPE")
+    private String halttype;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("CATEGORY")
+    private String category;
+
+    @TableField("FAULTLEVEL")
+    private Integer faultlevel;
+
+    @TableField("CAUSE")
+    private Blob cause;
+
+    @TableField("TREATMENTMEASURE")
+    private Blob treatmentmeasure;
+
+    @TableField("DEVICEMODEL")
+    private String devicemodel;
+
+    @TableField("DEVICETREEID")
+    private Double devicetreeid;
+
+    @TableField("CREATETOR")
+    private String createtor;
+
+    @TableField("CREATETIME")
+    private Date createtime;
+
+}

+ 70 - 0
common/src/main/java/com/gyee/common/model/P3DeviceFeatures.java

@@ -0,0 +1,70 @@
+package com.gyee.common.model;/*
+@author   谢生杰
+@date   2022/9/19-11:47
+*/
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class P3DeviceFeatures {
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Long id;
+
+    @TableField("MODELID")
+    private String modelid;
+
+    @TableField("STRUCTUREID")
+    private Integer structureid;
+
+    @TableField("COMPONENTID")
+    private Integer componentid;
+
+    @TableField("UNIFORMCODE")
+    private String uniformcode;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("DESCRIPTION")
+    private String description;
+
+    @TableField("MINVALUE")
+    private Integer minvalue;
+
+    @TableField("MAXVALUE")
+    private Integer maxvalue;
+
+    @TableField("NORMALMIN")
+    private Integer normalmin;
+
+    @TableField("NORMALMAX")
+    private Integer normalmax;
+
+    @TableField("PREALERTVALUE")
+    private Integer prealertvalue;
+
+    @TableField("ALERTVALUE")
+    private Integer alertvalue;
+
+    @TableField("ENABLED")
+    private Integer enabled;
+
+    @TableField("CREATOR")
+    private String creator;
+
+    @TableField("CREATETIME")
+    private Date createtime;
+
+    @TableField("LASTUPDATEPERSON")
+    private String lastupdateperson;
+
+    @TableField("LASTUPDATETIME")
+    private Date lastupdatetime;
+
+}

+ 65 - 0
common/src/main/java/com/gyee/common/model/PointData.java

@@ -0,0 +1,65 @@
+package com.gyee.common.model;
+
+public class PointData {
+
+	private double pointValueInDouble;
+
+	private double pointValueInDouble2;
+
+	private Long pointTime;
+
+	private String pointValue;
+
+	private String pointName;// z自定义名称
+
+	private String ednaId;// edna全局id
+
+	public double getPointValueInDouble2() {
+		return pointValueInDouble2;
+	}
+
+	public void setPointValueInDouble2(double pointValueInDouble2) {
+		this.pointValueInDouble2 = pointValueInDouble2;
+	}
+
+	public String getEdnaId() {
+		return ednaId;
+	}
+
+	public String getPointName() {
+		return pointName;
+	}
+
+	public Long getPointTime() {
+		return pointTime;
+	}
+
+	public String getPointValue() {
+		return pointValue;
+	}
+
+	public  double getPointValueInDouble() {
+		return pointValueInDouble;
+	}
+
+	public void setEdnaId(String ednaId) {
+		this.ednaId = ednaId;
+	}
+
+	public void setPointName(String pointName) {
+		this.pointName = pointName;
+	}
+
+	public void setPointTime(Long pointTime) {
+		this.pointTime = pointTime;
+	}
+
+	public void setPointValue(String pointValue) {
+		this.pointValue = pointValue;
+	}
+
+	public void setPointValueInDouble(double pointValueInDouble) {
+		this.pointValueInDouble = pointValueInDouble;
+	}
+
+}

+ 49 - 0
common/src/main/java/com/gyee/common/model/Risktype.java

@@ -0,0 +1,49 @@
+package com.gyee.common.model;/*
+@author   谢生杰
+@date   2022/9/19-11:48
+*/
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class Risktype {
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Long id;
+
+    @TableField("RSNUM")
+    private String rsnum;
+
+    @TableField("SERIALNUM")
+    private Long serialnum;
+
+    @TableField("STATION")
+    private String station;
+
+    @TableField("LOCATION")
+    private String location;
+
+    @TableField("CONTENT")
+    private String content;
+
+    @TableField("DESCRIBE")
+    private String describe;
+
+    @TableField("PRINCIPAL")
+    private String principal;
+
+    @TableField("ADDTIME")
+    private Date addtime;
+
+    @TableField("ENDTIME")
+    private Date endtime;
+
+    @TableField("STATE")
+    private String state;
+
+}

+ 41 - 0
common/src/main/java/com/gyee/common/model/Safeprecstard.java

@@ -0,0 +1,41 @@
+package com.gyee.common.model;/*
+@author   谢生杰
+@date   2022/9/19-11:48
+*/
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class Safeprecstard {
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Long id;
+
+    @TableField("SERIALNUM")
+    private Long serialnum;
+
+    @TableField("SAFECONTENT")
+    private String safecontent;
+
+    @TableField("DESCRIBE")
+    private String describe;
+
+    @TableField("PRINCIPAL")
+    private String principal;
+
+    @TableField("ADDTIME")
+    private Date addtime;
+
+    @TableField("TYPE")
+    private String type;
+
+    @TableField("OTHER")
+    private String other;
+
+
+}

+ 94 - 0
common/src/main/java/com/gyee/common/model/StrFormatter.java

@@ -0,0 +1,94 @@
+package com.gyee.common.model;
+
+
+/**
+ * 字符串格式化
+ * 
+ * @author fc
+ */
+public class StrFormatter
+{
+
+    public static final String EMPTY_JSON = "{}";
+    public static final char C_BACKSLASH = '\\';
+    public static final char C_DELIM_START = '{';
+    public static final char C_DELIM_END = '}';
+
+    /**
+     * 格式化字符串<br>
+     * 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
+     * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
+     * 例:<br>
+     * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
+     * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
+     * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
+     * 
+     * @param strPattern 字符串模板
+     * @param argArray 参数列表
+     * @return 结果
+     */
+    public static String format(final String strPattern, final Object... argArray)
+    {
+        if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray))
+        {
+            return strPattern;
+        }
+        final int strPatternLength = strPattern.length();
+
+        // 初始化定义好的长度以获得更好的性能
+        StringBuilder sbuf = new StringBuilder(strPatternLength + 50);
+
+        int handledPosition = 0;
+        int delimIndex;// 占位符所在位置
+        for (int argIndex = 0; argIndex < argArray.length; argIndex++)
+        {
+            delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition);
+            if (delimIndex == -1)
+            {
+                if (handledPosition == 0)
+                {
+                    return strPattern;
+                }
+                else
+                { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
+                    sbuf.append(strPattern, handledPosition, strPatternLength);
+                    return sbuf.toString();
+                }
+            }
+            else
+            {
+                if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH)
+                {
+                    if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH)
+                    {
+                        // 转义符之前还有一个转义符,占位符依旧有效
+                        sbuf.append(strPattern, handledPosition, delimIndex - 1);
+                        sbuf.append(Convert.utf8Str(argArray[argIndex]));
+                        handledPosition = delimIndex + 2;
+                    }
+                    else
+                    {
+                        // 占位符被转义
+                        argIndex--;
+                        sbuf.append(strPattern, handledPosition, delimIndex - 1);
+                        sbuf.append(C_DELIM_START);
+                        handledPosition = delimIndex + 1;
+                    }
+                }
+                else
+                {
+                    // 正常占位符
+                    sbuf.append(strPattern, handledPosition, delimIndex);
+                    sbuf.append(Convert.utf8Str(argArray[argIndex]));
+                    handledPosition = delimIndex + 2;
+                }
+            }
+        }
+        // append the characters following the last {} pair.
+        // 加入最后一个占位符后所有的字符
+        sbuf.append(strPattern, handledPosition, strPattern.length());
+
+        return sbuf.toString();
+    }
+
+}

+ 476 - 0
common/src/main/java/com/gyee/common/model/StringUtils.java

@@ -0,0 +1,476 @@
+package com.gyee.common.model;
+
+import org.apache.commons.lang.WordUtils;
+import org.apache.commons.lang.text.StrBuilder;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Collection;
+import java.util.Map;
+import java.util.UUID;
+
+
+/**
+ * 字符串工具类
+ * 
+ * @author fc
+ */
+public class StringUtils extends org.apache.commons.lang3.StringUtils
+{
+    /** 空字符串 */
+    private static final String NULLSTR = "";
+
+    /** 下划线 */
+    private static final char SEPARATOR = '_';
+
+    /**
+     * 获取参数不为空值
+     * 
+     * @param value defaultValue 要判断的value
+     * @return value 返回值
+     */
+    public static <T> T nvl(T value, T defaultValue)
+    {
+        return value != null ? value : defaultValue;
+    }
+
+    /**
+     * * 判断一个Collection是否为空, 包含List,Set,Queue
+     * 
+     * @param coll 要判断的Collection
+     * @return true:为空 false:非空
+     */
+    public static boolean isEmpty(Collection<?> coll)
+    {
+        return isNull(coll) || coll.isEmpty();
+    }
+
+    /**
+     * * 判断一个Collection是否非空,包含List,Set,Queue
+     * 
+     * @param coll 要判断的Collection
+     * @return true:非空 false:空
+     */
+    public static boolean isNotEmpty(Collection<?> coll)
+    {
+        return !isEmpty(coll);
+    }
+
+    /**
+     * * 判断一个对象数组是否为空
+     * 
+     * @param objects 要判断的对象数组
+     ** @return true:为空 false:非空
+     */
+    public static boolean isEmpty(Object[] objects)
+    {
+        return isNull(objects) || (objects.length == 0);
+    }
+
+    /**
+     * * 判断一个对象数组是否非空
+     * 
+     * @param objects 要判断的对象数组
+     * @return true:非空 false:空
+     */
+    public static boolean isNotEmpty(Object[] objects)
+    {
+        return !isEmpty(objects);
+    }
+
+    /**
+     * * 判断一个Map是否为空
+     * 
+     * @param map 要判断的Map
+     * @return true:为空 false:非空
+     */
+    public static boolean isEmpty(Map<?, ?> map)
+    {
+        return isNull(map) || map.isEmpty();
+    }
+
+    /**
+     * * 判断一个Map是否为空
+     * 
+     * @param map 要判断的Map
+     * @return true:非空 false:空
+     */
+    public static boolean isNotEmpty(Map<?, ?> map)
+    {
+        return !isEmpty(map);
+    }
+
+    /**
+     * * 判断一个字符串是否为空串
+     * 
+     * @param str String
+     * @return true:为空 false:非空
+     */
+    public static boolean isEmpty(String str)
+    {
+        return isNull(str) || NULLSTR.equals(str.trim());
+    }
+
+    /**
+     * * 判断一个字符串是否为非空串
+     * 
+     * @param str String
+     * @return true:非空串 false:空串
+     */
+    public static boolean isNotEmpty(String str)
+    {
+        return !isEmpty(str);
+    }
+
+    /**
+     * * 判断一个对象是否为空
+     * 
+     * @param object Object
+     * @return true:为空 false:非空
+     */
+    public static boolean isNull(Object object)
+    {
+        return object == null;
+    }
+
+    /**
+     * * 判断一个对象是否非空
+     * 
+     * @param object Object
+     * @return true:非空 false:空
+     */
+    public static boolean isNotNull(Object object)
+    {
+        return !isNull(object);
+    }
+
+    /**
+     * * 判断一个对象是否是数组类型(Java基本型别的数组)
+     * 
+     * @param object 对象
+     * @return true:是数组 false:不是数组
+     */
+    public static boolean isArray(Object object)
+    {
+        return isNotNull(object) && object.getClass().isArray();
+    }
+
+    /**
+     * 去空格
+     */
+    public static String trim(String str)
+    {
+        return (str == null ? "" : str.trim());
+    }
+
+    /**
+     * 截取字符串
+     * 
+     * @param str 字符串
+     * @param start 开始
+     * @return 结果
+     */
+    public static String substring(final String str, int start)
+    {
+        if (str == null)
+        {
+            return NULLSTR;
+        }
+
+        if (start < 0)
+        {
+            start = str.length() + start;
+        }
+
+        if (start < 0)
+        {
+            start = 0;
+        }
+        if (start > str.length())
+        {
+            return NULLSTR;
+        }
+
+        return str.substring(start);
+    }
+
+    /**
+     * 截取字符串
+     * 
+     * @param str 字符串
+     * @param start 开始
+     * @param end 结束
+     * @return 结果
+     */
+    public static String substring(final String str, int start, int end)
+    {
+        if (str == null)
+        {
+            return NULLSTR;
+        }
+
+        if (end < 0)
+        {
+            end = str.length() + end;
+        }
+        if (start < 0)
+        {
+            start = str.length() + start;
+        }
+
+        if (end > str.length())
+        {
+            end = str.length();
+        }
+
+        if (start > end)
+        {
+            return NULLSTR;
+        }
+
+        if (start < 0)
+        {
+            start = 0;
+        }
+        if (end < 0)
+        {
+            end = 0;
+        }
+
+        return str.substring(start, end);
+    }
+
+    /**
+     * 格式化文本, {} 表示占位符<br>
+     * 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
+     * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
+     * 例:<br>
+     * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
+     * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
+     * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
+     * 
+     * @param template 文本模板,被替换的部分用 {} 表示
+     * @param params 参数值
+     * @return 格式化后的文本
+     */
+    public static String format(String template, Object... params)
+    {
+        if (isEmpty(params) || isEmpty(template))
+        {
+            return template;
+        }
+        return StrFormatter.format(template, params);
+    }
+
+    /**
+     * 驼峰首字符小写 NameVc>>nameVc
+     */
+    public static String uncapitalize(String str)
+    {
+        int strLen;
+        if (str == null || (strLen = str.length()) == 0)
+        {
+            return str;
+        }
+        return new StrBuilder(strLen).append(Character.toLowerCase(str.charAt(0))).append(str.substring(1)).toString();
+    }
+    
+
+    /**
+     * 下划线转驼峰命名 nameVc>>name_vc
+     */
+    public static String toUnderScoreCase(String s)
+    {
+        if (s == null)
+        {
+            return null;
+        }
+        StringBuilder sb = new StringBuilder();
+        boolean upperCase = false;
+        for (int i = 0; i < s.length(); i++)
+        {
+            char c = s.charAt(i);
+
+            boolean nextUpperCase = true;
+
+            if (i < (s.length() - 1))
+            {
+                nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
+            }
+
+            if ((i > 0) && Character.isUpperCase(c))
+            {
+                if (!upperCase || !nextUpperCase)
+                {
+                    sb.append(SEPARATOR);
+                }
+                upperCase = true;
+            }
+            else
+            {
+                upperCase = false;
+            }
+
+            sb.append(Character.toLowerCase(c));
+        }
+
+        return sb.toString();
+    }
+
+    /**
+     * 是否包含字符串
+     * 
+     * @param str 验证字符串
+     * @param strs 字符串组
+     * @return 包含返回true
+     */
+    public static boolean inStringIgnoreCase(String str, String... strs)
+    {
+        if (str != null && strs != null)
+        {
+            for (String s : strs)
+            {
+                if (str.equalsIgnoreCase(trim(s)))
+                {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+    
+    /**
+     * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld
+     * 
+     * @param name 转换前的下划线大写方式命名的字符串
+     * @return 转换后的驼峰式命名的字符串
+     */
+    public static String convertToCamelCase(String name)
+    {
+        StringBuilder result = new StringBuilder();
+        // 快速检查
+        if (name == null || name.isEmpty())
+        {
+            // 没必要转换
+            return "";
+        }
+        else if (!name.contains("_"))
+        {
+            // 不含下划线,仅将首字母大写
+            return name.substring(0, 1).toUpperCase() + name.substring(1);
+        }
+        // 用下划线将原始字符串分割
+        String[] camels = name.split("_");
+        for (String camel : camels)
+        {
+            // 跳过原始字符串中开头、结尾的下换线或双重下划线
+            if (camel.isEmpty())
+            {
+                continue;
+            }
+            // 首字母大写
+            result.append(camel.substring(0, 1).toUpperCase());
+            result.append(camel.substring(1).toLowerCase());
+        }
+        return result.toString();
+    }
+    /**
+     * 首字母大写
+     *
+     * @param name
+     * @return
+     */
+    public static String firstUpperCase(String name) {
+        name = name.substring(0, 1).toUpperCase() + name.substring(1);
+        return name;
+    }
+    /**
+     * 首字母小写
+     *
+     * @param name
+     * @return
+     */
+    public static String firstLowerCase(String name) {
+        name = name.substring(0, 1).toLowerCase() + name.substring(1);
+        return name;
+
+    }
+    
+    /**
+     * 将下划线转化为大写
+     *
+     * @param name
+     * @param firstCase 首字母是否大写 true:大写 false;小写
+     * @return
+     */
+    public static String upperCase_(String name, boolean firstCase) {
+        if(isEmpty(name)){
+            return "";
+        }
+        String[] s = name.split("_");
+        StringBuffer stringBuffer = new StringBuffer();
+        for (String s1 : s) {
+            stringBuffer.append(s1.substring(0, 1).toUpperCase() + s1.substring(1));
+        }
+        if(!firstCase){
+            return firstLowerCase(stringBuffer.toString());
+        }
+        return stringBuffer.toString();
+    }
+
+    
+
+    /**
+     * 列名转换成Java属性名
+     */
+    public static String columnToJava(String columnName) {
+        return WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", "" );
+    }
+    /**
+     * 表名转换成Java类名
+     */
+    public static String tableToJava(String tableName, String tablePrefix) {
+        if (StringUtils.isNotBlank(tablePrefix)) {
+            tableName = tableName.replaceFirst(tablePrefix, "" );
+        }
+        return columnToJava(tableName);
+    }
+
+    public static double round(double num, int digit) {
+
+        return new BigDecimal(num).setScale(digit, RoundingMode.HALF_UP).doubleValue();
+    }
+
+    public static String getUUID(){
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        return uuid;
+    }
+
+    /**
+     * 是否为空串
+     *
+     * @param obj
+     * @return
+     */
+    public static boolean empty(Object obj) {
+        if (obj == null)
+            return true;
+        String str;
+        if (obj instanceof String) {
+            str = (String) obj;
+        } else {
+            str = obj.toString();
+        }
+        return str.length() == 0;
+    }
+
+    /**
+     * 是否不为空串
+     *
+     * @param obj
+     * @return
+     */
+    public static boolean notEmp(Object obj) {
+        return !empty(obj);
+    }
+}

+ 15 - 0
common/src/main/java/com/gyee/common/model/algorithm/PointVo.java

@@ -0,0 +1,15 @@
+package com.gyee.common.model.algorithm;
+
+import lombok.Data;
+
+/**
+ * @ClassName : PointVo
+ * @Author : xieshengjie
+ * @Date: 2021/11/15 10:27
+ * @Description :
+ */
+@Data
+public class PointVo {
+    private Double x;
+    private Double y;
+}

+ 238 - 0
common/src/main/java/com/gyee/common/util/BigDecimalUtils.java

@@ -0,0 +1,238 @@
+package com.gyee.common.util;
+
+import java.math.BigDecimal;
+import java.text.NumberFormat;
+
+/**
+ * @ClassName : BigDecimalUtils
+ * @Author : xieshengjie
+ * @Date: 2021/6/4 9:54
+ * @Description : 运算工具类
+ */
+public class BigDecimalUtils {
+
+    //默认除法运算精度
+    private static final int DEF_DIV_SCALE = 2;
+
+    //建立货币格式化引用
+    private static final NumberFormat currency = NumberFormat.getCurrencyInstance();
+
+    //建立百分比格式化引用
+    private static final NumberFormat percent = NumberFormat.getPercentInstance();
+
+    /**
+     * 加法
+     * @param num
+     * @param num1
+     * @return
+     */
+    public static BigDecimal add(BigDecimal num, BigDecimal num1) {
+        return num.add(num1);
+    }
+
+
+    /**
+     * 提供精确的加法运算(默认四舍五入,根据scale保留小数位数)
+     * @param num
+     * @param num1
+     * @param scale
+     * @return
+     */
+    public static BigDecimal add(BigDecimal num, BigDecimal num1, int scale) {
+        return num.add(num1).setScale(scale, BigDecimal.ROUND_HALF_UP);
+    }
+
+
+    /**
+     * 提供精确的加法运算(默认四舍五入,根据scale保留小数位数)
+     * @param add
+     * @param add1
+     * @param scale
+     * @return
+     */
+    public static BigDecimal add(String add, String add1, int scale) {
+        BigDecimal num = new BigDecimal(add);
+        BigDecimal num1 = new BigDecimal(add1);
+        return num.add(num1).setScale(scale, BigDecimal.ROUND_HALF_UP);
+    }
+
+
+    /**
+     * 减法
+     * @param num
+     * @param num1
+     * @return
+     */
+    public static BigDecimal sub(BigDecimal num, BigDecimal num1) {
+        return num.subtract(num1);
+    }
+
+
+    /**
+     * 提供精确的减法运算(默认四舍五入,根据scale保留小数位数)
+     * @param num
+     * @param num1
+     * @param scale
+     * @return
+     */
+    public static BigDecimal sub(BigDecimal num, BigDecimal num1, int scale) {
+        return num.subtract(num1).setScale(scale, BigDecimal.ROUND_HALF_UP);
+    }
+
+
+    /**
+     * 提供精确的减法运算(默认四舍五入,根据scale保留小数位数)
+     * @param minus
+     * @param minus1
+     * @return
+     */
+    public static BigDecimal sub(String minus, String minus1, int scale) {
+        BigDecimal num = new BigDecimal(minus);
+        BigDecimal num1 = new BigDecimal(minus1);
+        return sub(num, num1, scale);
+    }
+
+
+    /**
+     * 乘法
+     * @param num
+     * @param num1
+     * @return
+     */
+    public static BigDecimal multiply(BigDecimal num, BigDecimal num1) {
+        return num.multiply(num1);
+    }
+
+
+    /**
+     * 提供精确的乘法运算(默认四舍五入,保留小数位数根据scale决定)
+     * @param num
+     * @param num1
+     * @param scale
+     * @return
+     */
+    public static BigDecimal multiply(String num, String num1, int scale) {
+        BigDecimal mul = new BigDecimal(num);
+        BigDecimal mul1 = new BigDecimal(num1);
+        return multiply(mul, mul1, scale);
+    }
+
+
+    /**
+     * 提供精确的乘法运算(默认四舍五入,保留小数位数根据scale确定)
+     * @param num
+     * @param num1
+     * @param scale
+     * @return
+     */
+    public static BigDecimal multiply(BigDecimal num, BigDecimal num1, int scale) {
+        return num.multiply(num1).setScale(scale, BigDecimal.ROUND_HALF_UP);
+    }
+
+
+    /**
+     * 除法(除法除不尽会抛异常)
+     * @param num
+     * @param num1
+     * @return
+     */
+    public static BigDecimal divide(BigDecimal num, BigDecimal num1) {
+        return num.divide(num1, DEF_DIV_SCALE);
+    }
+
+
+    /**
+     * 提供精确的除法运算(默认四舍五入保留两位小数)
+     * @param dividend
+     * @param divisor
+     * @return
+     */
+    public static BigDecimal divide(BigDecimal dividend, BigDecimal divisor, int scale) {
+        return dividend.divide(divisor, scale, BigDecimal.ROUND_HALF_UP);
+    }
+
+
+    /**
+     * 提供精确的除法运算(默认四舍五入,保留小数位数根据scale决定)
+     * @param dividend
+     * @param divisor
+     * @param scale
+     * @return
+     */
+    public static BigDecimal divide(String dividend, String divisor, int scale) {
+        BigDecimal num = new BigDecimal(dividend);
+        BigDecimal num1 = new BigDecimal(divisor);
+        return divide(num, num1, scale);
+    }
+
+
+    /**
+     * 提供精确的取余数运算(小数保留位数根据scale决定)
+     * @param dividend
+     * @param divisor
+     * @param scale
+     * @return
+     */
+    public static BigDecimal balance(BigDecimal dividend, BigDecimal divisor, int scale) {
+        return dividend.remainder(divisor).setScale(scale);
+    }
+
+
+    /**
+     * 提供精确的取余数运算(默认保留两位小数)
+     * @param dividend
+     * @param divisor
+     * @param scale
+     * @return
+     */
+    public static BigDecimal balance(BigDecimal dividend, BigDecimal divisor) {
+        return dividend.remainder(divisor).setScale(DEF_DIV_SCALE);
+    }
+
+
+    /**
+     * 比较BigDecimal,相等返回0,num>num1返回1,num<num1返回-1
+     * @param num
+     * @param num1
+     * @return
+     */
+    public static int compareTo(BigDecimal num, BigDecimal num1) {
+        return num.compareTo(num1);
+    }
+
+
+    /**
+     * BigDecimal货币格式化
+     * @param money
+     * @return
+     */
+    public static String currencyFormat(BigDecimal money) {
+        return currency.format(money);
+    }
+
+
+    /**
+     * BigDecimal百分比格式化
+     * @param rate
+     * @return
+     */
+    public static String rateFormat(BigDecimal rate) {
+        return percent.format(rate);
+    }
+
+
+    public static void main(String[] args) {
+        BigDecimal divide = divide("12", "11", 2);
+        System.out.println(divide.doubleValue());
+
+        BigDecimal num1 = new BigDecimal("121");
+        BigDecimal num2 = new BigDecimal("122");
+        System.out.println(compareTo(num1, num2));
+
+        String currencyFormat = currencyFormat(num2);
+        System.out.println(currencyFormat);
+
+        String rateFormat = rateFormat(num2);
+        System.out.println(rateFormat);
+    }
+}

+ 63 - 0
common/src/main/java/com/gyee/common/util/ClassUtil.java

@@ -0,0 +1,63 @@
+package com.gyee.common.util;
+
+
+import com.gyee.common.vo.analysis.DynamicBean;
+
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Set;
+
+/**
+ * @ClassName : ClassUtil
+ * @Author : xieshengjie
+ * @Date: 2021/3/8 17:16
+ * @Description : 动态添加属性
+ */
+public class ClassUtil {
+    /**
+     *
+     * @param object   旧的对象带值
+     * @param addMap   动态需要添加的属性和属性类型
+     * @param addValMap  动态需要添加的属性和属性值
+     * @return  新的对象
+     * @throws Exception
+     */
+    public static Object dynamicClass(Object object, LinkedHashMap addMap, LinkedHashMap addValMap) throws Exception {
+        LinkedHashMap returnMap = new LinkedHashMap();
+        LinkedHashMap typeMap = new LinkedHashMap();
+
+
+        Class<?> type = object.getClass();
+        BeanInfo beanInfo = Introspector.getBeanInfo(type);
+        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+        for (int i = 0; i < propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+            if (!propertyName.equals("class")) {
+                Method readMethod = descriptor.getReadMethod();
+                Object result = readMethod.invoke(object);
+                //可以判断为 NULL不赋值
+                returnMap.put(propertyName, result);
+                typeMap.put(propertyName, descriptor.getPropertyType());
+            }
+        }
+
+        returnMap.putAll(addValMap);
+        typeMap.putAll(addMap);
+        //map转换成实体对象
+        DynamicBean bean = new DynamicBean(typeMap);
+        //赋值
+        Set keys = typeMap.keySet();
+        for (Iterator it = keys.iterator(); it.hasNext(); ) {
+            String key = (String) it.next();
+            bean.setValue(key, returnMap.get(key));
+        }
+        Object obj = bean.getObject();
+        return obj;
+    }
+
+}

+ 33 - 0
common/src/main/java/com/gyee/common/util/CommonUtils.java

@@ -0,0 +1,33 @@
+package com.gyee.common.util;
+
+import java.lang.reflect.Field;
+import java.util.UUID;
+
+/**
+ * @ClassName : CommonUtils
+ * @Author : xieshengjie
+ * @Date: 2021/10/5 17:51
+ * @Description : 通用工具类
+ */
+public class CommonUtils {
+
+    public static String getUUID(){
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        return uuid;
+    }
+
+    /**
+     * 获取对象所有属性
+     * @param o
+     * @return
+     */
+    public static String[] getFileName(Object o){
+        Field[] fields = o.getClass().getDeclaredFields();
+        String[] fieldNames = new String[fields.length];
+        for (int i=0;i<fields.length;i++){
+            fieldNames[i]=fields[i].getName();
+        }
+        return fieldNames;
+
+    }
+}

+ 35 - 0
common/src/main/java/com/gyee/common/util/CopyUtils.java

@@ -0,0 +1,35 @@
+package com.gyee.common.util;
+
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+
+/**
+ * @ClassName : CopyUtils
+ * @Author : xieshengjie
+ * @Date: 2021/3/6 15:42
+ * @Description : 复制对象工具类
+ */
+public class CopyUtils {
+    public static void copy(Object source,Object dest) throws  Exception{
+        BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(),Object.class);
+        PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();
+
+        BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(),Object.class);
+        PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();
+
+        try {
+            for (int i=0;i<sourceProperty.length;i++){
+                for (int j=0;j<destProperty.length;j++){
+                    if (sourceProperty[i].getName().equals(destProperty[j].getName()) && sourceProperty[i].getPropertyType() == destProperty[j].getPropertyType()){
+                        destProperty[j].getWriteMethod().invoke(dest,sourceProperty[i].getReadMethod().invoke(source));
+                        break;
+                    }
+                }
+            }
+        }catch (Exception e){
+            throw new Exception("属性复制失败:"+e.getMessage());
+        }
+
+    }
+}

File diff suppressed because it is too large
+ 1168 - 0
common/src/main/java/com/gyee/common/util/DateUtils.java


+ 137 - 0
common/src/main/java/com/gyee/common/util/DoubleUtils.java

@@ -0,0 +1,137 @@
+package com.gyee.common.util;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName : DoubleUtils
+ * @Author : xieshengjie
+ * @Date: 2021/11/16 17:00
+ * @Description :
+ */
+public class DoubleUtils {
+
+    /**
+     * 保留两位小数
+     * @param number
+     * @param precision
+     * @return
+     */
+    public static double keepPrecision(double number, int precision) {
+        BigDecimal bg = new BigDecimal(number);
+        return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).doubleValue();
+    }
+
+
+    /**
+     * double保留小数点位数,四舍五入
+     * 比如处理价格等数据
+     * @param d 要处理的double值
+     * @param n 要保留的位数
+     * @return
+     */
+    public static double getRoundingNum(double d , int n) {
+        BigDecimal b = new BigDecimal(String.valueOf(d));
+        b = b.divide(BigDecimal.ONE, n, BigDecimal.ROUND_HALF_UP);
+        return b.doubleValue();
+    }
+    /**
+     *
+     * @param numA 数字A
+     * @param numB 数字B
+     * @param operate 运算符
+     * @return
+     */
+    public static double GetResult(double numA, double numB, String operate){
+        double res = 0;
+        BigDecimal bigA = new BigDecimal(Double.toString(numA));
+        BigDecimal bigB = new BigDecimal(Double.toString(numB));
+        switch (operate) {
+
+            case "+":
+                res = bigA.add(bigB).doubleValue();
+                break;
+            case "-":
+                res = bigA.subtract(bigB).doubleValue();
+                break;
+            case "*":
+                res = bigA.multiply(bigB).doubleValue();
+                break;
+            case "/":
+                res = bigA.divide(bigB,2,BigDecimal.ROUND_HALF_UP).doubleValue();
+                break;
+            default :
+                System.out.println("运算符不合法~");
+                break;
+        }
+        return res;
+    }
+
+
+    public static Double sum(Double ...in){
+        Double result = 0.0;
+        for (int i = 0; i < in.length; i++){
+            result = result+(ifNullSet0(in[i]));
+        }
+        return result;
+    }
+
+    public static String hb(String ...in){
+        String result = "";
+        for (int i = 0; i < in.length; i++){
+            result = result+in[i];
+        }
+        return result;
+    }
+
+    public static Integer sum(Integer ...in) {
+        Integer result = 0;
+        for (int i = 0; i < in.length; i++){
+            result = result+(ifNullSet0(in[i]));
+        }
+        return result;
+    }
+
+    public static Double max(Double ...in){
+        Double result = 0.0;
+        for (int i = 0; i < in.length; i++){
+            if (result<ifNullSet0(in[i])){
+                result=ifNullSet0(in[i]);
+            }
+        }
+        return result;
+    }
+
+    public static Double min(Double ...in){
+        Double result = 0.0;
+        for (int i = 0; i < in.length; i++){
+            if (i==0){
+                result=ifNullSet0(in[0]);
+            }
+            if (result>ifNullSet0(in[i])){
+                result=ifNullSet0(in[i]);
+            }
+        }
+        return result;
+    }
+    public static Double ave(Double ...in){
+        if(in.length==0){
+            return 0.0;
+        }else{
+            return sum(in)/in.length;
+        }
+
+    }
+    public static Double ifNullSet0(Double in) {
+        if (in != null) {
+            return in;
+        }
+        return 0.0;
+    }
+
+    public static Integer ifNullSet0(Integer in) {
+        if (in != null) {
+            return in;
+        }
+        return 0;
+    }
+}

+ 172 - 0
common/src/main/java/com/gyee/common/util/HttpClientUtil.java

@@ -0,0 +1,172 @@
+package com.gyee.common.util;
+
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+
+import java.io.*;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+/**
+ * @ClassName : HttpClientUtil
+ * @Author : xieshengjie
+ * @Date: 2021/12/22 15:52
+ * @Description :
+ */
+public class HttpClientUtil {
+    public static String doGet(String url) {
+        // 输入流
+        InputStream is = null;
+        BufferedReader br = null;
+        String result = null;
+        // 创建httpClient实例
+        HttpClient httpClient = new HttpClient();
+        // 设置http连接主机服务超时时间:15000毫秒
+        // 先获取连接管理器对象,再获取参数对象,再进行参数的赋值
+        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
+        // 创建一个Get方法实例对象
+        GetMethod getMethod = new GetMethod(url);
+        // 设置get请求超时为60000毫秒
+        getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
+        // 设置请求重试机制,默认重试次数:3次,参数设置为true,重试机制可用,false相反
+        getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, true));
+        try {
+            // 执行Get方法
+            int statusCode = httpClient.executeMethod(getMethod);
+            // 判断返回码
+            if (statusCode != HttpStatus.SC_OK) {
+                // 如果状态码返回的不是ok,说明失败了,打印错误信息
+                System.err.println("Method faild: " + getMethod.getStatusLine());
+            } else {
+                // 通过getMethod实例,获取远程的一个输入流
+                is = getMethod.getResponseBodyAsStream();
+                // 包装输入流
+                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+
+                StringBuffer sbf = new StringBuffer();
+                // 读取封装的输入流
+                String temp = null;
+                while ((temp = br.readLine()) != null) {
+                    sbf.append(temp).append("\r\n");
+                }
+
+                result = sbf.toString();
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            if (null != br) {
+                try {
+                    br.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != is) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            // 释放连接
+            getMethod.releaseConnection();
+        }
+        return result;
+    }
+
+    public static String doPost(String url, Map<String, Object> paramMap) {
+        // 获取输入流
+        InputStream is = null;
+        BufferedReader br = null;
+        String result = null;
+        // 创建httpClient实例对象
+        HttpClient httpClient = new HttpClient();
+        // 设置httpClient连接主机服务器超时时间:15000毫秒
+        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
+        // 创建post请求方法实例对象
+        PostMethod postMethod = new PostMethod(url);
+        // 设置post请求超时时间
+        postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
+
+        NameValuePair[] nvp = null;
+        // 判断参数map集合paramMap是否为空
+        if (null != paramMap && paramMap.size() > 0) {// 不为空
+            // 创建键值参数对象数组,大小为参数的个数
+
+            nvp = new NameValuePair[paramMap.size()];
+            // 循环遍历参数集合map
+            Set<Entry<String, Object>> entrySet = paramMap.entrySet();
+            // 获取迭代器
+            Iterator<Entry<String, Object>> iterator = entrySet.iterator();
+
+            int index = 0;
+            while (iterator.hasNext()) {
+                Entry<String, Object> mapEntry = iterator.next();
+                // 从mapEntry中获取key和value创建键值对象存放到数组中
+                try {
+                    nvp[index] = new NameValuePair(mapEntry.getKey(),
+                            new String(mapEntry.getValue().toString().getBytes("UTF-8"), "UTF-8"));
+                } catch (UnsupportedEncodingException e) {
+                    e.printStackTrace();
+                }
+                index++;
+            }
+        }
+        // 判断nvp数组是否为空
+        if (null != nvp && nvp.length > 0) {
+            // 将参数存放到requestBody对象中
+            postMethod.setRequestBody(nvp);
+        }
+        // 执行POST方法
+        try {
+            int statusCode = httpClient.executeMethod(postMethod);
+            // 判断是否成功
+            if (statusCode != HttpStatus.SC_OK) {
+                System.err.println("Method faild: " + postMethod.getStatusLine());
+            }
+            // 获取远程返回的数据
+            is = postMethod.getResponseBodyAsStream();
+            // 封装输入流
+            br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+
+            StringBuffer sbf = new StringBuffer();
+            String temp = null;
+            while ((temp = br.readLine()) != null) {
+                sbf.append(temp).append("\r\n");
+            }
+
+            result = sbf.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            if (null != br) {
+                try {
+                    br.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != is) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            // 释放连接
+            postMethod.releaseConnection();
+        }
+        return result;
+    }
+}

+ 73 - 0
common/src/main/java/com/gyee/common/util/JSONUtil.java

@@ -0,0 +1,73 @@
+package com.gyee.common.util;
+
+import org.codehaus.jackson.JsonProcessingException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.type.JavaType;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @ClassName : JSONUtil
+ * @Author : xieshengjie
+ * @Date: 2021/5/24 11:15
+ * @Description : jsonutil
+ */
+public class JSONUtil {
+    // 定义jackson对象
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    /**
+     * 将对象转换成json字符串。
+     * <p>Title: pojoToJson</p>
+     * <p>Description: </p>
+     * @param data
+     * @return
+     */
+    public static String objectToJson(Object data) throws IOException {
+        try {
+            String string = MAPPER.writeValueAsString(data);
+            return string;
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 将json结果集转化为对象
+     *
+     * @param jsonData json数据
+     * @param beanType 对象中的object类型
+     * @return
+     */
+    public static <T> T jsonToPojo(String jsonData,Class<T> beanType) {
+        try {
+            T t = MAPPER.readValue(jsonData,beanType);
+            return t;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 将json数据转换成pojo对象list
+     * <p>Title: jsonToList</p>
+     * <p>Description: </p>
+     * @param jsonData
+     * @param beanType
+     * @return
+     */
+    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
+        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class,beanType);
+        try {
+            List<T> list = MAPPER.readValue(jsonData,javaType);
+            return list;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+}

+ 126 - 0
common/src/main/java/com/gyee/common/util/JSONUtils.java

@@ -0,0 +1,126 @@
+package com.gyee.common.util;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @ClassName : JSONUtils
+ * @Author : xieshengjie
+ * @Date: 2021/7/31 16:00
+ * @Description :
+ */
+public class JSONUtils {
+    public enum LetterType {
+        UPPERCASE(1),LOWERCASE(2);
+        private final int type;
+
+        private LetterType(int type) {
+            this.type = type;
+        }
+
+        public int getType() {
+            return type;
+        }
+    }
+
+    /**
+     * json字符串转换javabean
+     * @param json json字符串
+     * @param bean 对象.class
+     * @return T
+     * @throws IOException
+     * @throws JsonMappingException
+     * @throws JsonParseException
+     * */
+    @SuppressWarnings("unchecked")
+    public static <T> T jsonStrToJava(String json,Class<?> bean) throws JsonParseException, JsonMappingException, IOException{
+        ObjectMapper objectMapper = new ObjectMapper();
+        if(json.indexOf("/Date(")>0) {
+            json = JSONUtils.jsonDateToJavaDate(json);
+        }
+        return (T) objectMapper.readValue(json, bean);
+    }
+
+    /**
+     * json字符串转换javabean
+     * @param json json字符串
+     * @param bean 对象.class
+     * @param toggleCase 是否转换key的大小写
+     * @param letterType 转换枚举类 UPPERCASE-大写、LOWERCASE-小写
+     * @return T
+     * @throws IOException
+     * @throws JsonMappingException
+     * @throws JsonParseException
+     * */
+    @SuppressWarnings("unchecked")
+    public static <T> T jsonStrToJava(String json,Class<?> bean,boolean toggleCase,LetterType letterType) throws JsonParseException, JsonMappingException, IOException{
+        ObjectMapper objectMapper = new ObjectMapper();
+        if(toggleCase) {
+            json = JSONUtils.convertLetter(json,letterType);
+        }
+        if(json.indexOf("/Date(")>0) {
+            json = JSONUtils.jsonDateToJavaDate(json);
+        }
+        return (T) objectMapper.readValue(json, bean);
+    }
+
+    /**
+     * json字符串转换key的大小写
+     * @param json json字符串
+     * @param letterType 转换枚举类 UPPERCASE-大写、LOWERCASE-小写
+     * @return json字符串
+     * @throws IOException
+     * @throws JsonMappingException
+     * @throws JsonParseException
+     * */
+    public static String convertLetter(String json,LetterType letterType) throws JsonParseException, JsonMappingException, IOException {
+        Map<String,String> map = JSONUtils.jsonStrToJava(json, Map.class);
+        for (Map.Entry<String, String> entry : map.entrySet()) {
+            if(letterType.getType()==1) {
+                map.put(entry.getKey().toUpperCase(), entry.getValue());
+            }else {
+                map.put(entry.getKey().toLowerCase(), entry.getValue());
+            }
+            map.remove(entry.getKey());
+        }
+        return JSONUtils.javaToJson(map);
+    }
+
+    /**
+     *  javabean转换json字符串
+     * @return
+     * @throws JsonProcessingException
+     * */
+    public static String javaToJson(Object bean) throws JsonProcessingException {
+        ObjectMapper objectMapper = new ObjectMapper();
+        String json = objectMapper.writeValueAsString(bean);
+        return json;
+    }
+
+    /**
+     *  json字符串中存在Date(1558427619277+0800)类似的时间格式进行转换
+     *  @param    json json字符串
+     * @return     json json字符串
+     * @throws JsonProcessingException
+     * */
+    public static String jsonDateToJavaDate(String json) throws JsonParseException, JsonMappingException, IOException {
+        Map<String,String> map = JSONUtils.jsonStrToJava(json, Map.class);
+        for (Map.Entry<String, String> entry : map.entrySet()) {
+            if(entry.getValue().indexOf("/Date(")>0) {
+                String dateJSON = entry.getValue().replace("/Date(","").replace(")/","");
+                Long dateLong = Long.valueOf(dateJSON.substring(0, dateJSON.length()-5));
+                Date date = new Date(dateLong);
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                map.put(entry.getKey(), format.format(date));
+            }
+        }
+        return JSONUtils.javaToJson(map);
+    }
+}

+ 96 - 0
common/src/main/java/com/gyee/common/util/JwtUtil.java

@@ -0,0 +1,96 @@
+package com.gyee.common.util;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.JWTVerifier;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.auth0.jwt.exceptions.JWTDecodeException;
+import com.auth0.jwt.exceptions.JWTVerificationException;
+
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @ClassName : JwtUtil
+ * @Author : xieshengjie
+ * @Date: 2022/6/17 10:23
+ * @Description :
+ */
+public class JwtUtil {
+    /**
+     * 过期30分钟
+     */
+    private static final long EXPIRE_TIME = 30 * 60 * 1000;
+    /**
+     * jwt密钥
+     */
+    private static final String SECRET = "jwt_secret";
+
+    /**
+     * 生成jwt字符串,30分钟后过期  JWT(json web token)
+     * @param userId
+     * @param info
+     * @return
+     */
+    public static String sign(String userId, Map<String,Object> info) {
+        try {
+            Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME);
+            Algorithm algorithm = Algorithm.HMAC256(SECRET);
+            return JWT.create()
+                    //将userId保存在token里面
+                    .withAudience(userId)
+                    //存放自定义数据
+                    .withClaim("info",info)
+                    //30分钟后token过期
+                    .withExpiresAt(date)
+                    //token的密钥
+                    .sign(algorithm);
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /**
+     * 根据token获取userId
+     * @param token
+     * @return
+     */
+    public static String getUserId(String token) {
+        try {
+            String userId = JWT.decode(token).getAudience().get(0);
+            return userId;
+        }catch (JWTDecodeException e){
+            return null;
+        }
+    }
+
+    /**
+     * 根据token获取自定义数据info
+     * @param token
+     * @return
+     */
+    public static Map<String,Object> getInfo(String token){
+        try {
+            return JWT.decode(token).getClaim("info").asMap();
+        }catch (JWTDecodeException e){
+            return null;
+        }
+    }
+
+    /**
+     * 校验token
+     * @param token
+     * @return
+     */
+    public static boolean checkSign(String token){
+        try {
+            Algorithm algorithm = Algorithm.HMAC256(SECRET);
+            JWTVerifier verifier = JWT.require(algorithm).build();
+            verifier.verify(token);
+            return true;
+        }catch (JWTVerificationException e){
+            throw new RuntimeException("token 无效,请重新获取");
+        }
+
+    }
+}

+ 28 - 0
common/src/main/java/com/gyee/common/util/MD5Utils.java

@@ -0,0 +1,28 @@
+package com.gyee.common.util;/*
+@author   谢生杰
+@date   2023/5/16-11:33
+*/
+
+import java.io.UnsupportedEncodingException;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+public class MD5Utils {
+
+    public static String getMD5Str(String str) {
+        byte[] digest = null;
+        try {
+            MessageDigest md5 = MessageDigest.getInstance("md5");
+            digest = md5.digest(str.getBytes("utf-8"));
+        }catch (NoSuchAlgorithmException e){
+            e.printStackTrace();
+        }catch (UnsupportedEncodingException e){
+            e.printStackTrace();
+        }
+        //16是表示转换16进制数
+        String md5str = new BigInteger(1,digest).toString(16);
+        return md5str;
+
+    }
+}

+ 168 - 0
common/src/main/java/com/gyee/common/util/RandomUtil.java

@@ -0,0 +1,168 @@
+package com.gyee.common.util;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.math3.random.RandomDataGenerator;
+
+import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
+
+/**
+ * @ClassName : RandomUtil
+ * @Author : xieshengjie
+ * @Date: 2021/7/9 18:42
+ * @Description : 随机数工具类
+ */
+public class RandomUtil {
+    /**
+     * 随机数Int的生成
+     */
+    // 随机数生成无边界的Int
+    public static int getRandomForIntegerUnbounded() {
+        int intUnbounded = new Random().nextInt();
+        System.out.println(intUnbounded);
+        return intUnbounded;
+    }
+
+    // 生成有边界的Int
+    public static int getRandomForIntegerBounded(int min, int max) {
+        int intBounded = min + ((int) (new Random().nextFloat() * (max - min)));
+        System.out.println(intBounded);
+        return intBounded;
+    }
+
+    // 包含1而不包含10
+    // 使用Apache Common Math3来生成有边界的Int
+    public static int getRandomForIntegerBounded2(int min, int max) {
+        int intBounded = new RandomDataGenerator().nextInt(min, max);
+        System.out.println(intBounded);
+        return intBounded;
+    }
+
+    // 包含1且包含10
+    // 使用Apache Common Lang3的工具类来生成有边界的Int
+    public static int getRandomForIntegerBounded3(int min, int max) {
+        int intBounded = RandomUtils.nextInt(min, max);
+        System.out.println(intBounded);
+        return intBounded;
+    }
+
+    // 使用TreadLocalRandom来生成有边界的Int,包含min而不包含max
+    public static int getRandomForIntegerBounded4(int min, int max) {
+        int threadIntBound = ThreadLocalRandom.current().nextInt(min, max);
+        System.out.println(threadIntBound);
+        return threadIntBound;
+    }
+
+    /**
+     * 随机数Long的生成
+     */
+    // 随机数生成无边界的Long
+    public static long getRandomForLongUnbounded() {
+        long unboundedLong = new Random().nextLong();
+        System.out.println(unboundedLong);
+        return unboundedLong;
+    }
+
+    // 因为Random类使用的种子是48bits,所以nextLong不能返回所有可能的long值,long是64bits。
+    // 使用Random生成有边界的Long
+    public static long getRandomForLongBounded(long min, long max) {
+        long rangeLong = min + (((long) (new Random().nextDouble() * (max - min))));
+        System.out.println(rangeLong);
+        return rangeLong;
+    }
+
+    // 使用Apache Commons Math3来生成有边界的Long(RandomDataGenerator类提供的生成随机数的方法)
+    public static long getRandomForLongBounded2(long min, long max) {
+        long rangeLong = new RandomDataGenerator().nextLong(min, max);
+        System.out.println(rangeLong);
+        return rangeLong;
+    }
+
+    // 使用Apache Commons Lang3的工具类来生成有边界的Long(RandomUtils提供了对java.util.Random的补充)
+    public static long getRandomForLongBounded3(long min, long max) {
+        long longBounded = RandomUtils.nextLong(min, max);
+        System.out.println(longBounded);
+        return longBounded;
+    }
+
+    // 使用ThreadLocalRandom生成有边界的Long
+    public static long getRandomForLongBounded4(long min, long max) {
+        long threadLongBound = ThreadLocalRandom.current().nextLong(min, max);
+        System.out.println(threadLongBound);
+        return threadLongBound;
+    }
+
+    /**
+     * 随机数Float的生成
+     */
+    // 随机数Float的生成生成0.0-1.0之间的Float随机数
+    public static float getRandomForFloat0To1() {
+        float floatUnbounded = new Random().nextFloat();
+        System.out.println(floatUnbounded);
+        return floatUnbounded;
+    }
+
+    // 以上只会生成包含0.0而不包括1.0的float类型随机数生成有边界的Float随机数
+    public static float getRandomForFloatBounded(float min, float max) {
+        float floatBounded = min + new Random().nextFloat() * (max - min);
+        System.out.println(floatBounded);
+        return floatBounded;
+    }
+
+    // 使用Apache Common Math来生成有边界的Float随机数
+    public static float getRandomForFloatBounded2(float min, float max) {
+        float randomFloat = new RandomDataGenerator().getRandomGenerator().nextFloat();
+        float generatedFloat = min + randomFloat * (max - min);
+        System.out.println(generatedFloat);
+        return generatedFloat;
+    }
+
+    // 使用Apache Common Lang来生成有边界的Float随机数
+    public static float getRandomForFloatBounded3(float min, float max) {
+        float generatedFloat = RandomUtils.nextFloat(min, max);
+        System.out.println(generatedFloat);
+        return generatedFloat;
+    }
+
+    // 使用ThreadLocalRandom生成有边界的Float随机数
+    // ThreadLocalRandom类没有提供
+
+    /**
+     * 随机数Double的生成
+     */
+    // 生成0.0d-1.0d之间的Double随机数
+    public static double getRandomForDouble0To1() {
+        double generatorDouble = new Random().nextDouble();
+        System.out.println(generatorDouble);
+        return generatorDouble;
+    }
+
+    // 与Float相同,以上方法只会生成包含0.0d而不包含1.0d的随机数生成带有边界的Double随机数
+    public static double getRandomForDoubleBounded(double min, double max) {
+        double boundedDouble = min + new Random().nextDouble() * (max - min);
+        System.out.println(boundedDouble);
+        return boundedDouble;
+    }
+
+    // 使用Apache Common Math来生成有边界的Double随机数
+    public static double getRandomForDoubleBounded2(double min, double max) {
+        double boundedDouble = new RandomDataGenerator().getRandomGenerator().nextDouble();
+        double generatorDouble = min + boundedDouble * (max - min);
+        System.out.println(generatorDouble);
+        return generatorDouble;
+    }
+
+    // 使用Apache Common Lang生成有边界的Double随机数
+    public static double getRandomForDoubleBounded3(double min, double max) {
+        double generatedDouble = RandomUtils.nextDouble(min, max);
+        System.out.println(generatedDouble);
+        return generatedDouble;
+    }
+
+    // 使用ThreadLocalRandom生成有边界的Double随机数
+    public static double getRandomForDoubleBounded4(double min, double max) {
+        double generatedDouble = ThreadLocalRandom.current().nextDouble(min, max);
+        System.out.println(generatedDouble);
+        return generatedDouble;
+    }
+}

+ 49 - 0
common/src/main/java/com/gyee/common/util/ReflexUtil.java

@@ -0,0 +1,49 @@
+package com.gyee.common.util;/*
+@author   谢生杰
+@date   2022/11/26-15:27
+*/
+
+import org.codehaus.jackson.annotate.JsonProperty;
+
+import java.lang.reflect.Field;
+
+public class ReflexUtil {
+
+    public static Object getFieldValueByObject(Object object,String targetFieldName) throws Exception{
+        //获取该对象的class
+        Class objClass = object.getClass();
+        //初始化返回时
+        Object result = null;
+
+        //获取所有的属性数组
+        Field[] fields = objClass.getDeclaredFields();
+
+        for (Field field : fields){
+            //属性名称
+            String currentFieldName = "";
+
+            try {
+                boolean has_JsonProperty = field.isAnnotationPresent(JsonProperty.class);
+                if (has_JsonProperty){
+                    currentFieldName = field.getAnnotation(JsonProperty.class).value();
+                }else {
+                    currentFieldName = field.getName();
+                }
+
+                if (currentFieldName.equals(targetFieldName)) {
+                    field.setAccessible(true);
+                    result = field.get(object);
+
+                    return result;
+                }
+            }catch (SecurityException e) {
+                e.printStackTrace();
+            }catch (IllegalArgumentException e){
+                e.printStackTrace();
+            }catch (IllegalAccessException e){
+                e.printStackTrace();
+            }
+        }
+        return result;
+    }
+}

+ 89 - 0
common/src/main/java/com/gyee/common/util/RestTemplateUtil.java

@@ -0,0 +1,89 @@
+package com.gyee.common.util;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @ClassName : RestTemplateUtil
+ * @Author : xieshengjie
+ * @Date: 2022/2/10 14:15
+ * @Description :
+ */
+public class RestTemplateUtil {
+
+    private static class SingletonRestTemplate {
+        static final RestTemplate INSTANCE = new RestTemplate();
+    }
+
+    private RestTemplateUtil() {
+
+    }
+
+    public static RestTemplate getInstance() {
+        return SingletonRestTemplate.INSTANCE;
+    }
+
+    /**
+     * * GET请求
+     * @param url 请求路径
+     * @param token jwt所需的Token不需要可传null
+     * @return
+     */
+    public static String get(String url, String token) {
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Accept", "application/json");
+        headers.add("Content-Encoding", "UTF-8");
+        headers.add("Content-Type", "application/json; charset=UTF-8");
+        if (token != null) {
+            headers.add("token", token);
+        }
+        HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
+        ResponseEntity<String> response = RestTemplateUtil.getInstance().exchange(url, HttpMethod.GET, requestEntity, String.class);
+        String responseInfo = response.getBody();
+        return responseInfo;
+    }
+
+    /**
+     * * POST请求
+     * @param url 请求路径
+     * @param data body数据
+     * @param token jwt所需的Token不需要可传null
+     * @return
+     */
+    public static String post(String url, String data, String token) {
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Accept", "application/json");
+        headers.add("Content-Encoding", "UTF-8");
+        headers.add("Content-Type", "application/json; charset=UTF-8");
+        if (token != null) {
+            headers.add("Authorization", token);
+        }
+        HttpEntity<String> requestEntity = new HttpEntity<>(data, headers);
+        return RestTemplateUtil.getInstance().postForObject(url, requestEntity, String.class);
+    }
+
+
+    public static void main(String[] args) {
+//        //Get接口调用
+//        String url="http://www.kuaidi100.com/query?type=yuantong&postid=11111111111";
+//        String responseInfo = RestTemplateUtil.get(url, null);
+//        System.out.println(responseInfo);
+//
+//        //Post接口调用
+//        String Url="http://localhost:8080/login/doLogin";
+//        ObjectMapper objectMapper = new ObjectMapper();
+//        String data = null;
+//        UserLogin userLogin=new UserLogin("clover","12345","weq");
+//        try {
+//            data = objectMapper.writeValueAsString(userLogin);
+//        } catch (JsonProcessingException e) {
+//            e.printStackTrace();
+//        }
+//        String responseInfo2 = RestTemplateUtil.post(Url, data, null);
+//        System.out.println(responseInfo2);
+    }
+}

+ 344 - 0
common/src/main/java/com/gyee/common/util/SortUtils.java

@@ -0,0 +1,344 @@
+package com.gyee.common.util;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName : SortUtils
+ * @Author : xieshengjie
+ * @Date: 2021/6/5 20:06
+ * @Description : 排序
+ */
+public class SortUtils {
+    public static final String DESC = "desc";
+    public static final String ASC = "asc";
+
+    /**
+     * 对list中的元素按升序排列.
+     *
+     * @param list
+     *            排序集合
+     * @param field
+     *            排序字段
+     * @return
+     */
+    public static List<?> sort(List<?> list, final String field) {
+        return sort(list, field, null);
+    }
+
+    /**
+     * 对list中的元素进行排序.
+     *
+     * @param list
+     *            排序集合
+     * @param field
+     *            排序字段
+     * @param sort
+     *            排序方式: SortListUtil.DESC(降序) SortListUtil.ASC(升序).
+     * @return
+     */
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public static List<?> sort(List<?> list, final String field,
+                               final String sort) {
+        Collections.sort(list, new Comparator() {
+            public int compare(Object a, Object b) {
+                int ret = 0;
+                try {
+                    Field f = a.getClass().getDeclaredField(field);
+                    f.setAccessible(true);
+                    Class<?> type = f.getType();
+
+                    if (type == int.class) {
+                        ret = ((Integer) f.getInt(a)).compareTo((Integer) f
+                                .getInt(b));
+                    } else if (type == double.class) {
+                        ret = ((Double) f.getDouble(a)).compareTo((Double) f
+                                .getDouble(b));
+                    } else if (type == long.class) {
+                        ret = ((Long) f.getLong(a)).compareTo((Long) f
+                                .getLong(b));
+                    } else if (type == float.class) {
+                        ret = ((Float) f.getFloat(a)).compareTo((Float) f
+                                .getFloat(b));
+                    } else if (type == Date.class) {
+                        ret = ((Date) f.get(a)).compareTo((Date) f.get(b));
+                    } else if (isImplementsOf(type, Comparable.class)) {
+                        ret = ((Comparable) f.get(a)).compareTo((Comparable) f
+                                .get(b));
+                    } else {
+                        ret = String.valueOf(f.get(a)).compareTo(
+                                String.valueOf(f.get(b)));
+                    }
+
+                } catch (SecurityException e) {
+                    e.printStackTrace();
+                } catch (NoSuchFieldException e) {
+                    e.printStackTrace();
+                } catch (IllegalArgumentException e) {
+                    e.printStackTrace();
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+                if (sort != null && sort.toLowerCase().equals(DESC)) {
+                    return -ret;
+                } else {
+                    return ret;
+                }
+            }
+        });
+        return list;
+    }
+
+    /**
+     * 对list中的元素按fields和sorts进行排序,
+     * fields[i]指定排序字段,sorts[i]指定排序方式.如果sorts[i]为空则默认按升序排列.
+     *
+     * @param list
+     *            排序集合
+     * @param fields
+     *            排序字段-数组(一个或多个)
+     * @param sorts
+     *            排序规则-数组(一个或多个)
+     * @return
+     */
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public static List<?> sort(List<?> list, String[] fields, String[] sorts) {
+        if (fields != null && fields.length > 0) {
+            for (int i = fields.length - 1; i >= 0; i--) {
+                final String field = fields[i];
+                String tmpSort = ASC;
+                if (sorts != null && sorts.length > i && sorts[i] != null) {
+                    tmpSort = sorts[i];
+                }
+                final String sort = tmpSort;
+                Collections.sort(list, new Comparator() {
+                    public int compare(Object a, Object b) {
+                        int ret = 0;
+                        try {
+                            Field f = a.getClass().getDeclaredField(field);
+                            f.setAccessible(true);
+                            Class<?> type = f.getType();
+                            if (type == int.class) {
+                                ret = ((Integer) f.getInt(a))
+                                        .compareTo((Integer) f.getInt(b));
+                            } else if (type == double.class) {
+                                ret = ((Double) f.getDouble(a))
+                                        .compareTo((Double) f.getDouble(b));
+                            } else if (type == long.class) {
+                                ret = ((Long) f.getLong(a)).compareTo((Long) f
+                                        .getLong(b));
+                            } else if (type == float.class) {
+                                ret = ((Float) f.getFloat(a))
+                                        .compareTo((Float) f.getFloat(b));
+                            } else if (type == Date.class) {
+                                ret = ((Date) f.get(a)).compareTo((Date) f
+                                        .get(b));
+                            } else if (isImplementsOf(type, Comparable.class)) {
+                                ret = ((Comparable) f.get(a))
+                                        .compareTo((Comparable) f.get(b));
+                            } else {
+                                ret = String.valueOf(f.get(a)).compareTo(
+                                        String.valueOf(f.get(b)));
+                            }
+
+                        } catch (SecurityException e) {
+                            e.printStackTrace();
+                        } catch (NoSuchFieldException e) {
+                            e.printStackTrace();
+                        } catch (IllegalArgumentException e) {
+                            e.printStackTrace();
+                        } catch (IllegalAccessException e) {
+                            e.printStackTrace();
+                        }
+
+                        if (sort != null && sort.toLowerCase().equals(DESC)) {
+                            return -ret;
+                        } else {
+                            return ret;
+                        }
+                    }
+                });
+            }
+        }
+        return list;
+    }
+
+    /**
+     * 默认按正序排列
+     *
+     * @param list
+     *            排序集合
+     * @param method
+     *            排序方法 "getXxx()"
+     * @return
+     */
+    public static List<?> sortByMethod(List<?> list, final String method) {
+        return sortByMethod(list, method, null);
+    }
+
+    /**
+     * 集合排序
+     *
+     * @param list
+     *            排序集合
+     * @param method
+     *            排序方法 "getXxx()"
+     * @param sort
+     *            排序方式: SortListUtil.DESC(降序) SortListUtil.ASC(升序).
+     * @return
+     */
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public static List<?> sortByMethod(List<?> list, final String method,
+                                       final String sort) {
+        Collections.sort(list, new Comparator() {
+            public int compare(Object a, Object b) {
+                int ret = 0;
+                try {
+                    Method m = a.getClass().getMethod(method, null);
+                    m.setAccessible(true);
+                    Class<?> type = m.getReturnType();
+                    if (type == int.class) {
+                        ret = ((Integer) m.invoke(a, null))
+                                .compareTo((Integer) m.invoke(b, null));
+                    } else if (type == double.class) {
+                        ret = ((Double) m.invoke(a, null)).compareTo((Double) m
+                                .invoke(b, null));
+                    } else if (type == long.class) {
+                        ret = ((Long) m.invoke(a, null)).compareTo((Long) m
+                                .invoke(b, null));
+                    } else if (type == float.class) {
+                        ret = ((Float) m.invoke(a, null)).compareTo((Float) m
+                                .invoke(b, null));
+                    } else if (type == Date.class) {
+                        ret = ((Date) m.invoke(a, null)).compareTo((Date) m
+                                .invoke(b, null));
+                    } else if (isImplementsOf(type, Comparable.class)) {
+                        ret = ((Comparable) m.invoke(a, null))
+                                .compareTo((Comparable) m.invoke(b, null));
+                    } else {
+                        ret = String.valueOf(m.invoke(a, null)).compareTo(
+                                String.valueOf(m.invoke(b, null)));
+                    }
+
+                    if (isImplementsOf(type, Comparable.class)) {
+                        ret = ((Comparable) m.invoke(a, null))
+                                .compareTo((Comparable) m.invoke(b, null));
+                    } else {
+                        ret = String.valueOf(m.invoke(a, null)).compareTo(
+                                String.valueOf(m.invoke(b, null)));
+                    }
+
+                } catch (NoSuchMethodException ne) {
+                    System.out.println(ne);
+                } catch (IllegalAccessException ie) {
+                    System.out.println(ie);
+                } catch (InvocationTargetException it) {
+                    System.out.println(it);
+                }
+
+                if (sort != null && sort.toLowerCase().equals(DESC)) {
+                    return -ret;
+                } else {
+                    return ret;
+                }
+            }
+        });
+        return list;
+    }
+
+    @SuppressWarnings("unchecked")
+    public static List<?> sortByMethod(List<?> list, final String methods[],
+                                       final String sorts[]) {
+        if (methods != null && methods.length > 0) {
+            for (int i = methods.length - 1; i >= 0; i--) {
+                final String method = methods[i];
+                String tmpSort = ASC;
+                if (sorts != null && sorts.length > i && sorts[i] != null) {
+                    tmpSort = sorts[i];
+                }
+                final String sort = tmpSort;
+                Collections.sort(list, new Comparator() {
+                    public int compare(Object a, Object b) {
+                        int ret = 0;
+                        try {
+                            Method m = a.getClass().getMethod(method, null);
+                            m.setAccessible(true);
+                            Class<?> type = m.getReturnType();
+                            if (type == int.class) {
+                                ret = ((Integer) m.invoke(a, null))
+                                        .compareTo((Integer) m.invoke(b, null));
+                            } else if (type == double.class) {
+                                ret = ((Double) m.invoke(a, null))
+                                        .compareTo((Double) m.invoke(b, null));
+                            } else if (type == long.class) {
+                                ret = ((Long) m.invoke(a, null))
+                                        .compareTo((Long) m.invoke(b, null));
+                            } else if (type == float.class) {
+                                ret = ((Float) m.invoke(a, null))
+                                        .compareTo((Float) m.invoke(b, null));
+                            } else if (type == Date.class) {
+                                ret = ((Date) m.invoke(a, null))
+                                        .compareTo((Date) m.invoke(b, null));
+                            } else if (isImplementsOf(type, Comparable.class)) {
+                                ret = ((Comparable) m.invoke(a, null))
+                                        .compareTo((Comparable) m.invoke(b,
+                                                null));
+                            } else {
+                                ret = String.valueOf(m.invoke(a, null))
+                                        .compareTo(
+                                                String.valueOf(m
+                                                        .invoke(b, null)));
+                            }
+
+                        } catch (NoSuchMethodException ne) {
+                            System.out.println(ne);
+                        } catch (IllegalAccessException ie) {
+                            System.out.println(ie);
+                        } catch (InvocationTargetException it) {
+                            System.out.println(it);
+                        }
+
+                        if (sort != null && sort.toLowerCase().equals(DESC)) {
+                            return -ret;
+                        } else {
+                            return ret;
+                        }
+                    }
+                });
+            }
+        }
+        return list;
+    }
+
+    /**
+     * 判断对象实现的所有接口中是否包含szInterface
+     *
+     * @param clazz
+     * @param szInterface
+     * @return
+     */
+    public static boolean isImplementsOf(Class<?> clazz, Class<?> szInterface) {
+        boolean flag = false;
+
+        Class<?>[] face = clazz.getInterfaces();
+        for (Class<?> c : face) {
+            if (c == szInterface) {
+                flag = true;
+            } else {
+                flag = isImplementsOf(c, szInterface);
+            }
+        }
+
+        if (!flag && null != clazz.getSuperclass()) {
+            return isImplementsOf(clazz.getSuperclass(), szInterface);
+        }
+
+        return flag;
+    }
+
+}

+ 56 - 0
common/src/main/java/com/gyee/common/util/algorithm/GDJTLineBuild.java

@@ -0,0 +1,56 @@
+package com.gyee.common.util.algorithm;
+
+import com.gyee.common.model.algorithm.PointVo;
+
+import java.util.*;
+
+/**
+ * @ClassName : GDJTLineBuild
+ * @Author : xieshengjie
+ * @Date: 2021/11/15 12:00
+ * @Description :
+ */
+public class GDJTLineBuild {
+
+    public static List<PointVo> buildLine(double[] arrX, double[] arrY)
+    {
+        List<PointVo> points = new ArrayList<>();
+
+        if (arrX.length != arrY.length)
+        {
+            return points;
+        }
+
+        Map<Double,Double> pointsDic = new HashMap<>();
+        Map<Double,Integer> pointsjs = new HashMap<>();
+
+        for (int i = 0; i < arrX.length; i++)
+        {
+            if (pointsDic.containsKey(arrX[i]))
+            {
+                Double x = pointsDic.get(arrX[i]);
+                x+=arrY[i];
+                pointsDic.put(arrX[i],x);
+                Integer js = pointsjs.get(arrX[i]);
+                js++;
+                pointsjs.put(arrX[i],js);
+            }
+            else
+            {
+                pointsDic.put(arrX[i], arrY[i]);
+                pointsjs.put(arrX[i], 1);
+            }
+        }
+
+        Set<Double> keys = pointsDic.keySet();
+        for (Double key : keys){
+            double b=pointsDic.get(key)/ pointsjs.get(key);
+            PointVo p = new PointVo();
+            p.setX(key);
+            p.setY(b);
+            points.add(p);
+        }
+
+        return points;
+    }
+}

+ 230 - 0
common/src/main/java/com/gyee/common/util/algorithm/LineBuild.java

@@ -0,0 +1,230 @@
+package com.gyee.common.util.algorithm;
+
+import com.gyee.common.model.StringUtils;
+import com.gyee.common.model.algorithm.PointVo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName : LineBuild
+ * @Author : xieshengjie
+ * @Date: 2021/11/15 10:19
+ * @Description :
+ */
+public class LineBuild {
+    /// <summary>
+    /// 用最小二乘法拟合二元多次曲线
+    /// </summary>
+    /// <param name="arrX">已知点的x坐标集合</param>
+    /// <param name="arrY">已知点的y坐标集合</param>
+    /// <param name="length">已知点的个数</param>
+    /// <param name="dimension">方程的最高次数</param>
+    /// <param name="scale">曲线的刻度</param>
+    /// <returns></returns>
+    public static List<PointVo> buildLine(double[] arrX, double[] arrY, int length, int dimension, double scale)
+    {
+
+        List<PointVo> points = new ArrayList<>();
+
+        if (arrX.length != arrY.length || arrX.length<3)
+        {
+            return points;
+        }
+
+        double minValue=arrY[0];
+        double maxValue=arrY[arrY.length-1];
+
+
+        double min = 0;
+        double max= 0;
+
+        double[] coefficient = multiLine(arrX, arrY, length, dimension);
+
+        for (double i = arrX[0]; i <= arrX[arrX.length - 1]; i += scale)
+        {
+            PointVo point = new PointVo();
+            point.setX(StringUtils.round(i,2));
+
+
+            for (int j = 0; j < coefficient.length; j++)
+            {
+                Double y = point.getY();
+                if (y==null){
+                    y=0.0;
+                }
+                y += (float)(coefficient[j] * Math.pow((double)point.getX(), (double)j));
+                point.setY(y);
+            }
+            if (point.getY() < minValue)
+            {
+                point.setY(minValue);
+            }
+            if (point.getY() > maxValue)
+            {
+                point.setY(maxValue);
+            }
+
+            if (point.getY() < min)
+            {
+                min = point.getY();
+            }
+            if (point.getY() > max)
+            {
+                max = point.getY();
+            }
+
+            points.add(point);
+        }
+        builder(points, min, max);
+        return points;
+    }
+
+    private static void builder(List<PointVo> points, double min, double max)
+    {
+        boolean b = false;
+        for (int i = 0; i < points.size(); i++)
+        {
+            if (b)
+            {
+                points.get(i).setY(max);
+            }
+            else
+            {
+                if (max == points.get(i).getY())
+                {
+                    b = true;
+                }
+            }
+
+        }
+
+        for (int i = points.size()-1; i > -1; i--)
+        {
+            if (!b)
+            {
+                points.get(i).setY(min);
+            }
+            else
+            {
+                if (min ==points.get(i).getY())
+                {
+                    b = false;
+                }
+            }
+
+        }
+    }
+
+
+
+    ///<summary>
+    ///用最小二乘法拟合二元多次曲线
+    ///</summary>
+    ///<param name="arrX">已知点的x坐标集合</param>
+    ///<param name="arrY">已知点的y坐标集合</param>
+    ///<param name="length">已知点的个数</param>
+    ///<param name="dimension">方程的最高次数</param>
+    public static double[] multiLine(double[] arrX, double[] arrY, int length, int dimension)//二元多次线性方程拟合曲线
+    {
+        int n = dimension + 1;                  //dimension次方程需要求 dimension+1个 系数
+        double[][] guass = new double[n][n + 1];      //高斯矩阵 例如:y=a0+a1*x+a2*x*x
+        for (int i = 0; i < n; i++)
+        {
+            int j;
+            for (j = 0; j < n; j++)
+            {
+                guass[i][j] = SumArr(arrX, j + i, length);
+            }
+            guass[i][j] = SumArr(arrX, i, arrY, 1, length);
+        }
+        return computGauss(guass, n);
+    }
+    public static double SumArr(double[] arr, int n, int length) //求数组的元素的n次方的和
+    {
+        double s = 0;
+        for (int i = 0; i < length; i++)
+        {
+            if (arr[i] != 0 || n != 0)
+                s = s + Math.pow(arr[i], n);
+            else
+                s = s + 1;
+        }
+        return s;
+    }
+    public static double SumArr(double[] arr1, int n1, double[] arr2, int n2, int length)
+    {
+        double s = 0;
+        for (int i = 0; i < length; i++)
+        {
+            if ((arr1[i] != 0 || n1 != 0) && (arr2[i] != 0 || n2 != 0))
+                s = s + Math.pow(arr1[i], n1) * Math.pow(arr2[i], n2);
+            else
+                s = s + 1;
+        }
+        return s;
+
+    }
+    public static double[] computGauss(double[][] guass, int n)
+    {
+        int i, j;
+        int k, m;
+        double temp;
+        double max;
+        double s;
+        double[] x = new double[n];
+        for (i = 0; i < n; i++) x[i] = 0.0;//初始化
+
+        for (j = 0; j < n; j++)
+        {
+            max = 0;
+            k = j;
+            for (i = j; i < n; i++)
+            {
+                if (Math.abs(guass[i][j]) > max)
+                {
+                    max = guass[i][j];
+                    k = i;
+                }
+            }
+
+
+            if (k != j)
+            {
+                for (m = j; m < n + 1; m++)
+                {
+                    temp = guass[j][m];
+                    guass[j][m] = guass[k][m];
+                    guass[k][m] = temp;
+                }
+            }
+            if (0 == max)
+            {
+                // "此线性方程为奇异线性方程"
+                return x;
+            }
+
+            for (i = j + 1; i < n; i++)
+            {
+                s = guass[i][j];
+                for (m = j; m < n + 1; m++)
+                {
+                    guass[i][m] = guass[i][m] - guass[j][m] * s / (guass[j][j]);
+                }
+            }
+
+        }//结束for (j=0;j<n;j++)
+
+        for (i = n - 1; i >= 0; i--)
+        {
+            s = 0;
+            for (j = i + 1; j < n; j++)
+            {
+                s = s + guass[i][j] * x[j];
+            }
+            x[i] = (guass[i][n] - s) / guass[i][i];
+        }
+        return x;
+    }//返回值是函数的系数
+
+}

+ 23 - 0
common/src/main/java/com/gyee/common/util/algorithm/MathUtils.java

@@ -0,0 +1,23 @@
+package com.gyee.common.util.algorithm;/*
+@author   谢生杰
+@date   2023/3/15-11:04
+*/
+
+public class MathUtils {
+
+    //标准差σ=sqrt(s^2)
+    public static double standardDiviation(Double[] x) {
+        int m=x.length;
+        double sum=0;
+        for(int i=0;i<m;i++){//求和
+            sum+=x[i];
+        }
+        double dAve=sum/m;//求平均值
+        double dVar=0;
+        for(int i=0;i<m;i++){//求方差
+            dVar+=(x[i]-dAve)*(x[i]-dAve);
+        }
+        //reture Math.sqrt(dVar/(m-1));
+        return Math.sqrt(dVar/m);
+    }
+}

+ 36 - 0
common/src/main/java/com/gyee/common/util/algorithm/Underdelivery.java

@@ -0,0 +1,36 @@
+package com.gyee.common.util.algorithm;
+
+/*
+@author   谢生杰
+@date   2022/11/6-15:40
+欠发算法
+*/
+
+public class Underdelivery {
+
+    /**
+     *
+     * @param pp
+     * @param zs
+     * @return
+     */
+    public static double underdeliveryStatusReal(double pp,double zs){
+        double ratioll = 0;
+        double qfzt = 0;
+        if (zs != 0){
+            ratioll = (zs-pp)/zs;
+        }
+        if (ratioll<0.05){
+            qfzt = 0;
+        }else if (ratioll >= 0.05 && ratioll < 0.1){
+            qfzt = 1;
+        }else if (ratioll >= 0.1 && ratioll < 0.2){
+            qfzt = 2;
+        }else if (ratioll >= 0.2 && ratioll < 0.4) {
+            qfzt = 3;
+        }else {
+            qfzt = 4;
+        }
+        return qfzt;
+    }
+}

+ 18 - 0
common/src/main/java/com/gyee/common/vo/algorithm/LineParameters.java

@@ -0,0 +1,18 @@
+package com.gyee.common.vo.algorithm;
+
+import lombok.Data;
+
+/**
+ * @ClassName : LineParameters
+ * @Author : xieshengjie
+ * @Date: 2021/11/16 9:48
+ * @Description :
+ */
+@Data
+public class LineParameters {
+    private double[] arrX;
+    private double[] arrY;
+    private int length;
+    private int dimension;
+    private double scale;
+}

+ 17 - 0
common/src/main/java/com/gyee/common/vo/analysis/AnalsisUpdateVo.java

@@ -0,0 +1,17 @@
+package com.gyee.common.vo.analysis;
+
+import lombok.Data;
+
+/**
+ * @ClassName : AnalsisUpdateVo
+ * @Author : xieshengjie
+ * @Date: 2021/3/9 20:25
+ * @Description : 修改统计分析vo
+ */
+@Data
+public class AnalsisUpdateVo {
+    private String id;
+    private String projectname;
+    private String date;
+    private Double value;
+}

+ 18 - 0
common/src/main/java/com/gyee/common/vo/analysis/AnalysisMainVo.java

@@ -0,0 +1,18 @@
+package com.gyee.common.vo.analysis;
+
+
+import lombok.Data;
+
+/**
+ * @ClassName : AnalysisMainVo
+ * @Author : xieshengjie
+ * @Date: 2021/3/8 14:22
+ * @Description : 统计分析主表Vo
+ */
+@Data
+public class AnalysisMainVo {
+    private String wpid;
+    private String wpname;
+    private String theday;
+    private Integer isConfirm;
+}

+ 15 - 0
common/src/main/java/com/gyee/common/vo/analysis/AnalysisSubVo.java

@@ -0,0 +1,15 @@
+package com.gyee.common.vo.analysis;
+
+import lombok.Data;
+
+/**
+ * @ClassName : AnalysisSubVo
+ * @Author : xieshengjie
+ * @Date: 2021/3/9 15:31
+ * @Description : 统计分析子表vo
+ */
+@Data
+public class AnalysisSubVo {
+    private String id;
+    private String name;
+}

+ 18 - 0
common/src/main/java/com/gyee/common/vo/analysis/BdzVo.java

@@ -0,0 +1,18 @@
+package com.gyee.common.vo.analysis;
+
+import lombok.Data;
+
+/**
+ * @ClassName : BdzVo
+ * @Author : xieshengjie
+ * @Date: 2021/3/9 1:02
+ * @Description : 统计分析表底修改vo
+ */
+@Data
+public class BdzVo {
+    private String date;
+    private String wpid;
+    private String name;
+    private Double qm;
+    private Double zm;
+}

+ 19 - 0
common/src/main/java/com/gyee/common/vo/analysis/DeskObject.java

@@ -0,0 +1,19 @@
+package com.gyee.common.vo.analysis;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : DeskObject
+ * @Author : xieshengjie
+ * @Date: 2021/3/8 17:41
+ * @Description : 初始化object
+ */
+@Data
+public class DeskObject implements Serializable {
+    private static final long serialVersionUID = 1417345510455672010L;
+    private Long date;
+    private String name;
+}

+ 73 - 0
common/src/main/java/com/gyee/common/vo/analysis/DynamicBean.java

@@ -0,0 +1,73 @@
+package com.gyee.common.vo.analysis;
+
+import net.sf.cglib.beans.BeanGenerator;
+import net.sf.cglib.beans.BeanMap;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @ClassName : DynamicBean
+ * @Author : xieshengjie
+ * @Date: 2021/3/8 17:25
+ * @Description : 动态生成基础类
+ */
+public class DynamicBean {
+    private Object object = null; //动态生成的类
+    private BeanMap beanMap = null; //存放属性名称以及属性的类型
+
+    public DynamicBean() {
+        super();
+    }
+
+    public DynamicBean(Map propertyMap) {
+        this.object = generateBean(propertyMap);
+        this.beanMap = BeanMap.create(this.object);
+    }
+
+    /**
+     * @param propertyMap
+     * @return
+     */
+    private Object generateBean(Map propertyMap) {
+        BeanGenerator generator = new BeanGenerator();
+        Set keySet = propertyMap.keySet();
+        for (Iterator i = keySet.iterator(); i.hasNext(); ) {
+            String key = (String) i.next();
+            generator.addProperty(key, (Class) propertyMap.get(key));
+        }
+        return generator.create();
+    }
+
+    /**
+     * 给bean属性赋值
+     *
+     * @param property 属性名
+     * @param value    值
+     */
+    public void setValue(Object property, Object value) {
+        beanMap.put(property, value);
+    }
+
+    /**
+     * 通过属性名得到属性值
+     *
+     * @param property 属性名
+     * @return 值
+     */
+    public Object getValue(String property) {
+        return beanMap.get(property);
+    }
+
+    /**
+     * 得到该实体bean对象
+     *
+     * @return
+     */
+    public Object getObject() {
+        return this.object;
+    }
+
+
+}

+ 41 - 0
common/src/main/java/com/gyee/common/vo/analysis/EnergyDailyVo.java

@@ -0,0 +1,41 @@
+package com.gyee.common.vo.analysis;
+
+import com.gyee.common.model.StringUtils;
+import lombok.Data;
+
+/**
+ * @ClassName : EnergyDailyVo
+ * @Author : xieshengjie
+ * @Date: 2022/2/21 9:55
+ * @Description :
+ */
+@Data
+public class EnergyDailyVo {
+
+    private String foreignkeyid;
+    private String foreignkeyname;
+    private String wpid;
+    private Double speed;
+    private Double rfdl;
+    private Double yljfdl;
+    private Double nljfdl;
+    private Double rswdl;
+    private Double yljswdl;
+    private Double nljswdl;
+    private Double zhcydl;
+    private Double yljzhcydl;
+    private Double scadarfdl;
+    private Double scadayljfdl;
+    private Double scadanljfdl;
+    private Double scadazhcydl;
+    private Double scadayljzhcydl;
+    private Double scadazhcydll;
+    private Double rxdssdl;
+    private Double yljxdssdl;
+    private Double nljxdssdl;
+    private Integer orderNo;
+    private Integer isWind;
+
+
+
+}

+ 355 - 0
common/src/main/java/com/gyee/common/vo/benchmark/DataVo.java

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

+ 15 - 0
common/src/main/java/com/gyee/common/vo/benchmark/DjhxdbInitVo.java

@@ -0,0 +1,15 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+/**
+ * @ClassName : DjhxdbInitVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/29 14:10
+ * @Description : 单机横向对比初始化vo
+ */
+@Data
+public class DjhxdbInitVo {
+
+    private String name;
+}

+ 46 - 0
common/src/main/java/com/gyee/common/vo/benchmark/DjhxdbtopVo.java

@@ -0,0 +1,46 @@
+package com.gyee.common.vo.benchmark;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @ClassName : DjhxdbtopVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/29 8:52
+ * @Description : 单机横向对比表格vo
+ */
+@Data
+public class DjhxdbtopVo  implements Serializable {
+    private static final long serialVersionUID = 4849539762497547224L;
+
+    private String wtid;
+    private String nemCode;
+    private Double fdl;
+    private Double yfdl;
+    private Double pjgl;
+    private Double pjfs;
+    private Double yxxs;
+    private Double djxs;
+    private Double gzxs;
+    private Double whxs;
+    private Double zdxs;
+    private Double yxfs;
+    private Double ssdl;
+    private Double bjcs;
+    private Double tjcs;
+    private Double bbhcs;
+    private Double sbklly;
+    private Double pjwd;
+    private Double pjsd;
+    private Double pjyq;
+    private Double nhyd;
+    private Double sjbz;
+    private List<FzyVo> fzyList;
+    private Double jfpl;
+
+
+}

+ 73 - 0
common/src/main/java/com/gyee/common/vo/benchmark/DynamicBean.java

@@ -0,0 +1,73 @@
+package com.gyee.common.vo.benchmark;
+
+import net.sf.cglib.beans.BeanGenerator;
+import net.sf.cglib.beans.BeanMap;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @ClassName : DynamicBean
+ * @Author : xieshengjie
+ * @Date: 2021/3/8 17:25
+ * @Description : 动态生成基础类
+ */
+public class DynamicBean {
+    private Object object = null; //动态生成的类
+    private BeanMap beanMap = null; //存放属性名称以及属性的类型
+
+    public DynamicBean() {
+        super();
+    }
+
+    public DynamicBean(Map propertyMap) {
+        this.object = generateBean(propertyMap);
+        this.beanMap = BeanMap.create(this.object);
+    }
+
+    /**
+     * @param propertyMap
+     * @return
+     */
+    private Object generateBean(Map propertyMap) {
+        BeanGenerator generator = new BeanGenerator();
+        Set keySet = propertyMap.keySet();
+        for (Iterator i = keySet.iterator(); i.hasNext(); ) {
+            String key = (String) i.next();
+            generator.addProperty(key, (Class) propertyMap.get(key));
+        }
+        return generator.create();
+    }
+
+    /**
+     * 给bean属性赋值
+     *
+     * @param property 属性名
+     * @param value    值
+     */
+    public void setValue(Object property, Object value) {
+        beanMap.put(property, value);
+    }
+
+    /**
+     * 通过属性名得到属性值
+     *
+     * @param property 属性名
+     * @return 值
+     */
+    public Object getValue(String property) {
+        return beanMap.get(property);
+    }
+
+    /**
+     * 得到该实体bean对象
+     *
+     * @return
+     */
+    public Object getObject() {
+        return this.object;
+    }
+
+
+}

+ 30 - 0
common/src/main/java/com/gyee/common/vo/benchmark/FjjxbVo.java

@@ -0,0 +1,30 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : FjjxbVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/16 10:55
+ * @Description : 风机绩效榜vo
+ */
+@Data
+public class FjjxbVo  implements Serializable  {
+    private static final long serialVersionUID = -8275715166269543409L;
+
+    private String id;   //id
+    private String name;   //名称
+    private Double llfdl;   //理论发电量
+    private Double sjfdl;   //实际发电量
+    private Double speed;  //风速
+    private Double fjhjx;   //非计划(故障)
+    private Double jhjx;  //计划(维护)
+    private Double sl;  //受累
+    private Double xd;  //限电
+    private Double xn;  //性能
+    private Double fnlly;   //风能利用率
+    private Double point;
+    private Integer ordernum;
+}

+ 37 - 0
common/src/main/java/com/gyee/common/vo/benchmark/FjjxbmxVo.java

@@ -0,0 +1,37 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : FjjxbmxVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/16 14:19
+ * @Description : 风机绩效榜明细vo
+ */
+@Data
+public class FjjxbmxVo implements Serializable {
+    private static final long serialVersionUID = 4129930226114546977L;
+
+    private String id;   //id
+    private String name;   //名称
+    private Double llfdl;  //理论发电量
+    private Double sjfdl;  //实际发电量
+    private Double speed;   //风速
+    private Double fjhjx1;  //故障损失
+    private Double fjhjx2;  //故障受累
+    private Double jhjx1;   //检修损失
+    private Double jhjx2;  //检修受累
+    private Double sl1;   //电网受累
+    private Double sl2;   //天气受累
+    private Double xd1;    //限电降出
+    private Double xd2;   //限电停机
+    private Double xn1;   //待机损失
+    private Double xn2;   //手动停机
+    private Double xn3;   //正常发电
+    private Double xn4;   //缺陷降出
+    private Double fnlly;   //风能利用率
+    private Double point;
+    private Integer ordernum;
+}

+ 15 - 0
common/src/main/java/com/gyee/common/vo/benchmark/FzyVo.java

@@ -0,0 +1,15 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+/**
+ * @ClassName : FzyVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/29 11:40
+ * @Description : 风资源vo
+ */
+@Data
+public class FzyVo {
+    private String name;
+    private Double value;
+}

+ 67 - 0
common/src/main/java/com/gyee/common/vo/benchmark/GoodCompareVo.java

@@ -0,0 +1,67 @@
+package com.gyee.common.vo.benchmark;
+
+
+public class GoodCompareVo implements java.io.Serializable {
+
+	/** 
+    * @Fields serialVersionUID : TODO
+    */ 
+    
+    
+    private static final long serialVersionUID = 1L;
+	// Fields
+
+	private Integer id;
+	private String name;
+	private String value1;
+	private String value2;
+	private String value3;
+	private String value4;
+	private String value5;
+	
+	public String getName() {
+    	return name;
+    }
+	public void setName(String name) {
+    	this.name = name;
+    }
+	public Integer getId() {
+    	return id;
+    }
+	public void setId(Integer id) {
+    	this.id = id;
+    }
+	public String getValue1() {
+    	return value1;
+    }
+	public void setValue1(String value1) {
+    	this.value1 = value1;
+    }
+	public String getValue2() {
+    	return value2;
+    }
+	public void setValue2(String value2) {
+    	this.value2 = value2;
+    }
+	public String getValue3() {
+    	return value3;
+    }
+	public void setValue3(String value3) {
+    	this.value3 = value3;
+    }
+	public String getValue4() {
+    	return value4;
+    }
+	public void setValue4(String value4) {
+    	this.value4 = value4;
+    }
+	public String getValue5() {
+    	return value5;
+    }
+	public void setValue5(String value5) {
+    	this.value5 = value5;
+    }
+	
+
+
+}

+ 18 - 0
common/src/main/java/com/gyee/common/vo/benchmark/OpeVo.java

@@ -0,0 +1,18 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName : OpeVo
+ * @Author : xieshengjie
+ * @Date: 2021/1/19 14:36
+ * @Description : 操作vo
+ */
+@Data
+public class OpeVo {
+    private String wtid;
+    private Date time;
+    private Double value;
+}

+ 32 - 0
common/src/main/java/com/gyee/common/vo/benchmark/Operation.java

@@ -0,0 +1,32 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : Operation
+ * @Author : xieshengjie
+ * @Date: 2021/1/18 16:10
+ * @Description : 操作model
+ */
+@Data
+public class Operation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String nameOfDuty;  //值班名称
+    private Integer startCount;//启动
+    private Integer stopCount;//停机
+    private Integer resetCount;//复位
+    private Integer maintainCount;//维护
+    private Integer unmaintainCount;//取消维护
+    private Integer gpmaintainCount;//挂牌检修
+    private Integer gpfaultCount;//挂牌故障维修
+    private Integer gponsiteinvolvementMaintainCount;//挂牌场内受累检修
+    private Integer gponsiteinvolvementFaultCount;//挂牌场内受累故障
+    private Integer gpoffsiteaffectedgridCount;//挂牌场外受累电网
+    private Integer gpweatherOutsideCount;//挂牌场外受累天气
+    private Integer ungpCount;//取消挂牌
+
+}

+ 17 - 0
common/src/main/java/com/gyee/common/vo/benchmark/RankingVo.java

@@ -0,0 +1,17 @@
+package com.gyee.common.vo.benchmark;
+
+import lombok.Data;
+
+@Data
+public class RankingVo {
+
+    private String wpid;
+    private String wtid;
+    private String wpname;
+    private String wtname;
+    private Long beginDate;
+    private Long endDate;
+    private Double speed;
+    private Double power;
+    private Double rankdata;
+}

+ 70 - 0
common/src/main/java/com/gyee/common/vo/benchmark/ValueVo.java

@@ -0,0 +1,70 @@
+package com.gyee.common.vo.benchmark;
+
+public class ValueVo {
+	private String name;
+	private String value;
+	private Double data1;
+
+	private String warningId;
+	private String shutdowneventId;
+	private String wpId;
+	private String wtId;
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Double getData1() {
+		return data1;
+	}
+
+	public void setData1(Double data1) {
+		this.data1 = data1;
+	}
+
+	public String getWarningId() {
+		return warningId;
+	}
+
+	public void setWarningId(String warningId) {
+		this.warningId = warningId;
+	}
+
+	public String getShutdowneventId() {
+		return shutdowneventId;
+	}
+
+	public void setShutdowneventId(String shutdowneventId) {
+		this.shutdowneventId = shutdowneventId;
+	}
+
+	public String getWpId() {
+		return wpId;
+	}
+
+	public void setWpId(String wpId) {
+		this.wpId = wpId;
+	}
+
+	public String getWtId() {
+		return wtId;
+	}
+
+	public void setWtId(String wtId) {
+		this.wtId = wtId;
+	}
+
+	
+}

+ 52 - 0
common/src/main/java/com/gyee/common/vo/benchmark/WxsslVo.java

@@ -0,0 +1,52 @@
+package com.gyee.common.vo.benchmark;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : WxsslVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/16 16:00
+ * @Description : 五项损失率vo
+ */
+@Data
+public class WxsslVo implements Serializable {
+
+    private static final long serialVersionUID = -2799942539856503365L;
+
+    private String id;
+    private String name;
+    private Double ordernum;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date date;
+    private Integer zhpm;
+    private Integer fdlpm;
+    private Double fdl;
+    private Double llfdl;
+    private Integer gzssdlpm;
+    private Double gzssdl;
+    private Integer jxssdlpm;
+    private Double jxssdl;
+    private Integer xnssdlpm;
+    private Double xnssdl;
+    private Integer xdssdlpm;
+    private Double xdssdl;
+    private Integer slssdlpm;
+    private Double slssdl;
+    private Integer fnlylpm;
+    private Double fnlyl;
+    private Integer gzsslpm;
+    private Double gzssl;
+    private Integer jxsslpm;
+    private Double jxssl;
+    private Integer qflpm;
+    private Double qfl;
+    private Integer xnsslpm;
+    private Double xnssl;
+    private Double zssdl;
+    private Double slssl;
+    private Integer slsslpm;
+}

+ 20 - 0
common/src/main/java/com/gyee/common/vo/curve/CurveVo.java

@@ -0,0 +1,20 @@
+package com.gyee.common.vo.curve;
+
+import lombok.Data;
+
+/**
+ * @ClassName : CurveVo
+ * @Author : xieshengjie
+ * @Date: 2022/5/13 11:40
+ * @Description :
+ */
+@Data
+public class CurveVo {
+
+    private String wtid;
+    private String nemCode;
+    private Double speed;
+    private Double theorypower;
+    private Double ensurepower;
+
+}

+ 17 - 0
common/src/main/java/com/gyee/common/vo/datacenter/CurveVo.java

@@ -0,0 +1,17 @@
+package com.gyee.common.vo.datacenter;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName : CurveVo
+ * @Author : xieshengjie
+ * @Date: 2021/5/27 10:16
+ * @Description : 曲线vo
+ */
+@Data
+public class CurveVo {
+//    private String wtid;
+    private Date time;
+}

+ 20 - 0
common/src/main/java/com/gyee/common/vo/datacenter/ParameterComparisonVo.java

@@ -0,0 +1,20 @@
+package com.gyee.common.vo.datacenter;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName : ParameterComparisonVo
+ * @Author : xieshengjie
+ * @Date: 2021/5/26 10:46
+ * @Description : 参数对比英文
+ */
+@Data
+public class ParameterComparisonVo {
+
+    private String wtid;
+    private Date time;
+    private String tagetName;
+    private Double value;
+}

+ 19 - 0
common/src/main/java/com/gyee/common/vo/datacenter/PointDataVo.java

@@ -0,0 +1,19 @@
+package com.gyee.common.vo.datacenter;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName : PointDataVo
+ * @Author : xieshengjie
+ * @Date: 2021/5/13 16:46
+ * @Description : 返回信息vo
+ */
+@Data
+public class PointDataVo {
+    private String pointId;
+    private String pointName;
+    private Double value;
+    private Date time;
+}

+ 16 - 0
common/src/main/java/com/gyee/common/vo/datacenter/RealExport.java

@@ -0,0 +1,16 @@
+package com.gyee.common.vo.datacenter;
+
+import lombok.Data;
+
+
+/**
+ * @ClassName : RealExport
+ * @Author : xieshengjie
+ * @Date: 2021/5/18 10:58
+ * @Description : 实时导出vo
+ */
+@Data
+public class RealExport {
+    private String id;
+    private String name;
+}

+ 10 - 0
common/src/main/java/com/gyee/common/vo/healthmanager/CompareVo.java

@@ -0,0 +1,10 @@
+package com.gyee.common.vo.healthmanager;
+
+import lombok.Data;
+
+@Data
+public class CompareVo {
+
+    private String target;
+    private Object data;
+}

+ 27 - 0
common/src/main/java/com/gyee/common/vo/matrix/MatrixVo.java

@@ -0,0 +1,27 @@
+package com.gyee.common.vo.matrix;
+
+import lombok.Data;
+
+/**
+ * @ClassName : MatrixVo
+ * @Author : xieshengjie
+ * @Date: 2022/2/25 15:54
+ * @Description :
+ */
+@Data
+public class MatrixVo {
+
+    private String wtid;
+
+    private Double staus;
+
+    private String wpid;
+
+    public MatrixVo(String wtid, Double staus, String wpid) {
+        this.wtid = wtid;
+        this.staus = staus;
+        this.wpid = wpid;
+    }
+
+
+}

+ 24 - 0
common/src/main/java/com/gyee/common/vo/monitor/AgcVo.java

@@ -0,0 +1,24 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/4/3-17:18
+*/
+
+import lombok.Data;
+
+@Data
+public class AgcVo {
+    private String wpid;
+    private String wpname;  //场站
+    private Double agc001;  //出线功率
+    private Double agc002;  //有功设定
+    private Double agc003;  //上限
+    private Double agc004;  //下线
+    private Double agc005;  //远方
+    private Double agc006;  //投入
+    private Double agc007;  //减闭锁
+    private Double agc008;  //增闭锁
+    private Double agc009;  //限电状态
+    private Double agc010;  //理论功率
+    private Double ycgl;  //预测功率
+
+}

+ 16 - 0
common/src/main/java/com/gyee/common/vo/monitor/CompreVo.java

@@ -0,0 +1,16 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/4/3-15:40
+*/
+
+import com.gyee.common.model.PointData;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CompreVo {
+    private String wpname;
+    private Double capacity;
+    private List<PointData> dataList;
+}

+ 10 - 0
common/src/main/java/com/gyee/common/vo/monitor/FittingBoVo.java

@@ -0,0 +1,10 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/3/29-9:00
+*/
+
+import lombok.Data;
+
+@Data
+public class FittingBoVo {
+}

+ 15 - 0
common/src/main/java/com/gyee/common/vo/monitor/FittingVo.java

@@ -0,0 +1,15 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/3/29-8:39
+*/
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class FittingVo {
+
+    private Long dateTime;
+    private Double value;
+}

+ 15 - 0
common/src/main/java/com/gyee/common/vo/monitor/MatrixLineVo.java

@@ -0,0 +1,15 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/4/14-18:09
+*/
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MatrixLineVo {
+    private String id;
+    private String name;
+    private List<MatrixVo> wtDataList;
+}

+ 32 - 0
common/src/main/java/com/gyee/common/vo/monitor/MatrixPowerVo.java

@@ -0,0 +1,32 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/3/28-9:22
+*/
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MatrixPowerVo {
+    private String wpid;
+    private String wpname;
+    private Integer orderNum;
+    private Integer jrts;
+    private Double djts;
+    private Double bwts;
+    private Double gzts;
+    private Double jxts;
+    private Double xdts;
+    private Double slts;
+    private Double lxts;
+    private Double spped;
+    private Double ycgl;
+    private Double bzgl;
+    private Double llgl;
+    private Double sjgl;
+    private Double agc;
+    private Double cxgl;
+    private String czlx;
+    private List<MatrixVo> wtlist;
+}

+ 28 - 0
common/src/main/java/com/gyee/common/vo/monitor/MatrixProVo.java

@@ -0,0 +1,28 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/4/14-18:12
+*/
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MatrixProVo {
+
+    private String id;
+    private String name;
+    private Integer djts;
+    private Integer bwts;
+    private Integer gzts;
+    private Integer jxts;
+    private Integer xdts;
+    private Integer slts;
+    private Integer lxts;
+    private Double speed;
+    private Double bzgl;
+    private Double llgl;
+    private Double sjgl;
+    private List<MatrixLineVo> lineVos;
+
+}

+ 21 - 0
common/src/main/java/com/gyee/common/vo/monitor/MatrixVo.java

@@ -0,0 +1,21 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/3/28-9:11
+*/
+
+import lombok.Data;
+
+@Data
+public class MatrixVo {
+    private String wtid;  //风机
+    private String wtname;  //风机
+    private Double status;  //状态
+    private Double speed;   //风速
+    private Double power;   //功率
+    private Double transfer;   //转速
+    private Double rate;   //进度
+    private Double current;   //电流
+    private Double voltage;   //电压
+    private Double ssqfzt;
+    private Double qfdl;
+}

+ 14 - 0
common/src/main/java/com/gyee/common/vo/monitor/MatrixWpVo.java

@@ -0,0 +1,14 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/4/14-18:22
+*/
+
+import lombok.Data;
+
+@Data
+public class MatrixWpVo {
+
+    private String id;
+    private String name;
+
+}

+ 37 - 0
common/src/main/java/com/gyee/common/vo/monitor/StatusVo.java

@@ -0,0 +1,37 @@
+package com.gyee.common.vo.monitor;/*
+@author   谢生杰
+@date   2023/4/4-10:06
+*/
+
+import lombok.Data;
+
+@Data
+public class StatusVo {
+
+
+    private String wpname;
+    private Integer jrts;
+    private Double yxts;
+    private Double djts;
+    private Double xdts;
+    private Double jxts;
+    private Double gzts;
+    private Double slts;
+    private Double lxts;
+    private Double agc001;
+    private Double agc002;
+    private Double ycgl;
+    private Double qxzfs;
+    private Double qxzfx;
+    private Double swdl;
+    private Double agcjrzt;
+    private Double fggljrzt;
+    private Double qxzjrzt;
+    private Double djljrzt;
+    private Double fjjrzt;
+    private Double qcjrzt;
+    private String type;
+    private Integer orderNum;
+
+
+}

+ 34 - 0
common/src/main/java/com/gyee/common/vo/specific/SpecificCenterVo.java

@@ -0,0 +1,34 @@
+package com.gyee.common.vo.specific;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : SpecificCenterVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/12 9:54
+ * @Description : 专题分析中间部分Vo
+ */
+@Data
+public class SpecificCenterVo implements Serializable {
+
+    private static final long serialVersionUID = -6273903303839623264L;
+    private String wpid;
+    private Double mtbf;
+    private Double mttr;
+    private Double fwjsl;
+    private Double ztzhl;
+    private Double xqjsl;
+    private Double tqmtbf;
+    private Double tqmttr;
+    private Double tqfwjsl;
+    private Double tqztzhl;
+    private Double tqxqjsl;
+    private Integer mtbfCompare;
+    private Integer mttrCompare;
+    private Integer fwjslCompare;
+    private Integer ztzhlCompare;
+    private Integer xqjslCompare;
+    private Integer ordernum;
+}

+ 16 - 0
common/src/main/java/com/gyee/common/vo/specific/SpecificTarget.java

@@ -0,0 +1,16 @@
+package com.gyee.common.vo.specific;/*
+@author   谢生杰
+@date   2022/12/4-21:40
+*/
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class SpecificTarget {
+    private String wpid;
+    private String wpname;
+//    private Integer year;
+    List<SpecificTargetVo> targetList;
+    private Integer orderNum;
+}

+ 26 - 0
common/src/main/java/com/gyee/common/vo/specific/SpecificTargetVo.java

@@ -0,0 +1,26 @@
+package com.gyee.common.vo.specific;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName : SpecificTargetVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/12 16:41
+ * @Description : 专题分析单个指标Vo
+ */
+@Data
+public class SpecificTargetVo {
+
+    private String wpid;
+    private String wpname;
+    private Integer year;
+    private Integer month;
+    private Double current;
+    private Double sameperiod;
+    private Integer compare;
+
+}
+
+

+ 43 - 0
common/src/main/java/com/gyee/common/vo/specific/SpecificTopVo.java

@@ -0,0 +1,43 @@
+package com.gyee.common.vo.specific;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : SpecificTopVo
+ * @Author : xieshengjie
+ * @Date: 2021/6/11 14:21
+ * @Description : 专题分析上面部分vo
+ */
+@Data
+public class SpecificTopVo implements Serializable {
+    private static final long serialVersionUID = 1407554909175314466L;
+    private String type;
+    private Double yllfdl;   //理论发电量
+    private Double ysjfdl;   //实际发电量
+    private Double yfnlyl;    //风能利用率
+    private Double ywhssdl;   //维护损失电量
+    private Double ywhssl;    //维护损失率
+    private Double ygzssdl;   //故障损失电量
+    private Double ygzssl;    //故障损失率
+    private Double yxdssdl;   //限电损失电量
+    private Double yxdssl;     //限电损失率
+    private Double yxnssdl;    //性能损失电量
+    private Double yxnssl;     //性能损失率
+    private Double yslssdl;   //受累损失电量
+    private Double yslssl;    //受累损失率
+    private Double nllfdl;
+    private Double nsjfdl;
+    private Double nfnlyl;
+    private Double nwhssdl;
+    private Double nwhssl;
+    private Double ngzssdl;
+    private Double ngzssl;
+    private Double nxdssdl;
+    private Double nxdssl;
+    private Double nxnssdl;
+    private Double nxnssl;
+    private Double nslssdl;
+    private Double nslssl;
+}

+ 29 - 0
common/src/main/java/com/gyee/common/vo/targetdata/KkxzbfxVo.java

@@ -0,0 +1,29 @@
+package com.gyee.common.vo.targetdata;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : KkxzbfxVo
+ * @Author : xieshengjie
+ * @Date: 2021/7/6 18:43
+ * @Description : 可靠性指标分析vo
+ */
+@Data
+public class KkxzbfxVo implements Serializable {
+
+    private static final long serialVersionUID = -2941794540137035356L;
+
+    private String wpid;
+    private Double lyxs;
+    private Double ylyxs;
+    private Double nylyx;
+    private Double sbklyl;
+    private Double ysbklyl;
+    private Double nsbklyl;
+    private Double dxkxxs;
+    private Double ydxkxxs;
+    private Double ndxkxxs;
+    private Double yxfss;
+}

+ 44 - 0
common/src/main/java/com/gyee/common/vo/targetdata/NxzbfxVo.java

@@ -0,0 +1,44 @@
+package com.gyee.common.vo.targetdata;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : NxzbfxVo
+ * @Author : xieshengjie
+ * @Date: 2021/7/6 16:35
+ * @Description : 能效指标分析vo
+ */
+@Data
+public class NxzbfxVo implements Serializable {
+    private static final long serialVersionUID = -6233668839170355138L;
+
+    private String wpid;
+    private String projectid;
+    private Date date;
+    private Double rpjfs;
+    private Double rfdl;
+    private Double yljfdl;
+    private Double nljfdl;
+    private Double rswdl;
+    private Double yljswdl;
+    private Double nljswdl;
+    private Double zhcydl;
+    private Double yljzhcydl;
+    private Double zhcydll;
+    private Double scadarfdl;
+    private Double scadayljfdl;
+    private Double scadanljfdl;
+    private Double scadazhcydl;
+    private Double scadayljzhcydl;
+    private Double scadazhcydll;
+    private Double rxdssdl;
+    private Double yljxdssdl;
+    private Double nljxdssdl;
+    private Double yljxdl;
+    private Double nljxdl;
+    private Integer sort;
+
+}

+ 33 - 0
common/src/main/java/com/gyee/common/vo/threerate/FwjslVo.java

@@ -0,0 +1,33 @@
+package com.gyee.common.vo.threerate;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName : FwjslVo
+ * @Author : xieshengjie
+ * @Date: 2021/7/7 15:13
+ * @Description : 复位及时率vo
+ */
+@Data
+public class FwjslVo implements Serializable {
+
+    private static final long serialVersionUID = -9120640092604681619L;
+
+    private Double ordernum;
+
+    private String wpid;
+    private Date date;
+    private Double yfwcs;
+    private Double wfz;
+    private Double wfzfwl;
+    private Double sfz;
+    private Double sfzfwl;
+    private Double swfz;
+    private Double swfzfwl;
+    private Double esfz;
+    private Double esfzfwl;
+}

+ 26 - 0
common/src/main/java/com/gyee/common/vo/threerate/PvVo.java

@@ -0,0 +1,26 @@
+package com.gyee.common.vo.threerate;/*
+@author   谢生杰
+@date   2023/3/23-9:49
+*/
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class PvVo {
+
+    private String wtid;
+    private String wtname;
+    private Date date;
+    private String model;
+    private Double rxtxl;
+    private Double rlsl;
+    private Double rzhxl;
+    private Double yxtxl;
+    private Double ylsl;
+    private Double yzhxl;
+    private Double nxtxl;
+    private Double nlsl;
+    private Double nzhxl;
+}

+ 24 - 0
common/src/main/java/com/gyee/common/vo/threerate/QxjslVo.java

@@ -0,0 +1,24 @@
+package com.gyee.common.vo.threerate;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @ClassName : QxjslVo
+ * @Author : xieshengjie
+ * @Date: 2021/7/7 20:30
+ * @Description : 消缺及时率vo
+ */
+@Data
+public class QxjslVo implements Serializable {
+    private static final long serialVersionUID = 6002241313346335418L;
+
+    private Double ordernum;
+
+    private String wpid;
+    private Long gzCount;
+    private Long xqCount;
+    private Double xqjsl;
+}

+ 70 - 0
common/src/main/resources/application.yml

@@ -0,0 +1,70 @@
+spring:
+  main:
+    allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
+#  redis:
+##    host: 49.4.50.80
+#    host: 10.155.32.4
+#    port: 6379
+#    timeout: 100000
+#    #    集群环境打开下面注释,单机不需要打开
+#    #    cluster:
+#    #      集群信息
+#    #      nodes: xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx,xxx.xxx.xxx.xxx:xxxx
+#    #      #默认值是5 一般当此值设置过大时,容易报:Too many Cluster redirections
+#    #      maxRedirects: 3
+#    password: gdnxfd123
+#    application:
+#      name: test
+#    jedis:
+#      pool:
+#        max-active: 8
+#        min-idle: 0
+#        max-idle: 8
+#        max-wait: -1
+#    database: 1
+  autoconfigure:
+    exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
+  datasource:
+#    type: com.alibaba.druid.pool.DruidDataSource
+#    driver-class-name: oracle.jdbc.OracleDriver
+    #外网
+#    url: jdbc:oracle:thin:@49.4.50.80:1521:gdnxfd
+##    url: jdbc:oracle:thin:@192.168.1.105:1521:gdnxfd
+#    username: nxfdprod
+#    password: gdnxfd123
+#    oracle-schema=:
+    type: com.alibaba.druid.pool.DruidDataSource
+    url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=UTC
+    username: root
+    password: root
+    driver-class-name: com.mysql.jdbc.Driver
+    druid:
+      max-active: 20
+      initial-size: 1
+      min-idle: 3
+      max-wait: 60000
+      time-between-eviction-runs-millis: 60000
+      min-evictable-idle-time-millis: 300000
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+
+
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+    auto-mapping-behavior: full
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  mapper-locations: classpath*:mapper/**/*Mapper.xml
+  global-config:
+    # 逻辑删除配置
+    db-config:
+      id-type: auto
+      # 删除前
+      logic-not-delete-value: 1
+      # 删除后
+      logic-delete-value: 0
+logging:
+  level:
+    root: info
+    com.example: debug

+ 42 - 0
common/src/test/java/com/gyee/common/CommonMainTest.java

@@ -0,0 +1,42 @@
+package com.gyee.common;
+
+import com.gyee.common.model.algorithm.PointVo;
+import com.gyee.common.util.algorithm.LineBuild;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Ignore;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * @ClassName : CommonMainTest
+ * @Author : xieshengjie
+ * @Date: 2021/9/29 17:36
+ * @Description : 测试
+ */
+@Slf4j
+@SpringBootTest
+@RunWith(SpringRunner.class)
+@Ignore
+@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
+class CommonMainTest {
+//    @Resource
+//    private RedisService redisService;
+//    @Test
+//    public void testRedis(){
+//        String wp = redisService.get("WP");
+//    }
+
+
+    @Test
+    public void test1(){
+        double[] arrX = {0,0,0,0,1,3,5,7,3,6,5};
+        double[] arrY = {0,-3,-5,-8,2,3,5,1,6,7,8};
+        List<PointVo> pointVos = LineBuild.buildLine(arrX, arrY, arrX.length, 20, 0.01);
+    }
+}

+ 129 - 0
pom.xml

@@ -0,0 +1,129 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.3.7.RELEASE</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.example</groupId>
+    <artifactId>runeconmy-nx</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0-SNAPSHOT</version>
+
+    <modules>
+        <module>common</module>
+        <module>runeconomy-xk</module>
+    </modules>
+
+    <!-- 统一管理jar包版本 -->
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <junit.version>4.12</junit.version>
+        <log4j.version>1.2.17</log4j.version>
+        <lombok.version>1.18.16</lombok.version>
+        <pgsql.version>42.2.5</pgsql.version>
+        <druid.version>1.2.11</druid.version>
+        <mybatis.plus.boot.starter.version>3.2.0</mybatis.plus.boot.starter.version>
+        <mybatis.plus.generator.version>3.3.2</mybatis.plus.generator.version>
+        <fastjson.version>1.2.17</fastjson.version>
+    </properties>
+
+    <!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
+    <dependencyManagement>
+        <dependencies>
+
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-starter</artifactId>
+            </dependency>
+
+
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-starter-test</artifactId>
+                <scope>test</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>redis.clients</groupId>
+                <artifactId>jedis</artifactId>
+                <version>2.9.0</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.postgresql</groupId>
+                <artifactId>postgresql</artifactId>
+                <version>${pgsql.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>druid</artifactId>
+                <version>${druid.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-boot-starter</artifactId>
+                <version>${mybatis.plus.boot.starter.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-generator</artifactId>
+                <version>${mybatis.plus.generator.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>${junit.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>log4j</groupId>
+                <artifactId>log4j</artifactId>
+                <version>${log4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.projectlombok</groupId>
+                <artifactId>lombok</artifactId>
+                <version>${lombok.version}</version>
+                <optional>true</optional>
+            </dependency>
+
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>fastjson</artifactId>
+                <version>${fastjson.version}</version>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.3.7.RELEASE</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>

+ 180 - 0
runeconomy-xk/pom.xml

@@ -0,0 +1,180 @@
+<?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>runeconomy-xk</artifactId>
+
+    <dependencies>
+        <!-- 工具类相关 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper</artifactId>
+            <version>5.1.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.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-test</artifactId>-->
+<!--            <scope>test</scope>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.gyee</groupId>
+            <artifactId>common</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.7</version>
+            <scope>compile</scope>
+        </dependency>
+        <!--nacos 依赖-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.alibaba.cloud</groupId>-->
+        <!--            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
+        <!--        </dependency>-->
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.1.1</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>redis.clients</groupId>-->
+<!--            <artifactId>jedis</artifactId>-->
+<!--            <version>3.2.0</version>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.data</groupId>-->
+<!--            <artifactId>spring-data-redis</artifactId>-->
+<!--        </dependency>-->
+
+        <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>
+        <!-- 添加swagger2 -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>io.swagger</groupId>
+                    <artifactId>swagger-annotations</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>io.swagger</groupId>
+                    <artifactId>swagger-models</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.5.21</version>
+        </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.5.21</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+            <version>2.7.15</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-core -->
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-core</artifactId>
+            <version>5.7.0</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/io.github.openfeign/feign-core -->
+        <dependency>
+            <groupId>io.github.openfeign</groupId>
+            <artifactId>feign-core</artifactId>
+            <version>11.8</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/io.github.openfeign/feign-jackson -->
+        <dependency>
+            <groupId>io.github.openfeign</groupId>
+            <artifactId>feign-jackson</artifactId>
+            <version>11.8</version>
+        </dependency>
+
+
+
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.7.1</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 66 - 0
runeconomy-xk/src/main/java/com/gyee/RunEconomyApplication.java

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

+ 0 - 0
runeconomy-xk/src/main/java/com/gyee/runeconomy/config/CorsConfig.java


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