Browse Source

首次提交

‘xugp 2 years ago
commit
a0d0f969be
100 changed files with 2174 additions and 0 deletions
  1. BIN
      .gradle/7.4.2/checksums/checksums.lock
  2. BIN
      .gradle/7.4.2/checksums/md5-checksums.bin
  3. BIN
      .gradle/7.4.2/checksums/sha1-checksums.bin
  4. BIN
      .gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock
  5. 0 0
      .gradle/7.4.2/dependencies-accessors/gc.properties
  6. BIN
      .gradle/7.4.2/executionHistory/executionHistory.bin
  7. BIN
      .gradle/7.4.2/executionHistory/executionHistory.lock
  8. BIN
      .gradle/7.4.2/fileChanges/last-build.bin
  9. BIN
      .gradle/7.4.2/fileHashes/fileHashes.bin
  10. BIN
      .gradle/7.4.2/fileHashes/fileHashes.lock
  11. BIN
      .gradle/7.4.2/fileHashes/resourceHashesCache.bin
  12. 0 0
      .gradle/7.4.2/gc.properties
  13. BIN
      .gradle/buildOutputCleanup/buildOutputCleanup.lock
  14. 2 0
      .gradle/buildOutputCleanup/cache.properties
  15. BIN
      .gradle/buildOutputCleanup/outputFiles.bin
  16. BIN
      .gradle/file-system.probe
  17. 0 0
      .gradle/vcs-1/gc.properties
  18. 8 0
      .idea/.gitignore
  19. 16 0
      .idea/compiler.xml
  20. 20 0
      .idea/gradle.xml
  21. 36 0
      .idea/inspectionProfiles/Project_Default.xml
  22. 5 0
      .idea/inspectionProfiles/profiles_settings.xml
  23. 30 0
      .idea/jarRepositories.xml
  24. 8 0
      .idea/misc.xml
  25. 0 0
      .idea/sonarlint/issuestore/index.pb
  26. 6 0
      .idea/vcs.xml
  27. 16 0
      README.md
  28. 28 0
      build.gradle
  29. 0 0
      datalogs/dataChange.log
  30. BIN
      eDosProxyApi.dll
  31. 42 0
      gradle.properties
  32. BIN
      gradle/wrapper/gradle-wrapper.jar
  33. 7 0
      gradle/wrapper/gradle-wrapper.properties
  34. 172 0
      gradlew
  35. 84 0
      gradlew.bat
  36. 28 0
      logs/error.log
  37. 0 0
      logs/info.log
  38. 39 0
      logs/warn.log
  39. 2 0
      lombok.config
  40. 16 0
      report-fd/README.md
  41. 52 0
      report-fd/build.gradle
  42. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/Bootstrap.class
  43. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/common/Common.class
  44. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/MyJsonConfig.class
  45. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/MyWebAppConfigurer.class
  46. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/cache/CacheService.class
  47. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/sqlite/Database.class
  48. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/IndexController.class
  49. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/ReportController.class
  50. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/TestController.class
  51. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/entity/Parameter.class
  52. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/entity/WindpowerStation.class
  53. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/service/ReportService.class
  54. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/service/SeleniumService.class
  55. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelClassField.class
  56. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelExport.class
  57. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelImport.class
  58. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelUtil.class
  59. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelUtils.class
  60. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/MD5Utils.class
  61. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ResponseWrapper.class
  62. 39 0
      report-fd/build/resources/main/application.yaml
  63. 8 0
      report-fd/build/resources/main/banner.txt
  64. 64 0
      report-fd/build/resources/main/log4j2.xml
  65. BIN
      report-fd/build/resources/main/report.db
  66. 6 0
      report-fd/build/resources/main/static/bootstrap.min.css
  67. 6 0
      report-fd/build/resources/main/static/bootstrap.min.js
  68. 4 0
      report-fd/build/resources/main/static/jquery.min.js
  69. 3 0
      report-fd/build/resources/main/static/laydate/laydate.js
  70. BIN
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.eot
  71. 45 0
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.svg
  72. BIN
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.ttf
  73. BIN
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.woff
  74. 1 0
      report-fd/build/resources/main/static/laydate/theme/default/laydate.css
  75. 1 0
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/layui.css
  76. 1 0
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/code.css
  77. 1 0
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/laydate/default/laydate.css
  78. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/icon-ext.png
  79. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/icon.png
  80. 1 0
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/layer.css
  81. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-0.gif
  82. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-1.gif
  83. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-2.gif
  84. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.eot
  85. 554 0
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.svg
  86. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.ttf
  87. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.woff
  88. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.woff2
  89. 5 0
      report-fd/build/resources/main/static/layui-v2.6.8/layui/layui.js
  90. 102 0
      report-fd/build/resources/main/static/layui-v2.6.8/test.html
  91. 6 0
      report-fd/build/resources/main/static/layui-v2.6.8/免责声明.url
  92. 256 0
      report-fd/build/resources/main/static/md5.js
  93. 142 0
      report-fd/build/resources/main/templates/FaultReport.html
  94. 98 0
      report-fd/build/resources/main/templates/productionReport.html
  95. BIN
      report-fd/build/tmp/compileJava/previous-compilation-data.bin
  96. 23 0
      report-fd/src/main/java/com/gyee/wisdom/report/Bootstrap.java
  97. 45 0
      report-fd/src/main/java/com/gyee/wisdom/report/common/Common.java
  98. 69 0
      report-fd/src/main/java/com/gyee/wisdom/report/config/MyJsonConfig.java
  99. 77 0
      report-fd/src/main/java/com/gyee/wisdom/report/config/MyWebAppConfigurer.java
  100. 0 0
      report-fd/src/main/java/com/gyee/wisdom/report/config/cache/CacheService.java

