Переглянути джерело

Initial commit to new repository

Memory_LG 5 місяців тому
батько
коміт
ab75b47abc
100 змінених файлів з 15943 додано та 604 видалено
  1. 7 0
      .idea/MarsCodeWorkspaceAppSettings.xml
  2. 13 0
      .idea/compiler.xml
  3. 7 0
      .idea/encodings.xml
  4. 30 0
      .idea/jarRepositories.xml
  5. 12 0
      .idea/misc.xml
  6. 1 1
      .idea/vcs.xml
  7. 246 0
      .idea/workspace.xml
  8. 44 0
      data-ui/src/api/data/digitalwaterconservancy/analysis.js
  9. 44 0
      data-ui/src/api/data/digitalwaterconservancy/announcePlacard.js
  10. 44 0
      data-ui/src/api/data/digitalwaterconservancy/comparison.js
  11. 44 0
      data-ui/src/api/data/digitalwaterconservancy/device.js
  12. 44 0
      data-ui/src/api/data/digitalwaterconservancy/dike.js
  13. 44 0
      data-ui/src/api/data/digitalwaterconservancy/management.js
  14. 44 0
      data-ui/src/api/data/digitalwaterconservancy/ranking.js
  15. 44 0
      data-ui/src/api/data/digitalwaterconservancy/reservoirManagement.js
  16. 53 0
      data-ui/src/api/data/digitalwaterconservancy/riverLength.js
  17. 44 0
      data-ui/src/api/data/digitalwaterconservancy/riverMonitoring.js
  18. 53 0
      data-ui/src/api/data/digitalwaterconservancy/riverStrategy.js
  19. 44 0
      data-ui/src/api/data/digitalwaterconservancy/site.js
  20. 44 0
      data-ui/src/api/data/digitalwaterconservancy/station.js
  21. 44 0
      data-ui/src/api/data/digitalwaterconservancy/statistics.js
  22. 44 0
      data-ui/src/api/data/digitalwaterconservancy/summary.js
  23. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterConservancy.js
  24. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterConservation.js
  25. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterGeneralInfo.js
  26. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterIncidentManage.js
  27. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterInspectionTrouble.js
  28. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterSaving.js
  29. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterSource.js
  30. 44 0
      data-ui/src/api/data/digitalwaterconservancy/waterTotalResourcesTwoYears.js
  31. 314 0
      data-ui/src/views/data/digitalwaterconservancy/announcePlacard/index.vue
  32. 542 0
      data-ui/src/views/data/digitalwaterconservancy/dike/index.vue
  33. 321 0
      data-ui/src/views/data/digitalwaterconservancy/rainAnalysis/index.vue
  34. 369 0
      data-ui/src/views/data/digitalwaterconservancy/rainfallComparison/index.vue
  35. 634 0
      data-ui/src/views/data/digitalwaterconservancy/reservoirManagement/index.vue
  36. 526 0
      data-ui/src/views/data/digitalwaterconservancy/riverLength/index.vue
  37. 533 0
      data-ui/src/views/data/digitalwaterconservancy/riverMonitoring/index.vue
  38. 336 0
      data-ui/src/views/data/digitalwaterconservancy/riverStrategy/index.vue
  39. 530 0
      data-ui/src/views/data/digitalwaterconservancy/station/index.vue
  40. 294 0
      data-ui/src/views/data/digitalwaterconservancy/summary/index.vue
  41. 503 0
      data-ui/src/views/data/digitalwaterconservancy/waterConservancy/index.vue
  42. 404 0
      data-ui/src/views/data/digitalwaterconservancy/waterConservation/index.vue
  43. 348 0
      data-ui/src/views/data/digitalwaterconservancy/waterGeneralInfo/index.vue
  44. 294 0
      data-ui/src/views/data/digitalwaterconservancy/waterIncidentManage/index.vue
  45. 312 0
      data-ui/src/views/data/digitalwaterconservancy/waterInspectionTrouble/index.vue
  46. 324 0
      data-ui/src/views/data/digitalwaterconservancy/waterOverLevelSite/index.vue
  47. 447 0
      data-ui/src/views/data/digitalwaterconservancy/waterQualityDevice/index.vue
  48. 286 0
      data-ui/src/views/data/digitalwaterconservancy/waterReportRanking/index.vue
  49. 366 0
      data-ui/src/views/data/digitalwaterconservancy/waterSaving/index.vue
  50. 356 0
      data-ui/src/views/data/digitalwaterconservancy/waterSiteStatistics/index.vue
  51. 419 0
      data-ui/src/views/data/digitalwaterconservancy/waterSource/index.vue
  52. 314 0
      data-ui/src/views/data/digitalwaterconservancy/waterTotalResourcesTwoYears/index.vue
  53. 361 0
      data-ui/src/views/data/digitalwaterconservancy/waterresource/index.vue
  54. 0 386
      logs/center-comprehensive/info.2024-01-22.log
  55. 0 217
      logs/center-data/info.2024-01-22.log
  56. 99 0
      src/main/java/com/sooka/sponest/data/digitaluav/controller/CenterdataTUavController.java
  57. 84 0
      src/main/java/com/sooka/sponest/data/digitaluav/controller/CenterdataTUavdeptController.java
  58. 186 0
      src/main/java/com/sooka/sponest/data/digitaluav/domain/CenterdataTUav.java
  59. 46 0
      src/main/java/com/sooka/sponest/data/digitaluav/domain/CenterdataTUavdept.java
  60. 70 0
      src/main/java/com/sooka/sponest/data/digitaluav/mapper/CenterdataTUavMapper.java
  61. 62 0
      src/main/java/com/sooka/sponest/data/digitaluav/mapper/CenterdataTUavdeptMapper.java
  62. 68 0
      src/main/java/com/sooka/sponest/data/digitaluav/service/ICenterdataTUavService.java
  63. 62 0
      src/main/java/com/sooka/sponest/data/digitaluav/service/ICenterdataTUavdeptService.java
  64. 99 0
      src/main/java/com/sooka/sponest/data/digitaluav/service/impl/CenterdataTUavServiceImpl.java
  65. 91 0
      src/main/java/com/sooka/sponest/data/digitaluav/service/impl/CenterdataTUavdeptServiceImpl.java
  66. 91 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterAnnouncePlacardController.java
  67. 99 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterConservancyProjectController.java
  68. 86 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterDikeController.java
  69. 99 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterGeneralInfoController.java
  70. 99 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterIncidentManageController.java
  71. 99 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterInspectionTroubleController.java
  72. 85 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterOverLevelSiteController.java
  73. 91 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterProjectSummaryController.java
  74. 95 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterQualityDeviceController.java
  75. 85 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainAnalysisController.java
  76. 85 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainfallComparisonController.java
  77. 93 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainfallStationController.java
  78. 86 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterReportRankingController.java
  79. 99 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterReservoirManagementController.java
  80. 91 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterResourceManagementController.java
  81. 100 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverLengthManageController.java
  82. 93 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverMonitoringStationController.java
  83. 91 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverStrategyController.java
  84. 105 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSavingController.java
  85. 85 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSiteStatisticsController.java
  86. 105 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSoilConservationController.java
  87. 110 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSourceController.java
  88. 105 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterTotalResourcesTwoYearsController.java
  89. 507 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterViewController.java
  90. 101 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterAnnouncePlacard.java
  91. 337 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterConservancyProject.java
  92. 388 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterDike.java
  93. 161 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterGeneralInfo.java
  94. 101 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterIncidentManage.java
  95. 101 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterInspectionTrouble.java
  96. 160 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterOverLevelSite.java
  97. 87 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterProjectSummary.java
  98. 336 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterQualityDevice.java
  99. 141 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainAnalysis.java
  100. 0 0
      src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainfallComparison.java

+ 7 - 0
.idea/MarsCodeWorkspaceAppSettings.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
+    <option name="ckgOperationStatus" value="SUCCESS" />
+    <option name="progress" value="0.9964355" />
+  </component>
+</project>

+ 13 - 0
.idea/compiler.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="center-data" />
+      </profile>
+    </annotationProcessing>
+  </component>
+</project>

+ 7 - 0
.idea/encodings.xml

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

+ 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="maven-snapshots" />
+      <option name="name" value="maven-snapshots" />
+      <option name="url" value="http://116.142.80.13:43000/repository/maven-public" />
+    </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="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="http://116.142.80.13:43000/repository/maven-public" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="maven-releases" />
+      <option name="name" value="maven-releases" />
+      <option name="url" value="http://116.142.80.13:43000/repository/maven-public" />
+    </remote-repository>
+  </component>
+</project>

+ 12 - 0
.idea/misc.xml

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

+ 1 - 1
.idea/vcs.xml

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

+ 246 - 0
.idea/workspace.xml

