Browse Source

完成光伏报表上传

‘xugp 2 years ago
parent
commit
cf435018b2
77 changed files with 570 additions and 1333 deletions
  1. BIN
      .gradle/7.4.2/checksums/checksums.lock
  2. BIN
      .gradle/7.4.2/executionHistory/executionHistory.bin
  3. BIN
      .gradle/7.4.2/executionHistory/executionHistory.lock
  4. BIN
      .gradle/7.4.2/fileHashes/fileHashes.bin
  5. BIN
      .gradle/7.4.2/fileHashes/fileHashes.lock
  6. BIN
      .gradle/7.4.2/fileHashes/resourceHashesCache.bin
  7. BIN
      .gradle/buildOutputCleanup/buildOutputCleanup.lock
  8. BIN
      .gradle/buildOutputCleanup/outputFiles.bin
  9. BIN
      .gradle/file-system.probe
  10. 12 0
      .idea/dataSources.xml
  11. 19 15
      .idea/sonarlint/issuestore/index.pb
  12. 8 1
      logs/warn.log
  13. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/Bootstrap.class
  14. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/common/Common.class
  15. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/MyJsonConfig.class
  16. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/MyWebAppConfigurer.class
  17. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/cache/CacheService.class
  18. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/config/sqlite/Database.class
  19. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/IndexController.class
  20. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/ReportController.class
  21. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/controller/TestController.class
  22. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/entity/Parameter.class
  23. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/entity/WindpowerStation.class
  24. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/service/ReportService.class
  25. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/service/SeleniumService.class
  26. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelClassField.class
  27. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelExport.class
  28. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelImport.class
  29. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelUtil.class
  30. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ExcelUtils.class
  31. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/MD5Utils.class
  32. BIN
      report-fd/build/classes/java/main/com/gyee/wisdom/report/utils/ResponseWrapper.class
  33. 0 40
      report-fd/build/resources/main/application.yaml
  34. 0 8
      report-fd/build/resources/main/banner.txt
  35. 0 64
      report-fd/build/resources/main/log4j2.xml
  36. BIN
      report-fd/build/resources/main/report.db
  37. 0 6
      report-fd/build/resources/main/static/bootstrap.min.css
  38. 0 6
      report-fd/build/resources/main/static/bootstrap.min.js
  39. 0 4
      report-fd/build/resources/main/static/jquery.min.js
  40. 0 3
      report-fd/build/resources/main/static/laydate/laydate.js
  41. BIN
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.eot
  42. 0 45
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.svg
  43. BIN
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.ttf
  44. BIN
      report-fd/build/resources/main/static/laydate/theme/default/font/iconfont.woff
  45. 0 1
      report-fd/build/resources/main/static/laydate/theme/default/laydate.css
  46. 0 1
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/layui.css
  47. 0 1
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/code.css
  48. 0 1
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/laydate/default/laydate.css
  49. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/icon-ext.png
  50. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/icon.png
  51. 0 1
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/layer.css
  52. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-0.gif
  53. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-1.gif
  54. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/css/modules/layer/default/loading-2.gif
  55. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.eot
  56. 0 554
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.svg
  57. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.ttf
  58. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.woff
  59. BIN
      report-fd/build/resources/main/static/layui-v2.6.8/layui/font/iconfont.woff2
  60. 0 5
      report-fd/build/resources/main/static/layui-v2.6.8/layui/layui.js
  61. 0 102
      report-fd/build/resources/main/static/layui-v2.6.8/test.html
  62. 0 6
      report-fd/build/resources/main/static/layui-v2.6.8/免责声明.url
  63. 0 256
      report-fd/build/resources/main/static/md5.js
  64. 0 141
      report-fd/build/resources/main/templates/FaultReport.html
  65. BIN
      report-fd/build/tmp/compileJava/previous-compilation-data.bin
  66. 41 0
      report-fd/src/main/java/com/gyee/wisdom/report/config/cache/CacheService.java
  67. 10 2
      report-fd/src/main/java/com/gyee/wisdom/report/controller/IndexController.java
  68. 25 6
      report-fd/src/main/java/com/gyee/wisdom/report/controller/ReportController.java
  69. 20 0
      report-fd/src/main/java/com/gyee/wisdom/report/entity/User.java
  70. 1 0
      report-fd/src/main/java/com/gyee/wisdom/report/entity/WindpowerStation.java
  71. 358 31
      report-fd/src/main/java/com/gyee/wisdom/report/service/SeleniumService.java
  72. 17 10
      report-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelUtil.java
  73. 0 1
      report-fd/src/main/resources/application.yaml
  74. BIN
      report-fd/src/main/resources/report.db
  75. 14 4
      report-fd/src/main/resources/templates/FaultReport.html
  76. 31 14
      report-fd/build/resources/main/templates/productionReport.html
  77. 14 4
      report-fd/src/main/resources/templates/productionReport.html

BIN
.gradle/7.4.2/checksums/checksums.lock


BIN
.gradle/7.4.2/executionHistory/executionHistory.bin


BIN
.gradle/7.4.2/executionHistory/executionHistory.lock


BIN
.gradle/7.4.2/fileHashes/fileHashes.bin


BIN
.gradle/7.4.2/fileHashes/fileHashes.lock


BIN
.gradle/7.4.2/fileHashes/resourceHashesCache.bin


BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock


BIN
.gradle/buildOutputCleanup/outputFiles.bin


BIN
.gradle/file-system.probe


+ 12 - 0
.idea/dataSources.xml

@@ -13,5 +13,17 @@
         </library>
       </libraries>
     </data-source>
+    <data-source source="LOCAL" name="report [2]" uuid="412f2054-9b1a-4d68-ba8c-ed02ef988073">
+      <driver-ref>sqlite.xerial</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
+      <jdbc-url>jdbc:sqlite:E:\report-import\report-fd\src\main\resources\report.db</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+      <libraries>
+        <library>
+          <url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.38.0/sqlite-jdbc-3.38.0.jar</url>
+        </library>
+      </libraries>
+    </data-source>
   </component>
 </project>

+ 19 - 15
.idea/sonarlint/issuestore/index.pb

@@ -29,28 +29,18 @@ F
 report-fd/build.gradle,a\e\ae208822b4f47e3025c3c624e74e92be59da6f17
 C
 report-fd/README.md,c\3\c396dfa43d43494c4862f9fac25bc32b442b74ab