BIN
.gradle/7.4.2/checksums/checksums.lock


BIN
.gradle/7.4.2/checksums/md5-checksums.bin


BIN
.gradle/7.4.2/checksums/sha1-checksums.bin


BIN
.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock


+ 0 - 0
.gradle/7.4.2/dependencies-accessors/gc.properties


BIN
.gradle/7.4.2/executionHistory/executionHistory.bin


BIN
.gradle/7.4.2/executionHistory/executionHistory.lock


BIN
.gradle/7.4.2/fileChanges/last-build.bin


BIN
.gradle/7.4.2/fileHashes/fileHashes.bin


BIN
.gradle/7.4.2/fileHashes/fileHashes.lock


BIN
.gradle/7.4.2/fileHashes/resourceHashesCache.bin


+ 0 - 0
.gradle/7.4.2/gc.properties


BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock


+ 2 - 0
.gradle/buildOutputCleanup/cache.properties

@@ -0,0 +1,2 @@
+#Thu Dec 08 10:09:44 CST 2022
+gradle.version=7.4.2

BIN
.gradle/buildOutputCleanup/outputFiles.bin


BIN
.gradle/file-system.probe


+ 0 - 0
.gradle/vcs-1/gc.properties


+ 8 - 0
.idea/.gitignore

@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../:\report-import\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/

+ 16 - 0
.idea/compiler.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Gradle Imported" enabled="true">
+        <outputRelativeToContentRoot value="true" />
+        <processorPath useClasspath="false">
+          <entry name="$USER_HOME$/.m2/repository/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" />
+        </processorPath>
+        <module name="report-import.report-fd.main" />
+        <module name="report-import.report-gf.main" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel target="1.8" />
+  </component>
+</project>

+ 20 - 0
.idea/gradle.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="gradleHome" value="$PROJECT_DIR$/../environment/gradle-7.4.1" />
+        <option name="gradleJvm" value="#JAVA_HOME" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/report-fd" />
+            <option value="$PROJECT_DIR$/report-gf" />
+          </set>
+        </option>
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>

+ 36 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,36 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="TOP_LEVEL_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="INNER_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="METHOD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
+        </value>
+      </option>
+      <option name="FIELD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="IGNORE_DEPRECATED" value="false" />
+      <option name="IGNORE_JAVADOC_PERIOD" value="true" />
+      <option name="IGNORE_DUPLICATED_THROWS" value="false" />
+      <option name="IGNORE_POINT_TO_ITSELF" value="false" />
+      <option name="myAdditionalJavadocTags" value="date" />
+    </inspection_tool>
+  </profile>
+</component>

+ 5 - 0
.idea/inspectionProfiles/profiles_settings.xml

@@ -0,0 +1,5 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="PROJECT_PROFILE" />
+  </settings>
+</component>

+ 30 - 0
.idea/jarRepositories.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="MavenLocal" />
+      <option name="name" value="MavenLocal" />
+      <option name="url" value="file:/$USER_HOME$/.m2/repository/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="MavenRepo" />
+      <option name="name" value="MavenRepo" />
+      <option name="url" value="https://repo.maven.apache.org/maven2/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="maven" />
+      <option name="name" value="maven" />
+      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
+    </remote-repository>
+  </component>
+</project>

+ 8 - 0
.idea/misc.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="FrameworkDetectionExcludesConfiguration">
+    <file type="web" url="file://$PROJECT_DIR$" />
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+</project>

+ 0 - 0
.idea/sonarlint/issuestore/index.pb


+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 16 - 0
README.md

@@ -0,0 +1,16 @@
+# export-import
+
+
+##模块:
+### report-fd -- 风电报表上传
+### report-gf -- 光伏报表上传
+
+
+
+
+
+
+
+
+
+

+ 28 - 0
build.gradle

@@ -0,0 +1,28 @@
+subprojects {
+    apply plugin: "java-library"
+    apply plugin: "idea"
+    apply plugin: "eclipse"
+    apply plugin: "maven-publish"
+
+    [compileJava, compileTestJava, javadoc]*.options*.encoding = "UTF-8"
+
+    configurations {
+        all*.exclude module: "spring-boot-starter-tomcat"
+        all*.exclude module: "spring-boot-starter-logging"
+    }
+
+    dependencies {
+        compileOnly("org.projectlombok:lombok:$lombokVersion")
+        annotationProcessor("org.projectlombok:lombok:$lombokVersion")
+    }
+
+    repositories {
+        mavenLocal()
+        maven {
+            allowInsecureProtocol = true
+            url "http://maven.aliyun.com/nexus/content/groups/public/"
+        }
+        mavenCentral()
+    }
+}
+

+ 0 - 0
datalogs/dataChange.log


BIN
eDosProxyApi.dll


+ 42 - 0
gradle.properties