@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="SELECTIVE" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="6ad99d19-419f-4d2d-b7de-08bf88dd6090" name="更改" comment="">
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/controller/CenterdataTUavController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/controller/CenterdataTUavdeptController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/domain/CenterdataTUav.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/domain/CenterdataTUavdept.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/mapper/CenterdataTUavMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/mapper/CenterdataTUavdeptMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/service/ICenterdataTUavService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/service/ICenterdataTUavdeptService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/service/impl/CenterdataTUavServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitaluav/service/impl/CenterdataTUavdeptServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterAnnouncePlacardController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterConservancyProjectController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterDikeController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterGeneralInfoController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterIncidentManageController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterInspectionTroubleController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterOverLevelSiteController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterProjectSummaryController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterQualityDeviceController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainAnalysisController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainfallComparisonController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainfallStationController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterReportRankingController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterReservoirManagementController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterResourceManagementController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverLengthManageController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverMonitoringStationController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverStrategyController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSavingController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSiteStatisticsController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSoilConservationController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSourceController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterTotalResourcesTwoYearsController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterViewController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterAnnouncePlacard.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterConservancyProject.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterDike.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterGeneralInfo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterIncidentManage.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterInspectionTrouble.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterOverLevelSite.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterProjectSummary.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterQualityDevice.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainAnalysis.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainfallComparison.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainfallStation.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterReportRanking.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterReservoirManagement.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterResourceManagement.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRiverLengthManage.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRiverLengthPatrol.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRiverMonitoringStation.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRiverStrategy.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterSaving.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterSiteStatistics.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterSoilConservation.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterSource.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterTotalResourcesTwoYears.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterViewVO.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/vo/CenterdataTWaterDikeStatisticsVO.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/vo/CenterdataTWaterPlacementVO.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterAnnouncePlacardMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterConservancyProjectMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterDikeMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterGeneralInfoMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterIncidentManageMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterInspectionTroubleMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterOverLevelSiteMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterProjectSummaryMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterQualityDeviceMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterRainAnalysisMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterRainfallComparisonMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterRainfallStationMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterReportRankingMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterReservoirManagementMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterResourceManagementMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterRiverLengthManageMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterRiverMonitoringStationMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterRiverStrategyMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterSavingMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterSiteStatisticsMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterSoilConservationMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterSourceMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterTotalResourcesTwoYearsMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/mapper/CenterdataTWaterViewMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterAnnouncePlacardService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterConservancyProjectService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterDikeService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterGeneralInfoService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterIncidentManageService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterInspectionTroubleService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterOverLevelSiteService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterProjectSummaryService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterQualityDeviceService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterRainAnalysisService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterRainfallComparisonService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterRainfallStationService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterReportRankingService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterReservoirManagementService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterResourceManagementService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterRiverLengthManageService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterRiverMonitoringStationService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterRiverStrategyService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterSavingService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterSiteStatisticsService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterSoilConservationService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterSourceService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterTotalResourcesTwoYearsService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/ICenterdataTWaterViewService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterAnnouncePlacardServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterConservancyProjectServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterDikeServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterGeneralInfoServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterIncidentManageServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterInspectionTroubleServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterOverLevelSiteServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterProjectSummaryServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterQualityDeviceServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterRainAnalysisServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterRainfallComparisonServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterRainfallStationServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterReportRankingServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterReservoirManagementServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterResourceManagementServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterRiverLengthManageServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterRiverMonitoringStationServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterRiverStrategyServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterSavingServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterSiteStatisticsServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterSoilConservationServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterSourceServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterTotalResourcesTwoYearsServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/digitalwaterconservancy/service/impl/CenterdataTWaterViewServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/sooka/sponest/data/enums/Months.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitaluav/CentermonitorTUavMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitaluav/CentermonitorTUavdeptMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterAnnouncePlacardMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterConservancyProjectMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterDikeMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterGeneralInfoMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterIncidentManageMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterInspectionTroubleMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterOverLevelSiteMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterProjectSummaryMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterQualityDeviceMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterRainAnalysisMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterRainfallComparisonMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterRainfallStationMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterReportRankingMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterReservoirManagementMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterResourceManagementMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterRiverLengthManageMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterRiverMonitoringStationMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterRiverStrategyMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterSavingMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterSiteStatisticsMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterSoilConservationMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterSourceMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterTotalResourcesTwoYearsMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/digitalwaterconservancy/CenterdataTWaterViewMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/logs/center-comprehensive/info.2024-01-22.log" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/logs/center-data/info.2024-01-22.log" beforeDir="false" />
+    </list>
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="MavenImportPreferences">
+    <option name="generalSettings">
+      <MavenGeneralSettings>
+        <option name="mavenHome" value="$PROJECT_DIR$/../../../../maven/apache-maven-3.6.3" />
+        <option name="useMavenConfig" value="true" />
+        <option name="userSettingsFile" value="D:\maven\apache-maven-3.6.3\conf\settings.xml" />
+      </MavenGeneralSettings>
+    </option>
+  </component>
+  <component name="MavenRunner">
+    <option name="delegateBuildToMaven" value="true" />
+    <option name="jreName" value="#JAVA_HOME" />
+  </component>
+  <component name="ProjectId" id="2zIdWk30NE52sxtQkCQ5mm34pnP" />
+  <component name="ProjectViewState">
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "WebServerToolWindowFactoryState": "false",
+    "git-widget-placeholder": "master",
+    "last_opened_file_path": "D:/ideaProjects/sooka/ly/ly-onest-data/src/main/java/com/sooka/sponest/data",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "settings.editor.selected.configurable": "reference.settings.project.maven.runner",
+    "vue.rearranger.settings.migration": "true"
+  }
+}]]></component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\ideaProjects\sooka\ly\ly-onest-data\data-ui\src\api\data" />
+      <recent name="D:\ideaProjects\sooka\ly\ly-onest-data\data-ui\src\views\data" />
+      <recent name="D:\ideaProjects\sooka\ly\ly-onest-data\src\main\java\com\sooka\sponest\data" />
+      <recent name="D:\ideaProjects\sooka\ly\ly-onest-data\src\main\resources\mapper" />
+    </key>
+  </component>
+  <component name="RunManager">
+    <configuration name="SookaDataApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
+      <module name="center-data" />
+      <option name="SPRING_BOOT_MAIN_CLASS" value="com.sooka.sponest.data.SookaDataApplication" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="默认任务">
+      <changelist id="6ad99d19-419f-4d2d-b7de-08bf88dd6090" name="更改" comment="" />
+      <created>1751422554876</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1751422554876</updated>
+      <workItem from="1751422555974" duration="533000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+</project>

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/analysis.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询雨情分析列表
+export function listAnalysis(query) {
+  return request({
+    url: '/center-data/analysis/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询雨情分析详细
+export function getAnalysis(id) {
+  return request({
+    url: '/center-data/analysis/' + id,
+    method: 'get'
+  })
+}
+
+// 新增雨情分析
+export function addAnalysis(data) {
+  return request({
+    url: '/center-data/analysis',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改雨情分析
+export function updateAnalysis(data) {
+  return request({
+    url: '/center-data/analysis',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除雨情分析
+export function delAnalysis(id) {
+  return request({
+    url: '/center-data/analysis/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/announcePlacard.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-公示牌列表
+export function listAnnouncePlacard(query) {
+  return request({
+    url: '/center-data/announcePlacard/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-公示牌详细
+export function getAnnouncePlacard(id) {
+  return request({
+    url: '/center-data/announcePlacard/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-公示牌
+export function addAnnouncePlacard(data) {
+  return request({
+    url: '/center-data/announcePlacard',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-公示牌
+export function updateAnnouncePlacard(data) {
+  return request({
+    url: '/center-data/announcePlacard',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-公示牌
+export function delAnnouncePlacard(id) {
+  return request({
+    url: '/center-data/announcePlacard/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/comparison.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询降雨量对比列表
+export function listComparison(query) {
+  return request({
+    url: '/center-data/comparison/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询降雨量对比详细
+export function getComparison(id) {
+  return request({
+    url: '/center-data/comparison/' + id,
+    method: 'get'
+  })
+}
+
+// 新增降雨量对比
+export function addComparison(data) {
+  return request({
+    url: '/center-data/comparison',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改降雨量对比
+export function updateComparison(data) {
+  return request({
+    url: '/center-data/comparison',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除降雨量对比
+export function delComparison(id) {
+  return request({
+    url: '/center-data/comparison/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/device.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水质监测设备列表
+export function listDevice(query) {
+  return request({
+    url: '/center-data/water/quality/device/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水质监测设备详细
+export function getDevice(id) {
+  return request({
+    url: '/center-data/water/quality/device/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水质监测设备
+export function addDevice(data) {
+  return request({
+    url: '/center-data/water/quality/device',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水质监测设备
+export function updateDevice(data) {
+  return request({
+    url: '/center-data/water/quality/device',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水质监测设备
+export function delDevice(id) {
+  return request({
+    url: '/center-data/water/quality/device/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/dike.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-河道监测站管理列表
+export function listRiver_dike(query) {
+  return request({
+    url: '/center-data/water/dike/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-河道监测站管理详细
+export function getRiver_dike(id) {
+  return request({
+    url: '/center-data/water/dike/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-河道监测站管理
+export function addRiver_dike(data) {
+  return request({
+    url: '/center-data/water/dike',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-河道监测站管理
+export function updateRiver_dike(data) {
+  return request({
+    url: '/center-data/water/dike',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-河道监测站管理
+export function delRiver_dike(id) {
+  return request({
+    url: '/center-data/water/dike/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/management.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-水资源管理列表
+export function listManagement(query) {
+  return request({
+    url: '/center-data/management/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-水资源管理详细
+export function getManagement(id) {
+  return request({
+    url: '/center-data/management/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-水资源管理
+export function addManagement(data) {
+  return request({
+    url: '/center-data/management',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-水资源管理
+export function updateManagement(data) {
+  return request({
+    url: '/center-data/management',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-水资源管理
+export function delManagement(id) {
+  return request({
+    url: '/center-data/management/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/ranking.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询上报排行列表
+export function listRanking(query) {
+  return request({
+    url: '/center-data/ranking/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询上报排行详细
+export function getRanking(id) {
+  return request({
+    url: '/center-data/ranking/' + id,
+    method: 'get'
+  })
+}
+
+// 新增上报排行
+export function addRanking(data) {
+  return request({
+    url: '/center-data/ranking',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改上报排行
+export function updateRanking(data) {
+  return request({
+    url: '/center-data/ranking',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除上报排行
+export function delRanking(id) {
+  return request({
+    url: '/center-data/ranking/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/reservoirManagement.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-水库管理列表
+export function listReservoirManagement(query) {
+  return request({
+    url: '/center-data/reservoirManagement/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-水库管理详细
+export function getReservoirManagement(id) {
+  return request({
+    url: '/center-data/reservoirManagement/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-水库管理
+export function addReservoirManagement(data) {
+  return request({
+    url: '/center-data/reservoirManagement',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-水库管理
+export function updateReservoirManagement(data) {
+  return request({
+    url: '/center-data/reservoirManagement',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-水库管理
+export function delReservoirManagement(id) {
+  return request({
+    url: '/center-data/reservoirManagement/' + id,
+    method: 'delete'
+  })
+}

+ 53 - 0
data-ui/src/api/data/digitalwaterconservancy/riverLength.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询水利-河长管理列表
+export function listRiverLength(query) {
+  return request({
+    url: '/center-data/riverLength/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-河长管理详细
+export function getRiverLength(id) {
+  return request({
+    url: '/center-data/riverLength/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-河长管理
+export function addRiverLength(data) {
+  return request({
+    url: '/center-data/riverLength',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-河长管理
+export function updateRiverLength(data) {
+  return request({
+    url: '/center-data/riverLength',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-河长管理
+export function delRiverLength(id) {
+  return request({
+    url: '/center-data/riverLength/' + id,
+    method: 'delete'
+  })
+}
+
+// 新增河长巡查
+export function addTrack(data) {
+  return request({
+    url: '/center-data/riverLength/insertTrack',
+    method: 'post',
+    data: data
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/riverMonitoring.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-河道监测站管理列表
+export function listRiver_monitoring(query) {
+  return request({
+    url: '/center-data/river/monitoring/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-河道监测站管理详细
+export function getRiver_monitoring(id) {
+  return request({
+    url: '/center-data/river/monitoring/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-河道监测站管理
+export function addRiver_monitoring(data) {
+  return request({
+    url: '/center-data/river/monitoring',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-河道监测站管理
+export function updateRiver_monitoring(data) {
+  return request({
+    url: '/center-data/river/monitoring',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-河道监测站管理
+export function delRiver_monitoring(id) {
+  return request({
+    url: '/center-data/river/monitoring/' + id,
+    method: 'delete'
+  })
+}

+ 53 - 0
data-ui/src/api/data/digitalwaterconservancy/riverStrategy.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询水利-一河一策列表
+export function listRiverStrategy(query) {
+  return request({
+    url: '/center-data/riverStrategy/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-一河一策详细
+export function getRiverStrategy(id) {
+  return request({
+    url: '/center-data/riverStrategy/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-一河一策
+export function addRiverStrategy(data) {
+  return request({
+    url: '/center-data/riverStrategy',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-一河一策
+export function updateRiverStrategy(data) {
+  return request({
+    url: '/center-data/riverStrategy',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-一河一策
+export function delRiverStrategy(id) {
+  return request({
+    url: '/center-data/riverStrategy/' + id,
+    method: 'delete'
+  })
+}
+
+// 查询水利-河长管理列表
+export function listRiverLength(query) {
+  return request({
+    url: '/center-data/riverLength/list',
+    method: 'get',
+    params: query
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/site.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询超限水位站列表
+export function listSite(query) {
+  return request({
+    url: '/center-data/site/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询超限水位站详细
+export function getSite(id) {
+  return request({
+    url: '/center-data/site/' + id,
+    method: 'get'
+  })
+}
+
+// 新增超限水位站
+export function addSite(data) {
+  return request({
+    url: '/center-data/site',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改超限水位站
+export function updateSite(data) {
+  return request({
+    url: '/center-data/site',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除超限水位站
+export function delSite(id) {
+  return request({
+    url: '/center-data/site/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/station.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-雨量站管理列表
+export function listStation(query) {
+  return request({
+    url: '/center-data/rainfall/station/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-雨量站管理详细
+export function getStation(id) {
+  return request({
+    url: '/center-data/rainfall/station/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-雨量站管理
+export function addStation(data) {
+  return request({
+    url: '/center-data/rainfall/station',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-雨量站管理
+export function updateStation(data) {
+  return request({
+    url: '/center-data/rainfall/station',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-雨量站管理
+export function delStation(id) {
+  return request({
+    url: '/center-data/rainfall/station/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/statistics.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询站点统计列表
+export function listStatistics(query) {
+  return request({
+    url: '/center-data/statistics/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询站点统计详细
+export function getStatistics(id) {
+  return request({
+    url: '/center-data/statistics/' + id,
+    method: 'get'
+  })
+}
+
+// 新增站点统计
+export function addStatistics(data) {
+  return request({
+    url: '/center-data/statistics',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改站点统计
+export function updateStatistics(data) {
+  return request({
+    url: '/center-data/statistics',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除站点统计
+export function delStatistics(id) {
+  return request({
+    url: '/center-data/statistics/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/summary.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-水利工程概要列表
+export function listSummary(query) {
+  return request({
+    url: '/center-data/summary/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-水利工程概要详细
+export function getSummary(id) {
+  return request({
+    url: '/center-data/summary/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-水利工程概要
+export function addSummary(data) {
+  return request({
+    url: '/center-data/summary',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-水利工程概要
+export function updateSummary(data) {
+  return request({
+    url: '/center-data/summary',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-水利工程概要
+export function delSummary(id) {
+  return request({
+    url: '/center-data/summary/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterConservancy.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-水利工程列表
+export function listWaterConservancy(query) {
+  return request({
+    url: '/center-data/waterConservancy/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-水利工程详细
+export function getWaterConservancy(id) {
+  return request({
+    url: '/center-data/waterConservancy/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-水利工程
+export function addWaterConservancy(data) {
+  return request({
+    url: '/center-data/waterConservancy',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-水利工程
+export function updateWaterConservancy(data) {
+  return request({
+    url: '/center-data/waterConservancy',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-水利工程
+export function delWaterConservancy(id) {
+  return request({
+    url: '/center-data/waterConservancy/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterConservation.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-水土保持列表
+export function listWaterConservation(query) {
+  return request({
+    url: '/center-data/waterConservation/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-水土保持详细
+export function getWaterConservation(id) {
+  return request({
+    url: '/center-data/waterConservation/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-水土保持
+export function addWaterConservation(data) {
+  return request({
+    url: '/center-data/waterConservation',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-水土保持
+export function updateWaterConservation(data) {
+  return request({
+    url: '/center-data/waterConservation',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-水土保持
+export function delWaterConservation(id) {
+  return request({
+    url: '/center-data/waterConservation/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterGeneralInfo.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-总体信息列表
+export function listWaterGeneralInfo(query) {
+  return request({
+    url: '/center-data/waterGeneralInfo/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-总体信息详细
+export function getWaterGeneralInfo(id) {
+  return request({
+    url: '/center-data/waterGeneralInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-总体信息
+export function addWaterGeneralInfo(data) {
+  return request({
+    url: '/center-data/waterGeneralInfo',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-总体信息
+export function updateWaterGeneralInfo(data) {
+  return request({
+    url: '/center-data/waterGeneralInfo',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-总体信息
+export function delWaterGeneralInfo(id) {
+  return request({
+    url: '/center-data/waterGeneralInfo/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterIncidentManage.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-事件办理列表
+export function listWaterIncidentManage(query) {
+  return request({
+    url: '/center-data/waterIncidentManage/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-事件办理详细
+export function getWaterIncidentManage(id) {
+  return request({
+    url: '/center-data/waterIncidentManage/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-事件办理
+export function addWaterIncidentManage(data) {
+  return request({
+    url: '/center-data/waterIncidentManage',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-事件办理
+export function updateWaterIncidentManage(data) {
+  return request({
+    url: '/center-data/waterIncidentManage',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-事件办理
+export function delWaterIncidentManage(id) {
+  return request({
+    url: '/center-data/waterIncidentManage/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterInspectionTrouble.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-巡检排查列表
+export function listWaterInspectionTrouble(query) {
+  return request({
+    url: '/center-data/waterInspectionTrouble/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-巡检排查详细
+export function getWaterInspectionTrouble(id) {
+  return request({
+    url: '/center-data/waterInspectionTrouble/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-巡检排查
+export function addWaterInspectionTrouble(data) {
+  return request({
+    url: '/center-data/waterInspectionTrouble',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-巡检排查
+export function updateWaterInspectionTrouble(data) {
+  return request({
+    url: '/center-data/waterInspectionTrouble',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-巡检排查
+export function delWaterInspectionTrouble(id) {
+  return request({
+    url: '/center-data/waterInspectionTrouble/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterSaving.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-节水管理列表
+export function listWaterSaving(query) {
+  return request({
+    url: '/center-data/waterSaving/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-节水管理详细
+export function getWaterSaving(id) {
+  return request({
+    url: '/center-data/waterSaving/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-节水管理
+export function addWaterSaving(data) {
+  return request({
+    url: '/center-data/waterSaving',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-节水管理
+export function updateWaterSaving(data) {
+  return request({
+    url: '/center-data/waterSaving',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-节水管理
+export function delWaterSaving(id) {
+  return request({
+    url: '/center-data/waterSaving/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterSource.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-水源地列表
+export function listWaterSource(query) {
+  return request({
+    url: '/center-data/waterSource/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-水源地详细
+export function getWaterSource(id) {
+  return request({
+    url: '/center-data/waterSource/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-水源地
+export function addWaterSource(data) {
+  return request({
+    url: '/center-data/waterSource',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-水源地
+export function updateWaterSource(data) {
+  return request({
+    url: '/center-data/waterSource',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-水源地
+export function delWaterSource(id) {
+  return request({
+    url: '/center-data/waterSource/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalwaterconservancy/waterTotalResourcesTwoYears.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询水利-近两年水资源总量列表
+export function listWaterTotalResourcesTwoYears(query) {
+  return request({
+    url: '/center-data/waterTotalResourcesTwoYears/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询水利-近两年水资源总量详细
+export function getWaterTotalResourcesTwoYears(id) {
+  return request({
+    url: '/center-data/waterTotalResourcesTwoYears/' + id,
+    method: 'get'
+  })
+}
+
+// 新增水利-近两年水资源总量
+export function addWaterTotalResourcesTwoYears(data) {
+  return request({
+    url: '/center-data/waterTotalResourcesTwoYears',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改水利-近两年水资源总量
+export function updateWaterTotalResourcesTwoYears(data) {
+  return request({
+    url: '/center-data/waterTotalResourcesTwoYears',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除水利-近两年水资源总量
+export function delWaterTotalResourcesTwoYears(id) {
+  return request({
+    url: '/center-data/waterTotalResourcesTwoYears/' + id,
+    method: 'delete'
+  })
+}

+ 314 - 0
data-ui/src/views/data/digitalwaterconservancy/announcePlacard/index.vue

@@ -0,0 +1,314 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="河流名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入河流名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:announcePlacard:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:announcePlacard:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:announcePlacard:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:announcePlacard:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="announcePlacardList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="河流名称" align="center" prop="name"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createName"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:announcePlacard:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:announcePlacard:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-公示牌对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="河流名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入河流名称" maxlength="50"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="图片" prop="picture">
+          <ImageUpload ref="ImageUpload" :limit="1" :fileType="['png', 'jpg', 'jpeg']" :value="form.picture"
+                           @input="getUrl"></ImageUpload>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listAnnouncePlacard,
+  getAnnouncePlacard,
+  delAnnouncePlacard,
+  addAnnouncePlacard,
+  updateAnnouncePlacard
+} from "@/api/data/digitalwaterconservancy/announcePlacard";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {treeselect} from "@/api/system/dept";
+
+export default {
+  name: "AnnouncePlacard",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-公示牌表格数据
+      announcePlacardList: [],
+      deptOptions: undefined,
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        name: null,
+        picture: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: "河流名称不能为空", trigger: "change"}
+        ],
+        picture: [
+          {required: true, message: "图片不能为空", trigger: "change"}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getUrl(url) {
+      this.form.picture=url
+    },
+    /** 查询水利-公示牌列表 */
+    getList() {
+      this.loading = true;
+      listAnnouncePlacard(this.queryParams).then(response => {
+        this.announcePlacardList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        name: null,
+        picture: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-公示牌";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAnnouncePlacard(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-公示牌";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAnnouncePlacard(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAnnouncePlacard(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删选中的数据项?').then(function () {
+        return delAnnouncePlacard(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/announcePlacard/export', {
+        ...this.queryParams
+      }, `公示牌_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 542 - 0
data-ui/src/views/data/digitalwaterconservancy/dike/index.vue

@@ -0,0 +1,542 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="圩堤名称" prop="embankmentName">
+        <el-input
+          v-model="queryParams.embankmentName"
+          placeholder="请输入圩堤名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['digitalwaterconservancy:dike:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['digitalwaterconservancy:dike:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['digitalwaterconservancy:dike:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['digitalwaterconservancy:dike:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dikeList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="圩堤名称" align="center" prop="embankmentName"/>
+      <el-table-column label="上报时间" align="center" prop="reportingTime" width="180" />
+      <el-table-column label="昨日水位" align="center" prop="yesterdayWaterLevel"/>
+      <el-table-column label="今日水位" align="center" prop="todayWaterLevel"/>
+      <el-table-column label="当前水位" align="center" prop="currentWaterLevel"/>
+      <el-table-column label="警戒水位" align="center" prop="warningWaterLevel"/>
+      <el-table-column label="超警戒水位" align="center" prop="overwarningLevel"/>
+      <el-table-column label="是否超警戒" align="center" prop="overAlertOrNot">
+        <template slot-scope="scope">
+          <span>{{ scope.row.overAlertOrNot === '0' ? '否' : '是' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="水势" align="center" prop="waterPotential">
+        <template slot-scope="scope">
+          <span v-if="scope.row.waterPotential === '0'">涨</span>
+          <span v-else-if="scope.row.waterPotential === '1'">平</span>
+          <span v-else-if="scope.row.waterPotential === '2'">落</span>
+          <span v-else>未知</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="最大变幅" align="center" prop="maximumAmplitude"/>
+      <el-table-column label="是否超变幅" align="center" prop="isOverranges">
+        <template slot-scope="scope">
+          <span>{{ scope.row.isOverranges === '0' ? '否' : '是' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="截面流量" align="center" prop="sectionFlow"/>
+      <el-table-column label="所属水系" align="center" prop="drainageSystem"/>
+      <el-table-column label="所属河流" align="center" prop="owningStream"/>
+      <el-table-column label="所属市县区" align="center" prop="cityCountyDistrict"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column label="管理单位" align="center" prop="managementUnit"/>
+      <el-table-column label="联系电话" align="center" prop="managementNumber"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人姓名" align="center" prop="createName"/>
+      <el-table-column label="修改人姓名" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['digitalwaterconservancy:dike:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['digitalwaterconservancy:dike:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-堤防管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="圩堤名称" prop="embankmentName">
+              <el-input v-model="form.embankmentName" placeholder="请输入圩堤名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="上报时间" prop="reportingTime">
+              <el-date-picker clearable
+                              v-model="form.reportingTime"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择上报时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="昨日水位" prop="yesterdayWaterLevel">
+              <el-input v-model="form.yesterdayWaterLevel" placeholder="请输入昨日水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="今日水位" prop="todayWaterLevel">
+              <el-input v-model="form.todayWaterLevel" placeholder="请输入今日水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="当前水位" prop="currentWaterLevel">
+              <el-input v-model="form.currentWaterLevel" placeholder="请输入当前水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="警戒水位" prop="warningWaterLevel">
+              <el-input v-model="form.warningWaterLevel" placeholder="请输入警戒水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="是否超警戒" prop="overAlertOrNot">
+              <el-select v-model="form.overAlertOrNot" placeholder="请选择是否超警戒" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.overAlertOrNot" placeholder="请输入是否超警戒" maxlength="10"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="超警戒水位" prop="overwarningLevel">
+              <el-input v-model="form.overwarningLevel" placeholder="请输入超警戒水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="水势" prop="waterPotential">
+              <el-select v-model="form.waterPotential" placeholder="请选择水势" clearable>
+                <el-option value="0" label="涨"></el-option>
+                <el-option value="1" label="平"></el-option>
+                <el-option value="2" label="落"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.waterPotential" placeholder="请输入水势" maxlength="50"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="最大变幅" prop="maximumAmplitude">
+              <el-input v-model="form.maximumAmplitude" placeholder="请输入最大变幅(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="是否超变幅" prop="isOverranges">
+              <el-select v-model="form.isOverranges" placeholder="请选择是否超变幅" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.isOverranges" placeholder="请输入是否超变幅" maxlength="10"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="截面流量" prop="sectionFlow">
+              <el-input v-model="form.sectionFlow" placeholder="请输入截面流量(单位: m³/s)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属水系" prop="drainageSystem">
+              <el-input v-model="form.drainageSystem" placeholder="请输入所属水系" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属河流" prop="owningStream">
+              <el-input v-model="form.owningStream" placeholder="请输入所属河流" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="管理单位" prop="managementUnit">
+              <el-input v-model="form.managementUnit" placeholder="请输入管理单位" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话" prop="managementNumber">
+              <el-input v-model="form.managementNumber" placeholder="请输入联系电话" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属市县区" prop="cityCountyDistrict">
+              <el-input v-model="form.cityCountyDistrict" placeholder="请输入所属市县区" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listRiver_dike,
+  getRiver_dike,
+  delRiver_dike,
+  addRiver_dike,
+  updateRiver_dike
+} from "@/api/data/digitalwaterconservancy/dike";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon, checkNonnegativeInteger, validPhoneMobile} from "@/api/rules/rules";
+
+export default {
+  name: "River_dike",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-堤防管理表格数据
+      dikeList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        embankmentName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        embankmentName: [
+          {required: true, message: "圩堤名称不能为空", trigger: "blur"}
+        ],
+        reportingTime: [
+          {required: true, message: "上报时间不能为空", trigger: "blur"}
+        ],
+        yesterdayWaterLevel: [
+          {required: true, message: "昨日水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        todayWaterLevel: [
+          {required: true, message: "今日水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        currentWaterLevel: [
+          {required: true, message: "当前水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        warningWaterLevel:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        maximumAmplitude:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        sectionFlow:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: "blur"},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: "blur"},
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        managementUnit: [
+          {required: true, message: "管理单位不能为空", trigger: "blur"}
+        ],
+        overAlertOrNot: [
+          {required: true, message: "是否超警戒不能为空", trigger: "blur"}
+        ],
+        managementNumber: [
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询水利-堤防管理列表 */
+    getList() {
+      this.loading = true;
+      listRiver_dike(this.queryParams).then(response => {
+        this.dikeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        embankmentName: null,
+        reportingTime: null,
+        yesterdayWaterLevel: null,
+        todayWaterLevel: null,
+        currentWaterLevel: null,
+        warningWaterLevel: null,
+        overwarningLevel: null,
+        overAlertOrNot: null,
+        waterPotential: null,
+        maximumAmplitude: null,
+        isOverranges: null,
+        sectionFlow: null,
+        drainageSystem: null,
+        owningStream: null,
+        cityCountyDistrict: null,
+        deptId: null,
+        longitude: null,
+        latitude: null,
+        managementUnit: null,
+        managementNumber: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-堤防管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRiver_dike(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-堤防管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRiver_dike(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRiver_dike(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水利-堤防管理编号为"' + ids + '"的数据项?').then(function () {
+        return delRiver_dike(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/river/monitoring/export', {
+        ...this.queryParams
+      }, `dike_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 321 - 0
data-ui/src/views/data/digitalwaterconservancy/rainAnalysis/index.vue

@@ -0,0 +1,321 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="98px">
+      <el-form-item label="监测站点总数" prop="surveySiteTotalCount">
+        <el-input
+          v-model="queryParams.surveySiteTotalCount"
+          placeholder="请输入监测站点总数"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="降雨站点总数" prop="rainfallSiteTotalCount">
+        <el-input
+          v-model="queryParams.rainfallSiteTotalCount"
+          placeholder="请输入降雨站点总数"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="超限站数量" prop="overLimitSiteCount">
+        <el-input
+          v-model="queryParams.overLimitSiteCount"
+          placeholder="请输入超限站数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="analysisList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="监测站点总数" align="center" prop="surveySiteTotalCount"/>
+      <el-table-column label="降雨站点总数" align="center" prop="rainfallSiteTotalCount"/>
+      <el-table-column label="当前降雨量" align="center" prop="currentRainfall"/>
+      <el-table-column label="超预警站数(万条)" align="center" prop="overAlarmSiteCount"/>
+      <el-table-column label="超保证站数(万条)" align="center" prop="overEnsureSiteCount"/>
+      <el-table-column label="河道总数" align="center" prop="riverCourseTotalCount"/>
+      <el-table-column label="超限站数量" align="center" prop="overLimitSiteCount"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改雨情分析对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+        <el-form-item label="监测站点总数" prop="surveySiteTotalCount">
+          <el-input v-model="form.surveySiteTotalCount" placeholder="请输入监测站点总数"/>
+        </el-form-item>
+        <el-form-item label="降雨站点总数" prop="rainfallSiteTotalCount">
+          <el-input v-model="form.rainfallSiteTotalCount" placeholder="请输入降雨站点总数"/>
+        </el-form-item>
+        <el-form-item label="当前降雨量" prop="currentRainfall">
+          <el-input v-model="form.currentRainfall" placeholder="请输入当前降雨量"/>
+        </el-form-item>
+        <el-form-item label="超预警站数(万条)" prop="overAlarmSiteCount">
+          <el-input v-model="form.overAlarmSiteCount" placeholder="请输入超预警站数(万条)"/>
+        </el-form-item>
+        <el-form-item label="超保证站数(万条)" prop="overEnsureSiteCount">
+          <el-input v-model="form.overEnsureSiteCount" placeholder="请输入超保证站数(万条)"/>
+        </el-form-item>
+        <el-form-item label="河道总数" prop="riverCourseTotalCount">
+          <el-input v-model="form.riverCourseTotalCount" placeholder="请输入河道总数"/>
+        </el-form-item>
+        <el-form-item label="超限站数量" prop="overLimitSiteCount">
+          <el-input v-model="form.overLimitSiteCount" placeholder="请输入超限站数量"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAnalysis, getAnalysis, delAnalysis, addAnalysis, updateAnalysis } from '@/api/data/digitalwaterconservancy/analysis'
+import { checkNonnegativeInteger } from '@/api/rules/rules'
+
+export default {
+  name: 'Analysis',
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 雨情分析表格数据
+      analysisList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        surveySiteTotalCount: null,
+        rainfallSiteTotalCount: null,
+        currentRainfall: null,
+        overAlarmSiteCount: null,
+        overEnsureSiteCount: null,
+        riverCourseTotalCount: null,
+        overLimitSiteCount: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        surveySiteTotalCount: [
+          { required: true, message: '监测站点总数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '监测站点总数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        rainfallSiteTotalCount: [
+          { required: true, message: '降雨站点总数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '降雨站点总数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        currentRainfall: [
+          { required: true, message: '当前降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '当前降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        overAlarmSiteCount: [
+          { required: true, message: '超预警站数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '超预警站数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        overEnsureSiteCount: [
+          { required: true, message: '超保证站数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '超保证站数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        riverCourseTotalCount: [
+          { required: true, message: '河道总数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '河道总数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        overLimitSiteCount: [
+          { required: true, message: '超限站数量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '超限站数量最大长度不能超过10位', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询雨情分析列表 */
+    getList() {
+      this.loading = true
+      listAnalysis(this.queryParams).then(response => {
+        this.analysisList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        surveySiteTotalCount: null,
+        rainfallSiteTotalCount: null,
+        currentRainfall: null,
+        overAlarmSiteCount: null,
+        overEnsureSiteCount: null,
+        riverCourseTotalCount: null,
+        overLimitSiteCount: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加雨情分析'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getAnalysis(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改雨情分析'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAnalysis(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addAnalysis(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除雨情分析编号为"' + ids + '"的数据项?').then(function() {
+        return delAnalysis(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+  }
+}
+</script>

+ 369 - 0
data-ui/src/views/data/digitalwaterconservancy/rainfallComparison/index.vue

@@ -0,0 +1,369 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="年份" prop="currentYear">
+        <el-input
+          v-model="queryParams.currentYear"
+          placeholder="请输入年份"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="comparisonList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="年份" align="center" prop="currentYear"/>
+      <el-table-column label="一月" align="center" prop="january"/>
+      <el-table-column label="二月" align="center" prop="february"/>
+      <el-table-column label="三月" align="center" prop="march"/>
+      <el-table-column label="四月" align="center" prop="april"/>
+      <el-table-column label="五月" align="center" prop="may"/>
+      <el-table-column label="六月" align="center" prop="june"/>
+      <el-table-column label="七月" align="center" prop="july"/>
+      <el-table-column label="八月" align="center" prop="august"/>
+      <el-table-column label="九月" align="center" prop="september"/>
+      <el-table-column label="十月" align="center" prop="october"/>
+      <el-table-column label="十一月" align="center" prop="november"/>
+      <el-table-column label="十二月" align="center" prop="december"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改降雨量对比对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
+        <el-form-item label="年份" prop="currentYear">
+          <el-input v-model="form.currentYear" placeholder="请输入年份,例:2025"/>
+        </el-form-item>
+        <el-form-item label="一月" prop="january">
+          <el-input v-model="form.january" placeholder="请输入一月降雨量"/>
+        </el-form-item>
+        <el-form-item label="二月" prop="february">
+          <el-input v-model="form.february" placeholder="请输入二月"/>
+        </el-form-item>
+        <el-form-item label="三月" prop="march">
+          <el-input v-model="form.march" placeholder="请输入三月降雨量"/>
+        </el-form-item>
+        <el-form-item label="四月" prop="april">
+          <el-input v-model="form.april" placeholder="请输入四月降雨量"/>
+        </el-form-item>
+        <el-form-item label="五月" prop="may">
+          <el-input v-model="form.may" placeholder="请输入五月降雨量"/>
+        </el-form-item>
+        <el-form-item label="六月" prop="june">
+          <el-input v-model="form.june" placeholder="请输入六月降雨量"/>
+        </el-form-item>
+        <el-form-item label="七月" prop="july">
+          <el-input v-model="form.july" placeholder="请输入七月降雨量"/>
+        </el-form-item>
+        <el-form-item label="八月" prop="august">
+          <el-input v-model="form.august" placeholder="请输入八月降雨量"/>
+        </el-form-item>
+        <el-form-item label="九月" prop="september">
+          <el-input v-model="form.september" placeholder="请输入九月降雨量"/>
+        </el-form-item>
+        <el-form-item label="十月" prop="october">
+          <el-input v-model="form.october" placeholder="请输入十月降雨量"/>
+        </el-form-item>
+        <el-form-item label="十一月" prop="november">
+          <el-input v-model="form.november" placeholder="请输入十一月降雨量"/>
+        </el-form-item>
+        <el-form-item label="十二月" prop="december">
+          <el-input v-model="form.december" placeholder="请输入十二月降雨量"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listComparison, getComparison, delComparison, addComparison, updateComparison } from '@/api/data/digitalwaterconservancy/comparison'
+import { checkNonnegativeInteger } from '@/api/rules/rules'
+
+export default {
+  name: 'Comparison',
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 降雨量对比表格数据
+      comparisonList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        currentYear: null,
+        january: null,
+        february: null,
+        march: null,
+        april: null,
+        may: null,
+        june: null,
+        july: null,
+        august: null,
+        september: null,
+        october: null,
+        november: null,
+        december: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        currentYear: [
+          { required: true, message: '年份不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '年份最大长度不能超过10位', trigger: 'blur' }
+        ],
+        january: [
+          { required: true, message: '一月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '一月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        february: [
+          { required: true, message: '二月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '二月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        march: [
+          { required: true, message: '三月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '三月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        april: [
+          { required: true, message: '四月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '四月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        may: [
+          { required: true, message: '五月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '五月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        june: [
+          { required: true, message: '六月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '六月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        july: [
+          { required: true, message: '七月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '七月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        august: [
+          { required: true, message: '八月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '八月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        september: [
+          { required: true, message: '九月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '九月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        october: [
+          { required: true, message: '十月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        november: [
+          { required: true, message: '十一月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十一月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+        december: [
+          { required: true, message: '十二月降雨量不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十二月降雨量最大长度不能超过10位', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询降雨量对比列表 */
+    getList() {
+      this.loading = true
+      listComparison(this.queryParams).then(response => {
+        this.comparisonList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        currentYear: null,
+        january: null,
+        february: null,
+        march: null,
+        april: null,
+        may: null,
+        june: null,
+        july: null,
+        august: null,
+        september: null,
+        october: null,
+        november: null,
+        december: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加降雨量对比'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getComparison(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改降雨量对比'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateComparison(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addComparison(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除降雨量对比编号为"' + ids + '"的数据项?').then(function() {
+        return delComparison(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+  }
+}
+</script>

+ 634 - 0
data-ui/src/views/data/digitalwaterconservancy/reservoirManagement/index.vue

@@ -0,0 +1,634 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="水库名称" prop="reservoirName">
+        <el-input
+          v-model="queryParams.reservoirName"
+          placeholder="请输入水库名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="上报时间">
+        <el-date-picker
+          v-model="daterangeReportingTime"
+          size="small"
+          style="width: 240px"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetimerange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:reservoirManagement:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:reservoirManagement:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:reservoirManagement:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:reservoirManagement:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="reservoirManagementList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="水库名称" align="center" prop="reservoirName"/>
+      <el-table-column label="上报时间" align="center" prop="reportingTime" width="180"/>
+      <el-table-column label="水库类型" align="center" prop="reservoirType"/>
+      <el-table-column label="昨日水位" align="center" prop="yesterdayWaterLevel"/>
+      <el-table-column label="今日水位" align="center" prop="todayWaterLevel"/>
+      <el-table-column label="当前水位" align="center" prop="currentWaterLevel"/>
+      <el-table-column label="水势" align="center" prop="waterPotential">
+        <template slot-scope="scope">
+          <span v-if="scope.row.waterPotential === '0'">涨</span>
+          <span v-else-if="scope.row.waterPotential === '1'">平</span>
+          <span v-else-if="scope.row.waterPotential === '2'">落</span>
+          <span v-else>未知</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="汛限水位" align="center" prop="floodLimitLevel"/>
+      <el-table-column label="超汛限水位" align="center" prop="aboveFloodLimit"/>
+      <el-table-column label="是否超汛限" align="center" prop="isFloodLimitExceeded">
+        <template slot-scope="scope">
+          {{ scope.row.isFloodLimitExceeded === '0' ? '否' : '是' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="正常水位" align="center" prop="waterLevel"/>
+      <el-table-column label="超正常水位" align="center" prop="supernormalWaterLevel"/>
+      <el-table-column label="历史最高水位" align="center" prop="historyHightWaterLevel"/>
+      <el-table-column label="出现时间" align="center" prop="timeOccurrence" width="180"/>
+      <el-table-column label="历史同期日均值" align="center" prop="historyDailyAveragePeriod"/>
+      <el-table-column label="蓄水量" align="center" prop="impoundment"/>
+      <el-table-column label="入库流量" align="center" prop="inboundFlow"/>
+      <el-table-column label="出库流量" align="center" prop="outboundFlow"/>
+      <el-table-column label="坝型" align="center" prop="damType"/>
+      <el-table-column label="主要功能" align="center" prop="mainFunction"/>
+      <el-table-column label="所属水系" align="center" prop="drainageSystem"/>
+      <el-table-column label="所属河流" align="center" prop="owningStream"/>
+      <el-table-column label="所属市县区" align="center" prop="cityCountyDistrict"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column label="管理单位" align="center" prop="managementUnit"/>
+      <el-table-column label="联系电话" align="center" prop="managementNumber"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人姓名" align="center" prop="createName"/>
+      <el-table-column label="修改人姓名" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:reservoirManagement:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:reservoirManagement:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-水库管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="水库名称" prop="reservoirName">
+              <el-input v-model="form.reservoirName" placeholder="请输入水库名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="上报时间" prop="reportingTime">
+              <el-date-picker clearable size="small"
+                              v-model="form.reportingTime"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择上报时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="水库类型" prop="reservoirType">
+              <el-input v-model="form.reservoirType" placeholder="请输入水库类型(可输入: 小I型、小II型、中型、大I型、大II型)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="当前水位" prop="currentWaterLevel">
+              <el-input v-model="form.currentWaterLevel" placeholder="请输入当前水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="昨日水位" prop="yesterdayWaterLevel">
+              <el-input v-model="form.yesterdayWaterLevel" placeholder="请输入昨日水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="今日水位" prop="todayWaterLevel">
+              <el-input v-model="form.todayWaterLevel" placeholder="请输入今日水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="水势" prop="waterPotential">
+              <el-select v-model="form.waterPotential" placeholder="请选择水势" clearable>
+                <el-option value="0" label="涨"></el-option>
+                <el-option value="1" label="平"></el-option>
+                <el-option value="2" label="落"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.waterPotential" placeholder="请输入水势" maxlength="50"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="汛限水位" prop="floodLimitLevel">
+              <el-input v-model="form.floodLimitLevel" placeholder="请输入汛限水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="是否超汛限" prop="isFloodLimitExceeded">
+              <el-select v-model="form.isFloodLimitExceeded" placeholder="请选择是否超汛限" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.isFloodLimitExceeded" placeholder="请输入是否超汛限" maxlength="10"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="超汛限水位" prop="aboveFloodLimit">
+              <el-input v-model="form.aboveFloodLimit" placeholder="请输入超汛限水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="正常水位" prop="waterLevel">
+              <el-input v-model="form.waterLevel" placeholder="请输入正常水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="超正常水位" prop="supernormalWaterLevel">
+              <el-input v-model="form.supernormalWaterLevel" placeholder="请输入超正常水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="历史最高水位" prop="historyHightWaterLevel">
+              <el-input v-model="form.historyHightWaterLevel" placeholder="请输入历史最高水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="历史同期日均值" prop="historyDailyAveragePeriod">
+              <el-input v-model="form.historyDailyAveragePeriod" placeholder="请输入历史同期日均值(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="出现时间" prop="timeOccurrence">
+              <el-date-picker clearable size="small"
+                              v-model="form.timeOccurrence"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择出现时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="蓄水量" prop="impoundment">
+              <el-input v-model="form.impoundment" placeholder="请输入蓄水量(单位: 万m³)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="入库流量" prop="inboundFlow">
+              <el-input v-model="form.inboundFlow" placeholder="请输入入库流量(单位: m³/s)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="出库流量" prop="outboundFlow">
+              <el-input v-model="form.outboundFlow" placeholder="请输入出库流量(单位: m³/s)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="坝型" prop="damType">
+              <el-input v-model="form.damType" placeholder="请输入坝型(可输入: 土坝、重力坝、拱坝)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="主要功能" prop="mainFunction">
+              <el-input v-model="form.mainFunction" placeholder="请输入主要功能(可输入: 防洪、灌溉、发电、供水)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属水系" prop="drainageSystem">
+              <el-input v-model="form.drainageSystem" placeholder="请输入所属水系" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属河流" prop="owningStream">
+              <el-input v-model="form.owningStream" placeholder="请输入所属河流" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="管理单位" prop="managementUnit">
+              <el-input v-model="form.managementUnit" placeholder="请输入管理单位" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话" prop="managementNumber">
+              <el-input v-model="form.managementNumber" placeholder="请输入联系电话" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属市县区" prop="cityCountyDistrict">
+              <el-input v-model="form.cityCountyDistrict" placeholder="请输入所属市县区" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listReservoirManagement,
+  getReservoirManagement,
+  delReservoirManagement,
+  addReservoirManagement,
+  updateReservoirManagement
+} from "@/api/data/digitalwaterconservancy/reservoirManagement";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon, checkNonnegativeInteger, validPhoneMobile} from "@/api/rules/rules";
+
+export default {
+  name: "ReservoirManagement",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水库管理表格数据
+      reservoirManagementList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 修改人姓名时间范围
+      daterangeReportingTime: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        reservoirName: null,
+        reportingTime: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        reservoirName:[
+          {required: true, message: "水库名称不能为空", trigger: "blur"}
+        ],
+        yesterdayWaterLevel: [
+          {required: true, message: "昨日水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        todayWaterLevel: [
+          {required: true, message: "今日水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        currentWaterLevel: [
+          {required: true, message: "当前水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        floodLimitLevel:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        waterLevel:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        historyHightWaterLevel:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        historyDailyAveragePeriod:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        impoundment:[
+          {required: true, message: "蓄水量不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        inboundFlow:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        outboundFlow:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: "blur"},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: "blur"},
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        managementUnit: [
+          {required: true, message: "管理单位不能为空", trigger: "blur"}
+        ],
+        managementNumber: [
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询水库管理列表 */
+    getList() {
+      this.loading = true;
+      this.queryParams.params = {};
+      if (null != this.daterangeReportingTime && '' != this.daterangeReportingTime) {
+        this.queryParams.params["beginReportingTime"] = this.daterangeReportingTime[0];
+        this.queryParams.params["endReportingTime"] = this.daterangeReportingTime[1];
+      }
+      listReservoirManagement(this.queryParams).then(response => {
+        this.reservoirManagementList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        reservoirName: null,
+        reportingTime: null,
+        reservoirType: null,
+        yesterdayWaterLevel: null,
+        todayWaterLevel: null,
+        currentWaterLevel: null,
+        waterPotential: null,
+        floodLimitLevel: null,
+        aboveFloodLimit: null,
+        isFloodLimitExceeded: null,
+        waterLevel: null,
+        supernormalWaterLevel: null,
+        historyHightWaterLevel: null,
+        timeOccurrence: null,
+        historyDailyAveragePeriod: null,
+        impoundment: null,
+        inboundFlow: null,
+        outboundFlow: null,
+        damType: null,
+        mainFunction: null,
+        drainageSystem: null,
+        owningStream: null,
+        cityCountyDistrict: null,
+        deptId: null,
+        longitude: null,
+        latitude: null,
+        managementUnit: null,
+        managementNumber: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.daterangeReportingTime = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水库管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getReservoirManagement(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水库管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateReservoirManagement(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addReservoirManagement(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水库管理编号为"' + ids + '"的数据项?').then(function () {
+        return delReservoirManagement(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/reservoirManagement/export', {
+        ...this.queryParams
+      }, `reservoirManagement_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 526 - 0
data-ui/src/views/data/digitalwaterconservancy/riverLength/index.vue

@@ -0,0 +1,526 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="姓名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="电话" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入电话"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:riverLength:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:riverLength:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:riverLength:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:riverLength:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="riverLengthList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="姓名" align="center" prop="name"/>
+      <el-table-column label="电话" align="center" prop="phone"/>
+      <el-table-column label="巡查次数" align="center" prop="patrolNum"/>
+      <el-table-column label="巡查里程" align="center" prop="patrolMileage"/>
+      <el-table-column label="河流名称" align="center" prop="riverName"/>
+      <el-table-column label="所属行政区" align="center" prop="district"/>
+      <el-table-column label="河流级别" align="center" prop="riverLevel"/>
+      <el-table-column label="河流长度" align="center" prop="riverLength"/>
+      <el-table-column label="河流起点" align="center" prop="riverStart"/>
+      <el-table-column label="河流终点" align="center" prop="riverEnd"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createName"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handlePatrol(scope.row)"
+            v-hasPermi="['data:riverLength:edit']"
+          >巡查
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:riverLength:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:riverLength:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-河长管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="135px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="form.name" placeholder="请输入姓名" maxlength = "20"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="电话" prop="phone">
+              <el-input v-model="form.phone" placeholder="请输入电话" maxlength = "20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="巡查次数(次)" prop="patrolNum">
+              <el-input v-model="form.patrolNum" placeholder="请输入巡查次数" maxlength = "10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="巡查里程(公里)" prop="patrolMileage">
+              <el-input v-model="form.patrolMileage" placeholder="请输入巡查里程" maxlength = "10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="河流名称" prop="riverName">
+              <el-input v-model="form.riverName" placeholder="请输入河流名称" maxlength = "50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属行政区" prop="district">
+              <el-input v-model="form.district" placeholder="请输入所属行政区" maxlength = "50"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="河流级别" prop="riverLevel">
+              <el-input v-model="form.riverLevel" placeholder="请输入河流级别" maxlength = "50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="河流长度(公里)" prop="riverLength">
+              <el-input v-model="form.riverLength" placeholder="请输入河流长度" maxlength = "10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="河流起点" prop="riverStart">
+              <el-input v-model="form.riverStart" placeholder="请输入河流起点" maxlength = "50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="河流终点" prop="riverEnd">
+              <el-input v-model="form.riverEnd" placeholder="请输入河流终点" maxlength = "50"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 河长巡查轨迹弹窗 -->
+    <el-dialog title="添加河长巡查轨迹" :visible.sync="patrolOpen" width="500px" append-to-body class="form-style">
+      <el-form ref="patrolForm" :model="patrolForm" :rules="patrolRules" label-width="80px">
+        <el-form-item label="河长姓名" prop="riverName">
+          <el-input v-model="patrolForm.riverName" placeholder="请输入河长姓名" readonly/>
+        </el-form-item>
+
+        <el-form-item label="巡查时间" prop="patrolTime">
+          <el-date-picker clearable
+                          v-model="patrolForm.patrolTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择巡查时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="任务轨迹" prop="patrolTrajectory" @dblclick.native="showMapTwo">
+          <el-input v-model="patrolForm.patrolTrajectory" placeholder="鼠标双击选择任务轨迹"  maxlength="32"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="patrolSubmitForm">确 定</el-button>
+        <el-button @click="patroLCancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
+  </div>
+</template>
+
+<script>
+import {
+  listRiverLength,
+  getRiverLength,
+  delRiverLength,
+  addRiverLength,
+  updateRiverLength, addTrack
+} from "@/api/data/digitalwaterconservancy/riverLength";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {treeselect} from "@/api/system/dept";
+import {checkNonnegativeInteger, checkPositiveDecimal, validPhoneMobile} from "@/api/rules/rules";
+import ISuperMap from "@/views/data/common/ISuperMap.vue";
+
+export default {
+  name: "RiverLength",
+  components: {ISuperMap, Treeselect},
+  data() {
+    return {
+      ISuperMapvisible: false,
+      sign: 2,
+      patrolOpen: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-河长管理表格数据
+      riverLengthList: [],
+      deptOptions: undefined,
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        name: null,
+        phone: null,
+        patrolNum: null,
+        patrolMileage: null,
+        riverName: null,
+        district: null,
+        riverLevel: null,
+        riverLength: null,
+        riverStart: null,
+        riverEnd: null
+      },
+      // 表单参数
+      form: {},
+      patrolForm:{},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: "姓名不能为空", trigger: "blur"}
+        ],
+        phone: [
+          {required: true, message: "电话不能为空", trigger: "blur"},
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+        patrolNum: [
+          {required: true, message: "巡查次数不能为空", trigger: "blur"},
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        patrolMileage: [
+          {required: true, message: "巡查里程不能为空", trigger: "blur"},
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        riverName: [
+          {required: true, message: "河流名称不能为空", trigger: "blur"}
+        ],
+        district: [
+          {required: true, message: "所属行政区不能为空", trigger: "blur"}
+        ],
+        riverLevel: [
+          {required: true, message: "河流级别不能为空", trigger: "blur"}
+        ],
+        riverLength: [
+          {required: true, message: "河流长度不能为空", trigger: "blur"},
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        riverStart: [
+          {required: true, message: "河流起点不能为空", trigger: "blur"}
+        ],
+        riverEnd: [
+          {required: true, message: "河流终点不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "blur"}
+        ],
+      },
+      patrolRules: {
+        riverName: [
+          {required: true, message: "河长姓名不能为空", trigger: "blur"}
+        ],
+        patrolTime: [
+          {required: true, message: "巡查时间不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    patrolSubmitForm(){
+      this.$refs.patrolForm.validate(valid => {
+        if (valid) {
+          addTrack(this.patrolForm).then(response => {
+            this.$modal.msgSuccess("新增成功");
+            this.patrolOpen = false;
+            this.getList();
+          })
+        }
+      });
+    },
+    patroLCancel(){
+      this.patrolOpen = false;
+      this.patrolForm = {}
+    },
+    send(val) {
+      if (val===true){
+        this.ISuperMapvisible = false;
+        return;
+      }
+      if (this.sign === 1) {
+        this.patrolForm.longitude = val.longitude;
+        this.patrolForm.latitude = val.latitude;
+      }
+      if (this.sign === 2 || this.sign === 3) this.patrolForm.patrolTrajectory = val.xiantude;
+      this.ISuperMapvisible = false
+    },
+    showMapTwo() {
+      this.ISuperMapvisible = true;
+      setTimeout(() => {
+        this.$nextTick(() => {
+          this.$refs.ISuperMap.init(this.sign, {
+            longitude: this.patrolForm.longitude,
+            latitude: this.patrolForm.latitude,
+            xiantude: this.patrolForm.patrolTrajectory
+          }," ","")
+        })
+      }, 500)
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询水利-河长管理列表 */
+    getList() {
+      this.loading = true;
+      listRiverLength(this.queryParams).then(response => {
+        this.riverLengthList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        name: null,
+        phone: null,
+        patrolNum: null,
+        patrolMileage: null,
+        riverName: null,
+        district: null,
+        riverLevel: null,
+        riverLength: null,
+        riverStart: null,
+        riverEnd: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-河长管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRiverLength(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-河长管理";
+      });
+    },
+    /** 巡查按钮操作 */
+    handlePatrol(row) {
+      this.reset();
+      //设置选中的河长id
+      this.patrolForm = {riverId: row.id, riverName: row.name};
+      //打开轨迹巡查弹窗
+      this.patrolOpen = true;
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRiverLength(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRiverLength(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删选中的数据项?').then(function () {
+        return delRiverLength(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/riverLength/export', {
+        ...this.queryParams
+      }, `河长管理_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 533 - 0
data-ui/src/views/data/digitalwaterconservancy/riverMonitoring/index.vue

@@ -0,0 +1,533 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="站址名称" prop="siteName">
+        <el-input
+          v-model="queryParams.siteName"
+          placeholder="请输入站址名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="river_monitoringList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="站址名称" align="center" prop="siteName"/>
+      <el-table-column label="上报时间" align="center" prop="reportingTime" width="180" />
+      <el-table-column label="昨日水位" align="center" prop="yesterdayWaterLevel"/>
+      <el-table-column label="今日水位" align="center" prop="todayWaterLevel"/>
+      <el-table-column label="当前水位" align="center" prop="currentWaterLevel"/>
+      <el-table-column label="警戒水位" align="center" prop="warningWaterLevel"/>
+      <el-table-column label="超警戒水位" align="center" prop="overwarningLevel"/>
+      <el-table-column label="是否超警戒" align="center" prop="overAlertOrNot">
+        <template slot-scope="scope">
+          <span>{{ scope.row.overAlertOrNot === '0' ? '否' : '是' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="水势" align="center" prop="waterPotential">
+        <template slot-scope="scope">
+          <span v-if="scope.row.waterPotential === '0'">涨</span>
+          <span v-else-if="scope.row.waterPotential === '1'">平</span>
+          <span v-else-if="scope.row.waterPotential === '2'">落</span>
+          <span v-else>未知</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="最大变幅" align="center" prop="maximumAmplitude"/>
+      <el-table-column label="是否超变幅" align="center" prop="isOverranges">
+        <template slot-scope="scope">
+          <span>{{ scope.row.isOverranges === '0' ? '否' : '是' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="截面流量" align="center" prop="sectionFlow"/>
+      <el-table-column label="所属水系" align="center" prop="drainageSystem"/>
+      <el-table-column label="所属河流" align="center" prop="owningStream"/>
+      <el-table-column label="所属市县区" align="center" prop="cityCountyDistrict"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column label="管理单位" align="center" prop="managementUnit"/>
+      <el-table-column label="联系电话" align="center" prop="managementNumber"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人姓名" align="center" prop="createName"/>
+      <el-table-column label="修改人姓名" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-河道监测站管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="站址名称" prop="siteName">
+              <el-input v-model="form.siteName" placeholder="请输入站址名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="上报时间" prop="reportingTime">
+              <el-date-picker clearable
+                              v-model="form.reportingTime"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择上报时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="昨日水位" prop="yesterdayWaterLevel">
+              <el-input v-model="form.yesterdayWaterLevel" placeholder="请输入昨日水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="今日水位" prop="todayWaterLevel">
+              <el-input v-model="form.todayWaterLevel" placeholder="请输入今日水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="当前水位" prop="currentWaterLevel">
+              <el-input v-model="form.currentWaterLevel" placeholder="请输入当前水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="警戒水位" prop="warningWaterLevel">
+              <el-input v-model="form.warningWaterLevel" placeholder="请输入警戒水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="是否超警戒" prop="overAlertOrNot">
+              <el-select v-model="form.overAlertOrNot" placeholder="请选择是否超警戒" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.overAlertOrNot" placeholder="请输入是否超警戒" maxlength="10"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="超警戒水位" prop="overwarningLevel">
+              <el-input v-model="form.overwarningLevel" placeholder="请输入超警戒水位(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="水势" prop="waterPotential">
+              <el-select v-model="form.waterPotential" placeholder="请选择水势" clearable>
+                <el-option value="0" label="涨"></el-option>
+                <el-option value="1" label="平"></el-option>
+                <el-option value="2" label="落"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.waterPotential" placeholder="请输入水势" maxlength="50"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="最大变幅" prop="maximumAmplitude">
+              <el-input v-model="form.maximumAmplitude" placeholder="请输入最大变幅(单位: 米)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="是否超变幅" prop="isOverranges">
+              <el-select v-model="form.isOverranges" placeholder="请选择是否超变幅" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+<!--              <el-input v-model="form.isOverranges" placeholder="请输入是否超变幅" maxlength="10"/>-->
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="截面流量" prop="sectionFlow">
+              <el-input v-model="form.sectionFlow" placeholder="请输入截面流量(单位: m³/s)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属水系" prop="drainageSystem">
+              <el-input v-model="form.drainageSystem" placeholder="请输入所属水系" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属河流" prop="owningStream">
+              <el-input v-model="form.owningStream" placeholder="请输入所属河流" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="管理单位" prop="managementUnit">
+              <el-input v-model="form.managementUnit" placeholder="请输入管理单位" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话" prop="managementNumber">
+              <el-input v-model="form.managementNumber" placeholder="请输入联系电话" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属市县区" prop="cityCountyDistrict">
+              <el-input v-model="form.cityCountyDistrict" placeholder="请输入所属市县区" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listRiver_monitoring,
+  getRiver_monitoring,
+  delRiver_monitoring,
+  addRiver_monitoring,
+  updateRiver_monitoring
+} from "@/api/data/digitalwaterconservancy/riverMonitoring";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon, checkNonnegativeInteger, validPhoneMobile} from "@/api/rules/rules";
+
+export default {
+  name: "River_monitoring",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-河道监测站管理表格数据
+      river_monitoringList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        siteName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        siteName: [
+          {required: true, message: "站址名称不能为空", trigger: "blur"}
+        ],
+        reportingTime: [
+          {required: true, message: "上报时间不能为空", trigger: "blur"}
+        ],
+        yesterdayWaterLevel: [
+          {required: true, message: "昨日水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        todayWaterLevel: [
+          {required: true, message: "今日水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        currentWaterLevel: [
+          {required: true, message: "当前水位不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        warningWaterLevel:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        maximumAmplitude:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        sectionFlow:[
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: "blur"},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: "blur"},
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        managementUnit: [
+          {required: true, message: "管理单位不能为空", trigger: "blur"}
+        ],
+        managementNumber: [
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询水利-河道监测站管理列表 */
+    getList() {
+      this.loading = true;
+      listRiver_monitoring(this.queryParams).then(response => {
+        this.river_monitoringList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        siteName: null,
+        reportingTime: null,
+        yesterdayWaterLevel: null,
+        todayWaterLevel: null,
+        currentWaterLevel: null,
+        warningWaterLevel: null,
+        overwarningLevel: null,
+        overAlertOrNot: null,
+        waterPotential: null,
+        maximumAmplitude: null,
+        isOverranges: null,
+        sectionFlow: null,
+        drainageSystem: null,
+        owningStream: null,
+        cityCountyDistrict: null,
+        deptId: null,
+        longitude: null,
+        latitude: null,
+        managementUnit: null,
+        managementNumber: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-河道监测站管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRiver_monitoring(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-河道监测站管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRiver_monitoring(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRiver_monitoring(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水利-河道监测站管理编号为"' + ids + '"的数据项?').then(function () {
+        return delRiver_monitoring(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/river/monitoring/export', {
+        ...this.queryParams
+      }, `river_monitoring_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 336 - 0
data-ui/src/views/data/digitalwaterconservancy/riverStrategy/index.vue

@@ -0,0 +1,336 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:riverStrategy:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:riverStrategy:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:riverStrategy:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:riverStrategy:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="riverStrategyList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="名称" align="center" prop="name"/>
+      <el-table-column label="河长名称" align="center" prop="rivername"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createName"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:riverStrategy:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:riverStrategy:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-一河一策对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" maxlength = "50"/>
+        </el-form-item>
+        <el-form-item label="河长" prop="riverlengthId">
+          <el-select v-model="form.riverlengthId" placeholder="请选择人员类型">
+            <el-option
+              v-for="dict in riverLengthList"
+              :key="dict.id"
+              :label="dict.name"
+              :value="dict.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="内容" prop="content">
+          <el-input v-model="form.content" type="textarea" placeholder="请输入内容" maxlength="500"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listRiverStrategy,
+  getRiverStrategy,
+  delRiverStrategy,
+  addRiverStrategy,
+  updateRiverStrategy,
+  listRiverLength
+} from "@/api/data/digitalwaterconservancy/riverStrategy";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {treeselect} from "@/api/system/dept";
+
+export default {
+  name: "RiverStrategy",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-一河一策表格数据
+      riverStrategyList: [],
+      deptOptions: undefined,
+      riverLengthList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        name: null,
+        riverlengthId: null,
+        content: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: "名称不能为空", trigger: "blur"}
+        ],
+        riverlengthId: [
+          {required: true, message: "河长不能为空", trigger: "blur"}
+        ],
+        content: [
+          {required: true, message: "内容不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+    this.getRiverLength();
+  },
+  methods: {
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    //查询河长列表
+    getRiverLength(){
+      listRiverLength().then(response => {
+        console.log(response)
+        this.riverLengthList = response.rows
+      })
+    },
+    /** 查询水利-一河一策列表 */
+    getList() {
+      this.loading = true;
+      listRiverStrategy(this.queryParams).then(response => {
+        this.riverStrategyList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        name: null,
+        riverlengthId: null,
+        content: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-一河一策";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRiverStrategy(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-一河一策";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRiverStrategy(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRiverStrategy(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删选中的数据项?').then(function () {
+        return delRiverStrategy(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/riverStrategy/export', {
+        ...this.queryParams
+      }, `一河一策_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 530 - 0
data-ui/src/views/data/digitalwaterconservancy/station/index.vue

@@ -0,0 +1,530 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="站址名称" prop="siteName">
+        <el-input
+          v-model="queryParams.siteName"
+          placeholder="请输入站址名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="管理单位" prop="managementUnit">
+        <el-input
+          v-model="queryParams.managementUnit"
+          placeholder="请输入管理单位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="stationList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="站址名称" align="center" prop="siteName"/>
+      <el-table-column label="上报时间" align="center" prop="reportingTime" width="180" />
+
+      <el-table-column label="是否降雨" align="center" prop="isRainfall">
+        <template slot-scope="scope">
+          <span>{{ scope.row.isRainfall === '0' ? '否' : '是' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="降雨类型" align="center" prop="rainfallType">
+        <template slot-scope="scope">
+          <span v-if="scope.row.rainfallType === '0'">无雨</span>
+          <span v-else-if="scope.row.rainfallType === '1'">小雨</span>
+          <span v-else-if="scope.row.rainfallType === '2'">中雨</span>
+          <span v-else-if="scope.row.rainfallType === '3'">大雨</span>
+          <span v-else-if="scope.row.rainfallType === '4'">暴雨</span>
+          <span v-else-if="scope.row.rainfallType === '5'">大暴雨</span>
+          <span v-else-if="scope.row.rainfallType === '6'">特大暴雨</span>
+          <span v-else>未知</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="超警戒雨量" align="center" prop="overAlarmRainfall"/>
+      <el-table-column label="是否超警戒" align="center" prop="isOverAlarm">
+        <template slot-scope="scope">
+          <span>{{ scope.row.isOverAlarm === '0'? '否' : '是' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="实时雨量" align="center" prop="realTimeRainfall"/>
+      <el-table-column label="昨日雨量" align="center" prop="yesterdayRainfall"/>
+      <el-table-column label="近2小时雨量" align="center" prop="nearlyTwoRainfall"/>
+      <el-table-column label="近24小时雨量" align="center" prop="nearlyTwentyFourRainfall"/>
+      <el-table-column label="近48小时雨量" align="center" prop="nearlyFortyEightRainfall"/>
+      <el-table-column label="所属市县区" align="center" prop="cityCountyDistrict"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column label="管理单位" align="center" prop="managementUnit"/>
+      <el-table-column label="联系电话" align="center" prop="managementNumber"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人姓名" align="center" prop="createName"/>
+      <el-table-column label="修改人姓名" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-雨量站管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="站址名称" prop="siteName">
+              <el-input v-model="form.siteName" placeholder="请输入站址名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="上报时间" prop="reportingTime">
+              <el-date-picker clearable
+                              v-model="form.reportingTime"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择上报时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="是否降雨" prop="isRainfall">
+              <el-select v-model="form.isRainfall" placeholder="请选择是否降雨" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="降雨类型" prop="rainfallType">
+              <el-select v-model="form.rainfallType" placeholder="请选择降雨类型" clearable>
+                <el-option label="无雨" value="0"></el-option>
+                <el-option label="小雨" value="1"></el-option>
+                <el-option label="中雨" value="2"></el-option>
+                <el-option label="大雨" value="3"></el-option>
+                <el-option label="暴雨" value="4"></el-option>
+                <el-option label="大暴雨" value="5"></el-option>
+                <el-option label="特大暴雨" value="6"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="超警戒雨量" prop="overAlarmRainfall">
+              <el-input v-model="form.overAlarmRainfall" placeholder="请输入超警戒雨量(单位: mm)" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="是否超警戒" prop="isOverAlarm">
+              <el-select v-model="form.isOverAlarm" placeholder="请选择是否超警戒" clearable>
+                <el-option value="0" label="否"></el-option>
+                <el-option value="1" label="是"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="实时雨量" prop="realTimeRainfall">
+              <el-input v-model="form.realTimeRainfall" placeholder="请输入实时雨量(单位: mm)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="昨日雨量" prop="yesterdayRainfall">
+              <el-input v-model="form.yesterdayRainfall" placeholder="请输入昨日雨量(单位: mm)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="近2小时雨量" prop="nearlyTwoRainfall">
+              <el-input v-model="form.nearlyTwoRainfall" placeholder="请输入近2小时雨量(单位: mm)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="近24小时雨量" prop="nearlyTwentyFourRainfall">
+              <el-input v-model="form.nearlyTwentyFourRainfall" placeholder="请输入近24小时雨量(单位: mm)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="近48小时雨量" prop="nearlyFortyEightRainfall">
+              <el-input v-model="form.nearlyFortyEightRainfall" placeholder="请输入近48小时雨量(单位: mm)" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属市县区" prop="cityCountyDistrict">
+              <el-input v-model="form.cityCountyDistrict" placeholder="请输入所属市县区" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="管理单位" prop="managementUnit">
+              <el-input v-model="form.managementUnit" placeholder="请输入管理单位" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话" prop="managementNumber">
+              <el-input v-model="form.managementNumber" placeholder="请输入联系电话" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listStation,
+  getStation,
+  delStation,
+  addStation,
+  updateStation
+} from "@/api/data/digitalwaterconservancy/station";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon, checkNonnegativeInteger, validPhoneMobile} from "@/api/rules/rules";
+
+export default {
+  name: "Station",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-雨量站管理表格数据
+      stationList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        siteName: null,
+        managementUnit: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        siteName: [
+          {required: true, message: "站址名称不能为空", trigger: "blur"}
+        ],
+        reportingTime: [
+          {required: true, message: "上报时间不能为空", trigger: "blur"}
+        ],
+        isRainfall: [
+          {required: true, message: "是否降雨不能为空", trigger: "blur"}
+        ],
+        rainfallType: [
+          {required: true, message: "降雨类型不能为空", trigger: "change"}
+        ],
+        realTimeRainfall: [
+          {required: true, message: "实时雨量不能为空", trigger: "blur"}
+        ],
+        yesterdayRainfall: [
+          {required: true, message: "昨日雨量不能为空", trigger: "blur"}
+        ],
+        nearlyTwoRainfall: [
+          {required: true, message: "近2小时雨量不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        nearlyTwentyFourRainfall: [
+          {required: true, message: "近24小时雨量不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        nearlyFortyEightRainfall: [
+          {required: true, message: "近48小时雨量不能为空", trigger: "blur"},
+          {validator:checkNonnegativeInteger, trigger: 'blur'}
+        ],
+       /* cityCountyDistrict: [
+          {required: true, message: "所属市县区不能为空", trigger: "blur"}
+        ],*/
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: "blur"},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: "blur"},
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        managementUnit: [
+          {required: true, message: "管理单位不能为空", trigger: "blur"}
+        ],
+        managementNumber: [
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询水利-雨量站管理列表 */
+    getList() {
+      this.loading = true;
+      listStation(this.queryParams).then(response => {
+        this.stationList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        siteName: null,
+        reportingTime: null,
+        isRainfall: null,
+        overAlarmRainfall: null,
+        isOverAlarm: null,
+        rainfallType: null,
+        realTimeRainfall: null,
+        yesterdayRainfall: null,
+        nearlyTwoRainfall: null,
+        nearlyTwentyFourRainfall: null,
+        nearlyFortyEightRainfall: null,
+        cityCountyDistrict: null,
+        deptId: null,
+        longitude: null,
+        latitude: null,
+        managementUnit: null,
+        managementNumber: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-雨量站管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getStation(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-雨量站管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateStation(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addStation(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水利-雨量站管理编号为"' + ids + '"的数据项?').then(function () {
+        return delStation(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/rainfall/station/export', {
+        ...this.queryParams
+      }, `station_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 294 - 0
data-ui/src/views/data/digitalwaterconservancy/summary/index.vue

@@ -0,0 +1,294 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"  @submit.native.prevent>
+      <el-form-item prop="deptId">
+        <template slot="label">
+          <span @click="changeQueryType" v-if="queryParams.deptName == 0">本级及下级</span>
+          <span @click="changeQueryType" v-if="queryParams.deptName == 1">只查询本级</span>
+        </template>
+        <treeselect v-model="queryParams.deptId" :options="deptOptions" multiple:false :show-count="true"
+                    placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"
+                    style="width: 240px"/>
+        <el-input v-model="queryParams.deptName" v-if="false"/>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:summary:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:summary:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:summary:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:summary:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="summaryList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="概要" align="center" prop="summary"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:summary:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:summary:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-水利工程概要对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="概要" prop="summary">
+          <el-input v-model="form.summary" type="textarea" placeholder="请输入内容" maxlength="4000"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listSummary, getSummary, delSummary, addSummary, updateSummary} from "@/api/data/digitalwaterconservancy/summary";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {treeselect} from "@/api/system/dept";
+
+export default {
+  name: "Summary",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      deptOptions: undefined,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-水利工程概要表格数据
+      summaryList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: 0,
+        createName: null,
+        updateName: null,
+        summary: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    // 点击按钮修改是否只查询本级部门用户
+    changeQueryType() {
+      this.queryParams.deptName = this.queryParams.deptName == 0 ? 1 : 0;
+    },
+    /** 查询水利-水利工程概要列表 */
+    getList() {
+      this.loading = true;
+      listSummary(this.queryParams).then(response => {
+        this.summaryList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        summary: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-水利工程概要";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSummary(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-水利工程概要";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSummary(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSummary(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除所选数据项?').then(function () {
+        return delSummary(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('sooka-sponest-center-data/summary/export', {
+        ...this.queryParams
+      }, `水利工程概要_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 503 - 0
data-ui/src/views/data/digitalwaterconservancy/waterConservancy/index.vue

@@ -0,0 +1,503 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="工程名称" prop="projectName">
+        <el-input
+          v-model="queryParams.projectName"
+          placeholder="请输入工程名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterConservancy:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterConservancy:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterConservancy:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterConservancy:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterConservancyList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="工程名称" align="center" prop="projectName"/>
+      <el-table-column label="建设时间" align="center" prop="constructionTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.constructionTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="竣工时间" align="center" prop="timeCompletion" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.timeCompletion, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="工程总投资" align="center" prop="totalProjectInvestment"/>
+      <el-table-column label="工程类型" align="center" prop="engineeringType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.engineering_type" :value="scope.row.engineeringType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="工程等级" align="center" prop="engineeringGrade">
+        <template slot-scope="scope">
+          <span v-if="scope.row.engineeringGrade === '0'">大型</span>
+          <span v-else-if="scope.row.engineeringGrade === '1'">中型</span>
+          <span v-else-if="scope.row.engineeringGrade === '2'">小型</span>
+          <span v-else>未知</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="安全鉴定情况" align="center" prop="safetyAppraisalSituation"/>
+      <el-table-column label="除险加固定情况" align="center" prop="clearFixedCondition"/>
+      <el-table-column label="管理单位" align="center" prop="managementUnit"/>
+      <el-table-column label="负责人" align="center" prop="personCharge"/>
+      <el-table-column label="联系电话" align="center" prop="contactNumber"/>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterConservancy:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterConservancy:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利工程对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="工程名称" prop="projectName">
+              <el-input v-model="form.projectName" placeholder="请输入工程名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="工程总投资" prop="totalProjectInvestment">
+              <el-input v-model="form.totalProjectInvestment" placeholder="请输入工程总投资" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="建设时间" prop="constructionTime">
+              <el-date-picker clearable size="small"
+                              v-model="form.constructionTime"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择建设时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="竣工时间" prop="timeCompletion">
+              <el-date-picker clearable size="small"
+                              v-model="form.timeCompletion"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择竣工时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="工程类型" prop="engineeringType">
+              <el-select v-model="form.engineeringType" placeholder="请选择工程类型">
+                <el-option
+                  v-for="dict in dict.type.engineering_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="工程等级" prop="engineeringGrade">
+              <el-select v-model="form.engineeringGrade" placeholder="请选择工程等级" clearable>
+                <el-option label="大型" value="0"></el-option>
+                <el-option label="中型" value="1"></el-option>
+                <el-option label="小型" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="除险加固定情况" prop="clearFixedCondition">
+              <el-input v-model="form.clearFixedCondition" placeholder="请输入除险加固定情况" maxlength="200"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="安全鉴定情况" prop="safetyAppraisalSituation">
+              <el-input v-model="form.safetyAppraisalSituation" placeholder="请输入安全鉴定情况" maxlength="200"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="负责人" prop="personCharge">
+              <el-input v-model="form.personCharge" placeholder="请输入负责人" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话" prop="contactNumber">
+              <el-input v-model="form.contactNumber" placeholder="请输入联系电话" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="管理单位" prop="managementUnit">
+              <el-input v-model="form.managementUnit" placeholder="请输入管理单位" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="24">
+            <el-form-item label="视频">
+              <file-upload :limit="1" :file-size="50" v-model="form.video"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="24">
+            <el-form-item label="图片" prop="picture">
+<!--              <ImageUpload ref="ImageUpload" :limit="5" :fileType="['png', 'jpg', 'jpeg']" :value="form.picture"-->
+<!--                           @input="getUrl"></ImageUpload>-->
+              <DataImageUpload ref="ImageUpload" :fileType="['png', 'jpg', 'jpeg']" :value="form.picture"
+                               @input="getUrl"></DataImageUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
+<!--        http://116.142.80.13:8081/group1/M00/00/01/wKgKC2f4ZKeAUnlGACMOtw0yhJ0178.jpg,
+http://116.142.80.13:8081/group1/M00/00/01/wKgKC2f4ZKeAEDLXAGQ5SqYmJpk088.jpg,
+http://116.142.80.13:8081/group1/M00/00/01/wKgKC2f4ZKuAT5_AAAMUcSwCPtw680.png,
+http://116.142.80.13:8081/group1/M00/00/01/wKgKC2f4ZKuAK5EzAAPcw2ge36s112.png,
+http://116.142.80.13:8081/group1/M00/00/01/wKgKC2f4ZKuAas3QAALr4mwY9fU944.png-->
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterConservancy,
+  getWaterConservancy,
+  delWaterConservancy,
+  addWaterConservancy,
+  updateWaterConservancy
+} from "@/api/data/digitalwaterconservancy/waterConservancy";
+import ISuperMap from "@/views/data/common/ISuperMap.vue";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon} from "@/api/rules/rules";
+import DataImageUpload from "@/components/ImageUpload/dataUpload.vue";
+
+export default {
+  name: "WaterConservancy",
+  components: {DataImageUpload, Treeselect, ISuperMap},
+  dicts: ['engineering_type'],
+  data() {
+    return {
+      deptOptions: undefined,
+      sign: 1,
+      ISuperMapvisible: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利工程表格数据
+      waterConservancyList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptName: null,
+        projectName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        projectName: [
+          {required: true, message: "工程名称不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: "blur"},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: "blur"},
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        managementUnit: [
+          {required: true, message: "管理单位不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getUrl(url) {
+      this.form.picture=url
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    send(val) {
+      if (val === true) {
+        this.ISuperMapvisible = false;
+        return;
+      }
+      if (this.sign === 1) {
+        this.form.longitude = val.longitude;
+        this.form.latitude = val.latitude;
+      }
+      if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+      this.ISuperMapvisible = false
+    },
+    /** 查询水利工程列表 */
+    getList() {
+      this.loading = true;
+      listWaterConservancy(this.queryParams).then(response => {
+        this.waterConservancyList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        projectName: null,
+        constructionTime: null,
+        timeCompletion: null,
+        totalProjectInvestment: null,
+        engineeringType: null,
+        engineeringGrade: null,
+        safetyAppraisalSituation: null,
+        clearFixedCondition: null,
+        longitude: null,
+        latitude: null,
+        managementUnit: null,
+        personCharge: null,
+        contactNumber: null,
+        picture: null,
+        video: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利工程";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterConservancy(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利工程";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterConservancy(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterConservancy(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水利工程编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterConservancy(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterConservancy/export', {
+        ...this.queryParams
+      }, `waterConservancy_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 404 - 0
data-ui/src/views/data/digitalwaterconservancy/waterConservation/index.vue

@@ -0,0 +1,404 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="项目名称" prop="projectName">
+        <el-input
+          v-model="queryParams.projectName"
+          placeholder="请输入项目名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterConservation:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterConservation:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterConservation:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterConservation:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterConservationList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="项目名称" align="center" prop="projectName"/>
+      <el-table-column label="行政许可结论" align="center" prop="conclusionAdminLicense"/>
+      <el-table-column label="批复时间" align="center" prop="approvalTime"/>
+      <el-table-column label="批复单位" align="center" prop="approvedUnit"/>
+      <el-table-column label="批复文号" align="center" prop="approvalNumber"/>
+      <el-table-column label="所属行业" align="center" prop="industry"/>
+      <el-table-column label="计划动工时间" align="center" prop="plannedTimeCommencement"/>
+      <el-table-column label="计划完工时间" align="center" prop="plannedTimeCompletion"/>
+      <el-table-column label="最近建设状态" align="center" prop="recentConstructionStatus">
+        <template slot-scope="scope">
+          <span v-if="scope.row.recentConstructionStatus === '0'">在建</span>
+          <span v-else-if="scope.row.recentConstructionStatus === '1'">已批复</span>
+          <span v-else-if="scope.row.recentConstructionStatus === '2'">已上报</span>
+          <span v-else>未知</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterConservation:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterConservation:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水土保持对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectName">
+              <el-input v-model="form.projectName" placeholder="请输入项目名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="行政许可结论" prop="conclusionAdminLicense">
+              <el-input v-model="form.conclusionAdminLicense" placeholder="请输入行政许可结论" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="批复单位" prop="approvedUnit">
+              <el-input v-model="form.approvedUnit" placeholder="请输入批复单位" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="批复时间" prop="approvalTime">
+              <el-date-picker clearable size="small"
+                              v-model="form.approvalTime"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择批复时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="批复文号" prop="approvalNumber">
+              <el-input v-model="form.approvalNumber" placeholder="请输入批复文号" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属行业" prop="industry">
+              <el-input v-model="form.industry" placeholder="请输入所属行业" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="计划动工时间" prop="plannedTimeCommencement">
+              <el-date-picker clearable size="small"
+                              v-model="form.plannedTimeCommencement"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择计划动工时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="计划完工时间" prop="plannedTimeCompletion">
+              <el-date-picker clearable size="small"
+                              v-model="form.plannedTimeCompletion"
+                              type="datetime"
+                              value-format="yyyy-MM-dd HH:mm:ss"
+                              placeholder="选择计划完工时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="最近建设状态" prop="recentConstructionStatus">
+              <el-select v-model="form.recentConstructionStatus" placeholder="请选择最近建设状态" clearable>
+                <el-option label="在建" value="0"></el-option>
+                <el-option label="已批复" value="1"></el-option>
+                <el-option label="已上报" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterConservation,
+  getWaterConservation,
+  delWaterConservation,
+  addWaterConservation,
+  updateWaterConservation
+} from "@/api/data/digitalwaterconservancy/waterConservation";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+
+export default {
+  name: "WaterConservation",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水土保持表格数据
+      waterConservationList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        projectName: null,
+        recentConstructionStatus: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        projectName: [
+          {required: true, message: "项目名称不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        recentConstructionStatus: [
+          {required: true, message: "最近建设状态不能为空", trigger: "blur"}
+        ],
+        plannedTimeCommencement: [
+          {required: true, message: "计划动工时间不能为空", trigger: "blur"}
+        ],
+        plannedTimeCompletion: [
+          {required: true, message: "计划完工时间不能为空", trigger: "blur"}
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    /** 查询水土保持列表 */
+    getList() {
+      this.loading = true;
+      listWaterConservation(this.queryParams).then(response => {
+        this.waterConservationList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        projectName: null,
+        conclusionAdminLicense: null,
+        approvalTime: null,
+        approvedUnit: null,
+        approvalNumber: null,
+        industry: null,
+        plannedTimeCommencement: null,
+        plannedTimeCompletion: null,
+        recentConstructionStatus: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水土保持";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterConservation(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水土保持";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterConservation(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterConservation(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水土保持编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterConservation(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterConservation/export', {
+        ...this.queryParams
+      }, `waterConservation_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 348 - 0
data-ui/src/views/data/digitalwaterconservancy/waterGeneralInfo/index.vue

@@ -0,0 +1,348 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input v-model="queryParams.deptName" placeholder="请输入部门名称"/>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterGeneralInfo:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterGeneralInfo:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterGeneralInfo:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterGeneralInfo:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterGeneralInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="事件总数" align="center" prop="eventTotal"/>
+      <el-table-column label="已办事件" align="center" prop="eventDone"/>
+      <el-table-column label="待办事件" align="center" prop="eventTodo"/>
+      <el-table-column label="河流总数" align="center" prop="streamTotal"/>
+      <el-table-column label="河长总数" align="center" prop="riverLengthTotal"/>
+      <el-table-column label="巡河次数" align="center" prop="riverPatrolCount"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterGeneralInfo:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterGeneralInfo:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改总体信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="事件总数" prop="eventTotal">
+              <el-input v-model="form.eventTotal" placeholder="请输入事件总数"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="已办事件" prop="eventDone">
+              <el-input v-model="form.eventDone" placeholder="请输入已办事件"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="待办事件" prop="eventTodo">
+              <el-input v-model="form.eventTodo" placeholder="请输入待办事件"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="河流总数" prop="streamTotal">
+              <el-input v-model="form.streamTotal" placeholder="请输入河流总数"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="河长总数" prop="riverLengthTotal">
+              <el-input v-model="form.riverLengthTotal" placeholder="请输入河长总数"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="巡河次数" prop="riverPatrolCount">
+              <el-input v-model="form.riverPatrolCount" placeholder="请输入巡河次数"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterGeneralInfo,
+  getWaterGeneralInfo,
+  delWaterGeneralInfo,
+  addWaterGeneralInfo,
+  updateWaterGeneralInfo
+} from "@/api/data/digitalwaterconservancy/waterGeneralInfo";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+
+export default {
+  name: "WaterGeneralInfo",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 总体信息表格数据
+      waterGeneralInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        deptName: null,
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        eventTotal: [
+          {required: true, message: "事件总数不能为空", trigger: "blur"}
+        ],
+        eventDone: [
+          {required: true, message: "已办事件不能为空", trigger: "blur"}
+        ],
+        eventTodo: [
+          {required: true, message: "待办事件不能为空", trigger: "blur"}
+        ],
+        streamTotal: [
+          {required: true, message: "河流总数不能为空", trigger: "blur"}
+        ],
+        riverLengthTotal: [
+          {required: true, message: "河长总数不能为空", trigger: "blur"}
+        ],
+        riverPatrolCount: [
+          {required: true, message: "巡河次数不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    /** 查询总体信息列表 */
+    getList() {
+      this.loading = true;
+      listWaterGeneralInfo(this.queryParams).then(response => {
+        this.waterGeneralInfoList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        eventTotal: null,
+        eventDone: null,
+        eventTodo: null,
+        streamTotal: null,
+        riverLengthTotal: null,
+        riverPatrolCount: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加总体信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterGeneralInfo(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改总体信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterGeneralInfo(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterGeneralInfo(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除总体信息编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterGeneralInfo(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterGeneralInfo/export', {
+        ...this.queryParams
+      }, `waterGeneralInfo_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 294 - 0
data-ui/src/views/data/digitalwaterconservancy/waterIncidentManage/index.vue

@@ -0,0 +1,294 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input v-model="queryParams.deptName" placeholder="请输入部门名称"/>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterIncidentManage:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterIncidentManage:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterIncidentManage:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterIncidentManage:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterIncidentManageList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="事件总数" align="center" prop="eventTotal"/>
+      <el-table-column label="事件待办数" align="center" prop="eventTodoSum"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterIncidentManage:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterIncidentManage:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改事件办理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="事件总数" prop="eventTotal">
+          <el-input v-model="form.eventTotal" placeholder="请输入事件总数"/>
+        </el-form-item>
+        <el-form-item label="事件待办数" prop="eventTodoSum">
+          <el-input v-model="form.eventTodoSum" placeholder="请输入事件待办数"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterIncidentManage,
+  getWaterIncidentManage,
+  delWaterIncidentManage,
+  addWaterIncidentManage,
+  updateWaterIncidentManage
+} from "@/api/data/digitalwaterconservancy/waterIncidentManage";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+
+export default {
+  name: "WaterIncidentManage",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 事件办理表格数据
+      waterIncidentManageList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        deptName: null,
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        eventTodoSum: [
+          {required: true, message: "事件待办数不能为空", trigger: "blur"}
+        ],
+        eventTotal: [
+          {required: true, message: "事件总数不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    /** 查询事件办理列表 */
+    getList() {
+      this.loading = true;
+      listWaterIncidentManage(this.queryParams).then(response => {
+        this.waterIncidentManageList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        eventTotal: null,
+        eventTodoSum: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加事件办理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterIncidentManage(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改事件办理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterIncidentManage(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterIncidentManage(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除事件办理编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterIncidentManage(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterIncidentManage/export', {
+        ...this.queryParams
+      }, `waterIncidentManage_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 312 - 0
data-ui/src/views/data/digitalwaterconservancy/waterInspectionTrouble/index.vue

@@ -0,0 +1,312 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input v-model="queryParams.deptName" placeholder="请输入部门名称"/>
+      </el-form-item>
+      <el-form-item label="类型" prop="trackType">
+        <el-select v-model="queryParams.trackType" placeholder="请选择类型">
+          <el-option label="当天" value="0"/>
+          <el-option label="当月" value="1"/>
+          <el-option label="当年" value="2"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterInspectionTrouble:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterInspectionTrouble:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterInspectionTrouble:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterInspectionTrouble:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterInspectionTroubleList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="类型" align="center" prop="trackType">
+        <template slot-scope="scope">
+          <span v-if="scope.row.trackType === '0'">当天</span>
+          <span v-else-if="scope.row.trackType === '1'">当月</span>
+          <span v-else-if="scope.row.trackType === '2'">当年</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="巡查次数" align="center" prop="trackCount"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterInspectionTrouble:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterInspectionTrouble:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改巡检排查对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="巡查次数" prop="trackCount">
+          <el-input v-model="form.trackCount" placeholder="请输入巡查次数"/>
+        </el-form-item>
+        <el-form-item label="类型" prop="trackType">
+          <el-select v-model="form.trackType" placeholder="请选择类型" clearable>
+            <el-option label="当天" value="0"></el-option>
+            <el-option label="当月" value="1"></el-option>
+            <el-option label="当年" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterInspectionTrouble,
+  getWaterInspectionTrouble,
+  delWaterInspectionTrouble,
+  addWaterInspectionTrouble,
+  updateWaterInspectionTrouble
+} from "@/api/data/digitalwaterconservancy/waterInspectionTrouble";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+
+export default {
+  name: "WaterInspectionTrouble",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 巡检排查表格数据
+      waterInspectionTroubleList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        trackType: null,
+        deptName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        trackType: [
+          {required: true, message: "类型不能为空", trigger: "blur"}
+        ],
+        trackCount: [
+          {required: true, message: "巡检次数不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    /** 查询巡检排查列表 */
+    getList() {
+      this.loading = true;
+      listWaterInspectionTrouble(this.queryParams).then(response => {
+        this.waterInspectionTroubleList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        trackType: null,
+        trackCount: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加巡检排查";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterInspectionTrouble(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改巡检排查";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterInspectionTrouble(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterInspectionTrouble(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除巡检排查编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterInspectionTrouble(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterInspectionTrouble/export', {
+        ...this.queryParams
+      }, `waterInspectionTrouble_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 324 - 0
data-ui/src/views/data/digitalwaterconservancy/waterOverLevelSite/index.vue

@@ -0,0 +1,324 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="日期" prop="nowDate">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.nowDate"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="siteList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="日期" align="center" prop="nowDate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nowDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="六时" align="center" prop="sixPm"/>
+      <el-table-column label="八时" align="center" prop="eightPm"/>
+      <el-table-column label="十时" align="center" prop="tenPm"/>
+      <el-table-column label="十二时" align="center" prop="twelvePm"/>
+      <el-table-column label="十四时" align="center" prop="fourteenPm"/>
+      <el-table-column label="十六时" align="center" prop="sixteenPm"/>
+      <el-table-column label="十八时" align="center" prop="eighteenPm"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改超限水位站对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
+        <el-form-item label="日期" prop="nowDate">
+          <el-date-picker
+            style="width: 200px"
+            clearable size="small"
+            v-model="form.nowDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="六时" prop="sixPm">
+          <el-input v-model="form.sixPm" placeholder="请输入六时水位"/>
+        </el-form-item>
+        <el-form-item label="八时" prop="eightPm">
+          <el-input v-model="form.eightPm" placeholder="请输入八时水位"/>
+        </el-form-item>
+        <el-form-item label="十时" prop="tenPm">
+          <el-input v-model="form.tenPm" placeholder="请输入十时水位"/>
+        </el-form-item>
+        <el-form-item label="十二时" prop="twelvePm">
+          <el-input v-model="form.twelvePm" placeholder="请输入十二时水位"/>
+        </el-form-item>
+        <el-form-item label="十四时" prop="fourteenPm">
+          <el-input v-model="form.fourteenPm" placeholder="请输入十四时水位"/>
+        </el-form-item>
+        <el-form-item label="十六时" prop="sixteenPm">
+          <el-input v-model="form.sixteenPm" placeholder="请输入十六时水位"/>
+        </el-form-item>
+        <el-form-item label="十八时" prop="eighteenPm">
+          <el-input v-model="form.eighteenPm" placeholder="请输入十八时水位"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSite, getSite, delSite, addSite, updateSite } from '@/api/data/digitalwaterconservancy/site'
+import { checkNonnegativeInteger } from '@/api/rules/rules'
+
+export default {
+  name: 'Site',
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 超限水位站表格数据
+      siteList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        nowDate: null,
+        sixPm: null,
+        eightPm: null,
+        tenPm: null,
+        twelvePm: null,
+        fourteenPm: null,
+        sixteenPm: null,
+        eighteenPm: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        nowDate: [
+          { required: true, message: '日期不能为空', trigger: 'change' }
+        ],
+        sixPm: [
+          { required: true, message: '六时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '六时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+        eightPm: [
+          { required: true, message: '八时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '八时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+        tenPm: [
+          { required: true, message: '十时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+        twelvePm: [
+          { required: true, message: '十二时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十二时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+        fourteenPm: [
+          { required: true, message: '十四时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十四时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+        sixteenPm: [
+          { required: true, message: '十六时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十六时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+        eighteenPm: [
+          { required: true, message: '十八时水位不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '十八时水位最大长度不能超过10位', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询超限水位站列表 */
+    getList() {
+      this.loading = true
+      listSite(this.queryParams).then(response => {
+        this.siteList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        nowDate: null,
+        sixPm: null,
+        eightPm: null,
+        tenPm: null,
+        twelvePm: null,
+        fourteenPm: null,
+        sixteenPm: null,
+        eighteenPm: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加超限水位站'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getSite(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改超限水位站'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSite(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addSite(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除超限水位站编号为"' + ids + '"的数据项?').then(function() {
+        return delSite(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    }
+  }
+}
+</script>

+ 447 - 0
data-ui/src/views/data/digitalwaterconservancy/waterQualityDevice/index.vue

@@ -0,0 +1,447 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="设备名称" prop="deviceName">
+        <el-input
+          v-model="queryParams.deviceName"
+          placeholder="请输入设备名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="设备名称" align="center" prop="deviceName"/>
+      <el-table-column label="状态" align="center" prop="status">
+        <template slot-scope="scope">
+          {{ scope.row.status === '0' ? '离线' : '在线' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="维度" align="center" prop="latitude"/>
+      <el-table-column label="温度" align="center" prop="temperature"/>
+      <el-table-column label="ph值" align="center" prop="ph"/>
+      <el-table-column label="溶氧" align="center" prop="oxygen"/>
+      <el-table-column label="电导率" align="center" prop="conductivity"/>
+      <el-table-column label="浊度" align="center" prop="turbidity"/>
+      <el-table-column label="含油量" align="center" prop="oilContent"/>
+      <el-table-column label="钾离子" align="center" prop="potassiumIon"/>
+      <el-table-column label="亚硝酸盐氮" align="center" prop="nitriteNitrogen"/>
+      <el-table-column label="溶解氧" align="center" prop="dissolvedOxygen"/>
+      <el-table-column label="磷" align="center" prop="phosphorus"/>
+      <el-table-column label="正磷酸盐" align="center" prop="orthophosphate"/>
+      <el-table-column label="正硝酸盐" align="center" prop="nitrateSalt"/>
+      <el-table-column label="综合磷酸盐" align="center" prop="integratedPhosphate"/>
+      <el-table-column label="综合硝酸盐" align="center" prop="integratedNitrate"/>
+      <el-table-column label="氨氮" align="center" prop="ammoniaNitrogen"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水质监测设备对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="750px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :inline="true">
+        <el-form-item label="设备名称" prop="deviceName">
+          <el-input v-model="form.deviceName" placeholder="请输入设备名称"/>
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select style="width: 200px" v-model="form.status" placeholder="请选择状态" clearable>
+            <el-option value="0" label="离线"></el-option>
+            <el-option value="1" label="在线"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="经度" prop="longitude">
+          <el-input v-model="form.longitude" placeholder="请输入经度"/>
+        </el-form-item>
+        <el-form-item label="维度" prop="latitude">
+          <el-input v-model="form.latitude" placeholder="请输入维度"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect style="width: 200px" v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="温度" prop="temperature">
+          <el-input v-model="form.temperature" placeholder="请输入温度"/>
+        </el-form-item>
+        <el-form-item label="ph值" prop="ph">
+          <el-input v-model="form.ph" placeholder="请输入ph值"/>
+        </el-form-item>
+        <el-form-item label="溶氧" prop="oxygen">
+          <el-input v-model="form.oxygen" placeholder="请输入溶氧"/>
+        </el-form-item>
+        <el-form-item label="电导率" prop="conductivity">
+          <el-input v-model="form.conductivity" placeholder="请输入电导率"/>
+        </el-form-item>
+        <el-form-item label="浊度" prop="turbidity">
+          <el-input v-model="form.turbidity" placeholder="请输入浊度"/>
+        </el-form-item>
+        <el-form-item label="含油量" prop="oilContent">
+          <el-input v-model="form.oilContent" placeholder="请输入含油量"/>
+        </el-form-item>
+        <el-form-item label="钾离子" prop="potassiumIon">
+          <el-input v-model="form.potassiumIon" placeholder="请输入钾离子"/>
+        </el-form-item>
+        <el-form-item label="亚硝酸盐氮" prop="nitriteNitrogen">
+          <el-input v-model="form.nitriteNitrogen" placeholder="请输入亚硝酸盐氮"/>
+        </el-form-item>
+        <el-form-item label="溶解氧" prop="dissolvedOxygen">
+          <el-input v-model="form.dissolvedOxygen" placeholder="请输入溶解氧"/>
+        </el-form-item>
+        <el-form-item label="磷" prop="phosphorus">
+          <el-input v-model="form.phosphorus" placeholder="请输入磷"/>
+        </el-form-item>
+        <el-form-item label="正磷酸盐" prop="orthophosphate">
+          <el-input v-model="form.orthophosphate" placeholder="请输入正磷酸盐"/>
+        </el-form-item>
+        <el-form-item label="正硝酸盐" prop="nitrateSalt">
+          <el-input v-model="form.nitrateSalt" placeholder="请输入正硝酸盐"/>
+        </el-form-item>
+        <el-form-item label="综合磷酸盐" prop="integratedPhosphate">
+          <el-input v-model="form.integratedPhosphate" placeholder="请输入综合磷酸盐"/>
+        </el-form-item>
+        <el-form-item label="综合硝酸盐" prop="integratedNitrate">
+          <el-input v-model="form.integratedNitrate" placeholder="请输入综合硝酸盐"/>
+        </el-form-item>
+        <el-form-item label="氨氮" prop="ammoniaNitrogen">
+          <el-input v-model="form.ammoniaNitrogen" placeholder="请输入氨氮"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listDevice, getDevice, delDevice, addDevice, updateDevice } from '@/api/data/digitalwaterconservancy/device'
+import { checkLon } from '@/api/rules/rules'
+import Treeselect from '@riophae/vue-treeselect'
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: 'Device',
+  components: { Treeselect },
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水质监测设备表格数据
+      deviceList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deviceName: null,
+        status: null,
+        longitude: null,
+        latitude: null,
+        deptId: null,
+        temperature: null,
+        ph: null,
+        oxygen: null,
+        conductivity: null,
+        turbidity: null,
+        oilContent: null,
+        potassiumIon: null,
+        nitriteNitrogen: null,
+        dissolvedOxygen: null,
+        phosphorus: null,
+        orthophosphate: null,
+        nitrateSalt: null,
+        integratedPhosphate: null,
+        integratedNitrate: null,
+        ammoniaNitrogen: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deviceName: [
+          { required: true, message: '设备名称不能为空', trigger: 'blur' }
+        ],
+        deptId: [
+          { required: true, message: '所属部门不能为空', trigger: 'change' }
+        ],
+        status: [
+          { required: true, message: '状态不能为空', trigger: 'change' }
+        ],
+        longitude: [
+          { required: true, message: '经度不能为空', trigger: 'blur' },
+          { validator: checkLon, trigger: 'blur' }
+        ],
+        latitude: [
+          { required: true, message: '纬度不能为空', trigger: 'blur' },
+          { validator: checkLon, trigger: 'blur' }
+        ],
+        temperature: [
+          { required: true, message: '温度不能为空', trigger: 'blur' },
+          { max: 20, message: '温度最大长度不能超过20', trigger: 'blur' }
+        ],
+        ph: [
+          { required: true, message: 'ph值不能为空', trigger: 'blur' },
+          { max: 20, message: 'ph值最大长度不能超过20', trigger: 'blur' }
+        ],
+        oxygen: [
+          { required: true, message: '溶氧不能为空', trigger: 'blur' },
+          { max: 20, message: '溶氧最大长度不能超过20', trigger: 'blur' }
+        ],
+        conductivity: [
+          { required: true, message: '电导率不能为空', trigger: 'blur' },
+          { max: 20, message: '电导率最大长度不能超过20', trigger: 'blur' }
+        ],
+        turbidity: [
+          { required: true, message: '浊度不能为空', trigger: 'blur' },
+          { max: 20, message: '浊度最大长度不能超过20', trigger: 'blur' }
+        ],
+        oilContent: [
+          { required: true, message: '含油量不能为空', trigger: 'blur' },
+          { max: 20, message: '含油量最大长度不能超过20', trigger: 'blur' }
+        ],
+        potassiumIon: [
+          { required: true, message: '钾离子不能为空', trigger: 'blur' },
+          { max: 20, message: '钾离子最大长度不能超过20', trigger: 'blur' }
+        ],
+        nitriteNitrogen: [
+          { required: true, message: '亚硝酸盐氮不能为空', trigger: 'blur' },
+          { max: 20, message: '亚硝酸盐氮最大长度不能超过20', trigger: 'blur' }
+        ],
+        dissolvedOxygen: [
+          { required: true, message: '溶解氧不能为空', trigger: 'blur' },
+          { max: 20, message: '溶解氧最大长度不能超过20', trigger: 'blur' }
+        ],
+        phosphorus: [
+          { required: true, message: '磷不能为空', trigger: 'blur' },
+          { max: 20, message: '磷最大长度不能超过20', trigger: 'blur' }
+        ],
+        orthophosphate: [
+          { required: true, message: '正磷酸盐不能为空', trigger: 'blur' },
+          { max: 20, message: '正磷酸盐最大长度不能超过20', trigger: 'blur' }
+        ],
+        nitrateSalt: [
+          { required: true, message: '正硝酸盐不能为空', trigger: 'blur' },
+          { max: 20, message: '正硝酸盐最大长度不能超过20', trigger: 'blur' }
+        ],
+        integratedPhosphate: [
+          { required: true, message: '综合磷酸盐不能为空', trigger: 'blur' },
+          { max: 20, message: '综合磷酸盐最大长度不能超过20', trigger: 'blur' }
+        ],
+        integratedNitrate: [
+          { required: true, message: '综合硝酸盐不能为空', trigger: 'blur' },
+          { max: 20, message: '综合硝酸盐最大长度不能超过20', trigger: 'blur' }
+        ],
+        ammoniaNitrogen: [
+          { required: true, message: '氨氮不能为空', trigger: 'blur' },
+          { max: 20, message: '氨氮最大长度不能超过20', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  created() {
+    this.getList()
+    this.getTreeselect();
+  },
+  methods: {
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询水质监测设备列表 */
+    getList() {
+      this.loading = true
+      listDevice(this.queryParams).then(response => {
+        this.deviceList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deviceName: null,
+        status: '0',
+        longitude: null,
+        latitude: null,
+        deptId: null,
+        temperature: null,
+        ph: null,
+        oxygen: null,
+        conductivity: null,
+        turbidity: null,
+        oilContent: null,
+        potassiumIon: null,
+        nitriteNitrogen: null,
+        dissolvedOxygen: null,
+        phosphorus: null,
+        orthophosphate: null,
+        nitrateSalt: null,
+        integratedPhosphate: null,
+        integratedNitrate: null,
+        ammoniaNitrogen: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加水质监测设备'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getDevice(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改水质监测设备'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDevice(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addDevice(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除水质监测设备编号为"' + ids + '"的数据项?').then(function() {
+        return delDevice(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    }
+  }
+}
+</script>

+ 286 - 0
data-ui/src/views/data/digitalwaterconservancy/waterReportRanking/index.vue

@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="设备名称" prop="deviceName">
+        <el-input
+          v-model="queryParams.deviceName"
+          placeholder="请输入设备名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警数量" prop="alarmsCount">
+        <el-input
+          v-model="queryParams.alarmsCount"
+          placeholder="请输入告警数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="rankingList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="唯一标识" align="center" prop="id"/>
+      <el-table-column label="设备名称" align="center" prop="deviceName"/>
+      <el-table-column label="告警数量" align="center" prop="alarmsCount"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改上报排行对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect style="width: 200px" v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+        <el-form-item label="设备名称" prop="deviceName">
+          <el-input v-model="form.deviceName" placeholder="请输入设备名称"/>
+        </el-form-item>
+        <el-form-item label="告警数量" prop="alarmsCount">
+          <el-input v-model="form.alarmsCount" placeholder="请输入告警数量"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listRanking,
+  getRanking,
+  delRanking,
+  addRanking,
+  updateRanking
+} from '@/api/data/digitalwaterconservancy/ranking'
+import Treeselect from '@riophae/vue-treeselect'
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: 'Ranking',
+  components: { Treeselect },
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 上报排行表格数据
+      rankingList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deviceName: null,
+        alarmsCount: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deviceName: [
+          { required: true, message: '设备名称不能为空', trigger: 'blur' },
+          { max: 50, message: '设备名称长度不能超过50', trigger: 'blur' }
+        ],
+        deptId: [
+          { required: true, message: '所属部门不能为空', trigger: 'change' }
+        ],
+        alarmsCount: [
+          { required: true, message: '告警数量不能为空', trigger: 'blur' },
+          { max: 50, message: '告警数量长度不能超过50', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  created() {
+    this.getList()
+    this.getTreeselect();
+  },
+  methods: {
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询上报排行列表 */
+    getList() {
+      this.loading = true
+      listRanking(this.queryParams).then(response => {
+        this.rankingList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deviceName: null,
+        alarmsCount: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加上报排行'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getRanking(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改上报排行'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRanking(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addRanking(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除上报排行编号为"' + ids + '"的数据项?').then(function() {
+        return delRanking(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+  }
+}
+</script>

+ 366 - 0
data-ui/src/views/data/digitalwaterconservancy/waterSaving/index.vue

@@ -0,0 +1,366 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterSaving:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterSaving:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterSaving:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterSaving:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterSavingList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="计划用水量" align="center" prop="plannedWaterConsumption"/>
+      <el-table-column label="实际用水量" align="center" prop="actualWaterConsumption"/>
+      <el-table-column label="节水量" align="center" prop="waterSaving"/>
+      <el-table-column label="节水达标率" align="center" prop="waterSavingRate"/>
+      <el-table-column label="是否重点用户" align="center" prop="isKeyUser">
+        <template slot-scope="scope">
+          {{ scope.row.isKeyUser === '0' ? '否' : '是' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="部门类型" align="center" prop="depeType">
+        <template slot-scope="scope">
+          {{ scope.row.depeType === '0' ? '企业' : '机关' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterSaving:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterSaving:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改节水管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="计划用水量" prop="plannedWaterConsumption">
+              <el-input v-model="form.plannedWaterConsumption" placeholder="请输入计划用水量" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="实际用水量" prop="actualWaterConsumption">
+              <el-input v-model="form.actualWaterConsumption" placeholder="请输入实际用水量" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="节水量" prop="waterSaving">
+              <el-input v-model="form.waterSaving" placeholder="请输入节水量" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="节水达标率" prop="waterSavingRate">
+              <el-input v-model="form.waterSavingRate" placeholder="请输入节水达标率" maxlength="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="部门类型" prop="depeType">
+              <el-select v-model="form.depeType" placeholder="请选择部门类型" clearable>
+                <el-option label="企业" value="0"></el-option>
+                <el-option label="机关" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="是否重点用户" prop="isKeyUser">
+              <el-select v-model="form.isKeyUser" placeholder="请选择是否重点用户" clearable>
+                <el-option label="否" value="0"></el-option>
+                <el-option label="是" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterSaving,
+  getWaterSaving,
+  delWaterSaving,
+  addWaterSaving,
+  updateWaterSaving
+} from "@/api/data/digitalwaterconservancy/waterSaving";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLon, checkNonnegativeInteger} from "@/api/rules/rules";
+
+export default {
+  name: "WaterSaving",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 节水管理表格数据
+      waterSavingList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isKeyUser: null,
+        depeType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        plannedWaterConsumption: [
+          {required: true, message: "计划用水量不能为空", trigger: "blur"},
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        isKeyUser: [
+          {required: true, message: "是否重点用户不能为空", trigger: "blur"},
+        ],
+        depeType: [
+          {required: true, message: "部门类型不能为空", trigger: "blur"},
+        ],
+        actualWaterConsumption: [
+          {required: true, message: "实际用水量不能为空", trigger: "blur"},
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        waterSaving: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        waterSavingRate: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    /** 查询节水管理列表 */
+    getList() {
+      this.loading = true;
+      listWaterSaving(this.queryParams).then(response => {
+        this.waterSavingList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createTime: null,
+        createName: null,
+        updateBy: null,
+        updateTime: null,
+        updateName: null,
+        plannedWaterConsumption: null,
+        actualWaterConsumption: null,
+        waterSaving: null,
+        waterSavingRate: null,
+        isKeyUser: null,
+        depeType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加节水管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterSaving(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改节水管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterSaving(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterSaving(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除节水管理编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterSaving(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterSaving/export', {
+        ...this.queryParams
+      }, `waterSaving_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 356 - 0
data-ui/src/views/data/digitalwaterconservancy/waterSiteStatistics/index.vue

@@ -0,0 +1,356 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="98px">
+      <el-form-item label="正常站点数" prop="normalSiteCount">
+        <el-input
+          v-model="queryParams.normalSiteCount"
+          placeholder="请输入正常站点数"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="异常站点数" prop="abnormalSiteCount">
+        <el-input
+          v-model="queryParams.abnormalSiteCount"
+          placeholder="请输入异常站点数"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="statisticsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="正常站点数" align="center" prop="normalSiteCount"/>
+      <el-table-column label="异常站点数" align="center" prop="abnormalSiteCount"/>
+      <el-table-column label="数据总数(万条)" align="center" prop="dataTotalCount"/>
+      <el-table-column label="正常数据(万条)" align="center" prop="normalDataCount"/>
+      <el-table-column label="异常数据(万条)" align="center" prop="abnormalDataCount"/>
+      <el-table-column label="河道" align="center" prop="riverCourse"/>
+      <el-table-column label="湖泊" align="center" prop="lakes"/>
+      <el-table-column label="闸坝" align="center" prop="gateDam"/>
+      <el-table-column label="港渠" align="center" prop="gangquCanal"/>
+      <el-table-column label="蒸发" align="center" prop="evaporation"/>
+      <el-table-column label="其他" align="center" prop="other"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改站点统计对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="140px" :inline="true">
+        <el-form-item label="正常站点数" prop="normalSiteCount">
+          <el-input v-model="form.normalSiteCount" placeholder="请输入正常站点数"/>
+        </el-form-item>
+        <el-form-item label="异常站点数" prop="abnormalSiteCount">
+          <el-input v-model="form.abnormalSiteCount" placeholder="请输入异常站点数"/>
+        </el-form-item>
+        <el-form-item label="数据总数(万条)" prop="dataTotalCount">
+          <el-input v-model="form.dataTotalCount" placeholder="请输入数据总数(万条)"/>
+        </el-form-item>
+        <el-form-item label="正常数据(万条)" prop="normalDataCount">
+          <el-input v-model="form.normalDataCount" placeholder="请输入正常数据(万条)"/>
+        </el-form-item>
+        <el-form-item label="异常数据(万条)" prop="abnormalDataCount">
+          <el-input v-model="form.abnormalDataCount" placeholder="请输入异常数据(万条)"/>
+        </el-form-item>
+        <el-form-item label="河道" prop="riverCourse">
+          <el-input v-model="form.riverCourse" placeholder="请输入河道"/>
+        </el-form-item>
+        <el-form-item label="湖泊" prop="lakes">
+          <el-input v-model="form.lakes" placeholder="请输入湖泊"/>
+        </el-form-item>
+        <el-form-item label="闸坝" prop="gateDam">
+          <el-input v-model="form.gateDam" placeholder="请输入闸坝"/>
+        </el-form-item>
+        <el-form-item label="港渠" prop="gangquCanal">
+          <el-input v-model="form.gangquCanal" placeholder="请输入港渠"/>
+        </el-form-item>
+        <el-form-item label="蒸发" prop="evaporation">
+          <el-input v-model="form.evaporation" placeholder="请输入蒸发"/>
+        </el-form-item>
+        <el-form-item label="其他" prop="other">
+          <el-input v-model="form.other" placeholder="请输入其他"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listStatistics, getStatistics, delStatistics, addStatistics, updateStatistics } from '@/api/data/digitalwaterconservancy/statistics'
+import { checkNonnegativeInteger } from '@/api/rules/rules'
+
+export default {
+  name: 'Statistics',
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 站点统计表格数据
+      statisticsList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        normalSiteCount: null,
+        abnormalSiteCount: null,
+        dataTotalCount: null,
+        normalDataCount: null,
+        abnormalDataCount: null,
+        riverCourse: null,
+        lakes: null,
+        gateDam: null,
+        gangquCanal: null,
+        evaporation: null,
+        other: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        normalSiteCount: [
+          { required: true, message: '正常站点数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '正常站点数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        abnormalSiteCount: [
+          { required: true, message: '异常站点数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '异常站点数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        dataTotalCount: [
+          { required: true, message: '数据总数不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '数据总数最大长度不能超过10位', trigger: 'blur' }
+        ],
+        normalDataCount: [
+          { required: true, message: '正常数据不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '正常数据最大长度不能超过10位', trigger: 'blur' }
+        ],
+        abnormalDataCount: [
+          { required: true, message: '异常数据不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '异常数据最大长度不能超过10位', trigger: 'blur' }
+        ],
+        riverCourse: [
+          { required: true, message: '河道不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '河道最大长度不能超过10位', trigger: 'blur' }
+        ],
+        lakes: [
+          { required: true, message: '湖泊不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '湖泊最大长度不能超过10位', trigger: 'blur' }
+        ],
+        gateDam: [
+          { required: true, message: '闸坝不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '闸坝最大长度不能超过10位', trigger: 'blur' }
+        ],
+        gangquCanal: [
+          { required: true, message: '港渠不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '港渠最大长度不能超过10位', trigger: 'blur' }
+        ],
+        evaporation: [
+          { required: true, message: '蒸发不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '蒸发最大长度不能超过10位', trigger: 'blur' }
+        ],
+        other: [
+          { required: true, message: '其他不能为空', trigger: 'blur' },
+          { validator: checkNonnegativeInteger, trigger: 'blur' },
+          { max: 10, message: '其他最大长度不能超过10位', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询站点统计列表 */
+    getList() {
+      this.loading = true
+      listStatistics(this.queryParams).then(response => {
+        this.statisticsList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        normalSiteCount: null,
+        abnormalSiteCount: null,
+        dataTotalCount: null,
+        normalDataCount: null,
+        abnormalDataCount: null,
+        riverCourse: null,
+        lakes: null,
+        gateDam: null,
+        gangquCanal: null,
+        evaporation: null,
+        other: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加站点统计'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getStatistics(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改站点统计'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateStatistics(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addStatistics(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除站点统计编号为"' + ids + '"的数据项?').then(function() {
+        return delStatistics(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+  }
+}
+</script>

+ 419 - 0
data-ui/src/views/data/digitalwaterconservancy/waterSource/index.vue

@@ -0,0 +1,419 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="水源地名称" prop="nameWaterSource">
+        <el-input
+          v-model="queryParams.nameWaterSource"
+          placeholder="请输入水源地名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterSource:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterSource:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterSource:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterSource:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterSourceList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="水源地名称" align="center" prop="nameWaterSource"/>
+      <el-table-column label="水源地类型" align="center" prop="typeWaterSource">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.water_source_type" :value="scope.row.typeWaterSource"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="供水城镇" align="center" prop="waterTown"/>
+      <el-table-column label="年供水人口" align="center" prop="annualWaterSupplyPopulation"/>
+      <el-table-column label="地理位置" align="center" prop="geographicalPosition"/>
+      <el-table-column label="海拔高度" align="center" prop="altitude"/>
+      <el-table-column label="流域面积" align="center" prop="basinArea"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterSource:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterSource:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-水源地对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="水源地名称" prop="nameWaterSource">
+              <el-input v-model="form.nameWaterSource" placeholder="请输入水源地名称" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="水源地类型" prop="typeWaterSource">
+              <el-select v-model="form.typeWaterSource" placeholder="请选择工程类型">
+                <el-option
+                  v-for="dict in dict.type.water_source_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="供水城镇" prop="waterTown">
+              <el-input v-model="form.waterTown" placeholder="请输入供水城镇" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="年供水人口" prop="annualWaterSupplyPopulation">
+              <el-input v-model="form.annualWaterSupplyPopulation" placeholder="请输入年供水人口" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="地理位置" prop="geographicalPosition">
+              <el-input v-model="form.geographicalPosition" placeholder="请输入地理位置" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="海拔高度" prop="altitude">
+              <el-input v-model="form.altitude" placeholder="请输入海拔高度" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="流域面积" prop="basinArea">
+              <el-input v-model="form.basinArea" placeholder="请输入流域面积" maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="24">
+          <el-col :span="12">
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击选择经纬度" maxlength="32"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterSource,
+  getWaterSource,
+  delWaterSource,
+  addWaterSource,
+  updateWaterSource
+} from "@/api/data/digitalwaterconservancy/waterSource";
+import ISuperMap from "@/views/data/common/ISuperMap.vue";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon, checkNonnegativeInteger, validPhoneMobile} from "@/api/rules/rules";
+
+export default {
+  name: "WaterSource",
+  components: {ISuperMap, Treeselect},
+  dicts: ['water_source_type'],
+  data() {
+    return {
+      deptOptions: undefined,
+      sign: 1,
+      ISuperMapvisible: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-水源地表格数据
+      waterSourceList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        nameWaterSource: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        nameWaterSource: [
+          {required: true, message: "水源地名称不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: "blur"},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: "blur"},
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        typeWaterSource: [
+          {required: true, message: "水源地类型不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    send(val) {
+      if (val === true) {
+        this.ISuperMapvisible = false;
+        return;
+      }
+      if (this.sign === 1) {
+        this.form.longitude = val.longitude;
+        this.form.latitude = val.latitude;
+      }
+      if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+      this.ISuperMapvisible = false
+    },
+    /** 查询水利-水源地列表 */
+    getList() {
+      this.loading = true;
+      listWaterSource(this.queryParams).then(response => {
+        this.waterSourceList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createTime: null,
+        createName: null,
+        updateBy: null,
+        updateTime: null,
+        updateName: null,
+        nameWaterSource: null,
+        typeWaterSource: null,
+        waterTown: null,
+        annualWaterSupplyPopulation: null,
+        geographicalPosition: null,
+        altitude: null,
+        basinArea: null,
+        longitude: null,
+        latitude: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水源地";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterSource(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水源地";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterSource(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterSource(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除水源地编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterSource(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterSource/export', {
+        ...this.queryParams
+      }, `waterSource_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 314 - 0
data-ui/src/views/data/digitalwaterconservancy/waterTotalResourcesTwoYears/index.vue

@@ -0,0 +1,314 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="130px">
+      <el-form-item label="上年度水资源总量" prop="totalWaterResourcesOfPreviousYear">
+        <el-input
+          v-model="queryParams.totalWaterResourcesOfPreviousYear"
+          placeholder="请输入上年度水资源总量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:waterTotalResourcesTwoYears:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:waterTotalResourcesTwoYears:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:waterTotalResourcesTwoYears:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:waterTotalResourcesTwoYears:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="waterTotalResourcesTwoYearsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="上年度水资源总量" align="center" prop="totalWaterResourcesOfPreviousYear"/>
+      <el-table-column label="本年度水资源总量" align="center" prop="totalWaterResourcesOfYear"/>
+      <el-table-column label="部门名称" align="center" prop="deptName"/>
+      <el-table-column label="创建人姓名" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+<!--        <template slot-scope="scope">-->
+<!--          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>-->
+<!--        </template>-->
+      </el-table-column>
+      <el-table-column label="更新人姓名" align="center" prop="updateName"/>
+      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
+<!--        <template slot-scope="scope">-->
+<!--          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>-->
+<!--        </template>-->
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:waterTotalResourcesTwoYears:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:waterTotalResourcesTwoYears:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改近两年水资源总量对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="135px">
+        <el-form-item label="上年度水资源总量" prop="totalWaterResourcesOfPreviousYear">
+          <el-input v-model="form.totalWaterResourcesOfPreviousYear" placeholder="请输入上年度水资源总量" maxlength="100"/>
+        </el-form-item>
+        <el-form-item label="本年度水资源总量" prop="totalWaterResourcesOfYear">
+          <el-input v-model="form.totalWaterResourcesOfYear" placeholder="请输入本年度水资源总量" maxlength="100"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listWaterTotalResourcesTwoYears,
+  getWaterTotalResourcesTwoYears,
+  delWaterTotalResourcesTwoYears,
+  addWaterTotalResourcesTwoYears,
+  updateWaterTotalResourcesTwoYears
+} from "@/api/data/digitalwaterconservancy/waterTotalResourcesTwoYears";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import Treeselect from "@riophae/vue-treeselect";
+
+export default {
+  name: "WaterTotalResourcesTwoYears",
+  components: {Treeselect},
+  data() {
+    return {
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 近两年水资源总量表格数据
+      waterTotalResourcesTwoYearsList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        totalWaterResourcesOfPreviousYear: null,
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        totalWaterResourcesOfPreviousYear: [
+          {required: true, message: "上年度水资源总量不能为空", trigger: "blur"}
+        ],
+        totalWaterResourcesOfYear: [
+          {required: true, message: "本年度水资源总量不能为空", trigger: "blur"}
+        ],
+        deptId: [
+          {required: true, message: "部门不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    /** 查询近两年水资源总量列表 */
+    getList() {
+      this.loading = true;
+      listWaterTotalResourcesTwoYears(this.queryParams).then(response => {
+        this.waterTotalResourcesTwoYearsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        totalWaterResourcesOfPreviousYear: null,
+        totalWaterResourcesOfYear: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加近两年水资源总量";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWaterTotalResourcesTwoYears(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改近两年水资源总量";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWaterTotalResourcesTwoYears(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWaterTotalResourcesTwoYears(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除近两年水资源总量编号为"' + ids + '"的数据项?').then(function () {
+        return delWaterTotalResourcesTwoYears(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/waterTotalResourcesTwoYears/export', {
+        ...this.queryParams
+      }, `waterTotalResourcesTwoYears_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 361 - 0
data-ui/src/views/data/digitalwaterconservancy/waterresource/index.vue

@@ -0,0 +1,361 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="年份" prop="year">
+        <div class="block">
+          <el-date-picker clearable size="small"
+                          v-model="queryParams.year"
+                          type="year"
+                          value-format="yyyy"
+                          placeholder="选择年份">
+          </el-date-picker>
+        </div>
+      </el-form-item>
+<!--      <el-form-item label="红线值" prop="redlineValue">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.redlineValue"-->
+<!--          placeholder="请输入红线值"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="实际值" prop="actualValue">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.actualValue"-->
+<!--          placeholder="请输入实际值"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['waterResource:management:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['waterResource:management:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['waterResource:management:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['waterResource:management:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="managementList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="红线值" align="center" prop="redlineValue"/>
+      <el-table-column label="实际值" align="center" prop="actualValue"/>
+      <el-table-column label="类型" align="center" prop="type">
+      <template slot-scope="scope">
+        <dict-tag :options="dict.type.water_resource_type" :value="scope.row.type"/>
+      </template>
+      </el-table-column>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createName"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateName"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['waterResource:management:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['waterResource:management:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改水利-水资源管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="年份" prop="year">
+          <div class="block">
+            <el-date-picker clearable size="small"
+                            v-model="form.year"
+                            type="year"
+                            value-format="yyyy"
+                            placeholder="选择年份">
+            </el-date-picker>
+          </div>
+        </el-form-item>
+        <el-form-item label="红线值" prop="redlineValue">
+          <el-input v-model="form.redlineValue" placeholder="请输入红线值" maxlength="10"/>
+        </el-form-item>
+        <el-form-item label="实际值" prop="actualValue">
+          <el-input v-model="form.actualValue" placeholder="请输入实际值" maxlength="10"/>
+        </el-form-item>
+        <el-form-item label="类型" prop="type">
+          <el-select v-model="form.type" filterable placeholder="请选择类型">
+            <el-option v-for="dict in dict.type.water_resource_type"
+                       :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listManagement, getManagement, delManagement, addManagement, updateManagement} from "@/api/data/digitalwaterconservancy/management";
+import {  checkPositiveDecimal } from '@/api/rules/rules'
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {treeselect} from "@/api/system/dept";
+
+export default {
+  name: "Management",
+  components: {Treeselect},
+  dicts: ['water_resource_type'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 水利-水资源管理表格数据
+      managementList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      deptOptions: undefined,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        year: null,
+        redlineValue: null,
+        actualValue: null,
+        type: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        redlineValue: [
+          {required: true, message: "红线值不能为空", trigger: "blur"},
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        actualValue: [
+          {required: true, message: "实际值不能为空", trigger: "change"},
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        type: [
+          {required: true, message: "类型不能为空", trigger: "change"}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+
+    /** 查询水利-水资源管理列表 */
+    getList() {
+      this.loading = true;
+      listManagement(this.queryParams).then(response => {
+        this.managementList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        year: null,
+        redlineValue: null,
+        actualValue: null,
+        type: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加水利-水资源管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getManagement(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改水利-水资源管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateManagement(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addManagement(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删选中的数据项?').then(function () {
+        return delManagement(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/management/export', {
+        ...this.queryParams
+      }, `水资源管理_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 0 - 386
logs/center-comprehensive/info.2024-01-22.log

@@ -1,386 +0,0 @@
-15:57:24.372 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-15:57:24.580 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0
-15:57:24.599 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 12 ms to scan 1 urls, producing 3 keys and 6 values 
-15:57:24.609 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-15:57:24.616 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 3 keys and 10 values 
-15:57:24.624 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-15:57:24.630 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-15:57:24.639 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 9 ms to scan 1 urls, producing 1 keys and 7 values 
-15:57:24.645 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 2 keys and 8 values 
-15:57:24.653 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 14 urls, producing 0 keys and 0 values 
-15:57:24.653 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-15:57:24.653 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1902801188
-15:57:24.653 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/1998137093
-15:57:24.654 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-15:57:24.654 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-15:57:24.656 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-15:57:24.994 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910244854_127.0.0.1_61147
-15:57:24.994 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Notify connected event to listeners.
-15:57:24.994 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-15:57:24.994 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d6daf1c4-b4d8-4c38-ad7c-3a618a18f1ab_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$338/1997704619
-15:57:25.085 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-15:57:26.006 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-15:57:26.006 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-15:57:26.006 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-15:57:26.030 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-15:57:26.168 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.2199762595200460326\]
-15:57:27.258 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-15:57:27.258 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:27.272 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-15:57:27.535 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:27.690 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:27.697 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:27.699 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:27.977 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-15:57:28.147 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of f8ced55a-0d90-4728-8f31-6c62c43a949d
-15:57:28.147 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] RpcClient init label, labels = {module=naming, source=sdk}
-15:57:28.148 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-15:57:28.148 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-15:57:28.148 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-15:57:28.148 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-15:57:28.260 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910248151_127.0.0.1_61204
-15:57:28.260 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-15:57:28.260 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Notify connected event to listeners.
-15:57:28.260 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$338/1997704619
-15:57:28.510 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:28.512 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:28.804 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-15:57:28.814 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-15:57:28.848 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.687 seconds (JVM running for 5.019)
-15:57:28.857 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-15:57:28.858 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:57:29.182 [RMI TCP Connection(1)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-15:57:29.400 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Receive server push request, request = NotifySubscriberRequest, requestId = 314
-15:57:29.402 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [f8ced55a-0d90-4728-8f31-6c62c43a949d] Ack server push request, request = NotifySubscriberRequest, requestId = 314
-15:58:56.084 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-15:58:56.294 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 5aa535be-1e5e-4750-9b96-cc788544b12f_config-0
-15:58:56.312 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 12 ms to scan 1 urls, producing 3 keys and 6 values 
-15:58:56.323 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-15:58:56.330 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 3 keys and 10 values 
-15:58:56.340 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-15:58:56.346 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-15:58:56.352 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 1 keys and 7 values 
-15:58:56.358 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 2 keys and 8 values 
-15:58:56.365 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-15:58:56.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-15:58:56.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1998137093
-15:58:56.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/577127077
-15:58:56.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-15:58:56.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-15:58:56.369 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-15:58:56.734 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910336567_127.0.0.1_61350
-15:58:56.734 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Notify connected event to listeners.
-15:58:56.734 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-15:58:56.734 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [5aa535be-1e5e-4750-9b96-cc788544b12f_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1665308978
-15:58:56.767 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-15:58:57.669 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-15:58:57.670 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-15:58:57.670 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-15:58:57.692 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-15:58:57.823 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.1342612381521275989\]
-15:58:58.903 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-15:58:58.903 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:58:58.916 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-15:58:59.168 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:58:59.318 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:58:59.324 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:58:59.326 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:58:59.600 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-15:58:59.770 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 592b5ac6-0be1-4fa4-9131-6de67dcee03d
-15:58:59.770 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] RpcClient init label, labels = {module=naming, source=sdk}
-15:58:59.770 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-15:58:59.771 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-15:58:59.771 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-15:58:59.771 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-15:58:59.885 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910339772_127.0.0.1_61408
-15:58:59.885 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-15:58:59.885 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Notify connected event to listeners.
-15:58:59.885 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1665308978
-15:59:00.157 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:59:00.159 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:59:00.423 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-15:59:00.432 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-15:59:00.467 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.6 seconds (JVM running for 4.925)
-15:59:00.477 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-15:59:00.477 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-15:59:00.889 [RMI TCP Connection(4)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-15:59:00.946 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Receive server push request, request = NotifySubscriberRequest, requestId = 317
-15:59:00.948 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [592b5ac6-0be1-4fa4-9131-6de67dcee03d] Ack server push request, request = NotifySubscriberRequest, requestId = 317
-16:00:16.553 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:00:16.769 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0
-16:00:16.787 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 12 ms to scan 1 urls, producing 3 keys and 6 values 
-16:00:16.798 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-16:00:16.804 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 3 keys and 10 values 
-16:00:16.816 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-16:00:16.821 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:00:16.828 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 7 values 
-16:00:16.834 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 2 keys and 8 values 
-16:00:16.842 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-16:00:16.842 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:00:16.842 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1998137093
-16:00:16.843 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/577127077
-16:00:16.843 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:00:16.843 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:00:16.846 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:00:17.205 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910417045_127.0.0.1_61548
-16:00:17.205 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Notify connected event to listeners.
-16:00:17.205 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:00:17.205 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [d41bf1e8-9972-4a4e-b4b2-af307625746d_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$338/70978270
-16:00:17.238 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:00:18.141 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-16:00:18.141 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:00:18.142 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:00:18.166 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:00:18.295 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.6259680331866425689\]
-16:00:19.383 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:00:19.383 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:19.397 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:00:19.649 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:19.804 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:19.810 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:19.813 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:20.085 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:00:20.256 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of b9942457-80fd-42bc-af8b-c6db80f51242
-16:00:20.256 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] RpcClient init label, labels = {module=naming, source=sdk}
-16:00:20.257 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:00:20.257 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:00:20.257 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:00:20.257 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:00:20.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910420259_127.0.0.1_61605
-16:00:20.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:00:20.366 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Notify connected event to listeners.
-16:00:20.366 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$338/70978270
-16:00:20.629 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:20.631 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:20.895 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-16:00:20.904 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-16:00:20.941 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.6 seconds (JVM running for 4.939)
-16:00:20.951 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:00:20.951 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:00:21.357 [RMI TCP Connection(3)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:00:21.413 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Receive server push request, request = NotifySubscriberRequest, requestId = 321
-16:00:21.415 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [b9942457-80fd-42bc-af8b-c6db80f51242] Ack server push request, request = NotifySubscriberRequest, requestId = 321
-16:02:17.729 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:02:17.962 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 8e786643-6889-48da-8a55-5068662b47ea_config-0
-16:02:17.981 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 12 ms to scan 1 urls, producing 3 keys and 6 values 
-16:02:17.992 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-16:02:18.000 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 1 urls, producing 3 keys and 10 values 
-16:02:18.012 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-16:02:18.018 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:02:18.024 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 7 values 
-16:02:18.031 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 2 keys and 8 values 
-16:02:18.039 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-16:02:18.039 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:02:18.040 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1902801188
-16:02:18.040 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/1998137093
-16:02:18.040 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:02:18.040 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:02:18.043 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:02:18.423 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910538269_127.0.0.1_61970
-16:02:18.423 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Notify connected event to listeners.
-16:02:18.423 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:02:18.424 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [8e786643-6889-48da-8a55-5068662b47ea_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1997704619
-16:02:18.457 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:02:19.399 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-16:02:19.399 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:02:19.399 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:02:19.423 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:02:19.542 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.1208262125884445974\]
-16:02:20.679 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:02:20.679 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:20.693 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:02:20.964 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:21.105 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:21.111 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:21.113 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:21.399 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:02:21.570 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of ee86cd52-7f23-472a-ad17-bd5c7e4fb679
-16:02:21.570 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] RpcClient init label, labels = {module=naming, source=sdk}
-16:02:21.571 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:02:21.571 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:02:21.571 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:02:21.571 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:02:21.688 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910541573_127.0.0.1_62029
-16:02:21.688 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:02:21.688 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1997704619
-16:02:21.688 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Notify connected event to listeners.
-16:02:21.973 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:21.975 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:22.241 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-16:02:22.250 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-16:02:22.285 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.787 seconds (JVM running for 5.149)
-16:02:22.295 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:02:22.295 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:02:22.509 [RMI TCP Connection(4)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:02:22.770 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Receive server push request, request = NotifySubscriberRequest, requestId = 323
-16:02:22.771 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [ee86cd52-7f23-472a-ad17-bd5c7e4fb679] Ack server push request, request = NotifySubscriberRequest, requestId = 323
-16:03:18.362 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:03:18.574 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 37db21db-84cd-464f-ba34-37db1bd96eb3_config-0
-16:03:18.593 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 12 ms to scan 1 urls, producing 3 keys and 6 values 
-16:03:18.604 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-16:03:18.610 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 3 keys and 10 values 
-16:03:18.621 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-16:03:18.627 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:03:18.633 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 7 values 
-16:03:18.639 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 2 keys and 8 values 
-16:03:18.647 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-16:03:18.648 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:03:18.648 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1998137093
-16:03:18.648 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/577127077
-16:03:18.648 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:03:18.649 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:03:18.651 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:03:19.000 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910598853_127.0.0.1_62171
-16:03:19.000 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Notify connected event to listeners.
-16:03:19.000 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:03:19.000 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [37db21db-84cd-464f-ba34-37db1bd96eb3_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1665308978
-16:03:19.033 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:03:19.943 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-16:03:19.943 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:03:19.943 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:03:19.967 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:03:20.091 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.914072678018977967\]
-16:03:21.284 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:03:21.284 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:21.299 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:03:21.576 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:21.726 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:21.732 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:21.735 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:22.030 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:03:22.231 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of e679fe25-a0f7-4a38-939f-ce5cf60ca8c8
-16:03:22.231 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] RpcClient init label, labels = {module=naming, source=sdk}
-16:03:22.232 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:03:22.232 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:03:22.232 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:03:22.232 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:03:22.338 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705910602235_127.0.0.1_62230
-16:03:22.338 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:03:22.338 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Notify connected event to listeners.
-16:03:22.338 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1665308978
-16:03:22.587 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:22.589 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:22.851 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-16:03:22.861 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-16:03:22.896 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.759 seconds (JVM running for 5.087)
-16:03:22.905 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:03:22.905 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:03:23.107 [RMI TCP Connection(1)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:03:23.367 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Receive server push request, request = NotifySubscriberRequest, requestId = 326
-16:03:23.369 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [e679fe25-a0f7-4a38-939f-ce5cf60ca8c8] Ack server push request, request = NotifySubscriberRequest, requestId = 326
-16:20:44.337 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:20:44.553 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 91c84660-8a68-4d27-ad87-dbfd838f8462_config-0
-16:20:44.572 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 13 ms to scan 1 urls, producing 3 keys and 6 values 
-16:20:44.583 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-16:20:44.590 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 3 keys and 10 values 
-16:20:44.601 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-16:20:44.606 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:20:44.613 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 1 keys and 7 values 
-16:20:44.619 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 2 keys and 8 values 
-16:20:44.627 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 14 urls, producing 0 keys and 0 values 
-16:20:44.627 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:20:44.627 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1998137093
-16:20:44.627 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/577127077
-16:20:44.628 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:20:44.628 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:20:44.631 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:20:44.989 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705911644830_127.0.0.1_64604
-16:20:44.989 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Notify connected event to listeners.
-16:20:44.989 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:20:44.989 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [91c84660-8a68-4d27-ad87-dbfd838f8462_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1665308978
-16:20:45.027 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:20:46.034 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-16:20:46.034 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:20:46.034 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:20:46.057 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:20:46.191 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.3645818242323622758\]
-16:20:47.334 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:20:47.334 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:47.348 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:20:47.619 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:47.756 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:47.762 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:47.765 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:48.060 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:20:48.233 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 224ed576-6ef8-459f-a755-c0c3f2d393ba
-16:20:48.233 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] RpcClient init label, labels = {module=naming, source=sdk}
-16:20:48.234 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:20:48.234 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:20:48.234 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:20:48.234 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:20:48.345 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705911648237_127.0.0.1_64665
-16:20:48.345 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:20:48.345 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Notify connected event to listeners.
-16:20:48.345 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/1665308978
-16:20:48.606 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:48.608 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:48.898 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-16:20:48.908 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-16:20:48.943 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.811 seconds (JVM running for 5.16)
-16:20:48.953 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:20:48.953 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:20:49.179 [RMI TCP Connection(2)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:20:49.500 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Receive server push request, request = NotifySubscriberRequest, requestId = 329
-16:20:49.501 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [224ed576-6ef8-459f-a755-c0c3f2d393ba] Ack server push request, request = NotifySubscriberRequest, requestId = 329
-16:22:14.865 [http-nio-10010-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:22:14.865 [http-nio-10010-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:23:01.986 [http-nio-10010-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:23:01.986 [http-nio-10010-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:23:17.937 [http-nio-10010-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:23:17.938 [http-nio-10010-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:30:02.147 [http-nio-10010-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:30:02.147 [http-nio-10010-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:34.502 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:39:34.707 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of da184068-2771-4703-91a7-4e501430b052_config-0
-16:39:34.726 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 13 ms to scan 1 urls, producing 3 keys and 6 values 
-16:39:34.737 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-16:39:34.743 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 3 keys and 10 values 
-16:39:34.754 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-16:39:34.759 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:39:34.765 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 7 values 
-16:39:34.771 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 2 keys and 8 values 
-16:39:34.779 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-16:39:34.779 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:39:34.779 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$329/1663488386
-16:39:34.780 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$330/1380044647
-16:39:34.780 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:39:34.780 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:39:34.783 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:39:35.146 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705912774981_127.0.0.1_65081
-16:39:35.146 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Notify connected event to listeners.
-16:39:35.146 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:39:35.146 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da184068-2771-4703-91a7-4e501430b052_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/518167684
-16:39:35.178 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:39:36.079 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10010"]
-16:39:36.080 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:39:36.080 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:39:36.103 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:39:36.223 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Set web app root system property: 'webapp.root' = [C:\Users\27973\AppData\Local\Temp\tomcat-docbase.10010.7121161032196068719\]
-16:39:37.344 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:39:37.345 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:37.358 [main] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:39:37.609 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:37.746 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:37.752 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:37.754 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:38.049 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:39:38.219 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of dd184e15-1957-43d0-baac-40c23b7e6562
-16:39:38.219 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] RpcClient init label, labels = {module=naming, source=sdk}
-16:39:38.220 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:39:38.220 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:39:38.220 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:39:38.220 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:39:38.336 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705912778222_127.0.0.1_65142
-16:39:38.336 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:39:38.336 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Notify connected event to listeners.
-16:39:38.336 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$344/518167684
-16:39:38.587 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:38.589 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:38.871 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10010"]
-16:39:38.880 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-comprehensive 192.168.4.17:10010 register finished
-16:39:38.915 [main] INFO  c.s.s.c.SookaComprehensiveApplication - [logStarted,61] - Started SookaComprehensiveApplication in 4.645 seconds (JVM running for 4.997)
-16:39:38.925 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:39:38.925 [task-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:39:39.184 [RMI TCP Connection(2)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:39:39.428 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Receive server push request, request = NotifySubscriberRequest, requestId = 333
-16:39:39.430 [nacos-grpc-client-executor-6] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dd184e15-1957-43d0-baac-40c23b7e6562] Ack server push request, request = NotifySubscriberRequest, requestId = 333

+ 0 - 217
logs/center-data/info.2024-01-22.log

@@ -1,217 +0,0 @@
-09:22:00.770 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-09:22:01.003 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 6b249848-a8a4-4ba7-be14-d806a528549a_config-0
-09:22:01.021 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 11 ms to scan 1 urls, producing 3 keys and 6 values 
-09:22:01.033 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 4 keys and 9 values 
-09:22:01.040 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 1 urls, producing 3 keys and 10 values 
-09:22:01.051 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 9 ms to scan 14 urls, producing 0 keys and 0 values 
-09:22:01.060 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 8 ms to scan 1 urls, producing 1 keys and 5 values 
-09:22:01.069 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 9 ms to scan 1 urls, producing 1 keys and 7 values 
-09:22:01.076 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 1 urls, producing 2 keys and 8 values 
-09:22:01.087 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 14 urls, producing 0 keys and 0 values 
-09:22:01.088 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-09:22:01.088 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$334/798278875
-09:22:01.088 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$335/1497268815
-09:22:01.089 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-09:22:01.089 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-09:22:01.092 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-09:22:01.478 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705886521322_127.0.0.1_54815
-09:22:01.478 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Notify connected event to listeners.
-09:22:01.478 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-09:22:01.478 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [6b249848-a8a4-4ba7-be14-d806a528549a_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$349/488669101
-09:22:01.521 [main] INFO  c.s.s.d.SookaDataApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-09:22:03.034 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10002"]
-09:22:03.035 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-09:22:03.035 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-09:22:03.059 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-09:22:07.273 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-09:22:07.478 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of da66a53f-b557-4c27-b54b-f090e42e9b35
-09:22:07.479 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] RpcClient init label, labels = {module=naming, source=sdk}
-09:22:07.479 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-09:22:07.479 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-09:22:07.479 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-09:22:07.480 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-09:22:07.597 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705886527482_127.0.0.1_54831
-09:22:07.597 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-09:22:07.597 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$349/488669101
-09:22:07.597 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Notify connected event to listeners.
-09:22:08.259 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-09:22:08.259 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-09:22:08.261 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-09:22:08.741 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10002"]
-09:22:08.751 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-center-data 192.168.4.17:10002 register finished
-09:22:08.797 [main] INFO  c.s.s.d.SookaDataApplication - [logStarted,61] - Started SookaDataApplication in 8.254 seconds (JVM running for 8.611)
-09:22:09.055 [RMI TCP Connection(11)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-09:22:09.293 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Receive server push request, request = NotifySubscriberRequest, requestId = 311
-09:22:09.295 [nacos-grpc-client-executor-7] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [da66a53f-b557-4c27-b54b-f090e42e9b35] Ack server push request, request = NotifySubscriberRequest, requestId = 311
-09:22:13.145 [RMI TCP Connection(10)-192.168.4.17] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-09:22:13.205 [RMI TCP Connection(10)-192.168.4.17] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-2} inited
-16:48:51.234 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:48:51.467 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of dec6bb27-a12c-40f5-a030-13650a1f1253_config-0
-16:48:51.485 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 12 ms to scan 1 urls, producing 3 keys and 6 values 
-16:48:51.499 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 1 urls, producing 4 keys and 9 values 
-16:48:51.505 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 3 keys and 10 values 
-16:48:51.514 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-16:48:51.520 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:48:51.526 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 7 values 
-16:48:51.532 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 2 keys and 8 values 
-16:48:51.540 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 14 urls, producing 0 keys and 0 values 
-16:48:51.541 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:48:51.541 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$334/798278875
-16:48:51.541 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$335/1497268815
-16:48:51.542 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:48:51.542 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:48:51.545 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:48:51.940 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705913331754_127.0.0.1_49418
-16:48:51.940 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Notify connected event to listeners.
-16:48:51.940 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:48:51.940 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [dec6bb27-a12c-40f5-a030-13650a1f1253_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$349/488669101
-16:48:51.979 [main] INFO  c.s.s.d.SookaDataApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:48:53.314 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10002"]
-16:48:53.314 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:48:53.315 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:48:53.339 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:48:57.427 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:48:57.630 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 4164075a-c528-4422-981a-744f8197ef62
-16:48:57.630 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] RpcClient init label, labels = {module=naming, source=sdk}
-16:48:57.631 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:48:57.631 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:48:57.631 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:48:57.632 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:48:57.739 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705913337634_127.0.0.1_49427
-16:48:57.739 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:48:57.739 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Notify connected event to listeners.
-16:48:57.739 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$349/488669101
-16:48:58.351 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:48:58.351 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:48:58.353 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:48:58.852 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10002"]
-16:48:58.862 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-center-data 192.168.4.17:10002 register finished
-16:48:58.905 [main] INFO  c.s.s.d.SookaDataApplication - [logStarted,61] - Started SookaDataApplication in 7.896 seconds (JVM running for 8.243)
-16:48:59.039 [RMI TCP Connection(1)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:48:59.381 [nacos-grpc-client-executor-5] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Receive server push request, request = NotifySubscriberRequest, requestId = 337
-16:48:59.382 [nacos-grpc-client-executor-5] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4164075a-c528-4422-981a-744f8197ef62] Ack server push request, request = NotifySubscriberRequest, requestId = 337
-16:49:03.151 [RMI TCP Connection(2)-192.168.4.17] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:49:03.198 [RMI TCP Connection(2)-192.168.4.17] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-2} inited
-16:50:31.776 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.2.Final
-16:50:32.037 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0
-16:50:32.066 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 21 ms to scan 1 urls, producing 3 keys and 6 values 
-16:50:32.079 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 1 urls, producing 4 keys and 9 values 
-16:50:32.088 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 8 ms to scan 1 urls, producing 3 keys and 10 values 
-16:50:32.098 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 8 ms to scan 14 urls, producing 0 keys and 0 values 
-16:50:32.104 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 1 keys and 5 values 
-16:50:32.111 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 1 keys and 7 values 
-16:50:32.117 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 5 ms to scan 1 urls, producing 2 keys and 8 values 
-16:50:32.126 [main] INFO  o.r.Reflections - [scan,232] - Reflections took 8 ms to scan 14 urls, producing 0 keys and 0 values 
-16:50:32.127 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown}
-16:50:32.127 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$334/1497268815
-16:50:32.127 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$335/1926027290
-16:50:32.127 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1
-16:50:32.127 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2
-16:50:32.130 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:50:32.501 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705913432343_127.0.0.1_49645
-16:50:32.501 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Notify connected event to listeners.
-16:50:32.501 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:50:32.502 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [4e607647-ad25-4890-8d7b-f9a6589f91dd_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$349/1928174253
-16:50:32.536 [main] INFO  c.s.s.d.SookaDataApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev"
-16:50:33.801 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-10002"]
-16:50:33.802 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
-16:50:33.802 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.58]
-16:50:33.826 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
-16:50:37.810 [main] INFO  c.a.c.s.SentinelWebAutoConfiguration - [addInterceptors,80] - [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
-16:50:38.011 [main] INFO  c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of bd328092-d80c-4879-ab1d-14c52e7df36f
-16:50:38.012 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] RpcClient init label, labels = {module=naming, source=sdk}
-16:50:38.012 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
-16:50:38.012 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
-16:50:38.012 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
-16:50:38.013 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Try to connect to server on start up, server: {serverIp = 'www.sooka.onest.com', server main port = 8848}
-16:50:38.116 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Success to connect to server [www.sooka.onest.com:8848] on start up, connectionId = 1705913438014_127.0.0.1_49656
-16:50:38.116 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
-16:50:38.116 [com.alibaba.nacos.client.remote.worker] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Notify connected event to listeners.
-16:50:38.116 [main] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$349/1928174253
-16:50:38.755 [main] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:50:38.755 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:50:38.757 [main] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:50:39.244 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-10002"]
-16:50:39.255 [main] INFO  c.a.c.n.r.NacosServiceRegistry - [register,75] - nacos registry, DEFAULT_GROUP sooka-sponest-center-data 192.168.4.17:10002 register finished
-16:50:39.302 [main] INFO  c.s.s.d.SookaDataApplication - [logStarted,61] - Started SookaDataApplication in 7.751 seconds (JVM running for 8.101)
-16:50:39.683 [RMI TCP Connection(1)-192.168.4.17] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
-16:50:39.842 [nacos-grpc-client-executor-5] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Receive server push request, request = NotifySubscriberRequest, requestId = 340
-16:50:39.843 [nacos-grpc-client-executor-5] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Ack server push request, request = NotifySubscriberRequest, requestId = 340
-16:50:43.749 [RMI TCP Connection(2)-192.168.4.17] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-1} inited
-16:50:43.801 [RMI TCP Connection(2)-192.168.4.17] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-2} inited
-16:51:04.880 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:04.880 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:04.887 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:04.887 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:04.887 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:04.887 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:04.888 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:04.888 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:04.888 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:04.888 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.039 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:05.039 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.247 [http-nio-10002-exec-8] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:05.248 [http-nio-10002-exec-8] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.248 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:05.248 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.491 [nacos-grpc-client-executor-13] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Receive server push request, request = NotifySubscriberRequest, requestId = 341
-16:51:05.491 [nacos-grpc-client-executor-13] INFO  c.a.n.c.r.client - [printIfInfoEnabled,60] - [bd328092-d80c-4879-ab1d-14c52e7df36f] Ack server push request, request = NotifySubscriberRequest, requestId = 341
-16:51:05.565 [http-nio-10002-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:05.566 [http-nio-10002-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.642 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSourceSwitcher - [setDataSource,30] - -------- 设置数据源数据源为 :master 
-16:51:05.642 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.875 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.893 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:51:05.965 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.572 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.572 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.712 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.887 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.888 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.888 [http-nio-10002-exec-8] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:02.888 [http-nio-10002-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:03.024 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:03.295 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:03.962 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:03.962 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:04.274 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:04.276 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.339 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.339 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.510 [http-nio-10002-exec-8] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.649 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.649 [http-nio-10002-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.660 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.661 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:43.839 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:44.026 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:44.943 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:44.943 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:45.255 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:52:45.255 [http-nio-10002-exec-8] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:21.557 [http-nio-10002-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:21.558 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:21.558 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:22.241 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:36.561 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:36.561 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:36.561 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:36.897 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:53:43.454 [http-nio-10002-exec-8] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:54:38.094 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:54:38.094 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:54:38.094 [http-nio-10002-exec-2] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:54:38.442 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:58:13.896 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:58:13.897 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:58:13.897 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:58:14.327 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:17.594 [http-nio-10002-exec-3] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:17.594 [http-nio-10002-exec-9] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:17.604 [http-nio-10002-exec-5] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:18.276 [http-nio-10002-exec-4] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:24.295 [http-nio-10002-exec-10] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:24.295 [http-nio-10002-exec-6] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:24.296 [http-nio-10002-exec-1] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master
-16:59:24.649 [http-nio-10002-exec-7] INFO  c.r.c.d.b.u.d.DynamicDataSource - [determineCurrentLookupKey,16] - ------------------当前数据源 master

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitaluav/controller/CenterdataTUavController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitaluav.controller;
+
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUav;
+import com.sooka.sponest.data.digitaluav.service.ICenterdataTUavService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.List;
+
+/**
+ * 无人机Controller
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+@RestController
+@RequestMapping("/uav")
+public class CenterdataTUavController extends BaseController {
+
+    @Autowired
+    private ICenterdataTUavService centerdataTUavService;
+
+    /**
+     * 查询无人机列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTUav CenterdataTUav) {
+        startPage();
+        List<CenterdataTUav> list = centerdataTUavService.selectCenterdataTUavList(CenterdataTUav);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出无人机列表
+     */
+    @Log(title = "无人机", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTUav CenterdataTUav) {
+        List<CenterdataTUav> list = centerdataTUavService.selectCenterdataTUavList(CenterdataTUav);
+        ExcelUtil<CenterdataTUav> util = new ExcelUtil<CenterdataTUav>(CenterdataTUav.class);
+        util.exportExcel(response, list, "无人机数据");
+    }
+
+    /**
+     * 获取无人机详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(centerdataTUavService.selectCenterdataTUavById(id));
+    }
+
+    /**
+     * 新增无人机
+     */
+    @Log(title = "无人机", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTUav CenterdataTUav) {
+        return toAjax(centerdataTUavService.insertCenterdataTUav(CenterdataTUav));
+    }
+
+    /**
+     * 修改无人机
+     */
+    @Log(title = "无人机", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTUav CenterdataTUav) {
+        return toAjax(centerdataTUavService.updateCenterdataTUav(CenterdataTUav));
+    }
+
+    /**
+     * 删除无人机
+     */
+    @Log(title = "无人机", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(centerdataTUavService.deleteCenterdataTUavByIds(ids));
+    }
+
+    /**
+     * 根据部门id查询无人机列表
+     *
+     * @return
+     */
+    @GetMapping("/selectCenterdataTUavByDeptId")
+    public AjaxResult selectCenterdataTUavByDeptId(CenterdataTUav CenterdataTUav) {
+        return AjaxResult.success(centerdataTUavService.selectCenterdataTUavByDeptId(CenterdataTUav));
+    }
+}

+ 84 - 0
src/main/java/com/sooka/sponest/data/digitaluav/controller/CenterdataTUavdeptController.java

@@ -0,0 +1,84 @@
+package com.sooka.sponest.data.digitaluav.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUavdept;
+import com.sooka.sponest.data.digitaluav.service.ICenterdataTUavdeptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 无人机部门关联Controller
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+@RestController
+@RequestMapping("/uavdept")
+public class CenterdataTUavdeptController extends BaseController {
+    @Autowired
+    private ICenterdataTUavdeptService centerdataTUavdeptService;
+
+    /**
+     * 查询无人机部门关联列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTUavdept CenterdataTUavdept) {
+        startPage();
+        List<CenterdataTUavdept> list = centerdataTUavdeptService.selectCenterdataTUavdeptList(CenterdataTUavdept);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出无人机部门关联列表
+     */
+    @Log(title = "无人机部门关联", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTUavdept CenterdataTUavdept) {
+        List<CenterdataTUavdept> list = centerdataTUavdeptService.selectCenterdataTUavdeptList(CenterdataTUavdept);
+        ExcelUtil<CenterdataTUavdept> util = new ExcelUtil<CenterdataTUavdept>(CenterdataTUavdept.class);
+        util.exportExcel(response, list, "无人机部门关联数据");
+    }
+
+    /**
+     * 获取无人机部门关联详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(centerdataTUavdeptService.selectCenterdataTUavdeptById(id));
+    }
+
+    /**
+     * 新增无人机部门关联
+     */
+    @Log(title = "无人机部门关联", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTUavdept CenterdataTUavdept) {
+        return toAjax(centerdataTUavdeptService.insertCenterdataTUavdept(CenterdataTUavdept));
+    }
+
+    /**
+     * 修改无人机部门关联
+     */
+    @Log(title = "无人机部门关联", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTUavdept CenterdataTUavdept) {
+        return toAjax(centerdataTUavdeptService.updateCenterdataTUavdept(CenterdataTUavdept));
+    }
+
+    /**
+     * 删除无人机部门关联
+     */
+    @Log(title = "无人机部门关联", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(centerdataTUavdeptService.deleteCenterdataTUavdeptByIds(ids));
+    }
+}

+ 186 - 0
src/main/java/com/sooka/sponest/data/digitaluav/domain/CenterdataTUav.java

@@ -0,0 +1,186 @@
+package com.sooka.sponest.data.digitaluav.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 无人机对象 centerdata_t_uav
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+public class CenterdataTUav extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 基站名称
+     */
+    @Excel(name = "基站名称")
+    private String baseStationName;
+
+    /**
+     * 机库ID
+     */
+    @Excel(name = "机库ID")
+    private String baseStationId;
+
+    /**
+     * 机库SN
+     */
+    @Excel(name = "机库SN")
+    private String baseStationSn;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 维度
+     */
+    @Excel(name = "维度")
+    private String latitude;
+
+    /**
+     * 高度
+     */
+    @Excel(name = "高度")
+    private String height;
+
+    /**
+     * 无人机名称
+     */
+    @Excel(name = "无人机名称")
+    private String uavName;
+
+    /**
+     * 无人机ID
+     */
+    @Excel(name = "无人机ID")
+    private String uavId;
+
+    /**
+     * 无人机SN
+     */
+    @Excel(name = "无人机SN")
+    private String uavSn;
+
+    /**
+     * 部门id
+     */
+    @Excel(name = "部门id")
+    private String deptId;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setBaseStationName(String baseStationName) {
+        this.baseStationName = baseStationName;
+    }
+
+    public String getBaseStationName() {
+        return baseStationName;
+    }
+
+    public void setBaseStationId(String baseStationId) {
+        this.baseStationId = baseStationId;
+    }
+
+    public String getBaseStationId() {
+        return baseStationId;
+    }
+
+    public void setBaseStationSn(String baseStationSn) {
+        this.baseStationSn = baseStationSn;
+    }
+
+    public String getBaseStationSn() {
+        return baseStationSn;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setHeight(String height) {
+        this.height = height;
+    }
+
+    public String getHeight() {
+        return height;
+    }
+
+    public void setUavName(String uavName) {
+        this.uavName = uavName;
+    }
+
+    public String getUavName() {
+        return uavName;
+    }
+
+    public void setUavId(String uavId) {
+        this.uavId = uavId;
+    }
+
+    public String getUavId() {
+        return uavId;
+    }
+
+    public void setUavSn(String uavSn) {
+        this.uavSn = uavSn;
+    }
+
+    public String getUavSn() {
+        return uavSn;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("baseStationName", getBaseStationName())
+                .append("baseStationId", getBaseStationId())
+                .append("baseStationSn", getBaseStationSn())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("height", getHeight())
+                .append("uavName", getUavName())
+                .append("uavId", getUavId())
+                .append("uavSn", getUavSn())
+                .append("deptId", getDeptId())
+                .toString();
+    }
+}

+ 46 - 0
src/main/java/com/sooka/sponest/data/digitaluav/domain/CenterdataTUavdept.java

@@ -0,0 +1,46 @@
+package com.sooka.sponest.data.digitaluav.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 无人机部门关联对象 centerdata_t_uavdept
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+@Data
+public class CenterdataTUavdept extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 无人机id
+     */
+    @Excel(name = "无人机id")
+    private Long uavId;
+
+    /**
+     * 无人机名称
+     */
+    @Excel(name = "无人机名称")
+    private String uavName;
+
+    /**
+     * 所属部门id
+     */
+    @Excel(name = "所属部门id")
+    private Long deptId;
+
+    /**
+     * 所属部门名称
+     */
+    @Excel(name = "所属部门名称")
+    private String deptName;
+
+}

+ 70 - 0
src/main/java/com/sooka/sponest/data/digitaluav/mapper/CenterdataTUavMapper.java

@@ -0,0 +1,70 @@
+package com.sooka.sponest.data.digitaluav.mapper;
+
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUav;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 无人机Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+public interface CenterdataTUavMapper {
+    /**
+     * 查询无人机
+     *
+     * @param id 无人机主键
+     * @return 无人机
+     */
+    public CenterdataTUav selectCenterdataTUavById(Long id);
+
+    /**
+     * 查询无人机列表
+     *
+     * @param CenterdataTUav 无人机
+     * @return 无人机集合
+     */
+    public List<CenterdataTUav> selectCenterdataTUavList(CenterdataTUav CenterdataTUav);
+
+    /**
+     * 新增无人机
+     *
+     * @param CenterdataTUav 无人机
+     * @return 结果
+     */
+    public int insertCenterdataTUav(CenterdataTUav CenterdataTUav);
+
+    /**
+     * 修改无人机
+     *
+     * @param CenterdataTUav 无人机
+     * @return 结果
+     */
+    public int updateCenterdataTUav(CenterdataTUav CenterdataTUav);
+
+    /**
+     * 删除无人机
+     *
+     * @param id 无人机主键
+     * @return 结果
+     */
+    public int deleteCenterdataTUavById(Long id);
+
+    /**
+     * 批量删除无人机
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTUavByIds(Long[] ids);
+
+    /**
+     * 根据部门id查询无人机列表
+     * @param CenterdataTUav
+     * @return
+     */
+    List<CenterdataTUav> selectCenterdataTUavByDeptId(CenterdataTUav CenterdataTUav);
+
+}

+ 62 - 0
src/main/java/com/sooka/sponest/data/digitaluav/mapper/CenterdataTUavdeptMapper.java

@@ -0,0 +1,62 @@
+package com.sooka.sponest.data.digitaluav.mapper;
+
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUavdept;
+
+import java.util.List;
+
+/**
+ * 无人机部门关联Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+public interface CenterdataTUavdeptMapper {
+    /**
+     * 查询无人机部门关联
+     *
+     * @param id 无人机部门关联主键
+     * @return 无人机部门关联
+     */
+    public CenterdataTUavdept selectCenterdataTUavdeptById(Long id);
+
+    /**
+     * 查询无人机部门关联列表
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 无人机部门关联集合
+     */
+    public List<CenterdataTUavdept> selectCenterdataTUavdeptList(CenterdataTUavdept CenterdataTUavdept);
+
+    /**
+     * 新增无人机部门关联
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 结果
+     */
+    public int insertCenterdataTUavdept(CenterdataTUavdept CenterdataTUavdept);
+
+    /**
+     * 修改无人机部门关联
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 结果
+     */
+    public int updateCenterdataTUavdept(CenterdataTUavdept CenterdataTUavdept);
+
+    /**
+     * 删除无人机部门关联
+     *
+     * @param id 无人机部门关联主键
+     * @return 结果
+     */
+    public int deleteCenterdataTUavdeptById(Long id);
+
+    /**
+     * 批量删除无人机部门关联
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTUavdeptByIds(Long[] ids);
+
+}

+ 68 - 0
src/main/java/com/sooka/sponest/data/digitaluav/service/ICenterdataTUavService.java

@@ -0,0 +1,68 @@
+package com.sooka.sponest.data.digitaluav.service;
+
+
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUav;
+
+import java.util.List;
+
+/**
+ * 无人机Service接口
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+public interface ICenterdataTUavService {
+    /**
+     * 查询无人机
+     *
+     * @param id 无人机主键
+     * @return 无人机
+     */
+    public CenterdataTUav selectCenterdataTUavById(Long id);
+
+    /**
+     * 查询无人机列表
+     *
+     * @param CenterdataTUav 无人机
+     * @return 无人机集合
+     */
+    public List<CenterdataTUav> selectCenterdataTUavList(CenterdataTUav CenterdataTUav);
+
+    /**
+     * 新增无人机
+     *
+     * @param CenterdataTUav 无人机
+     * @return 结果
+     */
+    public int insertCenterdataTUav(CenterdataTUav CenterdataTUav);
+
+    /**
+     * 修改无人机
+     *
+     * @param CenterdataTUav 无人机
+     * @return 结果
+     */
+    public int updateCenterdataTUav(CenterdataTUav CenterdataTUav);
+
+    /**
+     * 批量删除无人机
+     *
+     * @param ids 需要删除的无人机主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTUavByIds(Long[] ids);
+
+    /**
+     * 删除无人机信息
+     *
+     * @param id 无人机主键
+     * @return 结果
+     */
+    public int deleteCenterdataTUavById(Long id);
+
+    /**
+     * 根据部门id查询无人机列表
+     * @return
+     */
+    List<CenterdataTUav> selectCenterdataTUavByDeptId(CenterdataTUav CenterdataTUav);
+}

+ 62 - 0
src/main/java/com/sooka/sponest/data/digitaluav/service/ICenterdataTUavdeptService.java

@@ -0,0 +1,62 @@
+package com.sooka.sponest.data.digitaluav.service;
+
+
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUavdept;
+
+import java.util.List;
+
+/**
+ * 无人机部门关联Service接口
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+public interface ICenterdataTUavdeptService {
+    /**
+     * 查询无人机部门关联
+     *
+     * @param id 无人机部门关联主键
+     * @return 无人机部门关联
+     */
+    public CenterdataTUavdept selectCenterdataTUavdeptById(Long id);
+
+    /**
+     * 查询无人机部门关联列表
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 无人机部门关联集合
+     */
+    public List<CenterdataTUavdept> selectCenterdataTUavdeptList(CenterdataTUavdept CenterdataTUavdept);
+
+    /**
+     * 新增无人机部门关联
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 结果
+     */
+    public int insertCenterdataTUavdept(CenterdataTUavdept CenterdataTUavdept);
+
+    /**
+     * 修改无人机部门关联
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 结果
+     */
+    public int updateCenterdataTUavdept(CenterdataTUavdept CenterdataTUavdept);
+
+    /**
+     * 批量删除无人机部门关联
+     *
+     * @param ids 需要删除的无人机部门关联主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTUavdeptByIds(Long[] ids);
+
+    /**
+     * 删除无人机部门关联信息
+     *
+     * @param id 无人机部门关联主键
+     * @return 结果
+     */
+    public int deleteCenterdataTUavdeptById(Long id);
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitaluav/service/impl/CenterdataTUavServiceImpl.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitaluav.service.impl;
+
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUav;
+import com.sooka.sponest.data.digitaluav.mapper.CenterdataTUavMapper;
+import com.sooka.sponest.data.digitaluav.service.ICenterdataTUavService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * 无人机Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+@Service
+public class CenterdataTUavServiceImpl implements ICenterdataTUavService {
+    @Autowired
+    private CenterdataTUavMapper centerdataTUavMapper;
+
+    /**
+     * 查询无人机
+     *
+     * @param id 无人机主键
+     * @return 无人机
+     */
+    @Override
+    public CenterdataTUav selectCenterdataTUavById(Long id) {
+        return centerdataTUavMapper.selectCenterdataTUavById(id);
+    }
+
+    /**
+     * 查询无人机列表
+     *
+     * @param CenterdataTUav 无人机
+     * @return 无人机
+     */
+    @Override
+    public List<CenterdataTUav> selectCenterdataTUavList(CenterdataTUav CenterdataTUav) {
+        return centerdataTUavMapper.selectCenterdataTUavList(CenterdataTUav);
+    }
+
+    /**
+     * 新增无人机
+     *
+     * @param CenterdataTUav 无人机
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTUav(CenterdataTUav CenterdataTUav) {
+        return centerdataTUavMapper.insertCenterdataTUav(CenterdataTUav);
+    }
+
+    /**
+     * 修改无人机
+     *
+     * @param CenterdataTUav 无人机
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTUav(CenterdataTUav CenterdataTUav) {
+        return centerdataTUavMapper.updateCenterdataTUav(CenterdataTUav);
+    }
+
+    /**
+     * 批量删除无人机
+     *
+     * @param ids 需要删除的无人机主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTUavByIds(Long[] ids) {
+        return centerdataTUavMapper.deleteCenterdataTUavByIds(ids);
+    }
+
+    /**
+     * 删除无人机信息
+     *
+     * @param id 无人机主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTUavById(Long id) {
+        return centerdataTUavMapper.deleteCenterdataTUavById(id);
+    }
+
+    /**
+     * 根据部门id查询无人机列表
+     * @return
+     */
+    @Override
+    public List<CenterdataTUav> selectCenterdataTUavByDeptId(CenterdataTUav CenterdataTUav) {
+        return centerdataTUavMapper.selectCenterdataTUavByDeptId(CenterdataTUav);
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitaluav/service/impl/CenterdataTUavdeptServiceImpl.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitaluav.service.impl;
+
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUavdept;
+import com.sooka.sponest.data.digitaluav.mapper.CenterdataTUavdeptMapper;
+import com.sooka.sponest.data.digitaluav.service.ICenterdataTUavdeptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 无人机部门关联Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-03-19
+ */
+@Service
+public class CenterdataTUavdeptServiceImpl implements ICenterdataTUavdeptService {
+    @Autowired
+    private CenterdataTUavdeptMapper centerdataTUavdeptMapper;
+
+    /**
+     * 查询无人机部门关联
+     *
+     * @param id 无人机部门关联主键
+     * @return 无人机部门关联
+     */
+    @Override
+    public CenterdataTUavdept selectCenterdataTUavdeptById(Long id) {
+        return centerdataTUavdeptMapper.selectCenterdataTUavdeptById(id);
+    }
+
+    /**
+     * 查询无人机部门关联列表
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 无人机部门关联
+     */
+    @Override
+    public List<CenterdataTUavdept> selectCenterdataTUavdeptList(CenterdataTUavdept CenterdataTUavdept) {
+        return centerdataTUavdeptMapper.selectCenterdataTUavdeptList(CenterdataTUavdept);
+    }
+
+    /**
+     * 新增无人机部门关联
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTUavdept(CenterdataTUavdept CenterdataTUavdept) {
+        CenterdataTUavdept.setCreateTime(new Date());
+        return centerdataTUavdeptMapper.insertCenterdataTUavdept(CenterdataTUavdept);
+    }
+
+    /**
+     * 修改无人机部门关联
+     *
+     * @param CenterdataTUavdept 无人机部门关联
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTUavdept(CenterdataTUavdept CenterdataTUavdept) {
+        CenterdataTUavdept.setUpdateTime(new Date());
+        return centerdataTUavdeptMapper.updateCenterdataTUavdept(CenterdataTUavdept);
+    }
+
+    /**
+     * 批量删除无人机部门关联
+     *
+     * @param ids 需要删除的无人机部门关联主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTUavdeptByIds(Long[] ids) {
+        return centerdataTUavdeptMapper.deleteCenterdataTUavdeptByIds(ids);
+    }
+
+    /**
+     * 删除无人机部门关联信息
+     *
+     * @param id 无人机部门关联主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTUavdeptById(Long id) {
+        return centerdataTUavdeptMapper.deleteCenterdataTUavdeptById(id);
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterAnnouncePlacardController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterAnnouncePlacard;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterAnnouncePlacardService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水利-公示牌Controller
+ *
+ * @author 韩福成
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/announcePlacard")
+public class CenterdataTWaterAnnouncePlacardController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterAnnouncePlacardService centerdataTWaterAnnouncePlacardService;
+
+    /**
+     * 查询水利-公示牌列表
+     */
+    @RequiresPermissions("data:announcePlacard:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterAnnouncePlacard centerdataTWaterAnnouncePlacard) {
+        startPage();
+        List<CenterdataTWaterAnnouncePlacard> list = centerdataTWaterAnnouncePlacardService.selectCenterdataTWaterAnnouncePlacardList(centerdataTWaterAnnouncePlacard);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-公示牌列表
+     */
+    @RequiresPermissions("data:announcePlacard:export")
+    @Log(title = "水利-公示牌", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterAnnouncePlacard centerdataTWaterAnnouncePlacard) {
+        List<CenterdataTWaterAnnouncePlacard> list = centerdataTWaterAnnouncePlacardService.selectCenterdataTWaterAnnouncePlacardList(centerdataTWaterAnnouncePlacard);
+        ExcelUtil<CenterdataTWaterAnnouncePlacard> util = new ExcelUtil<CenterdataTWaterAnnouncePlacard>(CenterdataTWaterAnnouncePlacard.class);
+        util.exportExcel(response, list, "水利-公示牌数据");
+    }
+
+    /**
+     * 获取水利-公示牌详细信息
+     */
+    @RequiresPermissions("data:announcePlacard:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterAnnouncePlacardService.selectCenterdataTWaterAnnouncePlacardById(id));
+    }
+
+    /**
+     * 新增水利-公示牌
+     */
+    @RequiresPermissions("data:announcePlacard:add")
+    @Log(title = "水利-公示牌", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterAnnouncePlacard centerdataTWaterAnnouncePlacard) {
+        return toAjax(centerdataTWaterAnnouncePlacardService.insertCenterdataTWaterAnnouncePlacard(centerdataTWaterAnnouncePlacard));
+    }
+
+    /**
+     * 修改水利-公示牌
+     */
+    @RequiresPermissions("data:announcePlacard:edit")
+    @Log(title = "水利-公示牌", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterAnnouncePlacard centerdataTWaterAnnouncePlacard) {
+        return toAjax(centerdataTWaterAnnouncePlacardService.updateCenterdataTWaterAnnouncePlacard(centerdataTWaterAnnouncePlacard));
+    }
+
+    /**
+     * 删除水利-公示牌
+     */
+    @RequiresPermissions("data:announcePlacard:remove")
+    @Log(title = "水利-公示牌", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterAnnouncePlacardService.deleteCenterdataTWaterAnnouncePlacardByIds(ids));
+    }
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterConservancyProjectController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterConservancyProject;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterConservancyProjectService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-水利工程Controller
+ *
+ * @author LG
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/waterConservancy")
+public class CenterdataTWaterConservancyProjectController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterConservancyProjectService centerdataTWaterConservancyProjectService;
+
+    /**
+     * 查询水利-水利工程列表
+     */
+    @RequiresPermissions("data:waterConservancy:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterConservancyProject centerdataTWaterConservancyProject) {
+        startPage();
+        List<CenterdataTWaterConservancyProject> list = centerdataTWaterConservancyProjectService.selectCenterdataTWaterConservancyProjectList(centerdataTWaterConservancyProject);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-水利工程列表
+     */
+    @RequiresPermissions("data:waterConservancy:export")
+    @Log(title = "水利-水利工程", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterConservancyProject centerdataTWaterConservancyProject) {
+        List<CenterdataTWaterConservancyProject> list = centerdataTWaterConservancyProjectService.selectCenterdataTWaterConservancyProjectList(centerdataTWaterConservancyProject);
+        ExcelUtil<CenterdataTWaterConservancyProject> util = new ExcelUtil<CenterdataTWaterConservancyProject>(CenterdataTWaterConservancyProject.class);
+        util.exportExcel(response, list, "水利-水利工程数据");
+    }
+
+    /**
+     * 获取水利-水利工程详细信息
+     */
+    @RequiresPermissions("data:waterConservancy:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterConservancyProjectService.selectCenterdataTWaterConservancyProjectById(id));
+    }
+
+    /**
+     * 新增水利-水利工程
+     */
+    @RequiresPermissions("data:waterConservancy:add")
+    @Log(title = "水利-水利工程", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterConservancyProject centerdataTWaterConservancyProject) {
+        return toAjax(centerdataTWaterConservancyProjectService.insertCenterdataTWaterConservancyProject(centerdataTWaterConservancyProject));
+    }
+
+    /**
+     * 修改水利-水利工程
+     */
+    @RequiresPermissions("data:waterConservancy:edit")
+    @Log(title = "水利-水利工程", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterConservancyProject centerdataTWaterConservancyProject) {
+        return toAjax(centerdataTWaterConservancyProjectService.updateCenterdataTWaterConservancyProject(centerdataTWaterConservancyProject));
+    }
+
+    /**
+     * 删除水利-水利工程
+     */
+    @RequiresPermissions("data:waterConservancy:remove")
+    @Log(title = "水利-水利工程", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterConservancyProjectService.deleteCenterdataTWaterConservancyProjectByIds(ids));
+    }
+}

+ 86 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterDikeController.java

@@ -0,0 +1,86 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterDike;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterDikeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水利-堤防管理Controller
+ *
+ * @author LG
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/water/dike")
+public class CenterdataTWaterDikeController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterDikeService cnterdataTWaterDikeService;
+
+    /**
+     * 查询水利-堤防管理列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterDike cnterdataTWaterDike) {
+        startPage();
+        List<CenterdataTWaterDike> list = cnterdataTWaterDikeService.selectCenterdataTWaterDikeList(cnterdataTWaterDike);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-堤防管理列表
+     */
+    @Log(title = "水利-堤防管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterDike cnterdataTWaterDike) {
+        List<CenterdataTWaterDike> list = cnterdataTWaterDikeService.selectCenterdataTWaterDikeList(cnterdataTWaterDike);
+        ExcelUtil<CenterdataTWaterDike> util = new ExcelUtil<CenterdataTWaterDike>(CenterdataTWaterDike.class);
+        util.exportExcel(response, list, "水利-堤防管理数据");
+    }
+
+    /**
+     * 获取水利-堤防管理详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(cnterdataTWaterDikeService.selectCenterdataTWaterDikeById(id));
+    }
+
+    /**
+     * 新增水利-堤防管理
+     */
+    @Log(title = "水利-堤防管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterDike cnterdataTWaterDike) {
+        return toAjax(cnterdataTWaterDikeService.insertCenterdataTWaterDike(cnterdataTWaterDike));
+    }
+
+    /**
+     * 修改水利-堤防管理
+     */
+    @Log(title = "水利-堤防管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterDike cnterdataTWaterDike) {
+        return toAjax(cnterdataTWaterDikeService.updateCenterdataTWaterDike(cnterdataTWaterDike));
+    }
+
+    /**
+     * 删除水利-堤防管理
+     */
+    @Log(title = "水利-堤防管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(cnterdataTWaterDikeService.deleteCenterdataTWaterDikeByIds(ids));
+    }
+
+
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterGeneralInfoController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterGeneralInfo;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterGeneralInfoService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-总体信息Controller
+ *
+ * @author LG
+ * @date 2025-04-12
+ */
+@RestController
+@RequestMapping("/waterGeneralInfo")
+public class CenterdataTWaterGeneralInfoController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterGeneralInfoService centerdataTWaterGeneralInfoService;
+
+    /**
+     * 查询水利-总体信息列表
+     */
+    @RequiresPermissions("data:waterGeneralInfo:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterGeneralInfo centerdataTWaterGeneralInfo) {
+        startPage();
+        List<CenterdataTWaterGeneralInfo> list = centerdataTWaterGeneralInfoService.selectCenterdataTWaterGeneralInfoList(centerdataTWaterGeneralInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-总体信息列表
+     */
+    @RequiresPermissions("data:waterGeneralInfo:export")
+    @Log(title = "水利-总体信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterGeneralInfo centerdataTWaterGeneralInfo) {
+        List<CenterdataTWaterGeneralInfo> list = centerdataTWaterGeneralInfoService.selectCenterdataTWaterGeneralInfoList(centerdataTWaterGeneralInfo);
+        ExcelUtil<CenterdataTWaterGeneralInfo> util = new ExcelUtil<CenterdataTWaterGeneralInfo>(CenterdataTWaterGeneralInfo.class);
+        util.exportExcel(response, list, "水利-总体信息数据");
+    }
+
+    /**
+     * 获取水利-总体信息详细信息
+     */
+    @RequiresPermissions("data:waterGeneralInfo:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterGeneralInfoService.selectCenterdataTWaterGeneralInfoById(id));
+    }
+
+    /**
+     * 新增水利-总体信息
+     */
+    @RequiresPermissions("data:waterGeneralInfo:add")
+    @Log(title = "水利-总体信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterGeneralInfo centerdataTWaterGeneralInfo) {
+        return toAjax(centerdataTWaterGeneralInfoService.insertCenterdataTWaterGeneralInfo(centerdataTWaterGeneralInfo));
+    }
+
+    /**
+     * 修改水利-总体信息
+     */
+    @RequiresPermissions("data:waterGeneralInfo:edit")
+    @Log(title = "水利-总体信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterGeneralInfo centerdataTWaterGeneralInfo) {
+        return toAjax(centerdataTWaterGeneralInfoService.updateCenterdataTWaterGeneralInfo(centerdataTWaterGeneralInfo));
+    }
+
+    /**
+     * 删除水利-总体信息
+     */
+    @RequiresPermissions("data:waterGeneralInfo:remove")
+    @Log(title = "水利-总体信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterGeneralInfoService.deleteCenterdataTWaterGeneralInfoByIds(ids));
+    }
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterIncidentManageController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterIncidentManage;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterIncidentManageService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-事件办理Controller
+ *
+ * @author LG
+ * @date 2025-04-12
+ */
+@RestController
+@RequestMapping("/waterIncidentManage")
+public class CenterdataTWaterIncidentManageController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterIncidentManageService centerdataTWaterIncidentManageService;
+
+    /**
+     * 查询水利-事件办理列表
+     */
+    @RequiresPermissions("data:waterIncidentManage:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterIncidentManage centerdataTWaterIncidentManage) {
+        startPage();
+        List<CenterdataTWaterIncidentManage> list = centerdataTWaterIncidentManageService.selectCenterdataTWaterIncidentManageList(centerdataTWaterIncidentManage);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-事件办理列表
+     */
+    @RequiresPermissions("data:waterIncidentManage:export")
+    @Log(title = "水利-事件办理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterIncidentManage centerdataTWaterIncidentManage) {
+        List<CenterdataTWaterIncidentManage> list = centerdataTWaterIncidentManageService.selectCenterdataTWaterIncidentManageList(centerdataTWaterIncidentManage);
+        ExcelUtil<CenterdataTWaterIncidentManage> util = new ExcelUtil<CenterdataTWaterIncidentManage>(CenterdataTWaterIncidentManage.class);
+        util.exportExcel(response, list, "水利-事件办理数据");
+    }
+
+    /**
+     * 获取水利-事件办理详细信息
+     */
+    @RequiresPermissions("data:waterIncidentManage:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterIncidentManageService.selectCenterdataTWaterIncidentManageById(id));
+    }
+
+    /**
+     * 新增水利-事件办理
+     */
+    @RequiresPermissions("data:waterIncidentManage:add")
+    @Log(title = "水利-事件办理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterIncidentManage centerdataTWaterIncidentManage) {
+        return toAjax(centerdataTWaterIncidentManageService.insertCenterdataTWaterIncidentManage(centerdataTWaterIncidentManage));
+    }
+
+    /**
+     * 修改水利-事件办理
+     */
+    @RequiresPermissions("data:waterIncidentManage:edit")
+    @Log(title = "水利-事件办理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterIncidentManage centerdataTWaterIncidentManage) {
+        return toAjax(centerdataTWaterIncidentManageService.updateCenterdataTWaterIncidentManage(centerdataTWaterIncidentManage));
+    }
+
+    /**
+     * 删除水利-事件办理
+     */
+    @RequiresPermissions("data:waterIncidentManage:remove")
+    @Log(title = "水利-事件办理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterIncidentManageService.deleteCenterdataTWaterIncidentManageByIds(ids));
+    }
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterInspectionTroubleController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterInspectionTrouble;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterInspectionTroubleService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-巡检排查Controller
+ *
+ * @author LG
+ * @date 2025-04-12
+ */
+@RestController
+@RequestMapping("/waterInspectionTrouble")
+public class CenterdataTWaterInspectionTroubleController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterInspectionTroubleService centerdataTWaterInspectionTroubleService;
+
+    /**
+     * 查询水利-巡检排查列表
+     */
+    @GetMapping("/list")
+    @RequiresPermissions("data:waterInspectionTrouble:list")
+    public TableDataInfo list(CenterdataTWaterInspectionTrouble centerdataTWaterInspectionTrouble) {
+        startPage();
+        List<CenterdataTWaterInspectionTrouble> list = centerdataTWaterInspectionTroubleService.selectCenterdataTWaterInspectionTroubleList(centerdataTWaterInspectionTrouble);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-巡检排查列表
+     */
+    @RequiresPermissions("data:waterInspectionTrouble:export")
+    @Log(title = "水利-巡检排查", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterInspectionTrouble centerdataTWaterInspectionTrouble) {
+        List<CenterdataTWaterInspectionTrouble> list = centerdataTWaterInspectionTroubleService.selectCenterdataTWaterInspectionTroubleList(centerdataTWaterInspectionTrouble);
+        ExcelUtil<CenterdataTWaterInspectionTrouble> util = new ExcelUtil<CenterdataTWaterInspectionTrouble>(CenterdataTWaterInspectionTrouble.class);
+        util.exportExcel(response, list, "水利-巡检排查数据");
+    }
+
+    /**
+     * 获取水利-巡检排查详细信息
+     */
+    @RequiresPermissions("data:waterInspectionTrouble:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterInspectionTroubleService.selectCenterdataTWaterInspectionTroubleById(id));
+    }
+
+    /**
+     * 新增水利-巡检排查
+     */
+    @RequiresPermissions("data:waterInspectionTrouble:add")
+    @Log(title = "水利-巡检排查", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterInspectionTrouble centerdataTWaterInspectionTrouble) {
+        return toAjax(centerdataTWaterInspectionTroubleService.insertCenterdataTWaterInspectionTrouble(centerdataTWaterInspectionTrouble));
+    }
+
+    /**
+     * 修改水利-巡检排查
+     */
+    @RequiresPermissions("data:waterInspectionTrouble:edit")
+    @Log(title = "水利-巡检排查", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterInspectionTrouble centerdataTWaterInspectionTrouble) {
+        return toAjax(centerdataTWaterInspectionTroubleService.updateCenterdataTWaterInspectionTrouble(centerdataTWaterInspectionTrouble));
+    }
+
+    /**
+     * 删除水利-巡检排查
+     */
+    @RequiresPermissions("data:waterInspectionTrouble:remove")
+    @Log(title = "水利-巡检排查", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterInspectionTroubleService.deleteCenterdataTWaterInspectionTroubleByIds(ids));
+    }
+}

+ 85 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterOverLevelSiteController.java

@@ -0,0 +1,85 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterOverLevelSite;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterOverLevelSiteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 超限水位站Controller
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/site")
+public class CenterdataTWaterOverLevelSiteController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterOverLevelSiteService centerdataTWaterOverLevelSiteService;
+
+    /**
+     * 查询超限水位站列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterOverLevelSite centerdataTWaterOverLevelSite) {
+        startPage();
+        List<CenterdataTWaterOverLevelSite> list = centerdataTWaterOverLevelSiteService.selectCenterdataTWaterOverLevelSiteList(centerdataTWaterOverLevelSite);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出超限水位站列表
+     */
+    @Log(title = "超限水位站", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterOverLevelSite centerdataTWaterOverLevelSite) {
+        List<CenterdataTWaterOverLevelSite> list = centerdataTWaterOverLevelSiteService.selectCenterdataTWaterOverLevelSiteList(centerdataTWaterOverLevelSite);
+        ExcelUtil<CenterdataTWaterOverLevelSite> util = new ExcelUtil<CenterdataTWaterOverLevelSite>(CenterdataTWaterOverLevelSite.class);
+        util.exportExcel(response, list, "超限水位站数据");
+    }
+
+    /**
+     * 获取超限水位站详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterOverLevelSiteService.selectCenterdataTWaterOverLevelSiteById(id));
+    }
+
+    /**
+     * 新增超限水位站
+     */
+    @Log(title = "超限水位站", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterOverLevelSite centerdataTWaterOverLevelSite) {
+        return toAjax(centerdataTWaterOverLevelSiteService.insertCenterdataTWaterOverLevelSite(centerdataTWaterOverLevelSite));
+    }
+
+    /**
+     * 修改超限水位站
+     */
+    @Log(title = "超限水位站", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterOverLevelSite centerdataTWaterOverLevelSite) {
+        return toAjax(centerdataTWaterOverLevelSiteService.updateCenterdataTWaterOverLevelSite(centerdataTWaterOverLevelSite));
+    }
+
+    /**
+     * 删除超限水位站
+     */
+    @Log(title = "超限水位站", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterOverLevelSiteService.deleteCenterdataTWaterOverLevelSiteByIds(ids));
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterProjectSummaryController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterProjectSummary;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterProjectSummaryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水利-水利工程概要Controller
+ *
+ * @author 韩福成
+ * @date 2025-03-28
+ */
+@RestController
+@RequestMapping("/summary")
+public class CenterdataTWaterProjectSummaryController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterProjectSummaryService centerdataTWaterProjectSummaryService;
+
+    /**
+     * 查询水利-水利工程概要列表
+     */
+    @RequiresPermissions("data:summary:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterProjectSummary centerdataTWaterProjectSummary) {
+        startPage();
+        List<CenterdataTWaterProjectSummary> list = centerdataTWaterProjectSummaryService.selectCenterdataTWaterProjectSummaryList(centerdataTWaterProjectSummary);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-水利工程概要列表
+     */
+    @RequiresPermissions("data:summary:export")
+    @Log(title = "水利-水利工程概要", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterProjectSummary centerdataTWaterProjectSummary) {
+        List<CenterdataTWaterProjectSummary> list = centerdataTWaterProjectSummaryService.selectCenterdataTWaterProjectSummaryList(centerdataTWaterProjectSummary);
+        ExcelUtil<CenterdataTWaterProjectSummary> util = new ExcelUtil<CenterdataTWaterProjectSummary>(CenterdataTWaterProjectSummary.class);
+        util.exportExcel(response, list, "水利工程概要数据");
+    }
+
+    /**
+     * 获取水利-水利工程概要详细信息
+     */
+    @RequiresPermissions("data:summary:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterProjectSummaryService.selectCenterdataTWaterProjectSummaryById(id));
+    }
+
+    /**
+     * 新增水利-水利工程概要
+     */
+    @RequiresPermissions("data:summary:add")
+    @Log(title = "水利-水利工程概要", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterProjectSummary centerdataTWaterProjectSummary) {
+        return toAjax(centerdataTWaterProjectSummaryService.insertCenterdataTWaterProjectSummary(centerdataTWaterProjectSummary));
+    }
+
+    /**
+     * 修改水利-水利工程概要
+     */
+    @RequiresPermissions("data:summary:edit")
+    @Log(title = "水利-水利工程概要", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterProjectSummary centerdataTWaterProjectSummary) {
+        return toAjax(centerdataTWaterProjectSummaryService.updateCenterdataTWaterProjectSummary(centerdataTWaterProjectSummary));
+    }
+
+    /**
+     * 删除水利-水利工程概要
+     */
+    @RequiresPermissions("data:summary:remove")
+    @Log(title = "水利-水利工程概要", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterProjectSummaryService.deleteCenterdataTWaterProjectSummaryByIds(ids));
+    }
+}

+ 95 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterQualityDeviceController.java

@@ -0,0 +1,95 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUav;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterQualityDevice;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterQualityDeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水质监测设备Controller
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/water/quality/device")
+public class CenterdataTWaterQualityDeviceController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterQualityDeviceService centerdataTWaterQualityDeviceService;
+
+    /**
+     * 查询水质监测设备列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterQualityDevice centerdataTWaterQualityDevice) {
+        startPage();
+        List<CenterdataTWaterQualityDevice> list = centerdataTWaterQualityDeviceService.selectCenterdataTWaterQualityDeviceList(centerdataTWaterQualityDevice);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水质监测设备列表
+     */
+    @Log(title = "水质监测设备", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterQualityDevice centerdataTWaterQualityDevice) {
+        List<CenterdataTWaterQualityDevice> list = centerdataTWaterQualityDeviceService.selectCenterdataTWaterQualityDeviceList(centerdataTWaterQualityDevice);
+        ExcelUtil<CenterdataTWaterQualityDevice> util = new ExcelUtil<CenterdataTWaterQualityDevice>(CenterdataTWaterQualityDevice.class);
+        util.exportExcel(response, list, "水质监测设备数据");
+    }
+
+    /**
+     * 获取水质监测设备详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterQualityDeviceService.selectCenterdataTWaterQualityDeviceById(id));
+    }
+
+    /**
+     * 新增水质监测设备
+     */
+    @Log(title = "水质监测设备", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterQualityDevice centerdataTWaterQualityDevice) {
+        return toAjax(centerdataTWaterQualityDeviceService.insertCenterdataTWaterQualityDevice(centerdataTWaterQualityDevice));
+    }
+
+    /**
+     * 修改水质监测设备
+     */
+    @Log(title = "水质监测设备", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterQualityDevice centerdataTWaterQualityDevice) {
+        return toAjax(centerdataTWaterQualityDeviceService.updateCenterdataTWaterQualityDevice(centerdataTWaterQualityDevice));
+    }
+
+    /**
+     * 删除水质监测设备
+     */
+    @Log(title = "水质监测设备", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterQualityDeviceService.deleteCenterdataTWaterQualityDeviceByIds(ids));
+    }
+
+    /**
+     * 根据部门id查询热感资源列表
+     *
+     * @return
+     */
+    @GetMapping("/selectQualityDeviceListByDeptId")
+    public AjaxResult selectQualityDeviceListByDeptId(CenterdataTWaterQualityDevice centerdataTWaterQualityDevice) {
+        return AjaxResult.success(centerdataTWaterQualityDeviceService.selectQualityDeviceListByDeptId(centerdataTWaterQualityDevice));
+    }
+}

+ 85 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainAnalysisController.java

@@ -0,0 +1,85 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRainAnalysis;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterRainAnalysisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 雨情分析Controller
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/analysis")
+public class CenterdataTWaterRainAnalysisController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterRainAnalysisService centerdataTWaterRainAnalysisService;
+
+    /**
+     * 查询雨情分析列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterRainAnalysis centerdataTWaterRainAnalysis) {
+        startPage();
+        List<CenterdataTWaterRainAnalysis> list = centerdataTWaterRainAnalysisService.selectCenterdataTWaterRainAnalysisList(centerdataTWaterRainAnalysis);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出雨情分析列表
+     */
+    @Log(title = "雨情分析", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterRainAnalysis centerdataTWaterRainAnalysis) {
+        List<CenterdataTWaterRainAnalysis> list = centerdataTWaterRainAnalysisService.selectCenterdataTWaterRainAnalysisList(centerdataTWaterRainAnalysis);
+        ExcelUtil<CenterdataTWaterRainAnalysis> util = new ExcelUtil<CenterdataTWaterRainAnalysis>(CenterdataTWaterRainAnalysis.class);
+        util.exportExcel(response, list, "雨情分析数据");
+    }
+
+    /**
+     * 获取雨情分析详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterRainAnalysisService.selectCenterdataTWaterRainAnalysisById(id));
+    }
+
+    /**
+     * 新增雨情分析
+     */
+    @Log(title = "雨情分析", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterRainAnalysis centerdataTWaterRainAnalysis) {
+        return toAjax(centerdataTWaterRainAnalysisService.insertCenterdataTWaterRainAnalysis(centerdataTWaterRainAnalysis));
+    }
+
+    /**
+     * 修改雨情分析
+     */
+    @Log(title = "雨情分析", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterRainAnalysis centerdataTWaterRainAnalysis) {
+        return toAjax(centerdataTWaterRainAnalysisService.updateCenterdataTWaterRainAnalysis(centerdataTWaterRainAnalysis));
+    }
+
+    /**
+     * 删除雨情分析
+     */
+    @Log(title = "雨情分析", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterRainAnalysisService.deleteCenterdataTWaterRainAnalysisByIds(ids));
+    }
+}

+ 85 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainfallComparisonController.java

@@ -0,0 +1,85 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRainfallComparison;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterRainfallComparisonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 降雨量对比Controller
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/comparison")
+public class CenterdataTWaterRainfallComparisonController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterRainfallComparisonService centerdataTWaterRainfallComparisonService;
+
+    /**
+     * 查询降雨量对比列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterRainfallComparison centerdataTWaterRainfallComparison) {
+        startPage();
+        List<CenterdataTWaterRainfallComparison> list = centerdataTWaterRainfallComparisonService.selectCenterdataTWaterRainfallComparisonList(centerdataTWaterRainfallComparison);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出降雨量对比列表
+     */
+    @Log(title = "降雨量对比", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterRainfallComparison centerdataTWaterRainfallComparison) {
+        List<CenterdataTWaterRainfallComparison> list = centerdataTWaterRainfallComparisonService.selectCenterdataTWaterRainfallComparisonList(centerdataTWaterRainfallComparison);
+        ExcelUtil<CenterdataTWaterRainfallComparison> util = new ExcelUtil<CenterdataTWaterRainfallComparison>(CenterdataTWaterRainfallComparison.class);
+        util.exportExcel(response, list, "降雨量对比数据");
+    }
+
+    /**
+     * 获取降雨量对比详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterRainfallComparisonService.selectCenterdataTWaterRainfallComparisonById(id));
+    }
+
+    /**
+     * 新增降雨量对比
+     */
+    @Log(title = "降雨量对比", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterRainfallComparison centerdataTWaterRainfallComparison) {
+        return toAjax(centerdataTWaterRainfallComparisonService.insertCenterdataTWaterRainfallComparison(centerdataTWaterRainfallComparison));
+    }
+
+    /**
+     * 修改降雨量对比
+     */
+    @Log(title = "降雨量对比", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterRainfallComparison centerdataTWaterRainfallComparison) {
+        return toAjax(centerdataTWaterRainfallComparisonService.updateCenterdataTWaterRainfallComparison(centerdataTWaterRainfallComparison));
+    }
+
+    /**
+     * 删除降雨量对比
+     */
+    @Log(title = "降雨量对比", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterRainfallComparisonService.deleteCenterdataTWaterRainfallComparisonByIds(ids));
+    }
+}

+ 93 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRainfallStationController.java

@@ -0,0 +1,93 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRainfallStation;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterRainfallStationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-雨量站管理Controller
+ *
+ * @author LG
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/rainfall/station")
+public class CenterdataTWaterRainfallStationController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterRainfallStationService centerdataTWaterRainfallStationService;
+
+    /**
+     * 查询水利-雨量站管理列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterRainfallStation centerdataTWaterRainfallStation) {
+        startPage();
+        List<CenterdataTWaterRainfallStation> list = centerdataTWaterRainfallStationService.selectCenterdataTWaterRainfallStationList(centerdataTWaterRainfallStation);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-雨量站管理列表
+     */
+    @Log(title = "水利-雨量站管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterRainfallStation centerdataTWaterRainfallStation) {
+        List<CenterdataTWaterRainfallStation> list = centerdataTWaterRainfallStationService.selectCenterdataTWaterRainfallStationList(centerdataTWaterRainfallStation);
+        ExcelUtil<CenterdataTWaterRainfallStation> util = new ExcelUtil<CenterdataTWaterRainfallStation>(CenterdataTWaterRainfallStation.class);
+        util.exportExcel(response, list, "水利-雨量站管理数据");
+    }
+
+    /**
+     * 获取水利-雨量站管理详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterRainfallStationService.selectCenterdataTWaterRainfallStationById(id));
+    }
+
+    /**
+     * 新增水利-雨量站管理
+     */
+    @Log(title = "水利-雨量站管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterRainfallStation centerdataTWaterRainfallStation) {
+        return toAjax(centerdataTWaterRainfallStationService.insertCenterdataTWaterRainfallStation(centerdataTWaterRainfallStation));
+    }
+
+    /**
+     * 修改水利-雨量站管理
+     */
+    @Log(title = "水利-雨量站管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterRainfallStation centerdataTWaterRainfallStation) {
+        return toAjax(centerdataTWaterRainfallStationService.updateCenterdataTWaterRainfallStation(centerdataTWaterRainfallStation));
+    }
+
+    /**
+     * 删除水利-雨量站管理
+     */
+    @Log(title = "水利-雨量站管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterRainfallStationService.deleteCenterdataTWaterRainfallStationByIds(ids));
+    }
+}

+ 86 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterReportRankingController.java

@@ -0,0 +1,86 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterReportRanking;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterReportRankingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 上报排行Controller
+ *
+ * @author ruoyi
+ * @date 2025-04-11
+ */
+@RestController
+@RequestMapping("/ranking")
+public class CenterdataTWaterReportRankingController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterReportRankingService centerdataTWaterReportRankingService;
+
+    /**
+     * 查询上报排行列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterReportRanking centerdataTWaterReportRanking) {
+        startPage();
+        List<CenterdataTWaterReportRanking> list = centerdataTWaterReportRankingService.selectCenterdataTWaterReportRankingList(centerdataTWaterReportRanking);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出上报排行列表
+     */
+    @Log(title = "上报排行", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterReportRanking centerdataTWaterReportRanking) {
+        List<CenterdataTWaterReportRanking> list = centerdataTWaterReportRankingService.selectCenterdataTWaterReportRankingList(centerdataTWaterReportRanking);
+        ExcelUtil<CenterdataTWaterReportRanking> util = new ExcelUtil<CenterdataTWaterReportRanking>(CenterdataTWaterReportRanking.class);
+        util.exportExcel(response, list, "上报排行数据");
+    }
+
+    /**
+     * 获取上报排行详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(centerdataTWaterReportRankingService.selectCenterdataTWaterReportRankingById(id));
+    }
+
+    /**
+     * 新增上报排行
+     */
+    @Log(title = "上报排行", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterReportRanking centerdataTWaterReportRanking) {
+        return toAjax(centerdataTWaterReportRankingService.insertCenterdataTWaterReportRanking(centerdataTWaterReportRanking));
+    }
+
+    /**
+     * 修改上报排行
+     */
+    @Log(title = "上报排行", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterReportRanking centerdataTWaterReportRanking) {
+        return toAjax(centerdataTWaterReportRankingService.updateCenterdataTWaterReportRanking(centerdataTWaterReportRanking));
+    }
+
+    /**
+     * 删除上报排行
+     */
+    @Log(title = "上报排行", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(centerdataTWaterReportRankingService.deleteCenterdataTWaterReportRankingByIds(ids));
+    }
+
+}

+ 99 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterReservoirManagementController.java

@@ -0,0 +1,99 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterReservoirManagement;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterReservoirManagementService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-水库管理Controller
+ *
+ * @author LG
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/reservoirManagement")
+public class CenterdataTWaterReservoirManagementController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterReservoirManagementService centerdataTWaterReservoirManagementService;
+
+    /**
+     * 查询水利-水库管理列表
+     */
+    @RequiresPermissions("data:reservoirManagement:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterReservoirManagement centerdataTWaterReservoirManagement) {
+        startPage();
+        List<CenterdataTWaterReservoirManagement> list = centerdataTWaterReservoirManagementService.selectCenterdataTWaterReservoirManagementList(centerdataTWaterReservoirManagement);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-水库管理列表
+     */
+    @RequiresPermissions("data:reservoirManagement:export")
+    @Log(title = "水利-水库管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterReservoirManagement centerdataTWaterReservoirManagement) {
+        List<CenterdataTWaterReservoirManagement> list = centerdataTWaterReservoirManagementService.selectCenterdataTWaterReservoirManagementList(centerdataTWaterReservoirManagement);
+        ExcelUtil<CenterdataTWaterReservoirManagement> util = new ExcelUtil<CenterdataTWaterReservoirManagement>(CenterdataTWaterReservoirManagement.class);
+        util.exportExcel(response, list, "水利-水库管理数据");
+    }
+
+    /**
+     * 获取水利-水库管理详细信息
+     */
+    @RequiresPermissions("data:reservoirManagement:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterReservoirManagementService.selectCenterdataTWaterReservoirManagementById(id));
+    }
+
+    /**
+     * 新增水利-水库管理
+     */
+    @RequiresPermissions("data:reservoirManagement:add")
+    @Log(title = "水利-水库管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterReservoirManagement centerdataTWaterReservoirManagement) {
+        return toAjax(centerdataTWaterReservoirManagementService.insertCenterdataTWaterReservoirManagement(centerdataTWaterReservoirManagement));
+    }
+
+    /**
+     * 修改水利-水库管理
+     */
+    @RequiresPermissions("data:reservoirManagement:edit")
+    @Log(title = "水利-水库管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterReservoirManagement centerdataTWaterReservoirManagement) {
+        return toAjax(centerdataTWaterReservoirManagementService.updateCenterdataTWaterReservoirManagement(centerdataTWaterReservoirManagement));
+    }
+
+    /**
+     * 删除水利-水库管理
+     */
+    @RequiresPermissions("data:reservoirManagement:remove")
+    @Log(title = "水利-水库管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterReservoirManagementService.deleteCenterdataTWaterReservoirManagementByIds(ids));
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterResourceManagementController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterResourceManagement;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterResourceManagementService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水利-水资源管理Controller
+ *
+ * @author 韩福成
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/management")
+public class CenterdataTWaterResourceManagementController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterResourceManagementService centerdataTWaterResourceManagementService;
+
+    /**
+     * 查询水利-水资源管理列表
+     */
+    @RequiresPermissions("waterResource:management:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterResourceManagement centerdataTWaterResourceManagement) {
+        startPage();
+        List<CenterdataTWaterResourceManagement> list = centerdataTWaterResourceManagementService.selectCenterdataTWaterResourceManagementList(centerdataTWaterResourceManagement);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-水资源管理列表
+     */
+    @RequiresPermissions("waterResource:management:export")
+    @Log(title = "水利-水资源管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterResourceManagement centerdataTWaterResourceManagement) {
+        List<CenterdataTWaterResourceManagement> list = centerdataTWaterResourceManagementService.selectCenterdataTWaterResourceManagementList(centerdataTWaterResourceManagement);
+        ExcelUtil<CenterdataTWaterResourceManagement> util = new ExcelUtil<CenterdataTWaterResourceManagement>(CenterdataTWaterResourceManagement.class);
+        util.exportExcel(response, list, "水利-水资源管理数据");
+    }
+
+    /**
+     * 获取水利-水资源管理详细信息
+     */
+    @RequiresPermissions("waterResource:management:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterResourceManagementService.selectCenterdataTWaterResourceManagementById(id));
+    }
+
+    /**
+     * 新增水利-水资源管理
+     */
+    @RequiresPermissions("waterResource:management:add")
+    @Log(title = "水利-水资源管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterResourceManagement centerdataTWaterResourceManagement) {
+        return toAjax(centerdataTWaterResourceManagementService.insertCenterdataTWaterResourceManagement(centerdataTWaterResourceManagement));
+    }
+
+    /**
+     * 修改水利-水资源管理
+     */
+    @RequiresPermissions("waterResource:management:edit")
+    @Log(title = "水利-水资源管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterResourceManagement centerdataTWaterResourceManagement) {
+        return toAjax(centerdataTWaterResourceManagementService.updateCenterdataTWaterResourceManagement(centerdataTWaterResourceManagement));
+    }
+
+    /**
+     * 删除水利-水资源管理
+     */
+    @RequiresPermissions("waterResource:management:remove")
+    @Log(title = "水利-水资源管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterResourceManagementService.deleteCenterdataTWaterResourceManagementByIds(ids));
+    }
+}

+ 100 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverLengthManageController.java

@@ -0,0 +1,100 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRiverLengthManage;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRiverLengthPatrol;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterRiverLengthManageService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水利-河长管理Controller
+ *
+ * @author 韩福成
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/riverLength")
+public class CenterdataTWaterRiverLengthManageController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterRiverLengthManageService centerdataTWaterRiverLengthManageService;
+
+    /**
+     * 查询水利-河长管理列表
+     */
+    @RequiresPermissions("data:riverLength:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterRiverLengthManage centerdataTWaterRiverLengthManage) {
+        startPage();
+        List<CenterdataTWaterRiverLengthManage> list = centerdataTWaterRiverLengthManageService.selectCenterdataTWaterRiverLengthManageList(centerdataTWaterRiverLengthManage);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-河长管理列表
+     */
+    @RequiresPermissions("data:riverLength:export")
+    @Log(title = "水利-河长管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterRiverLengthManage centerdataTWaterRiverLengthManage) {
+        List<CenterdataTWaterRiverLengthManage> list = centerdataTWaterRiverLengthManageService.selectCenterdataTWaterRiverLengthManageList(centerdataTWaterRiverLengthManage);
+        ExcelUtil<CenterdataTWaterRiverLengthManage> util = new ExcelUtil<CenterdataTWaterRiverLengthManage>(CenterdataTWaterRiverLengthManage.class);
+        util.exportExcel(response, list, "水利-河长管理数据");
+    }
+
+    /**
+     * 获取水利-河长管理详细信息
+     */
+    @RequiresPermissions("data:riverLength:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterRiverLengthManageService.selectCenterdataTWaterRiverLengthManageById(id));
+    }
+
+    /**
+     * 新增水利-河长管理
+     */
+    @RequiresPermissions("data:riverLength:add")
+    @Log(title = "水利-河长管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterRiverLengthManage centerdataTWaterRiverLengthManage) {
+        return toAjax(centerdataTWaterRiverLengthManageService.insertCenterdataTWaterRiverLengthManage(centerdataTWaterRiverLengthManage));
+    }
+
+    /**
+     * 修改水利-河长管理
+     */
+    @RequiresPermissions("data:riverLength:edit")
+    @Log(title = "水利-河长管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterRiverLengthManage centerdataTWaterRiverLengthManage) {
+        return toAjax(centerdataTWaterRiverLengthManageService.updateCenterdataTWaterRiverLengthManage(centerdataTWaterRiverLengthManage));
+    }
+
+    /**
+     * 删除水利-河长管理
+     */
+    @RequiresPermissions("data:riverLength:remove")
+    @Log(title = "水利-河长管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterRiverLengthManageService.deleteCenterdataTWaterRiverLengthManageByIds(ids));
+    }
+
+    /**
+     * 插入巡查轨迹
+     */
+    @PostMapping("/insertTrack")
+    public AjaxResult insertTrack(@RequestBody CenterdataTWaterRiverLengthPatrol patrol) {
+        return toAjax(centerdataTWaterRiverLengthManageService.insertTrack(patrol));
+    }
+}

+ 93 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverMonitoringStationController.java

@@ -0,0 +1,93 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRiverMonitoringStation;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterRiverMonitoringStationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-河道监测站管理Controller
+ *
+ * @author LG
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/river/monitoring")
+public class CenterdataTWaterRiverMonitoringStationController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterRiverMonitoringStationService centerdataTWaterRiverMonitoringStationService;
+
+    /**
+     * 查询水利-河道监测站管理列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterRiverMonitoringStation centerdataTWaterRiverMonitoringStation) {
+        startPage();
+        List<CenterdataTWaterRiverMonitoringStation> list = centerdataTWaterRiverMonitoringStationService.selectCenterdataTWaterRiverMonitoringStationList(centerdataTWaterRiverMonitoringStation);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-河道监测站管理列表
+     */
+    @Log(title = "水利-河道监测站管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterRiverMonitoringStation centerdataTWaterRiverMonitoringStation) {
+        List<CenterdataTWaterRiverMonitoringStation> list = centerdataTWaterRiverMonitoringStationService.selectCenterdataTWaterRiverMonitoringStationList(centerdataTWaterRiverMonitoringStation);
+        ExcelUtil<CenterdataTWaterRiverMonitoringStation> util = new ExcelUtil<CenterdataTWaterRiverMonitoringStation>(CenterdataTWaterRiverMonitoringStation.class);
+        util.exportExcel(response, list, "水利-河道监测站管理数据");
+    }
+
+    /**
+     * 获取水利-河道监测站管理详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterRiverMonitoringStationService.selectCenterdataTWaterRiverMonitoringStationById(id));
+    }
+
+    /**
+     * 新增水利-河道监测站管理
+     */
+    @Log(title = "水利-河道监测站管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterRiverMonitoringStation centerdataTWaterRiverMonitoringStation) {
+        return toAjax(centerdataTWaterRiverMonitoringStationService.insertCenterdataTWaterRiverMonitoringStation(centerdataTWaterRiverMonitoringStation));
+    }
+
+    /**
+     * 修改水利-河道监测站管理
+     */
+    @Log(title = "水利-河道监测站管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterRiverMonitoringStation centerdataTWaterRiverMonitoringStation) {
+        return toAjax(centerdataTWaterRiverMonitoringStationService.updateCenterdataTWaterRiverMonitoringStation(centerdataTWaterRiverMonitoringStation));
+    }
+
+    /**
+     * 删除水利-河道监测站管理
+     */
+    @Log(title = "水利-河道监测站管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterRiverMonitoringStationService.deleteCenterdataTWaterRiverMonitoringStationByIds(ids));
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterRiverStrategyController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterRiverStrategy;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterRiverStrategyService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 水利-一河一策Controller
+ *
+ * @author 韩福成
+ * @date 2025-02-20
+ */
+@RestController
+@RequestMapping("/riverStrategy")
+public class CenterdataTWaterRiverStrategyController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterRiverStrategyService centerdataTWaterRiverStrategyService;
+
+    /**
+     * 查询水利-一河一策列表
+     */
+    @RequiresPermissions("data:riverStrategy:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterRiverStrategy centerdataTWaterRiverStrategy) {
+        startPage();
+        List<CenterdataTWaterRiverStrategy> list = centerdataTWaterRiverStrategyService.selectCenterdataTWaterRiverStrategyList(centerdataTWaterRiverStrategy);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-一河一策列表
+     */
+    @RequiresPermissions("data:riverStrategy:export")
+    @Log(title = "水利-一河一策", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterRiverStrategy centerdataTWaterRiverStrategy) {
+        List<CenterdataTWaterRiverStrategy> list = centerdataTWaterRiverStrategyService.selectCenterdataTWaterRiverStrategyList(centerdataTWaterRiverStrategy);
+        ExcelUtil<CenterdataTWaterRiverStrategy> util = new ExcelUtil<CenterdataTWaterRiverStrategy>(CenterdataTWaterRiverStrategy.class);
+        util.exportExcel(response, list, "水利-一河一策数据");
+    }
+
+    /**
+     * 获取水利-一河一策详细信息
+     */
+    @RequiresPermissions("data:riverStrategy:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterRiverStrategyService.selectCenterdataTWaterRiverStrategyById(id));
+    }
+
+    /**
+     * 新增水利-一河一策
+     */
+    @RequiresPermissions("data:riverStrategy:add")
+    @Log(title = "水利-一河一策", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterRiverStrategy centerdataTWaterRiverStrategy) {
+        return toAjax(centerdataTWaterRiverStrategyService.insertCenterdataTWaterRiverStrategy(centerdataTWaterRiverStrategy));
+    }
+
+    /**
+     * 修改水利-一河一策
+     */
+    @RequiresPermissions("data:riverStrategy:edit")
+    @Log(title = "水利-一河一策", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterRiverStrategy centerdataTWaterRiverStrategy) {
+        return toAjax(centerdataTWaterRiverStrategyService.updateCenterdataTWaterRiverStrategy(centerdataTWaterRiverStrategy));
+    }
+
+    /**
+     * 删除水利-一河一策
+     */
+    @RequiresPermissions("data:riverStrategy:remove")
+    @Log(title = "水利-一河一策", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterRiverStrategyService.deleteCenterdataTWaterRiverStrategyByIds(ids));
+    }
+}

+ 105 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSavingController.java

@@ -0,0 +1,105 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterSaving;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterSavingService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-节水管理Controller
+ *
+ * @author LG
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/waterSaving")
+public class CenterdataTWaterSavingController extends BaseController
+{
+    @Autowired
+    private ICenterdataTWaterSavingService centerdataTWaterSavingService;
+
+/**
+ * 查询水利-节水管理列表
+ */
+@RequiresPermissions("data:waterSaving:list")
+@GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterSaving centerdataTWaterSaving)
+    {
+        startPage();
+        List<CenterdataTWaterSaving> list = centerdataTWaterSavingService.selectCenterdataTWaterSavingList(centerdataTWaterSaving);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-节水管理列表
+     */
+    @RequiresPermissions("data:waterSaving:export")
+    @Log(title = "水利-节水管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterSaving centerdataTWaterSaving)
+    {
+        List<CenterdataTWaterSaving> list = centerdataTWaterSavingService.selectCenterdataTWaterSavingList(centerdataTWaterSaving);
+        ExcelUtil<CenterdataTWaterSaving> util = new ExcelUtil<CenterdataTWaterSaving>(CenterdataTWaterSaving.class);
+        util.exportExcel(response, list, "水利-节水管理数据");
+    }
+
+    /**
+     * 获取水利-节水管理详细信息
+     */
+    @RequiresPermissions("data:waterSaving:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(centerdataTWaterSavingService.selectCenterdataTWaterSavingById(id));
+    }
+
+    /**
+     * 新增水利-节水管理
+     */
+    @RequiresPermissions("data:waterSaving:add")
+    @Log(title = "水利-节水管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterSaving centerdataTWaterSaving)
+    {
+        return toAjax(centerdataTWaterSavingService.insertCenterdataTWaterSaving(centerdataTWaterSaving));
+    }
+
+    /**
+     * 修改水利-节水管理
+     */
+    @RequiresPermissions("data:waterSaving:edit")
+    @Log(title = "水利-节水管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterSaving centerdataTWaterSaving)
+    {
+        return toAjax(centerdataTWaterSavingService.updateCenterdataTWaterSaving(centerdataTWaterSaving));
+    }
+
+    /**
+     * 删除水利-节水管理
+     */
+    @RequiresPermissions("data:waterSaving:remove")
+    @Log(title = "水利-节水管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(centerdataTWaterSavingService.deleteCenterdataTWaterSavingByIds(ids));
+    }
+}

+ 85 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSiteStatisticsController.java

@@ -0,0 +1,85 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterSiteStatistics;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterSiteStatisticsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 站点统计Controller
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/statistics")
+public class CenterdataTWaterSiteStatisticsController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterSiteStatisticsService centerdataTWaterSiteStatisticsService;
+
+    /**
+     * 查询站点统计列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterSiteStatistics centerdataTWaterSiteStatistics) {
+        startPage();
+        List<CenterdataTWaterSiteStatistics> list = centerdataTWaterSiteStatisticsService.selectCenterdataTWaterSiteStatisticsList(centerdataTWaterSiteStatistics);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出站点统计列表
+     */
+    @Log(title = "站点统计", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterSiteStatistics centerdataTWaterSiteStatistics) {
+        List<CenterdataTWaterSiteStatistics> list = centerdataTWaterSiteStatisticsService.selectCenterdataTWaterSiteStatisticsList(centerdataTWaterSiteStatistics);
+        ExcelUtil<CenterdataTWaterSiteStatistics> util = new ExcelUtil<CenterdataTWaterSiteStatistics>(CenterdataTWaterSiteStatistics.class);
+        util.exportExcel(response, list, "站点统计数据");
+    }
+
+    /**
+     * 获取站点统计详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTWaterSiteStatisticsService.selectCenterdataTWaterSiteStatisticsById(id));
+    }
+
+    /**
+     * 新增站点统计
+     */
+    @Log(title = "站点统计", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterSiteStatistics centerdataTWaterSiteStatistics) {
+        return toAjax(centerdataTWaterSiteStatisticsService.insertCenterdataTWaterSiteStatistics(centerdataTWaterSiteStatistics));
+    }
+
+    /**
+     * 修改站点统计
+     */
+    @Log(title = "站点统计", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterSiteStatistics centerdataTWaterSiteStatistics) {
+        return toAjax(centerdataTWaterSiteStatisticsService.updateCenterdataTWaterSiteStatistics(centerdataTWaterSiteStatistics));
+    }
+
+    /**
+     * 删除站点统计
+     */
+    @Log(title = "站点统计", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTWaterSiteStatisticsService.deleteCenterdataTWaterSiteStatisticsByIds(ids));
+    }
+}

+ 105 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSoilConservationController.java

@@ -0,0 +1,105 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterSoilConservation;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterSoilConservationService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-水土保持Controller
+ *
+ * @author LG
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/waterConservation")
+public class CenterdataTWaterSoilConservationController extends BaseController
+{
+    @Autowired
+    private ICenterdataTWaterSoilConservationService centerdataTWaterSoilConservationService;
+
+/**
+ * 查询水利-水土保持列表
+ */
+@RequiresPermissions("data:waterConservation:list")
+@GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterSoilConservation centerdataTWaterSoilConservation)
+    {
+        startPage();
+        List<CenterdataTWaterSoilConservation> list = centerdataTWaterSoilConservationService.selectCenterdataTWaterSoilConservationList(centerdataTWaterSoilConservation);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-水土保持列表
+     */
+    @RequiresPermissions("data:waterConservation:export")
+    @Log(title = "水利-水土保持", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterSoilConservation centerdataTWaterSoilConservation)
+    {
+        List<CenterdataTWaterSoilConservation> list = centerdataTWaterSoilConservationService.selectCenterdataTWaterSoilConservationList(centerdataTWaterSoilConservation);
+        ExcelUtil<CenterdataTWaterSoilConservation> util = new ExcelUtil<CenterdataTWaterSoilConservation>(CenterdataTWaterSoilConservation.class);
+        util.exportExcel(response, list, "水利-水土保持数据");
+    }
+
+    /**
+     * 获取水利-水土保持详细信息
+     */
+    @RequiresPermissions("data:waterConservation:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(centerdataTWaterSoilConservationService.selectCenterdataTWaterSoilConservationById(id));
+    }
+
+    /**
+     * 新增水利-水土保持
+     */
+    @RequiresPermissions("data:waterConservation:add")
+    @Log(title = "水利-水土保持", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterSoilConservation centerdataTWaterSoilConservation)
+    {
+        return toAjax(centerdataTWaterSoilConservationService.insertCenterdataTWaterSoilConservation(centerdataTWaterSoilConservation));
+    }
+
+    /**
+     * 修改水利-水土保持
+     */
+    @RequiresPermissions("data:waterConservation:edit")
+    @Log(title = "水利-水土保持", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterSoilConservation centerdataTWaterSoilConservation)
+    {
+        return toAjax(centerdataTWaterSoilConservationService.updateCenterdataTWaterSoilConservation(centerdataTWaterSoilConservation));
+    }
+
+    /**
+     * 删除水利-水土保持
+     */
+    @RequiresPermissions("data:waterConservation:remove")
+    @Log(title = "水利-水土保持", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(centerdataTWaterSoilConservationService.deleteCenterdataTWaterSoilConservationByIds(ids));
+    }
+}

+ 110 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterSourceController.java

@@ -0,0 +1,110 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterQualityDevice;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterSource;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterSourceService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-水源地Controller
+ *
+ * @author LG
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/waterSource")
+public class CenterdataTWaterSourceController extends BaseController {
+    @Autowired
+    private ICenterdataTWaterSourceService centerdataTWaterSourceService;
+
+    /**
+     * 查询水利-水源地列表
+     */
+    @RequiresPermissions("data:waterSource:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterSource centerdataTWaterSource) {
+        startPage();
+        List<CenterdataTWaterSource> list = centerdataTWaterSourceService.selectCenterdataTWaterSourceList(centerdataTWaterSource);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-水源地列表
+     */
+    @RequiresPermissions("data:waterSource:export")
+    @Log(title = "水利-水源地", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterSource centerdataTWaterSource) {
+        List<CenterdataTWaterSource> list = centerdataTWaterSourceService.selectCenterdataTWaterSourceList(centerdataTWaterSource);
+        ExcelUtil<CenterdataTWaterSource> util = new ExcelUtil<CenterdataTWaterSource>(CenterdataTWaterSource.class);
+        util.exportExcel(response, list, "水利-水源地数据");
+    }
+
+    /**
+     * 获取水利-水源地详细信息
+     */
+    @RequiresPermissions("data:waterSource:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(centerdataTWaterSourceService.selectCenterdataTWaterSourceById(id));
+    }
+
+    /**
+     * 新增水利-水源地
+     */
+    @RequiresPermissions("data:waterSource:add")
+    @Log(title = "水利-水源地", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterSource centerdataTWaterSource) {
+        return toAjax(centerdataTWaterSourceService.insertCenterdataTWaterSource(centerdataTWaterSource));
+    }
+
+    /**
+     * 修改水利-水源地
+     */
+    @RequiresPermissions("data:waterSource:edit")
+    @Log(title = "水利-水源地", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterSource centerdataTWaterSource) {
+        return toAjax(centerdataTWaterSourceService.updateCenterdataTWaterSource(centerdataTWaterSource));
+    }
+
+    /**
+     * 删除水利-水源地
+     */
+    @RequiresPermissions("data:waterSource:remove")
+    @Log(title = "水利-水源地", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(centerdataTWaterSourceService.deleteCenterdataTWaterSourceByIds(ids));
+    }
+
+    /**
+     * 根据部门id和typeWaterSource查询水源地列表
+     *
+     * @return
+     */
+    @GetMapping("/selectWaterSourceListByDeptId")
+    public AjaxResult selectWaterSourceListByDeptId(CenterdataTWaterSource centerdataTWaterSource) {
+        return AjaxResult.success(centerdataTWaterSourceService.selectWaterSourceListByDeptId(centerdataTWaterSource));
+    }
+}

+ 105 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterTotalResourcesTwoYearsController.java

@@ -0,0 +1,105 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.CenterdataTWaterTotalResourcesTwoYears;
+import com.sooka.sponest.data.digitalwaterconservancy.service.ICenterdataTWaterTotalResourcesTwoYearsService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 水利-近两年水资源总量Controller
+ *
+ * @author LG
+ * @date 2025-04-08
+ */
+@RestController
+@RequestMapping("/waterTotalResourcesTwoYears")
+public class CenterdataTWaterTotalResourcesTwoYearsController extends BaseController
+{
+    @Autowired
+    private ICenterdataTWaterTotalResourcesTwoYearsService centerdataTWaterTotalResourcesTwoYearsService;
+
+/**
+ * 查询水利-近两年水资源总量列表
+ */
+@RequiresPermissions("data:waterTotalResourcesTwoYears:list")
+@GetMapping("/list")
+    public TableDataInfo list(CenterdataTWaterTotalResourcesTwoYears centerdataTWaterTotalResourcesTwoYears)
+    {
+        startPage();
+        List<CenterdataTWaterTotalResourcesTwoYears> list = centerdataTWaterTotalResourcesTwoYearsService.selectCenterdataTWaterTotalResourcesTwoYearsList(centerdataTWaterTotalResourcesTwoYears);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出水利-近两年水资源总量列表
+     */
+    @RequiresPermissions("data:waterTotalResourcesTwoYears:export")
+    @Log(title = "水利-近两年水资源总量", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTWaterTotalResourcesTwoYears centerdataTWaterTotalResourcesTwoYears)
+    {
+        List<CenterdataTWaterTotalResourcesTwoYears> list = centerdataTWaterTotalResourcesTwoYearsService.selectCenterdataTWaterTotalResourcesTwoYearsList(centerdataTWaterTotalResourcesTwoYears);
+        ExcelUtil<CenterdataTWaterTotalResourcesTwoYears> util = new ExcelUtil<CenterdataTWaterTotalResourcesTwoYears>(CenterdataTWaterTotalResourcesTwoYears.class);
+        util.exportExcel(response, list, "水利-近两年水资源总量数据");
+    }
+
+    /**
+     * 获取水利-近两年水资源总量详细信息
+     */
+    @RequiresPermissions("data:waterTotalResourcesTwoYears:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(centerdataTWaterTotalResourcesTwoYearsService.selectCenterdataTWaterTotalResourcesTwoYearsById(id));
+    }
+
+    /**
+     * 新增水利-近两年水资源总量
+     */
+    @RequiresPermissions("data:waterTotalResourcesTwoYears:add")
+    @Log(title = "水利-近两年水资源总量", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTWaterTotalResourcesTwoYears centerdataTWaterTotalResourcesTwoYears)
+    {
+        return toAjax(centerdataTWaterTotalResourcesTwoYearsService.insertCenterdataTWaterTotalResourcesTwoYears(centerdataTWaterTotalResourcesTwoYears));
+    }
+
+    /**
+     * 修改水利-近两年水资源总量
+     */
+    @RequiresPermissions("data:waterTotalResourcesTwoYears:edit")
+    @Log(title = "水利-近两年水资源总量", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTWaterTotalResourcesTwoYears centerdataTWaterTotalResourcesTwoYears)
+    {
+        return toAjax(centerdataTWaterTotalResourcesTwoYearsService.updateCenterdataTWaterTotalResourcesTwoYears(centerdataTWaterTotalResourcesTwoYears));
+    }
+
+    /**
+     * 删除水利-近两年水资源总量
+     */
+    @RequiresPermissions("data:waterTotalResourcesTwoYears:remove")
+    @Log(title = "水利-近两年水资源总量", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(centerdataTWaterTotalResourcesTwoYearsService.deleteCenterdataTWaterTotalResourcesTwoYearsByIds(ids));
+    }
+}

+ 507 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/controller/CenterdataTWaterViewController.java

@@ -0,0 +1,507 @@
+package com.sooka.sponest.data.digitalwaterconservancy.controller;
+
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.sooka.sponest.data.digitaluav.domain.CenterdataTUav;
+import com.sooka.sponest.data.digitaluav.service.ICenterdataTUavService;
+import com.sooka.sponest.data.digitalwaterconservancy.domain.*;
+import com.sooka.sponest.data.digitalwaterconservancy.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+
+/**
+ * 水利大数据平台接口
+ * @author LG
+ * @date 2023/10/26 10:49
+ * @version 1.0
+ * @since 1.0
+ */
+@RestController
+@RequestMapping("/view/waterController")
+public class CenterdataTWaterViewController {
+
+    @Autowired
+    private ICenterdataTWaterViewService waterViewService;
+    @Autowired
+    private ICenterdataTWaterRainfallStationService centerdataTWaterRainfallStationService;
+    @Autowired
+    private ICenterdataTWaterReservoirManagementService centerdataTWaterReservoirManagementService;
+    @Autowired
+    private ICenterdataTWaterRiverMonitoringStationService centerdataTWaterRiverMonitoringStationService;
+    @Autowired
+    private ICenterdataTWaterDikeService cnterdataTWaterDikeService;
+    @Autowired
+    private ICenterdataTWaterSiteStatisticsService centerdataTWaterSiteStatisticsService;
+    @Autowired
+    private ICenterdataTWaterQualityDeviceService centerdataTWaterQualityDeviceService;
+    @Autowired
+    private ICenterdataTWaterRainAnalysisService centerdataTWaterRainAnalysisService;
+    @Autowired
+    private ICenterdataTWaterOverLevelSiteService centerdataTWaterOverLevelSiteService;
+    @Autowired
+    private ICenterdataTWaterRainfallComparisonService centerdataTWaterRainfallComparisonService;
+    @Autowired
+    private ICenterdataTUavService centerdataTUavService;
+    @Autowired
+    private ICenterdataTWaterReportRankingService centerdataTWaterReportRankingService;
+
+    @Autowired
+    private ICenterdataTWaterInspectionTroubleService centerdataTWaterInspectionTroubleService;
+
+    @Autowired
+    private ICenterdataTWaterIncidentManageService centerdataTWaterIncidentManageService;
+
+    @Autowired
+    private ICenterdataTWaterRiverLengthManageService centerdataTWaterRiverLengthManageService;
+
+    @Autowired
+    private ICenterdataTWaterGeneralInfoService centerdataTWaterGeneralInfoService;
+    /**
+     * 水旱灾害防御
+     */
+    @GetMapping("/defense")
+    public AjaxResult defense(){
+        return AjaxResult.success(waterViewService.defense(new CenterdataTWaterViewVO()));
+    }
+
+
+    /**
+     * 主要水库蓄水
+     */
+    @GetMapping("/mainReservoir")
+    public AjaxResult mainReservoir(){
+        return AjaxResult.success(waterViewService.mainReservoir(new CenterdataTWaterViewVO()));
+    }
+
+
+    /**
+     * 水资源主要水库水情
+     */
+    @GetMapping("/mainReservoirWater")
+    public AjaxResult mainReservoirWater(){
+        return AjaxResult.success(waterViewService.mainReservoirWater(new CenterdataTWaterViewVO()));
+    }
+
+
+    /**
+     * 水利首页主要监测站水情
+     */
+    @GetMapping("/mainStationWater")
+    public AjaxResult mainStationWater(){
+        return AjaxResult.success(waterViewService.mainStationWater(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 水灾专题、灾害防御主要水库水情
+     */
+    @GetMapping("/reservoirWaterCondition")
+    public AjaxResult reservoirWaterCondition(){
+        return AjaxResult.success(waterViewService.reservoirWaterCondition(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 水灾专题、灾害防御主要监测站水情
+     */
+    @GetMapping("/monitoringStation")
+    public AjaxResult monitoringStation(){
+        return AjaxResult.success(waterViewService.monitoringStation(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 水利概况-预警信息
+     */
+    @GetMapping(value = "/selectWaterDikeCount")
+    public AjaxResult selectWaterDikeCount() {
+        return AjaxResult.success(cnterdataTWaterDikeService.selectWaterDikeCount());
+    }
+
+    /**
+     * 水利概况-圩堤告瞀、河道告警
+     */
+    @GetMapping(value = "/selectWaterDikeAlarmAndOtherCount")
+    public AjaxResult selectWaterDikeAlarmAndOtherCount() {
+        return AjaxResult.success(cnterdataTWaterDikeService.selectWaterDikeAlarmAndOtherCount());
+    }
+    /**
+     * 实时水雨情
+     */
+    @GetMapping("/waterAndRainStatistics")
+    public AjaxResult getRainfallStatistics(CenterdataTWaterRainfallStation centerdataTWaterRainfallStation) {
+        List<CenterdataTWaterRainfallStation> rainfallList = centerdataTWaterRainfallStationService.selectCenterdataTWaterRainfallStationList(centerdataTWaterRainfallStation);
+        Map<String, String> statisticsMap = new HashMap<>();
+        for (CenterdataTWaterRainfallStation rainfall : rainfallList) {
+            String district = rainfall.getRealTimeRainfall();
+            String rainfallAmount = rainfall.getDeptName();
+            statisticsMap.put(district, statisticsMap.getOrDefault(district, "") + rainfallAmount);
+        }
+        Map<String, Object> result = new HashMap<>();
+        result.put("districts", new ArrayList<>(statisticsMap.keySet()));
+        result.put("rainfallAmounts", new ArrayList<>(statisticsMap.values()));
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 水库蓄水量统计
+     */
+    @GetMapping("/reservoirWaterStorageStatistics")
+    public AjaxResult getReservoirWaterStorageStatistics(CenterdataTWaterReservoirManagement centerdataTWaterReservoirManagement) {
+        List<CenterdataTWaterReservoirManagement> rainfallList = centerdataTWaterReservoirManagementService.selectCenterdataTWaterReservoirManagementList(centerdataTWaterReservoirManagement);
+        Map<String, Double> statisticsMap = new HashMap<>();
+        // 统计每个水库类型的总蓄水量
+        for (CenterdataTWaterReservoirManagement rainfall : rainfallList) {
+            String reservoirType = rainfall.getReservoirType();
+            double impoundment = Double.parseDouble(rainfall.getImpoundment());
+            statisticsMap.put(reservoirType, statisticsMap.getOrDefault(reservoirType, 0.0) + impoundment);
+        }
+        // 转换为所需的列表格式
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        for (Map.Entry<String, Double> entry : statisticsMap.entrySet()) {
+            Map<String, Object> item = new HashMap<>();
+            item.put("value", entry.getValue());
+            item.put("name", entry.getKey());
+            resultList.add(item);
+        }
+        return AjaxResult.success(resultList);
+    }
+
+
+    /**
+     * 截面流量TOP5
+     */
+    @GetMapping("/sectionTOPStatistics")
+    public AjaxResult getReservoirWaterStorageStatistics(CenterdataTWaterRiverMonitoringStation centerdataTWaterRiverMonitoringStation) {
+        List<CenterdataTWaterRiverMonitoringStation> rainfallList = centerdataTWaterRiverMonitoringStationService.selectSectionTOPFiveList(centerdataTWaterRiverMonitoringStation);
+        LinkedHashMap<String, String> statisticsMap = new LinkedHashMap<>();
+        for (CenterdataTWaterRiverMonitoringStation rainfall : rainfallList) {
+            String siteName = rainfall.getSiteName();
+            String sectionFlow = rainfall.getSectionFlow();
+            statisticsMap.put(siteName, statisticsMap.getOrDefault(siteName, "") + sectionFlow);
+        }
+        Map<String, Object> result = new HashMap<>();
+        result.put("siteNames", new ArrayList<>(statisticsMap.keySet()));
+        result.put("sectionFlows", new ArrayList<>(statisticsMap.values()));
+        return AjaxResult.success(result);
+    }
+    /**
+     * 水位变幅TOP5
+     */
+    @GetMapping("/waterLevelTOPStatistics")
+    public AjaxResult waterLevelTOPStatistics(CenterdataTWaterRiverMonitoringStation centerdataTWaterRiverMonitoringStation) {
+        List<CenterdataTWaterRiverMonitoringStation> rainfallList = centerdataTWaterRiverMonitoringStationService.selectWaterLevelTOPFiveList(centerdataTWaterRiverMonitoringStation);
+        LinkedHashMap<String, String> statisticsMap = new LinkedHashMap<>();
+        for (CenterdataTWaterRiverMonitoringStation rainfall : rainfallList) {
+            String siteName = rainfall.getSiteName();
+            String currentWaterLevel = rainfall.getCurrentWaterLevel();
+            statisticsMap.put(siteName, statisticsMap.getOrDefault(siteName, "") + currentWaterLevel);
+        }
+        Map<String, Object> result = new HashMap<>();
+        result.put("siteNames", new ArrayList<>(statisticsMap.keySet()));
+        result.put("currentWaterLevels", new ArrayList<>(statisticsMap.values()));
+        return AjaxResult.success(result);
+    }
+    /**
+     * 最大最小降雨量
+     */
+    @GetMapping("/MaxAndMinWaterLevelTOPFiveStatistics")
+    public AjaxResult MaxAndMinWaterLevelTOPFiveStatistics(CenterdataTWaterRainfallStation centerdataTWaterRainfallStation, @RequestParam(defaultValue = "rainfallType") String rainfallType) {
+        List<CenterdataTWaterRainfallStation> rainfallList;
+        if ("max".equalsIgnoreCase(rainfallType)) {
+            rainfallList = centerdataTWaterRainfallStationService.selectMaxWaterLevelTOPFiveList(centerdataTWaterRainfallStation);
+        } else if ("min".equalsIgnoreCase(rainfallType)) {
+            rainfallList = centerdataTWaterRainfallStationService.selectMinWaterLevelTOPFiveList(centerdataTWaterRainfallStation);
+        } else {
+            throw new IllegalArgumentException("不支持的降雨量类型: " + rainfallType);
+        }
+        LinkedHashMap<String, String> statisticsMap = new LinkedHashMap<>();
+        for (CenterdataTWaterRainfallStation rainfall : rainfallList) {
+            String siteName = rainfall.getSiteName();
+            String realTimeRainfall = rainfall.getRealTimeRainfall();
+            statisticsMap.put(siteName, statisticsMap.getOrDefault(siteName, "") + realTimeRainfall);
+        }
+
+        Map<String, Object> result = new HashMap<>();
+        result.put("siteNames", new ArrayList<>(statisticsMap.keySet()));
+        result.put("realTimeRainfalls", new ArrayList<>(statisticsMap.values()));
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 降雨时段选择
+     */
+    @GetMapping("/selectionOfRainfallPeriod")
+    public AjaxResult selectionOfRainfallPeriod(String period) {
+        return AjaxResult.success(centerdataTWaterRainfallStationService.selectionOfRainfallPeriod(period));
+    }
+
+    /**
+     * 站点,雨量,水位总数
+     */
+    @GetMapping(value = "/selectSiteRainLevel")
+    public AjaxResult selectSiteRainLevel(CenterdataTWaterViewVO vo) {
+        return AjaxResult.success(waterViewService.selectSiteRainLevel(vo));
+    }
+
+    /**
+     * 水库、河道、雨量、堤防落点
+     */
+    @GetMapping(value = "/selectWaterPlacementByDeptId")
+    public AjaxResult selectWaterPlacementByDeptId(@RequestParam("deptId") String deptId) {
+        return AjaxResult.success(centerdataTWaterReservoirManagementService.selectWaterPlacementByDeptId(deptId));
+    }
+
+    /*
+    * 水资源管理信息(0-用水效率 1-限制纳污 2-用水总量)
+    *
+    * @author 韩福成
+    * @date 2025/3/28 下午1:56
+    */
+    @GetMapping(value = "/selecWaterResource")
+    public AjaxResult selecWaterResource(CenterdataTWaterViewVO vo) {
+        return AjaxResult.success(waterViewService.selecWaterResource(vo));
+    }
+
+    /*
+    * 河湖长制管理信息
+    *
+    * @author 韩福成
+    * @date 2025/3/28 下午2:21
+    */
+    @GetMapping(value = "/selecRiverLength")
+    public AjaxResult selecRiverLength(CenterdataTWaterViewVO vo) {
+        return AjaxResult.success(waterViewService.selecRiverLength(vo));
+    }
+
+    /*
+    * 水利工程
+    *
+    * @author 韩福成
+    * @date 2025/3/28 下午2:23
+    */
+    @GetMapping(value = "/selecWaterConservancy")
+    public AjaxResult selecWaterConservancy(CenterdataTWaterViewVO vo) {
+        return AjaxResult.success(waterViewService.selecWaterConservancy(vo));
+    }
+
+    /*
+    * 水利工程落点
+    *
+    * @author 韩福成
+    * @date 2025/5/7 上午10:43
+    */
+    @GetMapping(value = "/selecWaterConservancyByType")
+    public AjaxResult selecWaterConservancyByType(CenterdataTWaterViewVO vo) {
+        return AjaxResult.success(waterViewService.selecWaterConservancyByType(vo));
+    }
+
+    /**
+     * 超警雨量站、超汛水库站、河道站变辐、全省面雨量、河道水势
+     */
+    @GetMapping(value = "/selectFiveTopStatistics")
+    public AjaxResult selectFiveTopStatistics() {
+        return AjaxResult.success(centerdataTWaterReservoirManagementService.selectFiveTopStatistics());
+    }
+
+    /**
+     * 超警雨量站、超汛水库站、河道站变辐落点
+     */
+    @GetMapping(value = "/selectTopThreePoint")
+    public AjaxResult selectTopThreePoint(CenterdataTWaterViewVO vo) {
+        return AjaxResult.success(centerdataTWaterReservoirManagementService.selectTopThreePoint(vo));
+    }
+
+    /**
+     * 站点监控、数据监控、站点分布
+     */
+    @GetMapping("/selectWaterSiteStatistics")
+    public AjaxResult selectWaterSiteStatistics() {
+        return AjaxResult.success(centerdataTWaterSiteStatisticsService.selectWaterSiteStatistics());
+    }
+
+    /**
+     * 设备列表
+     */
+    @GetMapping("/selectDeviceList")
+    public AjaxResult selectDeviceList(CenterdataTWaterQualityDevice centerdataTWaterQualityDevice) {
+        return AjaxResult.success(centerdataTWaterQualityDeviceService.selectCenterdataTWaterQualityDeviceList(centerdataTWaterQualityDevice));
+    }
+
+    /**
+     * 雨情分析、水情分析
+     */
+    @GetMapping("/selectWaterRainAnalysis")
+    public AjaxResult selectWaterRainAnalysis() {
+        return AjaxResult.success(centerdataTWaterRainAnalysisService.selectWaterRainAnalysis());
+    }
+
+    /**
+     * 超限水位站TOP1
+     */
+    @GetMapping("/selectWaterOverLevelSite")
+    public AjaxResult selectWaterOverLevelSite() {
+        return AjaxResult.success(centerdataTWaterOverLevelSiteService.selectWaterOverLevelSite());
+    }
+
+    /**
+     * 近三年降雨量同期对比
+     */
+    @GetMapping("/selectWaterRainfallComparisonList")
+    public AjaxResult selectWaterRainfallComparisonList() {
+        return AjaxResult.success(centerdataTWaterRainfallComparisonService.selectWaterRainfallComparisonList());
+    }
+
+    /**
+     * 地表水源地
+     */
+    @GetMapping("/selectSurfaceWaterSource")
+    public AjaxResult selectSurfaceWaterSource() {
+        return AjaxResult.success(waterViewService.selectSurfaceWaterSource(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 节水管理
+     */
+    @GetMapping("/selectWaterSaving")
+    public AjaxResult selectWaterSaving() {
+        return AjaxResult.success(waterViewService.selectWaterSaving(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 节水管理
+     */
+    @PostMapping("/getWaterSavingEcharts")
+    public AjaxResult getWaterSavingEcharts(@RequestBody CenterdataTWaterViewVO vo){
+        return AjaxResult.success(waterViewService.getWaterSavingEcharts(vo));
+    }
+
+    /**
+     * 近两年水资源总量
+     */
+    @GetMapping("/waterTotalResourcesTwoYears")
+    public AjaxResult waterTotalResourcesTwoYears(){
+        return AjaxResult.success(waterViewService.waterTotalResourcesTwoYears(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 水土保持统计
+     */
+    @GetMapping("/selectWaterSavingStatistics")
+    public AjaxResult selectWaterSavingStatistics(){
+        return AjaxResult.success(waterViewService.selectWaterSavingStatistics(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 水土保持列表
+     */
+    @PostMapping("/selectWaterSavingList")
+    public AjaxResult selectWaterSavingList(@RequestBody CenterdataTWaterViewVO vo){
+        return AjaxResult.success(waterViewService.selectWaterSavingList(vo));
+    }
+
+    /**
+     * 根据部门id查询无人机数量
+     *
+     * @return
+     */
+    @GetMapping("/selectUavByDeptIdCount")
+    public AjaxResult selectUavByDeptIdCount(CenterdataTUav CenterdataTUav) {
+        List<CenterdataTUav> list = centerdataTUavService.selectCenterdataTUavByDeptId(CenterdataTUav);
+        return AjaxResult.success(list.size());
+    }
+
+
+    /**
+     * 根据deptId查询上报排行列表
+     */
+    @GetMapping("/selectReportRankingByDeptIdList")
+    public AjaxResult selectReportRankingByDeptIdList(CenterdataTWaterReportRanking centerdataTWaterReportRanking) {
+        return AjaxResult.success(centerdataTWaterReportRankingService.selectCenterdataTWaterReportRankingList(centerdataTWaterReportRanking));
+    }
+
+    /**
+     * 水利概况
+     */
+    @GetMapping("/waterConservancySituation")
+    public AjaxResult waterConservancySituation(){
+        return AjaxResult.success(waterViewService.waterConservancySituation(new CenterdataTWaterViewVO()));
+    }
+
+    /**
+     * 巡检排查
+     * @param centerdataTWaterInspectionTrouble
+     * @return
+     */
+    @GetMapping("/waterInspectionTroubleList")
+    public AjaxResult waterInspectionTroubleList(CenterdataTWaterInspectionTrouble centerdataTWaterInspectionTrouble){
+        return AjaxResult.success(centerdataTWaterInspectionTroubleService.selectCenterdataTWaterInspectionTroubleList(centerdataTWaterInspectionTrouble));
+    }
+
+    /**
+     * 事件办理
+     * @param centerdataTWaterIncidentManage
+     * @return
+     */
+    @GetMapping("/waterIncidentManageList")
+    public AjaxResult waterIncidentManageList(CenterdataTWaterIncidentManage centerdataTWaterIncidentManage){
+        return AjaxResult.success(centerdataTWaterIncidentManageService.selectCenterdataTWaterIncidentManageList(centerdataTWaterIncidentManage));
+    }
+
+    /**
+     * 河长列表
+     * @param centerdataTWaterRiverLengthManage
+     * @return
+     */
+    @GetMapping("/riverLengthList")
+    public AjaxResult riverLengthList(CenterdataTWaterRiverLengthManage centerdataTWaterRiverLengthManage){
+        return AjaxResult.success(centerdataTWaterRiverLengthManageService.selectCenterdataTWaterRiverLengthManageList(centerdataTWaterRiverLengthManage));
+    }
+
+    /**
+     * 总体信息
+     * @param centerdataTWaterGeneralInfo
+     * @return
+     */
+    @GetMapping("/waterGeneralInfo")
+    public AjaxResult waterGeneralInfo(CenterdataTWaterGeneralInfo centerdataTWaterGeneralInfo){
+        List<CenterdataTWaterGeneralInfo> list = centerdataTWaterGeneralInfoService.selectCenterdataTWaterGeneralInfoList(centerdataTWaterGeneralInfo);
+        return AjaxResult.success(StringUtils.isEmpty(list) ? new CenterdataTWaterGeneralInfo() : list.get(0));
+    }
+
+    /**
+     * 公示牌 & 一河一策统计
+     */
+    @GetMapping("/countPlacardAndStrategy")
+    public AjaxResult countPlacardAndStrategy(CenterdataTWaterViewVO vo){
+        return AjaxResult.success(waterViewService.countPlacardAndStrategy(vo));
+    }
+
+    @GetMapping("/getVideo")
+    public AjaxResult getVideo(){
+        return AjaxResult.success(waterViewService.getVideo(new CenterdataTWaterViewVO()));
+    }
+
+    @GetMapping("/getPatrolByRiverId")
+    public AjaxResult getPatrolByRiverId(CenterdataTWaterViewVO vo){
+        return AjaxResult.success(waterViewService.getPatrolByRiverId(vo));
+    }
+
+    /**
+     * 公示牌列表
+     */
+    @GetMapping("/getAnnouncePlacardListByDeptId")
+    public AjaxResult getAnnouncePlacardListByDeptId(CenterdataTWaterViewVO vo){
+        return AjaxResult.success(waterViewService.getAnnouncePlacardListByDeptId(vo));
+    }
+
+    /**
+     * 根据河长查询一河一策
+     */
+    @GetMapping("/getRiverStrategyListByDeptId")
+    public AjaxResult getRiverStrategyListByDeptId(CenterdataTWaterViewVO vo){
+        return AjaxResult.success(waterViewService.getRiverStrategyListByDeptId(vo));
+    }
+
+
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterAnnouncePlacard.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 水利-公示牌对象 centerdata_t_water_announce_placard
+ *
+ * @author 韩福成
+ * @date 2025-02-20
+ */
+public class CenterdataTWaterAnnouncePlacard extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /**
+     * 河流名称
+     */
+    @Excel(name = "河流名称")
+    private String name;
+
+    /**
+     * 图片路径
+     */
+    private String picture;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setPicture(String picture) {
+        this.picture = picture;
+    }
+
+    public String getPicture() {
+        return picture;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("name", getName())
+                .append("picture", getPicture())
+                .toString();
+    }
+}

+ 337 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterConservancyProject.java

@@ -0,0 +1,337 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+import java.util.List;
+
+/**
+ * 水利-水利工程对象 centerdata_t_water_conservancy_project
+ *
+ * @author LG
+ * @date 2025-04-08
+ */
+public class CenterdataTWaterConservancyProject extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /**
+     * 创建人名称
+     */
+    @Excel(name = "创建人名称")
+    private String createName;
+
+    /**
+     * 更新人名称
+     */
+    @Excel(name = "更新人名称")
+    private String updateName;
+
+    /**
+     * 工程名称
+     */
+    @Excel(name = "工程名称")
+    private String projectName;
+
+    /**
+     * 建设时间
+     */
+    @Excel(name = "建设时间")
+    private String constructionTime;
+
+    /**
+     * 竣工时间
+     */
+    @Excel(name = "竣工时间")
+    private String timeCompletion;
+
+    /**
+     * 工程总投资
+     */
+    @Excel(name = "工程总投资")
+    private String totalProjectInvestment;
+
+    /**
+     * 工程类型(字典key=)
+     */
+    @Excel(name = "工程类型(字典key=)")
+    private String engineeringType;
+
+    /**
+     * 工程等级(0-大型、1-中型、2-小型)
+     */
+    @Excel(name = "工程等级(0-大型、1-中型、2-小型)")
+    private String engineeringGrade;
+
+    /**
+     * 安全鉴定情况
+     */
+    @Excel(name = "安全鉴定情况")
+    private String safetyAppraisalSituation;
+
+    /**
+     * 除险加固定情况
+     */
+    @Excel(name = "除险加固定情况")
+    private String clearFixedCondition;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @Excel(name = "纬度")
+    private String latitude;
+
+    /**
+     * 管理单位
+     */
+    @Excel(name = "管理单位")
+    private String managementUnit;
+
+    /**
+     * 负责人
+     */
+    @Excel(name = "负责人")
+    private String personCharge;
+
+    /**
+     * 联系电话
+     */
+    @Excel(name = "联系电话")
+    private String contactNumber;
+
+    /**
+     * 图片
+     */
+    @Excel(name = "图片")
+    private String picture;
+
+    /**
+     * 视频
+     */
+    @Excel(name = "视频")
+    private String video;
+
+    private List<String> pictureList;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setUpdateName(String updateName) {
+        this.updateName = updateName;
+    }
+
+    public String getUpdateName() {
+        return updateName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setConstructionTime(String constructionTime) {
+        this.constructionTime = constructionTime;
+    }
+
+    public String getConstructionTime() {
+        return constructionTime;
+    }
+
+    public void setTimeCompletion(String timeCompletion) {
+        this.timeCompletion = timeCompletion;
+    }
+
+    public String getTimeCompletion() {
+        return timeCompletion;
+    }
+
+    public void setTotalProjectInvestment(String totalProjectInvestment) {
+        this.totalProjectInvestment = totalProjectInvestment;
+    }
+
+    public String getTotalProjectInvestment() {
+        return totalProjectInvestment;
+    }
+
+    public void setEngineeringType(String engineeringType) {
+        this.engineeringType = engineeringType;
+    }
+
+    public String getEngineeringType() {
+        return engineeringType;
+    }
+
+    public void setEngineeringGrade(String engineeringGrade) {
+        this.engineeringGrade = engineeringGrade;
+    }
+
+    public String getEngineeringGrade() {
+        return engineeringGrade;
+    }
+
+    public void setSafetyAppraisalSituation(String safetyAppraisalSituation) {
+        this.safetyAppraisalSituation = safetyAppraisalSituation;
+    }
+
+    public String getSafetyAppraisalSituation() {
+        return safetyAppraisalSituation;
+    }
+
+    public void setClearFixedCondition(String clearFixedCondition) {
+        this.clearFixedCondition = clearFixedCondition;
+    }
+
+    public String getClearFixedCondition() {
+        return clearFixedCondition;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setManagementUnit(String managementUnit) {
+        this.managementUnit = managementUnit;
+    }
+
+    public String getManagementUnit() {
+        return managementUnit;
+    }
+
+    public void setPersonCharge(String personCharge) {
+        this.personCharge = personCharge;
+    }
+
+    public String getPersonCharge() {
+        return personCharge;
+    }
+
+    public void setContactNumber(String contactNumber) {
+        this.contactNumber = contactNumber;
+    }
+
+    public String getContactNumber() {
+        return contactNumber;
+    }
+
+    public void setPicture(String picture) {
+        this.picture = picture;
+    }
+
+    public String getPicture() {
+        return picture;
+    }
+
+    public void setVideo(String video) {
+        this.video = video;
+    }
+
+    public String getVideo() {
+        return video;
+    }
+
+    public List<String> getPictureList() {
+        return pictureList;
+    }
+
+    public void setPictureList(List<String> pictureList) {
+        this.pictureList = pictureList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("projectName", getProjectName())
+                .append("constructionTime", getConstructionTime())
+                .append("timeCompletion", getTimeCompletion())
+                .append("totalProjectInvestment", getTotalProjectInvestment())
+                .append("engineeringType", getEngineeringType())
+                .append("engineeringGrade", getEngineeringGrade())
+                .append("safetyAppraisalSituation", getSafetyAppraisalSituation())
+                .append("clearFixedCondition", getClearFixedCondition())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("managementUnit", getManagementUnit())
+                .append("personCharge", getPersonCharge())
+                .append("contactNumber", getContactNumber())
+                .append("picture", getPicture())
+                .append("video", getVideo())
+                .toString();
+    }
+}

+ 388 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterDike.java

@@ -0,0 +1,388 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 水利-堤防管理对象 centerdata_t_water_river_monitoring_station
+ *
+ * @author LG
+ * @date 2025-02-20
+ */
+public class CenterdataTWaterDike extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private String id;
+
+    /**
+     * 站址名称
+     */
+    @Excel(name = "站址名称")
+    private String embankmentName;
+
+    /**
+     * 上报时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date reportingTime;
+
+    /**
+     * 昨日水位
+     */
+    @Excel(name = "昨日水位")
+    private String yesterdayWaterLevel;
+
+    /**
+     * 今日水位
+     */
+    @Excel(name = "今日水位")
+    private String todayWaterLevel;
+
+    /**
+     * 当前水位
+     */
+    @Excel(name = "当前水位")
+    private String currentWaterLevel;
+
+    /**
+     * 警戒水位
+     */
+    @Excel(name = "警戒水位")
+    private String warningWaterLevel;
+
+    /**
+     * 超警戒水位
+     */
+    @Excel(name = "超警戒水位")
+    private String overwarningLevel;
+
+    /**
+     * 是否超警戒
+     */
+    @Excel(name = "是否超警戒")
+    private String overAlertOrNot;
+
+    /**
+     * 水势
+     */
+    @Excel(name = "水势")
+    private String waterPotential;
+
+    /**
+     * 最大变幅
+     */
+    @Excel(name = "最大变幅")
+    private String maximumAmplitude;
+
+    /**
+     * 是否超变幅
+     */
+    @Excel(name = "是否超变幅")
+    private String isOverranges;
+
+    /**
+     * 截面流量
+     */
+    @Excel(name = "截面流量")
+    private String sectionFlow;
+
+    /**
+     * 所属水系
+     */
+    @Excel(name = "所属水系")
+    private String drainageSystem;
+
+    /**
+     * 所属河流
+     */
+    @Excel(name = "所属河流")
+    private String owningStream;
+
+    /**
+     * 所属市县区
+     */
+    @Excel(name = "所属市县区")
+    private String cityCountyDistrict;
+
+    /**
+     * 部门ID
+     */
+    private String deptId;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @Excel(name = "纬度")
+    private String latitude;
+
+    /**
+     * 管理单位
+     */
+    @Excel(name = "管理单位")
+    private String managementUnit;
+
+    /**
+     * 联系电话
+     */
+    @Excel(name = "联系电话")
+    private String managementNumber;
+
+    /**
+     * 所属部门
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 创建人姓名
+     */
+    @Excel(name = "创建人姓名")
+    private String createName;
+
+    /**
+     * 修改人姓名
+     */
+    @Excel(name = "修改人姓名")
+    private String updateName;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setEmbankmentName(String embankmentName) {
+        this.embankmentName = embankmentName;
+    }
+
+    public String getEmbankmentName() {
+        return embankmentName;
+    }
+
+    public void setReportingTime(Date reportingTime) {
+        this.reportingTime = reportingTime;
+    }
+
+    public Date getReportingTime() {
+        return reportingTime;
+    }
+
+    public void setYesterdayWaterLevel(String yesterdayWaterLevel) {
+        this.yesterdayWaterLevel = yesterdayWaterLevel;
+    }
+
+    public String getYesterdayWaterLevel() {
+        return yesterdayWaterLevel;
+    }
+
+    public void setTodayWaterLevel(String todayWaterLevel) {
+        this.todayWaterLevel = todayWaterLevel;
+    }
+
+    public String getTodayWaterLevel() {
+        return todayWaterLevel;
+    }
+
+    public void setCurrentWaterLevel(String currentWaterLevel) {
+        this.currentWaterLevel = currentWaterLevel;
+    }
+
+    public String getCurrentWaterLevel() {
+        return currentWaterLevel;
+    }
+
+    public void setWarningWaterLevel(String warningWaterLevel) {
+        this.warningWaterLevel = warningWaterLevel;
+    }
+
+    public String getWarningWaterLevel() {
+        return warningWaterLevel;
+    }
+
+    public void setOverwarningLevel(String overwarningLevel) {
+        this.overwarningLevel = overwarningLevel;
+    }
+
+    public String getOverwarningLevel() {
+        return overwarningLevel;
+    }
+
+    public void setOverAlertOrNot(String overAlertOrNot) {
+        this.overAlertOrNot = overAlertOrNot;
+    }
+
+    public String getOverAlertOrNot() {
+        return overAlertOrNot;
+    }
+
+    public void setWaterPotential(String waterPotential) {
+        this.waterPotential = waterPotential;
+    }
+
+    public String getWaterPotential() {
+        return waterPotential;
+    }
+
+    public void setMaximumAmplitude(String maximumAmplitude) {
+        this.maximumAmplitude = maximumAmplitude;
+    }
+
+    public String getMaximumAmplitude() {
+        return maximumAmplitude;
+    }
+
+    public void setIsOverranges(String isOverranges) {
+        this.isOverranges = isOverranges;
+    }
+
+    public String getIsOverranges() {
+        return isOverranges;
+    }
+
+    public void setSectionFlow(String sectionFlow) {
+        this.sectionFlow = sectionFlow;
+    }
+
+    public String getSectionFlow() {
+        return sectionFlow;
+    }
+
+    public void setDrainageSystem(String drainageSystem) {
+        this.drainageSystem = drainageSystem;
+    }
+
+    public String getDrainageSystem() {
+        return drainageSystem;
+    }
+
+    public void setOwningStream(String owningStream) {
+        this.owningStream = owningStream;
+    }
+
+    public String getOwningStream() {
+        return owningStream;
+    }
+
+    public void setCityCountyDistrict(String cityCountyDistrict) {
+        this.cityCountyDistrict = cityCountyDistrict;
+    }
+
+    public String getCityCountyDistrict() {
+        return cityCountyDistrict;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setManagementUnit(String managementUnit) {
+        this.managementUnit = managementUnit;
+    }
+
+    public String getManagementUnit() {
+        return managementUnit;
+    }
+
+    public void setManagementNumber(String managementNumber) {
+        this.managementNumber = managementNumber;
+    }
+
+    public String getManagementNumber() {
+        return managementNumber;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setUpdateName(String updateName) {
+        this.updateName = updateName;
+    }
+
+    public String getUpdateName() {
+        return updateName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("embankmentName", getEmbankmentName())
+                .append("reportingTime", getReportingTime())
+                .append("yesterdayWaterLevel", getYesterdayWaterLevel())
+                .append("todayWaterLevel", getTodayWaterLevel())
+                .append("currentWaterLevel", getCurrentWaterLevel())
+                .append("warningWaterLevel", getWarningWaterLevel())
+                .append("overwarningLevel", getOverwarningLevel())
+                .append("overAlertOrNot", getOverAlertOrNot())
+                .append("waterPotential", getWaterPotential())
+                .append("maximumAmplitude", getMaximumAmplitude())
+                .append("isOverranges", getIsOverranges())
+                .append("sectionFlow", getSectionFlow())
+                .append("drainageSystem", getDrainageSystem())
+                .append("owningStream", getOwningStream())
+                .append("cityCountyDistrict", getCityCountyDistrict())
+                .append("deptId", getDeptId())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("managementUnit", getManagementUnit())
+                .append("managementNumber", getManagementNumber())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 161 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterGeneralInfo.java

@@ -0,0 +1,161 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 水利-总体信息对象 centerdata_t_water_general_info
+ *
+ * @author LG
+ * @date 2025-04-12
+ */
+public class CenterdataTWaterGeneralInfo extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private String id;
+
+    /**
+     * 事件总数
+     */
+    @Excel(name = "事件总数")
+    private String eventTotal;
+
+    /**
+     * 已办事件
+     */
+    @Excel(name = "已办事件")
+    private String eventDone;
+
+    /**
+     * 待办事件
+     */
+    @Excel(name = "待办事件")
+    private String eventTodo;
+
+    /**
+     * 河流总数
+     */
+    @Excel(name = "河流总数")
+    private String streamTotal;
+
+    /**
+     * 河长总数
+     */
+    @Excel(name = "河长总数")
+    private String riverLengthTotal;
+
+    /**
+     * 巡河次数
+     */
+    @Excel(name = "巡河次数")
+    private String riverPatrolCount;
+
+    /**
+     * 部门ID
+     */
+    @Excel(name = "部门ID")
+    private String deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setEventTotal(String eventTotal) {
+        this.eventTotal = eventTotal;
+    }
+
+    public String getEventTotal() {
+        return eventTotal;
+    }
+
+    public void setEventDone(String eventDone) {
+        this.eventDone = eventDone;
+    }
+
+    public String getEventDone() {
+        return eventDone;
+    }
+
+    public void setEventTodo(String eventTodo) {
+        this.eventTodo = eventTodo;
+    }
+
+    public String getEventTodo() {
+        return eventTodo;
+    }
+
+    public void setStreamTotal(String streamTotal) {
+        this.streamTotal = streamTotal;
+    }
+
+    public String getStreamTotal() {
+        return streamTotal;
+    }
+
+    public void setRiverLengthTotal(String riverLengthTotal) {
+        this.riverLengthTotal = riverLengthTotal;
+    }
+
+    public String getRiverLengthTotal() {
+        return riverLengthTotal;
+    }
+
+    public void setRiverPatrolCount(String riverPatrolCount) {
+        this.riverPatrolCount = riverPatrolCount;
+    }
+
+    public String getRiverPatrolCount() {
+        return riverPatrolCount;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("eventTotal", getEventTotal())
+                .append("eventDone", getEventDone())
+                .append("eventTodo", getEventTodo())
+                .append("streamTotal", getStreamTotal())
+                .append("riverLengthTotal", getRiverLengthTotal())
+                .append("riverPatrolCount", getRiverPatrolCount())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterIncidentManage.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 水利-事件办理对象 centerdata_t_water_incident_manage
+ *
+ * @author LG
+ * @date 2025-04-12
+ */
+public class CenterdataTWaterIncidentManage extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private String id;
+
+    /**
+     * 事件总数
+     */
+    @Excel(name = "事件总数")
+    private String eventTotal;
+
+    /**
+     * 事件待办数
+     */
+    @Excel(name = "事件待办数")
+    private String eventTodoSum;
+
+    /**
+     * 部门id
+     */
+    @Excel(name = "部门id")
+    private String deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setEventTotal(String eventTotal) {
+        this.eventTotal = eventTotal;
+    }
+
+    public String getEventTotal() {
+        return eventTotal;
+    }
+
+    public void setEventTodoSum(String eventTodoSum) {
+        this.eventTodoSum = eventTodoSum;
+    }
+
+    public String getEventTodoSum() {
+        return eventTodoSum;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("eventTotal", getEventTotal())
+                .append("eventTodoSum", getEventTodoSum())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterInspectionTrouble.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 水利-巡检排查对象 centerdata_t_water_inspection_trouble
+ *
+ * @author LG
+ * @date 2025-04-12
+ */
+public class CenterdataTWaterInspectionTrouble extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private String id;
+
+    /**
+     * 类型0-当天 1-当月 2-当年
+     */
+    @Excel(name = "类型0-当天 1-当月 2-当年")
+    private String trackType;
+
+    /**
+     * 巡查次数
+     */
+    @Excel(name = "巡查次数")
+    private String trackCount;
+
+    /**
+     * 部门id
+     */
+    @Excel(name = "部门id")
+    private String deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setTrackType(String trackType) {
+        this.trackType = trackType;
+    }
+
+    public String getTrackType() {
+        return trackType;
+    }
+
+    public void setTrackCount(String trackCount) {
+        this.trackCount = trackCount;
+    }
+
+    public String getTrackCount() {
+        return trackCount;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("trackType", getTrackType())
+                .append("trackCount", getTrackCount())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 160 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterOverLevelSite.java

@@ -0,0 +1,160 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 超限水位站对象 centerdata_t_water_over_level_site
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+public class CenterdataTWaterOverLevelSite extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private Long id;
+
+    /**
+     * 日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date nowDate;
+
+    /**
+     * 六时
+     */
+    @Excel(name = "六时")
+    private String sixPm;
+
+    /**
+     * 八时
+     */
+    @Excel(name = "八时")
+    private String eightPm;
+
+    /**
+     * 十时
+     */
+    @Excel(name = "十时")
+    private String tenPm;
+
+    /**
+     * 十二时
+     */
+    @Excel(name = "十二时")
+    private String twelvePm;
+
+    /**
+     * 十四时
+     */
+    @Excel(name = "十四时")
+    private String fourteenPm;
+
+    /**
+     * 十六时
+     */
+    @Excel(name = "十六时")
+    private String sixteenPm;
+
+    /**
+     * 十八时
+     */
+    @Excel(name = "十八时")
+    private String eighteenPm;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setNowDate(Date nowDate) {
+        this.nowDate = nowDate;
+    }
+
+    public Date getNowDate() {
+        return nowDate;
+    }
+
+    public void setSixPm(String sixPm) {
+        this.sixPm = sixPm;
+    }
+
+    public String getSixPm() {
+        return sixPm;
+    }
+
+    public void setEightPm(String eightPm) {
+        this.eightPm = eightPm;
+    }
+
+    public String getEightPm() {
+        return eightPm;
+    }
+
+    public void setTenPm(String tenPm) {
+        this.tenPm = tenPm;
+    }
+
+    public String getTenPm() {
+        return tenPm;
+    }
+
+    public void setTwelvePm(String twelvePm) {
+        this.twelvePm = twelvePm;
+    }
+
+    public String getTwelvePm() {
+        return twelvePm;
+    }
+
+    public void setFourteenPm(String fourteenPm) {
+        this.fourteenPm = fourteenPm;
+    }
+
+    public String getFourteenPm() {
+        return fourteenPm;
+    }
+
+    public void setSixteenPm(String sixteenPm) {
+        this.sixteenPm = sixteenPm;
+    }
+
+    public String getSixteenPm() {
+        return sixteenPm;
+    }
+
+    public void setEighteenPm(String eighteenPm) {
+        this.eighteenPm = eighteenPm;
+    }
+
+    public String getEighteenPm() {
+        return eighteenPm;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("nowDate", getNowDate())
+                .append("sixPm", getSixPm())
+                .append("eightPm", getEightPm())
+                .append("tenPm", getTenPm())
+                .append("twelvePm", getTwelvePm())
+                .append("fourteenPm", getFourteenPm())
+                .append("sixteenPm", getSixteenPm())
+                .append("eighteenPm", getEighteenPm())
+                .toString();
+    }
+}

+ 87 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterProjectSummary.java

@@ -0,0 +1,87 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 水利-水利工程概要对象 centerdata_t_water_project_summary
+ *
+ * @author 韩福成
+ * @date 2025-03-28
+ */
+public class CenterdataTWaterProjectSummary extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /**
+     * 概要
+     */
+    @Excel(name = "概要")
+    private String summary;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setSummary(String summary) {
+        this.summary = summary;
+    }
+
+    public String getSummary() {
+        return summary;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("summary", getSummary())
+                .toString();
+    }
+}

+ 336 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterQualityDevice.java

@@ -0,0 +1,336 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 水质监测设备对象 centerdata_t_water_quality_device
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+public class CenterdataTWaterQualityDevice extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @Excel(name = "名称")
+    private String deviceName;
+
+    /**
+     * 状态(0:离线;1:在线)
+     */
+    @Excel(name = "状态(0:离线;1:在线)")
+    private String status;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 维度
+     */
+    @Excel(name = "维度")
+    private String latitude;
+
+    /**
+     * 部门ID
+     */
+    @Excel(name = "部门ID")
+    private String deptId;
+
+    /**
+     * 温度
+     */
+    @Excel(name = "温度")
+    private String temperature;
+
+    /**
+     * ph值
+     */
+    @Excel(name = "ph值")
+    private String ph;
+
+    /**
+     * 溶氧
+     */
+    @Excel(name = "溶氧")
+    private String oxygen;
+
+    /**
+     * 电导率
+     */
+    @Excel(name = "电导率")
+    private String conductivity;
+
+    /**
+     * 浊度
+     */
+    @Excel(name = "浊度")
+    private String turbidity;
+
+    /**
+     * 含油量
+     */
+    @Excel(name = "含油量")
+    private String oilContent;
+
+    /**
+     * 钾离子
+     */
+    @Excel(name = "钾离子")
+    private String potassiumIon;
+
+    /**
+     * 亚硝酸盐氮
+     */
+    @Excel(name = "亚硝酸盐氮")
+    private String nitriteNitrogen;
+
+    /**
+     * 溶解氧
+     */
+    @Excel(name = "溶解氧")
+    private String dissolvedOxygen;
+
+    /**
+     * 磷
+     */
+    @Excel(name = "磷")
+    private String phosphorus;
+
+    /**
+     * 正磷酸盐
+     */
+    @Excel(name = "正磷酸盐")
+    private String orthophosphate;
+
+    /**
+     * 正硝酸盐
+     */
+    @Excel(name = "正硝酸盐")
+    private String nitrateSalt;
+
+    /**
+     * 综合磷酸盐
+     */
+    @Excel(name = "综合磷酸盐")
+    private String integratedPhosphate;
+
+    /**
+     * 综合硝酸盐
+     */
+    @Excel(name = "综合硝酸盐")
+    private String integratedNitrate;
+
+    /**
+     * 氨氮
+     */
+    @Excel(name = "氨氮")
+    private String ammoniaNitrogen;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setTemperature(String temperature) {
+        this.temperature = temperature;
+    }
+
+    public String getTemperature() {
+        return temperature;
+    }
+
+    public void setPh(String ph) {
+        this.ph = ph;
+    }
+
+    public String getPh() {
+        return ph;
+    }
+
+    public void setOxygen(String oxygen) {
+        this.oxygen = oxygen;
+    }
+
+    public String getOxygen() {
+        return oxygen;
+    }
+
+    public void setConductivity(String conductivity) {
+        this.conductivity = conductivity;
+    }
+
+    public String getConductivity() {
+        return conductivity;
+    }
+
+    public void setTurbidity(String turbidity) {
+        this.turbidity = turbidity;
+    }
+
+    public String getTurbidity() {
+        return turbidity;
+    }
+
+    public void setOilContent(String oilContent) {
+        this.oilContent = oilContent;
+    }
+
+    public String getOilContent() {
+        return oilContent;
+    }
+
+    public void setPotassiumIon(String potassiumIon) {
+        this.potassiumIon = potassiumIon;
+    }
+
+    public String getPotassiumIon() {
+        return potassiumIon;
+    }
+
+    public void setNitriteNitrogen(String nitriteNitrogen) {
+        this.nitriteNitrogen = nitriteNitrogen;
+    }
+
+    public String getNitriteNitrogen() {
+        return nitriteNitrogen;
+    }
+
+    public void setDissolvedOxygen(String dissolvedOxygen) {
+        this.dissolvedOxygen = dissolvedOxygen;
+    }
+
+    public String getDissolvedOxygen() {
+        return dissolvedOxygen;
+    }
+
+    public void setPhosphorus(String phosphorus) {
+        this.phosphorus = phosphorus;
+    }
+
+    public String getPhosphorus() {
+        return phosphorus;
+    }
+
+    public void setOrthophosphate(String orthophosphate) {
+        this.orthophosphate = orthophosphate;
+    }
+
+    public String getOrthophosphate() {
+        return orthophosphate;
+    }
+
+    public void setNitrateSalt(String nitrateSalt) {
+        this.nitrateSalt = nitrateSalt;
+    }
+
+    public String getNitrateSalt() {
+        return nitrateSalt;
+    }
+
+    public void setIntegratedPhosphate(String integratedPhosphate) {
+        this.integratedPhosphate = integratedPhosphate;
+    }
+
+    public String getIntegratedPhosphate() {
+        return integratedPhosphate;
+    }
+
+    public void setIntegratedNitrate(String integratedNitrate) {
+        this.integratedNitrate = integratedNitrate;
+    }
+
+    public String getIntegratedNitrate() {
+        return integratedNitrate;
+    }
+
+    public void setAmmoniaNitrogen(String ammoniaNitrogen) {
+        this.ammoniaNitrogen = ammoniaNitrogen;
+    }
+
+    public String getAmmoniaNitrogen() {
+        return ammoniaNitrogen;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deviceName", getDeviceName())
+                .append("status", getStatus())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("deptId", getDeptId())
+                .append("temperature", getTemperature())
+                .append("ph", getPh())
+                .append("oxygen", getOxygen())
+                .append("conductivity", getConductivity())
+                .append("turbidity", getTurbidity())
+                .append("oilContent", getOilContent())
+                .append("potassiumIon", getPotassiumIon())
+                .append("nitriteNitrogen", getNitriteNitrogen())
+                .append("dissolvedOxygen", getDissolvedOxygen())
+                .append("phosphorus", getPhosphorus())
+                .append("orthophosphate", getOrthophosphate())
+                .append("nitrateSalt", getNitrateSalt())
+                .append("integratedPhosphate", getIntegratedPhosphate())
+                .append("integratedNitrate", getIntegratedNitrate())
+                .append("ammoniaNitrogen", getAmmoniaNitrogen())
+                .toString();
+    }
+}

+ 141 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainAnalysis.java

@@ -0,0 +1,141 @@
+package com.sooka.sponest.data.digitalwaterconservancy.domain;
+
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 雨情分析对象 centerdata_t_water_rain_analysis
+ *
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+public class CenterdataTWaterRainAnalysis extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识
+     */
+    private Long id;
+
+    /**
+     * 监测站点总数
+     */
+    @Excel(name = "监测站点总数")
+    private String surveySiteTotalCount;
+
+    /**
+     * 降雨站点总数
+     */
+    @Excel(name = "降雨站点总数")
+    private String rainfallSiteTotalCount;
+
+    /**
+     * 当前降雨量
+     */
+    @Excel(name = "当前降雨量")
+    private String currentRainfall;
+
+    /**
+     * 超预警站数(万条)
+     */
+    @Excel(name = "超预警站数(万条)")
+    private String overAlarmSiteCount;
+
+    /**
+     * 超保证站数(万条)
+     */
+    @Excel(name = "超保证站数(万条)")
+    private String overEnsureSiteCount;
+
+    /**
+     * 河道总数
+     */
+    @Excel(name = "河道总数")
+    private String riverCourseTotalCount;
+
+    /**
+     * 超限站数量
+     */
+    @Excel(name = "超限站数量")
+    private String overLimitSiteCount;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setSurveySiteTotalCount(String surveySiteTotalCount) {
+        this.surveySiteTotalCount = surveySiteTotalCount;
+    }
+
+    public String getSurveySiteTotalCount() {
+        return surveySiteTotalCount;
+    }
+
+    public void setRainfallSiteTotalCount(String rainfallSiteTotalCount) {
+        this.rainfallSiteTotalCount = rainfallSiteTotalCount;
+    }
+
+    public String getRainfallSiteTotalCount() {
+        return rainfallSiteTotalCount;
+    }
+
+    public void setCurrentRainfall(String currentRainfall) {
+        this.currentRainfall = currentRainfall;
+    }
+
+    public String getCurrentRainfall() {
+        return currentRainfall;
+    }
+
+    public void setOverAlarmSiteCount(String overAlarmSiteCount) {
+        this.overAlarmSiteCount = overAlarmSiteCount;
+    }
+
+    public String getOverAlarmSiteCount() {
+        return overAlarmSiteCount;
+    }
+
+    public void setOverEnsureSiteCount(String overEnsureSiteCount) {
+        this.overEnsureSiteCount = overEnsureSiteCount;
+    }
+
+    public String getOverEnsureSiteCount() {
+        return overEnsureSiteCount;
+    }
+
+    public void setRiverCourseTotalCount(String riverCourseTotalCount) {
+        this.riverCourseTotalCount = riverCourseTotalCount;
+    }
+
+    public String getRiverCourseTotalCount() {
+        return riverCourseTotalCount;
+    }
+
+    public void setOverLimitSiteCount(String overLimitSiteCount) {
+        this.overLimitSiteCount = overLimitSiteCount;
+    }
+
+    public String getOverLimitSiteCount() {
+        return overLimitSiteCount;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("surveySiteTotalCount", getSurveySiteTotalCount())
+                .append("rainfallSiteTotalCount", getRainfallSiteTotalCount())
+                .append("currentRainfall", getCurrentRainfall())
+                .append("overAlarmSiteCount", getOverAlarmSiteCount())
+                .append("overEnsureSiteCount", getOverEnsureSiteCount())
+                .append("riverCourseTotalCount", getRiverCourseTotalCount())
+                .append("overLimitSiteCount", getOverLimitSiteCount())
+                .toString();
+    }
+}

+ 0 - 0
src/main/java/com/sooka/sponest/data/digitalwaterconservancy/domain/CenterdataTWaterRainfallComparison.java


Деякі файли не було показано, через те що забагато файлів було змінено