-}
-Mreport-fd/src/main/java/com/gyee/wisdom/report/config/cache/CacheService.java,8\c\8cb7901059d035c46d5b7960abd35d6c0a895165
-z
-Jreport-fd/src/main/java/com/gyee/wisdom/report/config/sqlite/Database.java,b\c\bc1753bce02e36b24e648a6f2c3c03ad9c6a4080
 w
 Greport-fd/src/main/java/com/gyee/wisdom/report/config/MyJsonConfig.java,c\4\c49395c880423d7e596a0dd1266eba1cc580afdc
 }
 Mreport-fd/src/main/java/com/gyee/wisdom/report/config/MyWebAppConfigurer.java,0\4\04b1051d403c4a7979e82fd7c8aae0e4696cb8ca
 y
-Ireport-fd/src/main/java/com/gyee/wisdom/report/service/ReportService.java,b\9\b94c05c26d92178520da18bf6952c6cd72a6b006
-y
 Ireport-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelClassField.java,0\2\02db87f3ec8d1fb448e01de2acb3948ede87a4b2
 u
 Ereport-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelExport.java,f\0\f096db39f0e74bb327462738fc8e5fb0969419b1
 u
 Ereport-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelImport.java,1\8\183db6323cb8027986a36212631e0d863eef54b0
-s
-Creport-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelUtil.java,5\5\55fc1a57b170a7294343d8bbf922f6461ea35be3
 t
 Dreport-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelUtils.java,2\5\25890f63740b57d540f1f237f96ca07ce53ad820
-r
-Breport-fd/src/main/java/com/gyee/wisdom/report/utils/MD5Utils.java,c\d\cde91cfe0702f14ad2a2d9cd20925b718d98dfee
 y
 Ireport-fd/src/main/java/com/gyee/wisdom/report/utils/ResponseWrapper.java,7\2\72b8cbea5b9a8990d9457bafc97c2f871426b314
 F
@@ -79,11 +69,25 @@ r
 Breport-gf/src/main/java/com/gyee/wisdom/report/utils/MD5Utils.java,0\3\035845cd2df9033fa06eb3e55fb05c5aa049924a
 y
 Ireport-gf/src/main/java/com/gyee/wisdom/report/utils/ResponseWrapper.java,9\c\9c7f25bad215a9c2367a3c1c6578d9cf8a0592c2
-t
-Dreport-fd/src/main/java/com/gyee/wisdom/report/entity/Parameter.java,3\2\326e62f25bbdaf952a6527b8659c82c8d1e3c00d
-{
-Kreport-fd/src/main/java/com/gyee/wisdom/report/entity/WindpowerStation.java,a\c\ac7df921dda2077d74dd8480067b6e053f2bc2bc
 q
 Areport-fd/src/main/java/com/gyee/wisdom/report/common/Common.java,0\f\0f7f23caa1ba0e5faf799053d0e70e3d3f8e49c3
 }