@@ -0,0 +1,42 @@
+ group=com.gyee.wisdom
+version=1.0.3
+description=Gyee wistom platform
+
+sourceCompatibility=1.8
+targetCompatibility=1.8
+
+# Abbr
+bootGroup=org.springframework.boot
+cloudGroup=org.springframework.cloud
+kotlinGroup=org.jetbrains.kotlin
+# Lib
+kotlinVersion=1.1.3
+aspectjVersion=1.8.10
+junitVersion=4.12
+mockitoVersion=2.8.47
+objenesisVersion=2.6
+findbugsContribVersion=7.0.2
+findbugsSecVersion=1.6.0
+jsr305Version=3.0.1
+lombokVersion=1.18.20
+guavaVersion=30.1.1-jre
+checkstyleVersion=8.0
+springBootVersion=2.7.0
+springCloudDependenciesVersion=Hoxton.SR9
+commonsLang3Version=3.12.0
+commonsCodecVersion=1.15
+jodaTimeVersion=2.9.9
+nettyVersion=4.1.12.Final
+cassandraVersion=3.0.0
+hbaseVersion=1.2.0-cdh5.16.2
+hadoopVersion=2.6.0-cdh5.16.2
+mysqlConnectorVersion=8.0.28
+log4jVersion=2.17.2
+fastjsonVersion=1.2.58
+commonsBeanUtilsVersion=1.9.4
+alibabaDruidVersion=1.2.9
+groovyVersion=3.0.9
+openFeignVersion=11.8
+postgresqlDriverVersion=42.4.0
+poiVersion=3.17-beta1
+sqliteJdbc=3.8.11.2

BIN
gradle/wrapper/gradle-wrapper.jar


+ 7 - 0
gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,7 @@
+#Tue Sep 17 14:57:12 CST 2019
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+#distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip

+ 172 - 0
gradlew

@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"

+ 84 - 0
gradlew.bat

@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega

+ 28 - 0
logs/error.log

@@ -0,0 +1,28 @@
+2022-12-07 10:52:42.688 ERROR main report(LoggingFailureAnalysisReporter.java:40) 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+Web server failed to start. Port 8090 was already in use.
+
+Action:
+
+Identify and stop the process that's listening on port 8090 or configure this application to listen on another port.
+
+2022-12-08 10:11:17.304 ERROR main report(LoggingFailureAnalysisReporter.java:40) 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+Web server failed to start. Port 8090 was already in use.
+
+Action:
+
+Identify and stop the process that's listening on port 8090 or configure this application to listen on another port.
+

+ 0 - 0
logs/info.log


+ 39 - 0
logs/warn.log

@@ -0,0 +1,39 @@
+2022-12-07 10:52:40.937  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-07 10:52:42.627  WARN main refresh(AbstractApplicationContext.java:591) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.PortInUseException: Port 8090 is already in use
+2022-12-07 10:52:42.688 ERROR main report(LoggingFailureAnalysisReporter.java:40) 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+Web server failed to start. Port 8090 was already in use.
+
+Action:
+
+Identify and stop the process that's listening on port 8090 or configure this application to listen on another port.
+
+2022-12-07 10:53:04.156  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-07 10:55:03.509  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-07 11:22:03.228  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-07 15:04:02.495  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-07 16:07:35.181  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-07 19:40:41.562  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-08 10:11:15.458  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-08 10:11:17.230  WARN main refresh(AbstractApplicationContext.java:591) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.PortInUseException: Port 8090 is already in use
+2022-12-08 10:11:17.304 ERROR main report(LoggingFailureAnalysisReporter.java:40) 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+Web server failed to start. Port 8090 was already in use.
+
+Action:
+
+Identify and stop the process that's listening on port 8090 or configure this application to listen on another port.
+
+2022-12-08 10:12:59.775  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used

+ 2 - 0
lombok.config

@@ -0,0 +1,2 @@
+config.stopBubbling=true
+lombok.equalsAndHashCode.callSuper=call

+ 16 - 0
report-fd/README.md

@@ -0,0 +1,16 @@
+# report-fd
+
+
+## 风电报表程序上传
+
+
+
+
+
+
+
+
+
+
+
+

+ 52 - 0
report-fd/build.gradle

@@ -0,0 +1,52 @@
+buildscript {
+    repositories {
+        mavenLocal()
+        maven {
+            allowInsecureProtocol = true
+            url "http://maven.aliyun.com/nexus/content/groups/public" }
+        mavenCentral()
+    }
+    dependencies {
+        classpath("$bootGroup:spring-boot-gradle-plugin:$springBootVersion")
+    }
+}
+
+
+version = "2.0.1"
+
+apply plugin: "$bootGroup"
+apply plugin: "io.spring.dependency-management"
+
+
+dependencies {
+
+
+    implementation("org.xerial:sqlite-jdbc:$sqliteJdbc")
+    implementation("org.apache.commons:commons-lang3:$commonsLang3Version")
+    implementation("$bootGroup:spring-boot-starter-web"){
+        exclude group:"org.springframework.boot:spring-boot-starter-json"
+        exclude group:"com.fasterxml.jackson.core:jackson-databind"
+    }
+    implementation("$bootGroup:spring-boot-starter-undertow")
+    implementation("$bootGroup:spring-boot-starter-websocket")
+    implementation("org.apache.logging.log4j:log4j-core:$log4jVersion")
+    implementation("org.apache.logging.log4j:log4j-jul:$log4jVersion")
+    implementation("org.apache.logging.log4j:log4j-api:$log4jVersion")
+    implementation("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion")
+    implementation ("com.alibaba:druid:$alibabaDruidVersion")
+    implementation ("com.alibaba:fastjson:$fastjsonVersion")
+    testImplementation("$bootGroup:spring-boot-starter-test")
+
+    implementation group: "io.jsonwebtoken", name: "jjwt", version: "0.9.0"
+    implementation("org.apache.poi:poi-ooxml:$poiVersion")
+    implementation("net.sourceforge.jexcelapi:jxl:2.6.12")
+    implementation("org.apache.poi:poi:$poiVersion")
+    implementation("org.jsoup:jsoup:1.8.3")
+    implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
+    implementation("org.seleniumhq.selenium:selenium-java:3.4.0")
+    implementation("org.dom4j:dom4j:2.1.3")
+    implementation "org.springdoc:springdoc-openapi-ui:1.6.6"
+
+
+}
+

BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/Bootstrap.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/common/Common.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/config/MyJsonConfig.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/config/MyWebAppConfigurer.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/config/cache/CacheService.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/config/sqlite/Database.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/IndexController.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/ReportController.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/TestController.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/entity/Parameter.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/entity/WindpowerStation.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/service/ReportService.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/service/SeleniumService.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelClassField.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelExport.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelImport.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelUtil.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelUtils.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/MD5Utils.class


BIN
report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ResponseWrapper.class


+ 39 - 0
report-fd/build/resources/main/application.yaml

@@ -0,0 +1,39 @@
+server:
+  port: 8090
+
+spring:
+  application:
+  name: report
+  mvc:
+    pathmatch:
+      matching-strategy: ANT_PATH_MATCHER
+  http:
+    encoding:
+      force: true
+      charset: UTF-8
+      enabled: true
+  datasource:
+    driver-class-name: org.sqlite.JDBC
+    url: jdbc:sqlite::resource:report.db
+    username:
+    password:
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+    default-property-inclusion: always
+
+logging:
+  level:
+    com:
+      gyee:
+        wisdom:
+          alarm:
+            sharding:
+              mapper: debug
+              service: info
+
+#  山西谷歌浏览器地址:C:\Users\戴尔\AppData\Local\Google\Chrome\Application\chromedriver.exe
+#  宁夏谷歌浏览器地址:
+chromeDriver: C:\Users\戴尔\AppData\Local\Google\Chrome\Application\chromedriver.exe
+#   宁夏新能源miss系统登录密码   AHbl***2022
+password: AHbl***2020

+ 8 - 0
report-fd/build/resources/main/banner.txt

@@ -0,0 +1,8 @@
+                                          ██
+                ██████                   ░██
+ ██████  █████ ░██░░░██  ██████  ██████ ██████
+░░██░░█ ██░░░██░██  ░██ ██░░░░██░░██░░█░░░██░
+ ░██ ░ ░███████░██████ ░██   ░██ ░██ ░   ░██
+ ░██   ░██░░░░ ░██░░░  ░██   ░██ ░██     ░██
+░███   ░░██████░██     ░░██████ ░███     ░░██
+░░░     ░░░░░░ ░░       ░░░░░░  ░░░       ░░

+ 64 - 0
report-fd/build/resources/main/log4j2.xml

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+    <Properties>
+        <Property name="Pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %t %M(%F:%L) %m%n</Property>
+    </Properties>
+    <Filter type="ThresholdFilter" level="INFO"/>
+
+    <Appenders>
+        <Console name="Console" target="SYSTEM_OUT">
+            <PatternLayout pattern="${Pattern}"/>
+        </Console>
+        <RollingFile name="RollingFileInfo" fileName="logs/info.log"
+                     filePattern="logs/%d{yyyy-MM}/info-%d{yyyy-MM-dd}.%i.log">
+            <PatternLayout pattern="${Pattern}"/>
+            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
+            <Policies>
+                <TimeBasedTriggeringPolicy/>
+                <SizeBasedTriggeringPolicy size="100 MB"/>
+            </Policies>
+        </RollingFile>
+        <RollingFile name="RollingFileWarn" fileName="logs/warn.log"
+                     filePattern="logs/%d{yyyy-MM}/warn-%d{yyyy-MM-dd}.%i.log">
+            <PatternLayout charset="utf8" pattern="${Pattern}"/>
+            <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
+            <Policies>
+                <TimeBasedTriggeringPolicy/>
+                <SizeBasedTriggeringPolicy size="100 MB"/>
+            </Policies>
+        </RollingFile>
+        <RollingFile name="RollingFileError" fileName="logs/error.log"
+                     filePattern="logs/%d{yyyy-MM}/error-%d{yyyy-MM-dd}.%i.log">
+            <PatternLayout charset="utf8" pattern="${Pattern}"/>
+            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
+            <Policies>
+                <TimeBasedTriggeringPolicy/>
+                <SizeBasedTriggeringPolicy size="100 MB"/>
+            </Policies>
+        </RollingFile>
+        <RollingFile name="dataChangeRollingFile" fileName="datalogs/dataChange.log" append="true"
+                     filePattern="logs/%d{yyyy-MM}/error-%d{yyyy-MM-dd}.%i.log">
+            <PatternLayout charset="utf8" pattern="${Pattern}"/>
+            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
+            <Policies>
+                <TimeBasedTriggeringPolicy/>
+                <SizeBasedTriggeringPolicy size="100 MB"/>
+            </Policies>
+        </RollingFile>
+    </Appenders>
+
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="Console"/>
+            <!--<appender-ref ref="RollingFileInfo"/>-->
+            <appender-ref ref="RollingFileWarn"/>
+            <appender-ref ref="RollingFileError"/>
+        </Root>
+        <!--自定义日志-->
+        <!--将logger中的 additivity 属性配置为 false,则这个logger不会将日志流反馈到root中。-->
+        <Logger name="dataChangeLogger" additivity="false" level="INFO">
+            <appender-ref ref="dataChangeRollingFile" level="INFO"/>
+        </Logger>
+        <!--自定义日志-->
+    </Loggers>
+</Configuration>

BIN
report-fd/build/resources/main/report.db


File diff suppressed because it is too large
+ 6 - 0
report-fd/build/resources/main/static/bootstrap.min.css


File diff suppressed because it is too large
+ 6 - 0
report-fd/build/resources/main/static/bootstrap.min.js