-Mreport-fd/src/main/java/com/gyee/wisdom/report/controller/TestController.java,1\9\19ea878502cdbecca051e7c1a20cec4b871391ff
+Mreport-fd/src/main/java/com/gyee/wisdom/report/controller/TestController.java,1\9\19ea878502cdbecca051e7c1a20cec4b871391ff
+w
+Greport-gf/src/main/java/com/gyee/wisdom/report/config/MyJsonConfig.java,7\b\7b1b957f5076fd09b7a242f65e3d1daf53c633bf
+}
+Mreport-gf/src/main/java/com/gyee/wisdom/report/config/MyWebAppConfigurer.java,e\a\ea16de4edac3e26ecb3ab60025c7d0cfd1e78eb8
+~
+Nreport-gf/src/main/java/com/gyee/wisdom/report/controller/IndexController.java,a\c\ac2e997eee09e3ac932d025cad198cbdf4351528
+}
+Mreport-gf/src/main/java/com/gyee/wisdom/report/controller/TestController.java,e\8\e8107f30f2d2e446d726439d9f889e788f113bc7
+{
+Kreport-gf/src/main/java/com/gyee/wisdom/report/service/SeleniumService.java,8\6\86c4530b941a0eef8192425dc75124d486ff1bc5
+r
+Breport-fd/src/main/java/com/gyee/wisdom/report/utils/MD5Utils.java,c\d\cde91cfe0702f14ad2a2d9cd20925b718d98dfee
+z
+Jreport-fd/src/main/java/com/gyee/wisdom/report/config/sqlite/Database.java,b\c\bc1753bce02e36b24e648a6f2c3c03ad9c6a4080
+t
+Dreport-fd/src/main/java/com/gyee/wisdom/report/entity/Parameter.java,3\2\326e62f25bbdaf952a6527b8659c82c8d1e3c00d
+y
+Ireport-fd/src/main/java/com/gyee/wisdom/report/service/ReportService.java,b\9\b94c05c26d92178520da18bf6952c6cd72a6b006

+ 8 - 1
logs/warn.log

@@ -1 +1,8 @@
-2022-12-12 15:36:33.796  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 09:56:21.131  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 09:59:40.716  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 10:29:16.187  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 10:59:47.536  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 11:01:34.512  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 13:19:53.108  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 13:21:04.677  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2022-12-26 13:22:31.052  WARN main handleDeployment(Bootstrap.java:68) UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used

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


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

@@ -1,40 +0,0 @@
-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
-#   山西新能源miss系统登录密码   AHbl***2020
-password: AHbl***2022

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

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

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

@@ -1,64 +0,0 @@
-<?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
+ 0 - 6
report-fd/build/resources/main/static/bootstrap.min.css


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


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


File diff suppressed because it is too large
+ 0 - 3
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
+ 0 - 45
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
+ 0 - 1
report-fd/build/resources/main/static/laydate/theme/default/laydate.css


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


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


File diff suppressed because it is too large
+ 0 - 1
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
+ 0 - 1
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
+ 0 - 554
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
+ 0 - 5
report-fd/build/resources/main/static/layui-v2.6.8/layui/layui.js


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

@@ -1,102 +0,0 @@
-
-<!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>

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

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

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

@@ -1,256 +0,0 @@
-/*
- * 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;
-}

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

@@ -1,141 +0,0 @@
-<!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>-->
-                    <option value="198sc">宁夏新能源</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>

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


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

@@ -30,6 +30,7 @@ public class CacheService {
         return windpowerStations;
     }
 
+
     public int getSerial(String wname,String areaid){
 
         List<WindpowerStation> windpowerStations = getWindpowerStations();
@@ -66,4 +67,44 @@ public class CacheService {
         }
         return windpowerStationList;
     }
+
+    public int getCount(String departId) {
+
+        int count = 0;
+        try {
+            Connection conn = db.getConnection();
+            String sql = "select count(*) from windpowerstation where areaid = ?";
+            PreparedStatement ps = conn.prepareStatement(sql);
+            ps.setString(1,departId);
+            ResultSet rs = ps.executeQuery();
+            while (rs.next()) {
+                count = rs.getInt(1);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }finally {
+            db.releaseResource();
+        }
+        return count;
+    }
+
+    public String getPassword(String departId) {
+
+        String password = null;
+        try {
+            Connection conn = db.getConnection();
+            String sql = "select * from user where username = ?";
+            PreparedStatement ps = conn.prepareStatement(sql);
+            ps.setString(1,departId);
+            ResultSet rs = ps.executeQuery();
+            while (rs.next()) {
+                password = rs.getString("password");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }finally {
+            db.releaseResource();
+        }
+        return password;
+    }
 }

+ 10 - 2
report-fd/src/main/java/com/gyee/wisdom/report/controller/IndexController.java

@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @Controller
 public class IndexController {
 
-    //miss生产日报
+    //miss风电生产日报
     @RequestMapping("/indexPro")
     public String indexPro()
     {
@@ -22,10 +22,18 @@ public class IndexController {
     }
 
 
-    //miss故障日报
+    //miss风电故障日报
     @RequestMapping("/indexFault")
     public String indexFault()
     {
         return "FaultReport";
     }
+
+
+    //miss光伏生产日报
+    @RequestMapping("/indexPv")
+    public String indexPv()
+    {
+        return "PvProReport";
+    }
 }

+ 25 - 6
report-fd/src/main/java/com/gyee/wisdom/report/controller/ReportController.java

@@ -43,14 +43,14 @@ public class ReportController {
 
 
 
-    @Operation(description = "生产日报报表导入")
+    @Operation(description = "风电生产日报报表导入")
     @PostMapping(value = "/importPro")
     @ResponseBody
-    public ResponseWrapper ImportPro(@RequestParam(value = "file", required = false) MultipartFile file,
+    public ResponseWrapper importPro(@RequestParam(value = "file", required = false) MultipartFile file,
                                            HttpServletRequest request, String departId) throws Exception {
 
         log.info("开始导入");
-        ResponseWrapper<T> wrapper = new ResponseWrapper<T>();
+        ResponseWrapper<T> wrapper = new ResponseWrapper<T>();  
         if (!file.isEmpty()) {
             //得到三个sheet页数据
             Map<Integer, List<String[]>> map = reportService.commonReport(file);
@@ -61,16 +61,16 @@ public class ReportController {
     }
 
 
-    @Operation(description = "故障日报报表导入")
+    @Operation(description = "风电故障日报报表导入")
     @PostMapping(value = "/importFault")
     @ResponseBody
-    public ResponseWrapper ImportFault(@RequestParam(value = "file", required = false) MultipartFile file,
+    public ResponseWrapper importFault(@RequestParam(value = "file", required = false) MultipartFile file,
                                      HttpServletRequest request, String departId) throws Exception {
 
         log.info("开始导入");
         ResponseWrapper<T> wrapper = new ResponseWrapper<T>();
         if (!file.isEmpty()) {
-            //得到三个sheet页数据
+            //得到sheet页数据
             Map<Integer, List<String[]>> map = reportService.commonReport(file);
             seleniumService.faultLoginAndWrite(map,departId);
             wrapper.setMsg("填报成功");
@@ -78,4 +78,23 @@ public class ReportController {
         return wrapper;
     }
 
+
+
+    @Operation(description = "光伏生产日报报表导入")
+    @PostMapping(value = "/importPv")
+    @ResponseBody
+    public ResponseWrapper importPv(@RequestParam(value = "file", required = false) MultipartFile file,
+                                       HttpServletRequest request, String departId) throws Exception {
+
+        log.info("开始导入");
+        ResponseWrapper<T> wrapper = new ResponseWrapper<T>();
+        if (!file.isEmpty()) {
+            //得到sheet页数据
+            Map<Integer, List<String[]>> map = reportService.commonReport(file);
+            seleniumService.pvLoginAndWrite(map,departId);
+            wrapper.setMsg("填报成功");
+        }
+        return wrapper;
+    }
+
 }

+ 20 - 0
report-fd/src/main/java/com/gyee/wisdom/report/entity/User.java

@@ -0,0 +1,20 @@
+package com.gyee.wisdom.report.entity;
+
+import lombok.Data;
+
+/**
+ * @author :xugp
+ * @date :Created in 2022/12/14 10:53
+ * @description:用户表
+ * @modified By:
+ * @version: $
+ */
+@Data
+public class User {
+
+    private int id;
+
+    private String username;
+
+    private String password;
+}

+ 1 - 0
report-fd/src/main/java/com/gyee/wisdom/report/entity/WindpowerStation.java

@@ -27,4 +27,5 @@ public class WindpowerStation {
 
     //场站区域id
     private String areaid;
+
 }

+ 358 - 31
report-fd/src/main/java/com/gyee/wisdom/report/service/SeleniumService.java

@@ -23,22 +23,18 @@ public class SeleniumService {
     @Value("${chromeDriver}")
     String chromeDriver;
 
-    @Value("${password}")
-    String password;
-
     @Autowired
     private CacheService cacheService;
 
     private final static String driver1 = "webdriver.chrome.driver";
-    //本地谷歌浏览器地址  C:\Program Files\Google\Chrome\Application\chromedriver.exe
-    //private final static String chromeDriver = "C:\\Users\\戴尔\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe";
 
     public void loginAndWrite(Map<Integer, List<String[]>> map, String departId) {
         WebDriver webDriver = null;
         try {
             //截取excel行
+            int sum = cacheService.getCount(departId);
             List<String[]> list3 = map.get(2);
-            List<String[]> listExcel = list3.subList(5,list3.size()-1);
+            List<String[]> listExcel = list3.subList(5,sum+5);
             System.out.println("打开浏览器进行操作");
             System.setProperty(driver1,chromeDriver);
             WebDriver driver = new ChromeDriver();
@@ -57,6 +53,7 @@ public class SeleniumService {
             //操作浏览器 获取到输入框
             WebElement kk2 = driver.findElement(By.id("password"));
             //然后向输入框输入selenium java
+            String password = cacheService.getPassword(departId);
             kk2.sendKeys(password);
             Thread.sleep(1000);
             WebElement btn = driver.findElement(By.id("submitBtn"));
@@ -181,7 +178,7 @@ public class SeleniumService {
             WebElement report1_textArea = driver.findElement(By.id("report1_textArea"));
             report1_textArea.clear();
             actions.doubleClick(report1_textArea).sendKeys(strings.get(23)[1]).perform();
-            System.out.println("------------leftData表格数据填写完成------------------");
+            System.out.println("---------------leftData表格数据填写完成------------------");
             // 切出iframe
             driver.switchTo().defaultContent();
             //找到frameRB
@@ -512,8 +509,10 @@ public class SeleniumService {
 
         WebDriver webDriver = null;
         try {
+            //拿到excel数据
+            List<String[]> listFault = map.get(3);
             System.out.println("打开浏览器进行操作");
-            System.setProperty(driver1,chromeDriver);
+            System.setProperty(driver1, chromeDriver);
             WebDriver driver = new ChromeDriver();
             driver.manage().window().maximize();//浏览器最大化
             //超时等待30秒
@@ -530,6 +529,7 @@ public class SeleniumService {
             //操作浏览器 获取到输入框
             WebElement kk2 = driver.findElement(By.id("password"));
             //然后向输入框输入selenium java
+            String password = cacheService.getPassword(departId);
             kk2.sendKeys(password);
             Thread.sleep(1000);
             WebElement btn = driver.findElement(By.id("submitBtn"));
@@ -547,8 +547,6 @@ public class SeleniumService {
             WebElement tree_NodeLabel_P1897 = driver.findElement(By.id("tree_NodeLabel_P1897"));
             tree_NodeLabel_P1897.click();
             Thread.sleep(3000);
-            //拿到excel数据
-            List<String[]> listFault = map.get(3);
             System.out.println("故障日报填写");
             WebElement main = driver.findElement(By.id("mainFrame"));
             driver.switchTo().frame(main);
@@ -556,7 +554,7 @@ public class SeleniumService {
             driver.switchTo().frame(frameRT2);
             //WebElement reports = driver.findElement(By.id("report1"));
 
-            for (int i = 4;i < listFault.size() + 4;i++){
+            for (int i = 4; i < listFault.size() + 4; i++) {
                 //针对下拉框选项,iframe先切出
                 driver.switchTo().defaultContent();
                 WebElement mainFrame5 = driver.findElement(By.id("mainFrame"));
@@ -564,7 +562,7 @@ public class SeleniumService {
                 WebElement frameRT1 = driver.findElement(By.id("frameRT"));
                 driver.switchTo().frame(frameRT1);
                 WebElement for1 = driver.findElement(By.id("report1"));
-                WebElement report1_B = for1.findElement(By.id("report1_B"+i));
+                WebElement report1_B = for1.findElement(By.id("report1_B" + i));
                 report1_B.click();
                 WebElement odiv_0 = driver.findElement(By.id("odiv_0"));
                 driver.switchTo().frame(odiv_0);
@@ -579,16 +577,16 @@ public class SeleniumService {
                 WebElement reports = driver.findElement(By.id("report1"));
 
                 WebElement report1_C = reports.findElement(By.id("report1_C" + i));
-                actions.doubleClick(report1_C).sendKeys(listFault.get(i-4)[1]).perform();
+                actions.doubleClick(report1_C).sendKeys(listFault.get(i - 4)[1]).perform();
 
                 WebElement report1_D = reports.findElement(By.id("report1_D" + i));
-                actions.doubleClick(report1_D).sendKeys(listFault.get(i-4)[2]).perform();
+                actions.doubleClick(report1_D).sendKeys(listFault.get(i - 4)[2]).perform();
 
                 WebElement report1_E = reports.findElement(By.id("report1_E" + i));
-                actions.doubleClick(report1_E).sendKeys(listFault.get(i-4)[3]).perform();
+                actions.doubleClick(report1_E).sendKeys(listFault.get(i - 4)[3]).perform();
 
                 WebElement report1_F = reports.findElement(By.id("report1_F" + i));
-                actions.doubleClick(report1_F).sendKeys(listFault.get(i-4)[4]).perform();
+                actions.doubleClick(report1_F).sendKeys(listFault.get(i - 4)[4]).perform();
 
                 //针对下拉框选项,iframe先切出
                 driver.switchTo().defaultContent();
@@ -597,7 +595,7 @@ public class SeleniumService {
                 WebElement frameRT10 = driver.findElement(By.id("frameRT"));
                 driver.switchTo().frame(frameRT10);
                 WebElement for10 = driver.findElement(By.id("report1"));
-                WebElement report1_G = for10.findElement(By.id("report1_G"+i));
+                WebElement report1_G = for10.findElement(By.id("report1_G" + i));
                 report1_G.click();
                 WebElement odiv_0_2 = driver.findElement(By.id("odiv_0"));
                 driver.switchTo().frame(odiv_0_2);
@@ -611,7 +609,7 @@ public class SeleniumService {
                 driver.switchTo().frame(frameRT11);
                 WebElement report11 = driver.findElement(By.id("report1"));
 
-                if (!listFault.get(i-4)[6].isEmpty()){
+                if (!listFault.get(i - 4)[6].isEmpty()) {
                     WebElement report1_H = report11.findElement(By.id("report1_H" + i));
                     report1_H.click();
                     //日期控件
@@ -620,15 +618,15 @@ public class SeleniumService {
                     //设置年
                     WebElement year1 = driver.findElement(By.xpath("//html/body/table/tbody/tr[1]/td/table/tbody/tr/td[2]/input"));
                     year1.clear();
-                    year1.sendKeys(listFault.get(i-4)[6].substring(0,4));
+                    year1.sendKeys(listFault.get(i - 4)[6].substring(0, 4));
                     //设置时
                     WebElement hour = driver.findElement(By.xpath("//html/body/table/tbody/tr[4]/td/div/table/tbody/tr/td[3]/input"));
                     hour.clear();
-                    hour.sendKeys(listFault.get(i-4)[6].substring(11,13));
+                    hour.sendKeys(listFault.get(i - 4)[6].substring(11, 13));
                     //设置分
                     WebElement minute = driver.findElement(By.xpath("//html/body/table/tbody/tr[4]/td/div/table/tbody/tr/td[6]/input"));
                     minute.clear();
-                    minute.sendKeys(listFault.get(i-4)[6].substring(14,16));
+                    minute.sendKeys(listFault.get(i - 4)[6].substring(14, 16));
                     //设置秒
                     WebElement second = driver.findElement(By.xpath("/html/body/table/tbody/tr[4]/td/div/table/tbody/tr/td[9]/input"));
                     second.clear();
@@ -638,10 +636,10 @@ public class SeleniumService {
                     month.click();
                     WebElement key = driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td/table/tbody/tr/td[6]/select"));
                     Select select = new Select(key);
-                    select.selectByValue(listFault.get(i-4)[6].substring(5,7));
-                    String day = listFault.get(i-4)[6].substring(8,10);
+                    select.selectByValue(listFault.get(i - 4)[6].substring(5, 7));
+                    String day = listFault.get(i - 4)[6].substring(8, 10);
                     int day1 = Integer.parseInt(day) + 1;
-                    WebElement key1 = driver.findElement(By.id("runqianDay"+ day1));
+                    WebElement key1 = driver.findElement(By.id("runqianDay" + day1));
                     key1.click();
                 }
 
@@ -652,7 +650,7 @@ public class SeleniumService {
                 driver.switchTo().frame(frameRT12);
                 WebElement report12 = driver.findElement(By.id("report1"));
 
-                if (!listFault.get(i-4)[7].isEmpty()){
+                if (!listFault.get(i - 4)[7].isEmpty()) {
                     WebElement report1_H = report12.findElement(By.id("report1_I" + i));
                     report1_H.click();
                     //日期控件
@@ -661,15 +659,15 @@ public class SeleniumService {
                     //设置年
                     WebElement year1 = driver.findElement(By.xpath("//html/body/table/tbody/tr[1]/td/table/tbody/tr/td[2]/input"));
                     year1.clear();
-                    year1.sendKeys(listFault.get(i-4)[7].substring(0,4));
+                    year1.sendKeys(listFault.get(i - 4)[7].substring(0, 4));
                     //设置时
                     WebElement hour = driver.findElement(By.xpath("//html/body/table/tbody/tr[4]/td/div/table/tbody/tr/td[3]/input"));
                     hour.clear();
-                    hour.sendKeys(listFault.get(i-4)[7].substring(11,13));
+                    hour.sendKeys(listFault.get(i - 4)[7].substring(11, 13));
                     //设置分
                     WebElement minute = driver.findElement(By.xpath("//html/body/table/tbody/tr[4]/td/div/table/tbody/tr/td[6]/input"));
                     minute.clear();
-                    minute.sendKeys(listFault.get(i-4)[7].substring(14,16));
+                    minute.sendKeys(listFault.get(i - 4)[7].substring(14, 16));
                     //设置秒
                     WebElement second = driver.findElement(By.xpath("/html/body/table/tbody/tr[4]/td/div/table/tbody/tr/td[9]/input"));
                     second.clear();
@@ -679,10 +677,10 @@ public class SeleniumService {
                     month.click();
                     WebElement key = driver.findElement(By.xpath("/html/body/table/tbody/tr[1]/td/table/tbody/tr/td[6]/select"));
                     Select select = new Select(key);
-                    select.selectByValue(listFault.get(i-4)[7].substring(5,7));
-                    String day = listFault.get(i-4)[7].substring(8,10);
+                    select.selectByValue(listFault.get(i - 4)[7].substring(5, 7));
+                    String day = listFault.get(i - 4)[7].substring(8, 10);
                     int day1 = Integer.parseInt(day) + 1;
-                    WebElement key1 = driver.findElement(By.id("runqianDay"+ day1));
+                    WebElement key1 = driver.findElement(By.id("runqianDay" + day1));
                     key1.click();
 
                     // 切出iframe
@@ -697,5 +695,334 @@ public class SeleniumService {
                 webDriver.quit();
             }
         }
+
+    }
+
+    public void pvLoginAndWrite(Map<Integer, List<String[]>> map, String departId) {
+
+        WebDriver webDriver = null;
+        try {
+            List<String[]> strings = map.get(1);
+            strings.remove(0);
+            //截取excel行
+            int sum = cacheService.getCount(departId);
+            List<String[]> list3 = map.get(2);
+            List<String[]> listExcel = list3.subList(6,sum+6);
+            System.out.println("打开浏览器进行操作");
+            System.setProperty(driver1,chromeDriver);
+            WebDriver driver = new ChromeDriver();
+            driver.manage().window().maximize();//浏览器最大化
+            //超时等待30秒
+            Duration duration = Duration.ofSeconds(30);
+            driver.manage().timeouts().implicitlyWait(duration);
+            //跳转到浏览器
+            driver.get("http://10.65.17.158:7001/Liems/");
+            Thread.sleep(2000);
+            //操作浏览器 获取到输入框
+            WebElement kk = driver.findElement(By.id("userName"));
+            //然后向输入框输入selenium java
+            kk.sendKeys(departId);
+            Thread.sleep(1000);
+            //操作浏览器 获取到输入框
+            WebElement kk2 = driver.findElement(By.id("password"));
+            //然后向输入框输入selenium java
+            String password = cacheService.getPassword(departId);
+            kk2.sendKeys(password);
+            Thread.sleep(1000);
+            WebElement btn = driver.findElement(By.id("submitBtn"));
+            //对按钮进行点击操作
+            btn.click();
+            Thread.sleep(1000);
+            Actions actions = new Actions(driver);
+            WebElement btn2 = driver.findElement(By.id("topMenuDiv_0_-01100001602"));
+            btn2.click();
+            Thread.sleep(2000);
+            WebElement btn3 = driver.findElement(By.id("tree_NodeLabel_M261"));
+            btn3.click();
+            Thread.sleep(2000);
+            WebElement btn4 = driver.findElement(By.id("tree_NodeLabel_P1627"));
+            btn4.click();
+            Thread.sleep(10000);
+
+
+            //填写frameL表格数据
+            System.out.println("开始填写Left数据");
+            WebElement mainFrame2 = driver.findElement(By.id("mainFrame"));
+            driver.switchTo().frame(mainFrame2);
+            WebElement frameL = driver.findElement(By.id("frameL"));
+            driver.switchTo().frame(frameL);
+            WebElement report2 = driver.findElement(By.id("report1"));
+            System.out.println("取excel的Left数据");
+
+            WebElement report1_D5 = report2.findElement(By.id("report1_D5"));
+            actions.doubleClick(report1_D5).sendKeys(strings.get(2)[1]).perform();
+
+            WebElement report1_D6 = report2.findElement(By.id("report1_D6"));
+            actions.doubleClick(report1_D6).sendKeys(strings.get(3)[1]).perform();
+
+            WebElement report1_D11 = report2.findElement(By.id("report1_D11"));
+            actions.doubleClick(report1_D11).sendKeys(strings.get(4)[1]).perform();
+
+            WebElement report1_D24 = report2.findElement(By.id("report1_D24"));
+            actions.doubleClick(report1_D24).sendKeys(strings.get(5)[1]).perform();
+
+            /*WebElement report1_D25 = report2.findElement(By.id("report1_D25"));
+            actions.doubleClick(report1_D25).sendKeys(strings.get(6)[1]).perform();*/
+
+            WebElement report1_D26 = report2.findElement(By.id("report1_D26"));
+            actions.doubleClick(report1_D26).sendKeys(strings.get(6)[1]).perform();
+
+            WebElement report1_D28 = report2.findElement(By.id("report1_D28"));
+            actions.doubleClick(report1_D28).sendKeys(strings.get(7)[1]).perform();
+
+            WebElement report1_D29 = report2.findElement(By.id("report1_D29"));
+            actions.doubleClick(report1_D29).sendKeys(strings.get(8)[1]).perform();
+
+//            WebElement report1_D35 = report2.findElement(By.id("report1_D35"));
+//            actions.doubleClick(report1_D35).sendKeys(strings.get(12)[1]).perform();
+
+            WebElement report1_D36 = report2.findElement(By.id("report1_D36"));
+            report1_D36.click();
+            WebElement report1_editBox = driver.findElement(By.id("report1_editBox"));
+            report1_editBox.clear();
+            System.out.println(strings.get(11)[1]);
+            report1_editBox.sendKeys(strings.get(11)[1]);
+
+            WebElement report1_D43 = report2.findElement(By.id("report1_D43"));
+            report1_D43.click();
+            WebElement report1_editBox5 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox5.clear();
+            report1_editBox5.sendKeys(strings.get(12)[1]);
+
+            WebElement report1_D44 = report2.findElement(By.id("report1_D44"));
+            report1_D44.click();
+            WebElement report1_editBox4 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox4.clear();
+            report1_editBox4.sendKeys(strings.get(13)[1]);
+
+            WebElement report1_D45 = report2.findElement(By.id("report1_D45"));
+            actions.doubleClick(report1_D45).sendKeys(strings.get(14)[1]).perform();
+
+            WebElement report1_D46 = report2.findElement(By.id("report1_D46"));
+            actions.doubleClick(report1_D46).sendKeys(strings.get(15)[1]).perform();
+
+            WebElement report1_D48 = report2.findElement(By.id("report1_D48"));
+            report1_D48.click();
+            WebElement report1_editBox6 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox6.clear();
+            report1_editBox6.sendKeys(strings.get(16)[1]);
+            actions.doubleClick(report1_D48).sendKeys(strings.get(16)[1]).perform();
+
+            WebElement report1_D52 = report2.findElement(By.id("report1_D52"));
+            report1_D52.click();
+            WebElement report1_editBox2 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox2.clear();
+            report1_editBox2.sendKeys(strings.get(17)[1]);
+
+            WebElement report1_D56 = report2.findElement(By.id("report1_D56"));
+            report1_D56.click();
+            WebElement report1_editBox7 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox7.clear();
+            report1_editBox7.sendKeys(strings.get(18)[1]);
+
+            /*WebElement report1_D57 = report2.findElement(By.id("report1_D57"));
+            report1_D57.click();
+            WebElement report1_editBox3 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox3.clear();
+            report1_editBox3.sendKeys(strings.get(21)[1]);*/
+
+            WebElement report1_D63 = report2.findElement(By.id("report1_D63"));
+            report1_D63.click();
+            WebElement report1_editBox8 = driver.findElement(By.id("report1_editBox"));
+            report1_editBox8.clear();
+            report1_editBox8.sendKeys(strings.get(19)[1]);
+
+            WebElement report1_D79 = report2.findElement(By.id("report1_D79"));
+            report1_D79.click();
+            WebElement report1_textArea = driver.findElement(By.id("report1_textArea"));
+            report1_textArea.clear();
+            actions.doubleClick(report1_textArea).sendKeys(strings.get(20)[1]).perform();
+            System.out.println("---------------leftData表格数据填写完成------------------");
+            // 切出iframe
+            driver.switchTo().defaultContent();
+            //找到frameRB
+            WebElement mainFrame = driver.findElement(By.id("mainFrame"));
+            driver.switchTo().frame(mainFrame);
+            WebElement frameRT = driver.findElement(By.id("frameRT"));
+            driver.switchTo().frame(frameRT);
+            WebElement report4 = driver.findElement(By.id("report1"));
+
+            //DataRT表格数据填写
+            System.out.println("DataRT表格数据填写");
+            for (int i = 4;i < listExcel.size() + 4;i++){
+                WebElement report1_H = report4.findElement(By.id("report1_H"+i));
+                actions.doubleClick(report1_H).sendKeys(listExcel.get(i-4)[6]).perform();
+
+                WebElement report1_I = report4.findElement(By.id("report1_I"+i));
+                actions.doubleClick(report1_I).sendKeys(listExcel.get(i-4)[7]).perform();
+
+                // 切出iframe
+                driver.switchTo().defaultContent();
+                WebElement mainFrame5 = driver.findElement(By.id("mainFrame"));
+                driver.switchTo().frame(mainFrame5);
+                WebElement frameRT1 = driver.findElement(By.id("frameRT"));
+                driver.switchTo().frame(frameRT1);
+                WebElement for1 = driver.findElement(By.id("report1"));
+                WebElement report1_K = for1.findElement(By.id("report1_K"+i));
+                report1_K.click();
+                WebElement odiv_0 = driver.findElement(By.id("odiv_0"));
+                driver.switchTo().frame(odiv_0);
+                int dataictonary = dataictonary(listExcel.get(i - 4)[9]);
+                WebElement div1 = driver.findElement(By.xpath("//html/body/div[1]/table/tbody/tr[" + dataictonary + "]"));
+                actions.moveToElement(div1).click().perform();
+                // 切出iframe
+                driver.switchTo().defaultContent();
+                WebElement mainFrame6 = driver.findElement(By.id("mainFrame"));
+                driver.switchTo().frame(mainFrame6);
+                WebElement frameRT6 = driver.findElement(By.id("frameRT"));
+                driver.switchTo().frame(frameRT6);
+                WebElement report3 = driver.findElement(By.id("report1"));
+
+                WebElement report1_O = report3.findElement(By.id("report1_O"+i));
+                actions.doubleClick(report1_O).sendKeys(listExcel.get(i-4)[11]).perform();
+
+                WebElement report1_R = report3.findElement(By.id("report1_R"+i));
+                actions.doubleClick(report1_R).sendKeys(listExcel.get(i-4)[14]).perform();
+
+                WebElement report1_S = report3.findElement(By.id("report1_S"+i));
+                actions.doubleClick(report1_S).sendKeys(listExcel.get(i-4)[15]).perform();
+
+                WebElement report1_T = report3.findElement(By.id("report1_T"+i));
+                actions.doubleClick(report1_T).sendKeys(listExcel.get(i-4)[16]).perform();
+
+                WebElement report1_U = report3.findElement(By.id("report1_U"+i));
+                actions.doubleClick(report1_U).sendKeys(listExcel.get(i-4)[17]).perform();
+
+                WebElement report1_V = report3.findElement(By.id("report1_V"+i));
+                actions.doubleClick(report1_V).sendKeys(listExcel.get(i-4)[18]).perform();
+
+                WebElement report1_W = report3.findElement(By.id("report1_W"+i));
+                actions.doubleClick(report1_W).sendKeys(listExcel.get(i-4)[19]).perform();
+
+                WebElement report1_AG = report3.findElement(By.id("report1_AG"+i));
+                actions.doubleClick(report1_AG).sendKeys(listExcel.get(i-4)[26]).perform();
+
+                WebElement report1_AJ = report3.findElement(By.id("report1_AJ"+i));
+                actions.doubleClick(report1_AJ).sendKeys(listExcel.get(i-4)[27]).perform();
+
+                WebElement report1_AK = report3.findElement(By.id("report1_AK"+i));
+                actions.doubleClick(report1_AK).sendKeys(listExcel.get(i-4)[28]).perform();
+
+                WebElement report1_AR = report3.findElement(By.id("report1_AR"+i));
+                actions.doubleClick(report1_AR).sendKeys(listExcel.get(i-4)[33]).perform();
+
+                WebElement report1_AU = report3.findElement(By.id("report1_AU"+i));
+                actions.doubleClick(report1_AU).sendKeys(listExcel.get(i-4)[36]).perform();
+
+                WebElement report1_AV = report3.findElement(By.id("report1_AV"+i));
+                actions.doubleClick(report1_AV).sendKeys(listExcel.get(i-4)[37]).perform();
+
+//                WebElement report1_AY = report3.findElement(By.id("report1_AY"+i));
+//                actions.doubleClick(report1_AY).sendKeys(listExcel.get(i-4)[38]).perform();
+
+                WebElement report1_BB = report3.findElement(By.id("report1_BB"+i));
+                actions.doubleClick(report1_BB).sendKeys(listExcel.get(i-4)[39]).perform();
+
+                WebElement report1_BC = report3.findElement(By.id("report1_BC"+i));
+                actions.doubleClick(report1_BC).sendKeys(listExcel.get(i-4)[40]).perform();
+
+                WebElement report1_BE = report3.findElement(By.id("report1_BE"+i));
+                actions.doubleClick(report1_BE).sendKeys(listExcel.get(i-4)[42]).perform();
+
+                WebElement report1_BF = report3.findElement(By.id("report1_BF"+i));
+                actions.doubleClick(report1_BF).sendKeys(listExcel.get(i-4)[43]).perform();
+
+                WebElement report1_BH = report3.findElement(By.id("report1_BH"+i));
+                actions.doubleClick(report1_BH).sendKeys(listExcel.get(i-4)[44]).perform();
+
+                /*WebElement report1_BG = report3.findElement(By.id("report1_BG"+i));
+                actions.doubleClick(report1_BG).sendKeys(listExcel.get(i-4)[46]).perform();*/
+
+                WebElement report1_BI = report3.findElement(By.id("report1_BI"+i));
+                actions.doubleClick(report1_BI).sendKeys(listExcel.get(i-4)[45]).perform();
+
+                WebElement report1_BM = report3.findElement(By.id("report1_BM"+i));
+                actions.doubleClick(report1_BM).sendKeys(listExcel.get(i-4)[47]).perform();
+
+                WebElement report1_BN = report3.findElement(By.id("report1_BN"+i));
+                actions.doubleClick(report1_BN).sendKeys(listExcel.get(i-4)[48]).perform();
+
+                WebElement report1_BO = report3.findElement(By.id("report1_BO"+i));
+                actions.doubleClick(report1_BO).sendKeys(listExcel.get(i-4)[49]).perform();
+
+                WebElement report1_BQ = report3.findElement(By.id("report1_BQ"+i));
+                actions.doubleClick(report1_BQ).sendKeys(listExcel.get(i-4)[51]).perform();
+
+                WebElement report1_BR = report3.findElement(By.id("report1_BR"+i));
+                actions.doubleClick(report1_BR).sendKeys(listExcel.get(i-4)[52]).perform();
+
+                WebElement report1_BU = report3.findElement(By.id("report1_BU"+i));
+                actions.doubleClick(report1_BU).sendKeys(listExcel.get(i-4)[55]).perform();
+
+                WebElement report1_BV = report3.findElement(By.id("report1_BV"+i));
+                actions.doubleClick(report1_BV).sendKeys(listExcel.get(i-4)[56]).perform();
+
+                WebElement report1_BW = report3.findElement(By.id("report1_BW"+i));
+                actions.doubleClick(report1_BW).sendKeys(listExcel.get(i-4)[57]).perform();
+
+                WebElement report1_CA = report3.findElement(By.id("report1_CA"+i));
+                actions.doubleClick(report1_CA).sendKeys(listExcel.get(i-4)[61]).perform();
+
+                WebElement report1_CB = report3.findElement(By.id("report1_CB"+i));
+                actions.doubleClick(report1_CB).sendKeys(listExcel.get(i-4)[62]).perform();
+
+                WebElement report1_CC = report3.findElement(By.id("report1_CC"+i));
+                actions.doubleClick(report1_CC).sendKeys(listExcel.get(i-4)[63]).perform();
+
+                WebElement report1_CD = report3.findElement(By.id("report1_CD"+i));
+                actions.doubleClick(report1_CD).sendKeys(listExcel.get(i-4)[64]).perform();
+
+                WebElement report1_CE = report3.findElement(By.id("report1_CE"+i));
+                actions.doubleClick(report1_CE).sendKeys(listExcel.get(i-4)[65]).perform();
+
+                WebElement report1_CF = report3.findElement(By.id("report1_CF"+i));
+                actions.doubleClick(report1_CF).sendKeys(listExcel.get(i-4)[66]).perform();
+
+                WebElement report1_CP = report3.findElement(By.id("report1_CP"+i));
+                actions.doubleClick(report1_CP).sendKeys(listExcel.get(i-4)[67]).perform();
+            }
+            // 切出iframe
+            driver.switchTo().defaultContent();
+            //填写frameRB表格数据
+            System.out.println("开始填写RB数据");
+            WebElement mainFrame3 = driver.findElement(By.id("mainFrame"));
+            driver.switchTo().frame(mainFrame3);
+            WebElement frameRB = driver.findElement(By.id("frameRB"));
+            driver.switchTo().frame(frameRB);
+            WebElement report1 = driver.findElement(By.id("report1"));
+            //取第一个表数据
+            List<String[]> list = map.get(0);
+            List<String[]> listMap0 = list.stream().skip(2).collect(Collectors.toList());
+            System.out.println("取excel的RB数据");
+            for (int j = 4; j < listMap0.size() + 4;j++) {
+                WebElement c = report1.findElement(By.id("report1_C" + j));
+                actions.doubleClick(c).sendKeys(listMap0.get(j - 4)[1]).perform();
+                WebElement d = report1.findElement(By.id("report1_D" + j));
+                actions.doubleClick(d).sendKeys(listMap0.get(j - 4)[2]).perform();
+                WebElement e = report1.findElement(By.id("report1_E" + j));
+                actions.doubleClick(e).sendKeys(listMap0.get(j - 4)[3]).perform();
+                WebElement f = report1.findElement(By.id("report1_F" + j));
+                actions.doubleClick(f).sendKeys(listMap0.get(j - 4)[4]).perform();
+            }
+            // 切出iframe
+            driver.switchTo().defaultContent();
+            //todo: 后续添加点击日报保存按钮
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (webDriver != null) {
+                webDriver.quit();
+            }
+        }
     }
 }

+ 17 - 10
report-fd/src/main/java/com/gyee/wisdom/report/utils/ExcelUtil.java

@@ -1,15 +1,16 @@
 package com.gyee.wisdom.report.utils;
 import org.apache.poi.hssf.usermodel.*;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.NumberFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -113,7 +114,8 @@ public class ExcelUtil {
         Map<Integer, List<String[]>> map = new HashMap<>();
 
         Workbook wb = readExcel(fileType, is);
-        for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
+        FormulaEvaluator formulaEvaluator = wb.getCreationHelper().createFormulaEvaluator();
+        for (int sheetIndex = 0; sheetIndex < 4; sheetIndex++) {
             List<String[]> list = new ArrayList<>();
             Sheet sheet = wb.getSheetAt(sheetIndex);
 
@@ -161,12 +163,17 @@ public class ExcelUtil {
                                 }
                                 break;
                             case HSSFCell.CELL_TYPE_FORMULA:
-                                // 导入时如果为公式生成的数据则无值
-                                if (!cell.getStringCellValue().equals("")) {
-                                    value = cell.getStringCellValue();
-                                } else {
-                                    value = cell.getNumericCellValue() + "";
+                                NumberFormat numberFormat = NumberFormat.getNumberInstance();
+                                double numericCellValue = cell.getNumericCellValue();
+                                String s1 = numberFormat.format(numericCellValue);
+                                boolean contains = s1.contains(".");
+                                if (contains){
+                                    Double aDouble = Double.valueOf(s1);
+                                    value = String.format("%.2f",aDouble);
+                                }else {
+                                    value = s1;
                                 }
+                                System.out.println(value);
                                 break;
                             case HSSFCell.CELL_TYPE_BLANK:
                                 break;

+ 0 - 1
report-fd/src/main/resources/application.yaml

@@ -37,4 +37,3 @@ logging:
 chromeDriver: C:\Users\戴尔\AppData\Local\Google\Chrome\Application\chromedriver.exe
 #   宁夏新能源miss系统登录密码   AHbl***2022
 #   山西新能源miss系统登录密码   AHbl***2020
-password: AHbl***2022

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


+ 14 - 4
report-fd/src/main/resources/templates/FaultReport.html

@@ -12,10 +12,20 @@
 
 <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>
-
+    <li class="layui-nav-item">
+        <a href="javascript:;">风电</a>
+        <dl class="layui-nav-child">
+            <dd><a href="http://localhost:8090/indexPro">生产日报</a></dd>
+            <dd><a href="http://localhost:8090/indexFault">故障日报</a></dd>
+        </dl>
+    </li>
+    <li class="layui-nav-item"></li>
+    <li class="layui-nav-item">
+        <a href="javascript:;">光伏</a>
+        <dl class="layui-nav-child">
+            <dd><a href="http://localhost:8090/indexPv">生产日报</a></dd>
+        </dl>
+    </li>
 </ul>
 <div class="layui-form-item" style="height: 30px"></div>
 <form id="uploadForm" enctype="multipart/form-data" class="layui-form" >

+ 31 - 14
report-fd/build/resources/main/templates/productionReport.html

@@ -12,10 +12,20 @@
 
 <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>
-
+    <li class="layui-nav-item">
+        <a href="javascript:;">风电</a>
+        <dl class="layui-nav-child">
+            <dd><a href="http://localhost:8090/indexPro">生产日报</a></dd>
+            <dd><a href="http://localhost:8090/indexFault">故障日报</a></dd>
+        </dl>
+    </li>
+    <li class="layui-nav-item"></li>
+    <li class="layui-nav-item">
+        <a href="javascript:;">光伏</a>
+        <dl class="layui-nav-child">
+            <dd><a href="http://localhost:8090/indexPv">生产日报</a></dd>
+        </dl>
+    </li>
 </ul>
 <div class="layui-form-item" style="height: 30px"></div>
 <form id="uploadForm" enctype="multipart/form-data" class="layui-form" >
@@ -25,13 +35,19 @@
         <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="198sc">宁夏新能源</option>
+                <select name="interest" lay-filter="aihao" id = "departId">
+<!--                    <option value="185SC">山西</option>-->
+<!--                    <option value="131SC">太旗</option>-->
+                    <option value="317sc">海子井光伏</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">
@@ -52,14 +68,13 @@
 <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">
+<script>
 
-    layui.use('form', function(){
+    layui.use(['layer','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对象
@@ -69,10 +84,11 @@
                 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/importPro",
+                url: "http://localhost:8090/report/importPv",
                 data: formdata,
                 cache: false,
                 processData: false,
@@ -84,10 +100,11 @@
                 error:function (data){
                     layer.msg("程序error",{icon: 5})
                     location.reload();
-                },
-            })
+                }
         });
+
     });
+        })
 
 </script>
 </body>

+ 14 - 4
report-fd/src/main/resources/templates/productionReport.html

@@ -12,10 +12,20 @@
 
 <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>
-
+    <li class="layui-nav-item">
+        <a href="javascript:;">风电</a>
+        <dl class="layui-nav-child">
+            <dd><a href="http://localhost:8090/indexPro">生产日报</a></dd>
+            <dd><a href="http://localhost:8090/indexFault">故障日报</a></dd>
+        </dl>
+    </li>
+    <li class="layui-nav-item"></li>
+    <li class="layui-nav-item">
+        <a href="javascript:;">光伏</a>
+        <dl class="layui-nav-child">
+            <dd><a href="http://localhost:8090/indexPv">生产日报</a></dd>
+        </dl>
+    </li>
 </ul>
 <div class="layui-form-item" style="height: 30px"></div>
 <form id="uploadForm" enctype="multipart/form-data" class="layui-form" >