File diff suppressed because it is too large
+ 4 - 0
report-fd/build/resources/main/static/jquery.min.js


File diff suppressed because it is too large
+ 3 - 0
report-fd/build/resources/main/static/laydate/laydate.js


BIN
report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.eot


File diff suppressed because it is too large
+ 45 - 0
report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.svg


BIN
report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.ttf


BIN
report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.woff


File diff suppressed because it is too large
+ 1 - 0
report-fd/build/resources/main/static/laydate/theme/default/laydate.css


File diff suppressed because it is too large
+ 1 - 0
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/layui.css


File diff suppressed because it is too large
+ 1 - 0
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/code.css


File diff suppressed because it is too large
+ 1 - 0
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/laydate/default/laydate.css


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/icon-ext.png


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/icon.png


File diff suppressed because it is too large
+ 1 - 0
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/layer.css


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-0.gif


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-1.gif


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-2.gif


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.eot


File diff suppressed because it is too large
+ 554 - 0
report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.svg


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.ttf


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.woff


BIN
report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.woff2


File diff suppressed because it is too large
+ 5 - 0
report-fd/build/resources/main/static/layui-v2.6.8/layui/layui.js


+ 102 - 0
report-fd/build/resources/main/static/layui-v2.6.8/test.html

@@ -0,0 +1,102 @@
+
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+  <title>测试 - layui</title>
+  <link rel="stylesheet" href="layui/css/layui.css">
+</head>
+<body>
+
+<div class="layui-container">
+  <div class="layui-progress" style="margin: 15px 0 30px;">
+    <div class="layui-progress-bar" lay-percent="100%"></div>
+  </div>
+  
+  
+  <div class="layui-btn-container">
+    <button class="layui-btn" test-active="test-form">一个按钮</button>
+    <button class="layui-btn layui-btn-normal" id="test2">当前日期</button>
+  </div>
+  
+  <blockquote class="layui-elem-quote" style="margin-top: 30px;">
+    <div class="layui-text">
+      <ul>
+        <li>你当前预览的是:<span>layui-v<span id="version"></span></span></li>
+        <li>layui 是一套开源的 Web UI(界面)组件库。这是一个极其简洁的演示页面</li>
+      </ul>
+    </div>
+  </blockquote>
+</div>
+
+
+
+<!-- 引入 layui.js 的 <script> 标签最好放置在 html 末尾 -->
+<script src="layui/layui.js"></script>
+<script>
+layui.use(function(){
+  var layer = layui.layer
+  ,form = layui.form
+  ,laypage = layui.laypage
+  ,element = layui.element
+  ,laydate = layui.laydate
+  ,util = layui.util;
+  
+  //欢迎信息
+  layer.msg('Hello World');
+  
+  //输出版本号
+  lay('#version').html(layui.v);
+  
+  //日期
+  laydate.render({
+    elem: '#test2'
+    ,value: new Date()
+    ,isInitValue: true
+  });
+  
+  //触发事件
+  util.event('test-active', {
+    'test-form': function(){
+      layer.open({
+        type: 1
+        ,resize: false
+        ,shadeClose: true
+        ,area: '350px'
+        ,title: 'layer + form'
+        ,content: ['<ul class="layui-form layui-form-pane" style="margin: 15px;">'
+          ,'<li class="layui-form-item">'
+            ,'<label class="layui-form-label">输入框</label>'
+            ,'<div class="layui-input-block">'
+              ,'<input class="layui-input" lay-verify="required" name="field1">'
+            ,'</div>'
+          ,'</li>'
+          ,'<li class="layui-form-item">'
+            ,'<label class="layui-form-label">选择框</label>'
+            ,'<div class="layui-input-block">'
+              ,'<select name="field2">'
+                ,'<option value="A">A</option>'
+                ,'<option value="B">B</option>'
+              ,'<select>'
+            ,'</div>'
+          ,'</li>'
+          ,'<li class="layui-form-item" style="text-align:center;">'
+            ,'<button type="submit" lay-submit lay-filter="*" class="layui-btn">提交</button>'
+          ,'</li>'
+        ,'</ul>'].join('')
+        ,success: function(layero, index){
+          layero.find('.layui-layer-content').css('overflow', 'visible');
+          
+          form.render().on('submit(*)', function(data){
+            layer.msg(JSON.stringify(data.field), {icon: 1});
+            //layer.close(index); //关闭层
+          });
+        }
+      });
+    }
+  });
+});
+</script>
+</body>
+</html>

+ 6 - 0
report-fd/build/resources/main/static/layui-v2.6.8/免责声明.url

@@ -0,0 +1,6 @@
+[{000214A0-0000-0000-C000-000000000046}]
+Prop3=19,11
+[InternetShortcut]
+URL=https://www.layui.com/about/disclaimer.html
+IDList=
+HotKey=0

+ 256 - 0
report-fd/build/resources/main/static/md5.js

@@ -0,0 +1,256 @@
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
+var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */
+var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function md5_vm_test()
+{
+  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+}
+
+/*
+ * Calculate the MD5 of an array of little-endian words, and a bit length
+ */
+function core_md5(x, len)
+{
+  /* append padding */
+  x[len >> 5] |= 0x80 << ((len) % 32);
+  x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+  var a =  1732584193;
+  var b = -271733879;
+  var c = -1732584194;
+  var d =  271733878;
+
+  for(var i = 0; i < x.length; i += 16)
+  {
+    var olda = a;
+    var oldb = b;
+    var oldc = c;
+    var oldd = d;
+
+    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
+    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
+    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
+    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
+    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
+
+    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
+    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
+    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
+    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
+    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
+    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+
+    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
+    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
+    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
+    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
+    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
+    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+
+    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
+    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
+    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
+    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
+    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
+    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+
+    a = safe_add(a, olda);
+    b = safe_add(b, oldb);
+    c = safe_add(c, oldc);
+    d = safe_add(d, oldd);
+  }
+  return Array(a, b, c, d);
+
+}
+
+/*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+function md5_cmn(q, a, b, x, s, t)
+{
+  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+}
+function md5_ff(a, b, c, d, x, s, t)
+{
+  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5_gg(a, b, c, d, x, s, t)
+{
+  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5_hh(a, b, c, d, x, s, t)
+{
+  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5_ii(a, b, c, d, x, s, t)
+{
+  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+/*
+ * Calculate the HMAC-MD5, of a key and some data
+ */
+function core_hmac_md5(key, data)
+{
+  var bkey = str2binl(key);
+  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+
+  var ipad = Array(16), opad = Array(16);
+  for(var i = 0; i < 16; i++)
+  {
+    ipad[i] = bkey[i] ^ 0x36363636;
+    opad[i] = bkey[i] ^ 0x5C5C5C5C;
+  }
+
+  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+  return core_md5(opad.concat(hash), 512 + 128);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+  return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+  return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert a string to an array of little-endian words
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+ */
+function str2binl(str)
+{
+  var bin = Array();
+  var mask = (1 << chrsz) - 1;
+  for(var i = 0; i < str.length * chrsz; i += chrsz)
+    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+  return bin;
+}
+
+/*
+ * Convert an array of little-endian words to a string
+ */
+function binl2str(bin)
+{
+  var str = "";
+  var mask = (1 << chrsz) - 1;
+  for(var i = 0; i < bin.length * 32; i += chrsz)
+    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+  return str;
+}
+
+/*
+ * Convert an array of little-endian words to a hex string.
+ */
+function binl2hex(binarray)
+{
+  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+  var str = "";
+  for(var i = 0; i < binarray.length * 4; i++)
+  {
+    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
+  }
+  return str;
+}
+
+/*
+ * Convert an array of little-endian words to a base-64 string
+ */
+function binl2b64(binarray)
+{
+  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+  var str = "";
+  for(var i = 0; i < binarray.length * 4; i += 3)
+  {
+    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
+                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+    for(var j = 0; j < 4; j++)
+    {
+      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+    }
+  }
+  return str;
+}

+ 142 - 0
report-fd/build/resources/main/templates/FaultReport.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+<head lang="en">
+    <meta charset="UTF-8">
+    <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
+    <title></title>
+    <link rel="stylesheet" href="../layui-v2.6.8/layui/css/layui.css" media="all">
+</head>
+<style>
+
+</style>
+
+<body>
+<ul class="layui-nav layui-bg-blue" lay-bar="disabled">
+    <li class="layui-nav-item"><a href="http://localhost:8090/indexPro">报表导入</a></li>
+    <li class="layui-nav-item"><a href=""></a></li>
+<!--
+    <li class="layui-nav-item layui-this"><a href="http://localhost:8090/indexFault">故障日报导入</a></li>
+-->
+
+</ul>
+<div class="layui-form-item" style="height: 30px"></div>
+<form id="uploadForm" enctype="multipart/form-data" class="layui-form" >
+
+
+    <div class="layui-form-item">
+        <div class="layui-inline">
+            <label class="layui-form-label">区域</label>
+            <div class="layui-input-block">
+                <select name="interest" lay-filter="aihao" id = "departId">
+                    <option value="185SC">山西</option>
+                    <option value="131SC">太旗</option>
+                </select>
+            </div>
+        </div>
+        <!--<div class="layui-inline">
+            <label class="layui-form-label">日期</label>
+            <div class="layui-input-inline">
+                <input type="text"  name="date" id="demoTest" required  lay-verify="required"  placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
+            </div>
+        </div>-->
+        <div class="layui-inline">
+            <label class="layui-form-label">文件选择</label>
+            <div class="layui-input-inline">
+                <input id="file" type="file" name="file"  required  lay-verify="required" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+
+    </div>
+    <div class="layui-form-item">
+        <div class="layui-input-block">
+            <button id="upload" type="button" class="layui-btn layui-btn-lg layui-btn-normal" lay-submit lay-filter="uploadForm">提交</button>
+        </div>
+    </div>
+
+</form>
+<br>
+
+<script src="../laydate/laydate.js"></script> <!-- 改成你的路径 -->
+<script src="../layui-v2.6.8/layui/layui.js"></script>
+<script src="../md5.js"></script><!-- 改成你的路径 -->
+<script>
+
+    layui.use(['layer','form'], function(){
+        var form = layui.form;
+
+        //监听提交
+        form.on('submit(uploadForm)', function(data){
+            var departId=$("#departId").val();
+            var files = document.getElementById("file").files;
+            //创建FormData对象
+            var formdata = new FormData();
+            for(var i=0;i<files.length;i++){
+                console.info(files[i].name);
+                formdata.append("file", files[i]);
+            }
+            formdata.append("departId",departId);
+            //var data = new FormData($('#uploadForm')[0]);
+            console.log(file)
+            $.ajax({
+                type: 'post',
+                url: "http://localhost:8090/report/importFault",
+                data: formdata,
+                cache: false,
+                processData: false,
+                contentType: false,
+                success:function(data){
+                    layer.msg(data.msg,{icon: 5})
+                    location.reload();
+                },
+                error:function (data){
+                    layer.msg("程序error",{icon: 5})
+                    location.reload();
+                }
+        });
+
+    });
+        })
+
+</script>
+</body>
+<script src="../js/jquery-3.6.0.min.js"></script>
+<!--<script type="text/javascript">
+
+    $(function () {
+        $("#upload").click(function () {
+            var departId=$("#departId").val();
+            var format=$("#demoTest").val();
+            if (format.values == ''){
+                alert("日期不能空")
+            }
+            console.log(departId)
+            var files = document.getElementById("file").files;
+            if (files.values == ''){
+                alert("文件不能空")
+            }
+            //创建FormData对象
+            var formdata = new FormData();
+            for(var i=0;i<files.length;i++){
+                console.info(files[i].name);
+                formdata.append("file", files[i]);
+            }
+            formdata.append("departId",departId);
+            formdata.append("format",format);
+            //var data = new FormData($('#uploadForm')[0]);
+            console.log(file)
+            $.ajax({
+                type: 'post',
+                url: "http://localhost:8090/report/import",
+                data: formdata,
+                cache: false,
+                processData: false,
+                contentType: false,
+            }).success(function (data) {
+                alert("上传成功");
+            }).error(function () {
+                alert("上传失败");
+            });
+        });
+    });
+</script>-->
+</html>

+ 98 - 0
report-fd/build/resources/main/templates/productionReport.html

@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+<head lang="en">
+    <meta charset="UTF-8">
+    <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
+    <title></title>
+    <link rel="stylesheet" href="../layui-v2.6.8/layui/css/layui.css" media="all">
+</head>
+<style>
+
+</style>
+
+<body>
+<ul class="layui-nav layui-bg-blue" lay-bar="disabled">
+    <li class="layui-nav-item layui-this" ><a href="http://localhost:8090/indexPro" >报表导入</a></li>
+    <li class="layui-nav-item"><a href=""></a></li>
+<!--
+    <li class="layui-nav-item"><a href="http://localhost:8090/indexFault" >故障日报导入</a></li>
+-->
+
+</ul>
+<div class="layui-form-item" style="height: 30px"></div>
+<form id="uploadForm" enctype="multipart/form-data" class="layui-form" >
+
+
+    <div class="layui-form-item">
+        <div class="layui-inline">
+            <label class="layui-form-label">区域</label>
+            <div class="layui-input-block">
+                <select name="departId" lay-filter="aihao" id = "departId">
+                    <option value="185SC">山西</option>
+                    <option value="131SC">太旗</option>
+                    <!--<option value="317sc">海子井光伏</option>
+                    <option value="198sc">宁夏新能源</option>-->
+                </select>
+            </div>
+        </div>
+        <div class="layui-inline">
+            <label class="layui-form-label">文件选择</label>
+            <div class="layui-input-inline">
+                <input id="file" type="file" name="file"  required  lay-verify="required" autocomplete="off" class="layui-input">
+            </div>
+        </div>
+
+    </div>
+    <div class="layui-form-item">
+        <div class="layui-input-block">
+            <button id="upload" type="button" class="layui-btn layui-btn-lg layui-btn-normal" lay-submit lay-filter="uploadForm">提交</button>
+        </div>
+    </div>
+
+</form>
+<br>
+
+<script src="../laydate/laydate.js"></script> <!-- 改成你的路径 -->
+<script src="../layui-v2.6.8/layui/layui.js"></script>
+<script src="../md5.js"></script><!-- 改成你的路径 -->
+<script type="text/javascript">
+
+    layui.use('form', function(){
+        var form = layui.form;
+
+        //监听提交
+        form.on('submit(uploadForm)', function(data){
+            console.log(data)
+            var departId=$("#departId").val();
+            var files = document.getElementById("file").files;
+            //创建FormData对象
+            var formdata = new FormData();
+            for(var i=0;i<files.length;i++){
+                console.info(files[i].name);
+                formdata.append("file", files[i]);
+            }
+            formdata.append("departId",departId);
+            console.log(file)
+            $.ajax({
+                type: 'post',
+                url: "http://localhost:8090/report/importPro",
+                data: formdata,
+                cache: false,
+                processData: false,
+                contentType: false,
+                success:function(data){
+                    layer.msg(data.msg,{icon: 5})
+                    location.reload();
+                },
+                error:function (data){
+                    layer.msg("程序error",{icon: 5})
+                    location.reload();
+                },
+            })
+        });
+    });
+
+</script>
+</body>
+<script src="../js/jquery-3.6.0.min.js"></script>
+</html>

BIN
report-fd/build/tmp/compileJava/previous-compilation-data.bin


+ 23 - 0
report-fd/src/main/java/com/gyee/wisdom/report/Bootstrap.java

@@ -0,0 +1,23 @@
+
+package com.gyee.wisdom.report;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+
+
+/**
+ * @author xugp
+ */
+
+@EnableCaching
+@SpringBootApplication
+@ServletComponentScan
+public class Bootstrap {
+
+    public static void main(String[] args) {
+
+        SpringApplication.run(Bootstrap.class, args);
+    }
+}

+ 45 - 0
report-fd/src/main/java/com/gyee/wisdom/report/common/Common.java

@@ -0,0 +1,45 @@
+package com.gyee.wisdom.report.common;
+
+import org.openqa.selenium.chrome.ChromeOptions;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Common {
+
+
+    /**
+     * chrome添加参数
+     * @param options
+     * @return
+     */
+    public static ChromeOptions addArguments(ChromeOptions options){
+        options.addArguments("disable-infobars");
+        // 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
+        options.addArguments("--headless");
+        // 启动无沙盒模式运行,以最高权限运行
+        options.addArguments("--no-sandbox");
+
+        // 优化参数
+        // 不加载图片, 提升速度
+        options.addArguments("blink-settings=imagesEnabled=false");
+        options.addArguments("--disable-dev-shm-usage");
+        // 禁用gpu渲染
+        options.addArguments("--disable-gpu");
+
+        // 禁用阻止弹出窗口
+        options.addArguments("--disable-popup-blocking");
+        // 禁用扩展
+        options.addArguments("disable-extensions");
+        // 禁用JavaScript
+        options.addArguments("--disable-javascript");
+        // 默认浏览器检查
+        options.addArguments("no-default-browser-check");
+        Map<String, Object> prefs = new HashMap();
+        prefs.put("credentials_enable_service", false);
+        prefs.put("profile.password_manager_enabled", false);
+        // 禁用保存密码提示框
+        options.setExperimentalOption("prefs", prefs);
+        return options;
+    }
+}

+ 69 - 0
report-fd/src/main/java/com/gyee/wisdom/report/config/MyJsonConfig.java

@@ -0,0 +1,69 @@
+package com.gyee.wisdom.report.config;
+
+import com.alibaba.fastjson.serializer.NameFilter;
+import com.alibaba.fastjson.serializer.SerializeConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.alibaba.fastjson.support.config.FastJsonConfig;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TimeZone;
+
+/**
+ * @description:
+ * @auther: Wanghs
+ * @date: 2022-04-06
+ */
+@Configuration
+public class MyJsonConfig implements WebMvcConfigurer {
+    //springboot 默认通过jackson来转化json,@JSONField(....)是fastjson的注解,因此要添加如下配置
+    //Long类型在前端js中会丢失精度
+
+    public FastJsonHttpMessageConverter fastJsonHttpMessageConverters() {
+        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
+        FastJsonConfig fastJsonConfig = new FastJsonConfig();
+        NameFilter nameFilter = (object, name, value) -> name;
+        SerializeConfig serializeConfig = fastJsonConfig.getSerializeConfig();
+        // serializeConfig .addFilter(SwaggerWelcomeWebMvc.class, nameFilter);
+        // serializeConfig.put(String.class,MyStringSerializer.instance);
+        fastJsonConfig.setSerializeConfig(serializeConfig);
+
+        fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");    //自定义时间格式
+        fastJsonConfig.setSerializerFeatures(
+                SerializerFeature.DisableCircularReferenceDetect
+                ,SerializerFeature.WriteMapNullValue
+                ,SerializerFeature.WriteDateUseDateFormat
+        );  //关闭循环引用,正常转换null值,格式化
+
+        fastConverter.setFastJsonConfig(fastJsonConfig);
+        List<MediaType> fastMediaTypes = new ArrayList<>();
+        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+        fastConverter.setSupportedMediaTypes(fastMediaTypes);
+        // HttpMessageConverter<?> converter = fastConverter;
+        return fastConverter;
+    }
+    public HttpMessageConverter<String> stringConverter() {
+        StringHttpMessageConverter converter = new StringHttpMessageConverter(
+                Charset.forName("UTF-8"));
+        return converter;
+    }
+    @Override
+    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
+
+        // converters.clear();
+         converters.add(stringConverter());
+//        List<HttpMessageConverter<?>> collect = converters.stream().filter(s ->s instanceof StringHttpMessageConverter).collect(Collectors.toList());
+//        converters.removeAll(collect);
+        converters.add( fastJsonHttpMessageConverters());
+
+    }
+
+}

+ 77 - 0
report-fd/src/main/java/com/gyee/wisdom/report/config/MyWebAppConfigurer.java

@@ -0,0 +1,77 @@
+package com.gyee.wisdom.report.config;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * 拦截器
+ *
+ * @author gyee
+ * @ClassName: MyWebAppConfigurer
+ * @date 2018年6月3日
+ */
+@Configuration
+public class MyWebAppConfigurer implements WebMvcConfigurer {
+
+    private static Logger logger = LoggerFactory.getLogger(WebMvcConfigurationSupport.class);
+
+
+    /**
+     * 解决跨域问题
+     **/
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+
+        registry.addMapping("/**")
+                // 设置允许跨域请求的域名
+               // .allowedOrigins("*")
+                .allowedOriginPatterns("*")
+                // 是否允许证书
+                .allowCredentials(true)
+                // 设置允许的方法
+                .allowedMethods("GET", "POST", "DELETE", "PUT")
+                // 设置允许的header属性
+                .allowedHeaders("*")
+                // 跨域允许时间
+                .maxAge(3600);
+        //super.addCorsMappings(registry);
+
+    }
+
+    @Bean
+    public CorsFilter corsFilter() {
+        CorsConfiguration config = new CorsConfiguration();
+        //允许白名单域名进行跨域调用
+        config.addAllowedOriginPattern("*");
+        //允许跨越发送cookie
+        config.setAllowCredentials(true);
+        //放行全部原始头信息
+        config.addAllowedHeader("*");
+        //允许所有请求方法跨域调用
+        config.addAllowedMethod("*");
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", config);
+        return new CorsFilter(source);
+    }
+
+
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        registry.addResourceHandler("swagger-ui/")
+                .addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("swagger-ui.html")
+                .addResourceLocations("classpath:/META-INF/resources/");
+
+        registry.addResourceHandler("/webjars/**")
+                .addResourceLocations("classpath:/META-INF/resources/webjars/");
+    }
+}

+ 0 - 0
report-fd/src/main/java/com/gyee/wisdom/report/config/cache/CacheService.java


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