77681 1 месяц назад
Родитель
Сommit
ec3db888d7
100 измененных файлов с 5967 добавлено и 231 удалено
  1. 11 0
      gw-admin/pom.xml
  2. 12 12
      gw-admin/src/main/resources/application-druid.yml
  3. 22 9
      gw-admin/src/main/resources/application-test.yml
  4. 5 3
      gw-admin/src/main/resources/application.yml
  5. 193 0
      gw-admin/src/main/resources/menu/business_menu.sql
  6. 57 98
      gw-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
  7. 74 109
      gw-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
  8. 34 0
      gw-slgcrun/pom.xml
  9. 46 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/config/ApiProperties.java
  10. 17 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/config/RestTemplateConfig.java
  11. 91 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/CmsArticleController.java
  12. 71 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/CmsArticleFileController.java
  13. 76 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/CmsCateController.java
  14. 64 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DamController.java
  15. 73 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DikeController.java
  16. 76 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DocCateController.java
  17. 119 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DocFileController.java
  18. 337 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/HydraulicController.java
  19. 64 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/KmController.java
  20. 127 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/PlayerController.java
  21. 72 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/PustController.java
  22. 401 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/RelController.java
  23. 72 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/ReservoirController.java
  24. 142 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/RiverController.java
  25. 181 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/StructureController.java
  26. 72 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/WagaController.java
  27. 103 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/WaterUnitController.java
  28. 64 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/WryController.java
  29. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/AsmxProxyController.java
  30. 29 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/EarlyWarningController.java
  31. 32 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/FhgcController.java
  32. 57 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/GCFBController.java
  33. 45 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/GhtController.java
  34. 84 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/HydrologyController.java
  35. 94 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/MonitorController.java
  36. 76 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/ProxyHelper.java
  37. 95 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/ShgcController.java
  38. 93 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/SwController.java
  39. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/SyqController.java
  40. 47 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/TbaGxController.java
  41. 54 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/TyphoonController.java
  42. 75 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WaterController.java
  43. 23 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WaterFuncController.java
  44. 70 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WaterSourceController.java
  45. 34 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WeatherController.java
  46. 31 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WindController.java
  47. 116 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/ZggcController.java
  48. 59 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttBridBase.java
  49. 56 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDamBase.java
  50. 89 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDikeBase.java
  51. 47 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDiscBase.java
  52. 39 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDpdsBase.java
  53. 57 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttFlumBase.java
  54. 59 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttFsdaBase.java
  55. 43 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttGrpjBase.java
  56. 57 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttInsiBase.java
  57. 57 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttIrrBase.java
  58. 63 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttKmBase.java
  59. 49 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttLkBase.java
  60. 55 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttPipeBase.java
  61. 51 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttPoldBase.java
  62. 83 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttPustBase.java
  63. 43 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttReaBase.java
  64. 101 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttResBase.java
  65. 61 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttRudABase.java
  66. 59 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttRvBase.java
  67. 47 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttStBase.java
  68. 91 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttWagaBase.java
  69. 23 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/BizCateTree.java
  70. 23 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/BizDocFileParam.java
  71. 65 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/CmsArticle.java
  72. 27 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/CmsArticleFile.java
  73. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/CmsCate.java
  74. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/DocCate.java
  75. 36 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/DocFile.java
  76. 21 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/GCSZ.java
  77. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjDike.java
  78. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjPust.java
  79. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjRes.java
  80. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjWaga.java
  81. 27 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/Player.java
  82. 23 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/PlayerItem.java
  83. 24 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelDikeAd1.java
  84. 24 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelDikeBas.java
  85. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelPustAd.java
  86. 24 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelPustBas.java
  87. 26 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelResAd1.java
  88. 26 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelResBas.java
  89. 28 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelWagaAd.java
  90. 26 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelWagaBas.java
  91. 39 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/SlgcWaterUnit.java
  92. 27 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/SlgcWaterUnitRecord.java
  93. 124 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/Wry.java
  94. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttBridBaseKey.java
  95. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttDikeBaseKey.java
  96. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttDiscBaseKey.java
  97. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttDpdsBaseKey.java
  98. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttFlumBaseKey.java
  99. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttFsdaBaseKey.java
  100. 15 0
      gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttGrpjBaseKey.java

+ 11 - 0
gw-admin/pom.xml

@@ -36,6 +36,12 @@
             <artifactId>mysql-connector-j</artifactId>
         </dependency>
 
+         <!-- 达梦数据库驱动 -->
+        <dependency>
+            <groupId>com.dameng</groupId>
+            <artifactId>DmJdbcDriver18</artifactId>
+        </dependency>
+
         <!-- 核心模块-->
         <dependency>
             <groupId>com.goldenwater</groupId>
@@ -47,6 +53,11 @@
             <groupId>com.goldenwater</groupId>
             <artifactId>gw-quartz</artifactId>
         </dependency>
+        <!-- 业务模块-->
+        <dependency>
+            <groupId>com.goldenwater</groupId>
+            <artifactId>gw-slgcrun</artifactId>
+        </dependency>
         <!-- ruoyi-springboot3 / springdoc knife4j 配置 -->
         <dependency>
             <groupId>com.github.xiaoymin</groupId>

+ 12 - 12
gw-admin/src/main/resources/application-druid.yml

@@ -7,7 +7,7 @@ goldenwater:
   # 版权年份
   copyrightYear: 2026
   # 文件路径 示例( Windows配置D:/goldenwater/uploadPath,Linux配置 /home/goldenwater/uploadPath)
-  profile: D:/goldenwater/uploadPath
+  profile: D:/szybh/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数字计算 char 字符验证
@@ -16,13 +16,13 @@ goldenwater:
 spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
+    driverClassName: dm.jdbc.driver.DmDriver
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://39.98.38.2:13306/gw_basic?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: GW@js1601
+        url: jdbc:dm://192.168.0.145:30236/SLGC_RUN?allowMultiQueries=true
+        username: SLGC_RUN
+        password: Gw./16001
       # 从库数据源
       slave:
         # 从数据源开关/默认关闭
@@ -92,11 +92,11 @@ spring:
     # redis 配置
     redis:
       # 地址
-      host: 39.98.38.2
+      host: 192.168.0.146
       # 端口,默认为6379
-      port: 16379
+      port: 6379
       # 数据库索引
-      database: 14
+      database: 15
       # 密码
       password: ZjsthGw1125
       # 连接超时时间
@@ -135,10 +135,10 @@ springdoc:
     path: /swagger-ui.html
     tags-sorter: alpha
   group-configs:
-    - group: 'default'
-      display-name: '测试模块'
+    - group: 'slgc-run'
+      display-name: '水利工程运行管理'
       paths-to-match: '/**'
-      packages-to-scan: com.goldenwater.web.controller.tool
+      packages-to-scan: com.goldenwater.web.controller.tool,com.goldenwater.slgc.controller
 # knife4j 配置
 knife4j:
   enable: true           # 是否启用 knife4j 页面
@@ -149,4 +149,4 @@ knife4j:
     password: 123456     # 基础认证密码
   setting:
     swagger-model-name: 金水系统文档  # 模型名称
-    language: zh-CN      # 界面语言设置为中文
+    language: zh-CN      # 界面语言设置为中文

+ 22 - 9
gw-admin/src/main/resources/application-test.yml

@@ -7,22 +7,35 @@ goldenwater:
   # 版权年份
   copyrightYear: 2026
   # 文件路径 示例( Windows配置D:/goldenwater/uploadPath,Linux配置 /home/goldenwater/uploadPath)
-  profile: D:/goldenwater/uploadPath
+  profile: D:/szybh/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数字计算 char 字符验证
   captchaType: math
+  # 外部 API 地址配置(部署时按实际环境修改这些地址即可,无需改 Java 代码)
+  api:
+    # 水文信息 - 对应 HydrologyController /slgc/hydrology/*
+    # 提供站点列表、水位、流量、水质、实时监测等数据
+    hydrology: http://10.8.11.110:20080/outApi
+    # 工程监管 - 对应 ZggcController /slgc/zggc/*
+    # 提供三大站(太浦闸/望亭/常熟)实时水情 SOAP WebService
+    zggc: http://10.8.40.222/WebService/NewGQ.asmx
+    # 监测/三维/概化图/水量/涉河 - 对应 MonitorController/SwController/GhtController/WaterController/ShgcController/GCFBController
+    # 提供监测列表、工程数据、GIS三维、概化图、闸坝水量、涉河项目等
+    yjzh: http://10.8.4.171:816/YJZH.asmx
+    # 闸门运行记录 - Zggc/Detail 页面 iframe 嵌入的 ASPX 系统
+    gateRecord: http://10.8.4.136:83/GongCheng
 # 数据源配置
 spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
+    driverClassName: dm.jdbc.driver.DmDriver
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://192.168.0.146:3306/gw_basic?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: GW@js1601
+        url: jdbc:dm://192.168.0.145:30236/SLGC_RUN?allowMultiQueries=true
+        username: SLGC_RUN
+        password: Gw./16001
       # 从库数据源
       slave:
         # 从数据源开关/默认关闭
@@ -135,10 +148,10 @@ springdoc:
     path: /swagger-ui.html
     tags-sorter: alpha
   group-configs:
-    - group: 'default'
-      display-name: '测试模块'
+    - group: 'slgc-run'
+      display-name: '水利工程运行管理'
       paths-to-match: '/**'
-      packages-to-scan: com.goldenwater.web.controller.tool
+      packages-to-scan: com.goldenwater.web.controller.tool,com.goldenwater.slgc.controller
 # knife4j 配置
 knife4j:
   enable: true           # 是否启用 knife4j 页面
@@ -149,4 +162,4 @@ knife4j:
     password: 123456     # 基础认证密码
   setting:
     swagger-model-name: 金水系统文档  # 模型名称
-    language: zh-CN      # 界面语言设置为中文
+    language: zh-CN      # 界面语言设置为中文

+ 5 - 3
gw-admin/src/main/resources/application.yml

@@ -1,10 +1,10 @@
 # 开发环境配置
 server:
-  # 服务器的HTTP端口,默认为8080
-  port: 8080
+  # 服务器的HTTP端口,默认为8901
+  port: 8901
   servlet:
     # 应用的访问路径
-    context-path: /
+    context-path: /slgc-run
   tomcat:
     # tomcat的URI编码
     uri-encoding: UTF-8
@@ -66,3 +66,5 @@ pagehelper:
 
 
 
+
+

+ 193 - 0
gw-admin/src/main/resources/menu/business_menu.sql

@@ -0,0 +1,193 @@
+-- =====================================================
+-- 水利工程运行管理系统 - 业务菜单SQL
+-- Dameng (DM)
+-- 按旧版 6 大模块组织结构
+-- =====================================================
+
+SET IDENTITY_INSERT SYS_MENU ON;
+
+-- =====================================================
+-- 根菜单 - 水利工程管理系统
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2000, '水利工程管理系统', 0, 0, 'slgc', null, 'SlgcRoot', 1, 0, 'M', 0, 0, null, 'guide', 'admin', SYSDATE());
+
+-- =====================================================
+-- 首页(默认落地页)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2001, '首页', 2000, 0, 'intro', 'index', 'SystemIntro', 1, 0, 'C', 0, 0, null, 'guide', 'admin', SYSDATE());
+
+-- =====================================================
+-- 1. 工程基本信息
+--    对应旧版 gc_wco_index.html:水库/堤防/水闸/泵站 + WCO
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2100, '工程基本信息', 2000, 1, 'proj', null, 'ProjBase', 1, 0, 'M', 0, 0, null, 'guide', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2101, '工程资料', 2100, 1, 'gc', 'slgc/gc/index', 'ProjGc', 1, 0, 'C', 0, 0, 'slgc:gc:list', 'guide', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2102, '堤防管理', 2100, 2, 'dike', 'slgc/dike/index', 'ProjDike', 1, 0, 'C', 0, 0, 'slgc:dike:list', 'trend', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2103, '水库管理', 2100, 3, 'reservoir', 'slgc/reservoir/index', 'ProjReservoir', 1, 0, 'C', 0, 0, 'slgc:reservoir:list', 'data-analysis', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2104, '水闸管理', 2100, 4, 'pust', 'slgc/pust/index', 'ProjPust', 1, 0, 'C', 0, 0, 'slgc:pust:list', 'switch', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2105, '泵站管理', 2100, 5, 'waga', 'slgc/waga/index', 'ProjWaga', 1, 0, 'C', 0, 0, 'slgc:waga:list', 'setting', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2106, '综合概览', 2100, 6, 'overview', 'slgc/slgc/index', 'ProjOverview', 1, 0, 'C', 0, 0, 'slgc:overview:list', 'guide', 'admin', SYSDATE());
+
+-- WCO 子模块(旧版工程基本信息的数据来源于 WCO API)
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2110, 'WCO工程', 2100, 7, 'wco', null, 'ProjWco', 1, 0, 'M', 0, 0, null, 'list', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2111, 'WCO首页', 2110, 1, 'index', 'slgc/wco/index', 'WcoIndex', 1, 0, 'C', 0, 0, 'slgc:wco:list', 'list', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2112, 'WCO堤防', 2110, 2, 'dike', 'slgc/wco/dike/index', 'WcoDike', 1, 0, 'C', 0, 0, 'slgc:wco:dike:list', 'trend', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2113, 'WCO水闸', 2110, 3, 'pust', 'slgc/wco/pust/index', 'WcoPust', 1, 0, 'C', 0, 0, 'slgc:wco:pust:list', 'switch', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2114, 'WCO水库', 2110, 4, 'reservoir', 'slgc/wco/reservoir/index', 'WcoReservoir', 1, 0, 'C', 0, 0, 'slgc:wco:reservoir:list', 'data-analysis', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2115, 'WCO泵站', 2110, 5, 'waga', 'slgc/wco/waga/index', 'WcoWaga', 1, 0, 'C', 0, 0, 'slgc:wco:waga:list', 'setting', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2116, 'WCO水闸KM', 2110, 6, 'km', 'slgc/wco/km/index', 'WcoKm', 1, 0, 'C', 0, 0, 'slgc:wco:km:list', 'switch', 'admin', SYSDATE());
+
+-- =====================================================
+-- 2. 直管工程(对应旧版 monitor.html)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2120, '直管工程', 2000, 2, 'monitor', 'slgc/monitor/index', 'DirectMonitor', 1, 0, 'C', 0, 0, 'slgc:monitor:list', 'monitor', 'admin', SYSDATE());
+
+-- =====================================================
+-- 3. 流域重要工程(对应旧版 gis.html + gis_sw.html)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2130, '流域重要工程', 2000, 3, 'gis', null, 'BasinGis', 1, 0, 'M', 0, 0, null, 'guide', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2131, 'GIS工程地图', 2130, 1, 'index', 'slgc/gis/index', 'GisMap', 1, 0, 'C', 0, 0, 'slgc:gis:list', 'guide', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2132, '水质水文监测', 2130, 2, 'water', 'slgc/gis/water', 'GisWater', 1, 0, 'C', 0, 0, 'slgc:gis:water', 'data-line', 'admin', SYSDATE());
+
+-- =====================================================
+-- 4. 水利工程管理考核(对应旧版 unit.html:水管单位考核)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2140, '水利工程管理考核', 2000, 4, 'assess', null, 'UnitAssess', 1, 0, 'M', 0, 0, null, 'user', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2141, '用水单位', 2140, 1, 'unit', 'slgc/unit/index', 'AssessUnit', 1, 0, 'C', 0, 0, 'slgc:unit:list', 'user', 'admin', SYSDATE());
+
+-- =====================================================
+-- 5. 工程管理标准化(对应旧版 cms_index.html:栏目/文章)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2150, '工程管理标准化', 2000, 5, 'standard', null, 'CmsStandard', 1, 0, 'M', 0, 0, null, 'documentation', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2151, '文章列表', 2150, 1, 'article', 'slgc/cms/article/index', 'CmsArticle', 1, 0, 'C', 0, 0, 'slgc:cms:article:list', 'list', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2152, '栏目管理', 2150, 2, 'category', 'slgc/cms/category/index', 'CmsCategory', 1, 0, 'C', 0, 0, 'slgc:cms:category:list', 'tree', 'admin', SYSDATE());
+
+-- =====================================================
+-- 6. 法规标准(对应旧版 szy_doc.html + szy_law.html)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2160, '法规标准', 2000, 6, 'legal', null, 'LegalStandard', 1, 0, 'M', 0, 0, null, 'documentation', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2161, '文档管理', 2160, 1, 'doc', 'slgc/doc/index', 'LegalDoc', 1, 0, 'C', 0, 0, 'slgc:doc:list', 'documentation', 'admin', SYSDATE());
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2162, '法规管理', 2160, 2, 'law', 'slgc/law/index', 'LegalLaw', 1, 0, 'C', 0, 0, 'slgc:law:list', 'documentation', 'admin', SYSDATE());
+
+-- =====================================================
+-- 其他功能(旧版也有的独立页面)
+-- =====================================================
+
+-- 工程概化图(对应旧版 ght.html)
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2170, '工程概化图', 2000, 7, 'ght', 'slgc/ght/index', 'GhtView', 1, 0, 'C', 0, 0, 'slgc:ght:list', 'list', 'admin', SYSDATE());
+
+-- 工程进度监管(对应旧版 zggc.html)
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2180, '工程进度监管', 2000, 8, 'zggc', null, 'ZggcSupervise', 1, 0, 'M', 0, 0, null, 'warning', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2184, '工程监管', 2180, 3, 'index', 'slgc/zggc/index', 'ZggcList', 1, 0, 'C', 0, 0, 'slgc:zggc:list', 'list', 'admin', SYSDATE());
+
+-- 预警管理
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2190, '预警管理', 2000, 9, 'earlywarning', 'slgc/earlywarning/index', 'EarlyWarning', 1, 0, 'C', 0, 0, 'slgc:earlywarning:list', 'warning', 'admin', SYSDATE());
+
+-- 水功能区
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2200, '水功能区', 2000, 10, 'waterfunc', 'slgc/waterFunction/index', 'WaterFunc', 1, 0, 'C', 0, 0, 'slgc:waterfunc:list', 'data-line', 'admin', SYSDATE());
+
+-- 水文信息
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2210, '水文信息', 2000, 11, 'hydrology', 'slgc/hydrology/index', 'HydrologyInfo', 1, 0, 'C', 0, 0, 'slgc:hydrology:list', 'data-line', 'admin', SYSDATE());
+
+-- 污染源监控
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2220, '污染源监控', 2000, 12, 'wry', 'slgc/wry/index', 'WryMonitor', 1, 0, 'C', 0, 0, 'slgc:wry:list', 'warning', 'admin', SYSDATE());
+
+-- =====================================================
+-- 工程进度监管 - 子页面(视频监控、工程附件)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2181, '视频监控', 2180, 1, 'video', 'slgc/zggc/video/index', 'ZggcVideo', 1, 0, 'C', 1, 0, 'slgc:zggc:video', 'monitor', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2182, '工程附件', 2180, 2, 'file', 'slgc/zggc/file/index', 'ZggcFile', 1, 0, 'C', 1, 0, 'slgc:zggc:file', 'upload', 'admin', SYSDATE());
+
+-- 实时指挥中心(对应旧版 zggc_port.html)
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2183, '实时指挥中心', 2180, 0, 'portal', 'slgc/zggc/portal', 'ZggcPortal', 1, 0, 'C', 0, 0, 'slgc:zggc:portal', 'monitor', 'admin', SYSDATE());
+
+-- 流域重要工程 - 子页面(GIS监测、历史、风情、云图、台风)
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2221, 'GIS实时监测', 2130, 3, 'monitor', 'slgc/gis/monitor', 'GisMonitor', 1, 0, 'C', 0, 0, 'slgc:gis:monitor', 'monitor', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2222, 'GIS历史数据查询', 2130, 4, 'history', 'slgc/gis/history', 'GisHistory', 1, 0, 'C', 0, 0, 'slgc:gis:history', 'search', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2223, '风情数据', 2130, 5, 'wind', 'slgc/wind/index', 'WindData', 1, 0, 'C', 0, 0, 'slgc:wind:list', 'trend', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2224, '天气云图', 2130, 6, 'weather', 'slgc/weather/index', 'WeatherCloud', 1, 0, 'C', 0, 0, 'slgc:weather:list', 'cloud', 'admin', SYSDATE());
+
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2225, '台风信息', 2130, 7, 'typhoon', 'slgc/typhoon/index', 'TyphoonInfo', 1, 0, 'C', 0, 0, 'slgc:typhoon:list', 'warning', 'admin', SYSDATE());
+
+-- =====================================================
+-- 新增:涉河项目管理(对应旧版 shgc,后端 ShgcController)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2230, '涉河项目管理', 2000, 13, 'shgc', 'slgc/shgc/index', 'ShgcMgr', 1, 0, 'C', 0, 0, 'slgc:shgc:list', 'documentation', 'admin', SYSDATE());
+
+-- =====================================================
+-- 新增:工程分布数据(对应旧版 gcfb,后端 GCFBController)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2231, '工程分布数据', 2000, 14, 'gcfb', 'slgc/gcfb/index', 'GcfbData', 1, 0, 'C', 0, 0, 'slgc:gcfb:list', 'guide', 'admin', SYSDATE());
+
+-- =====================================================
+-- 新增:防洪工程数据库(对应旧版 fhgc,后端 FhgcController)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2232, '防洪工程数据库', 2000, 15, 'fhgc', 'slgc/fhgc/index', 'FhgcDb', 1, 0, 'C', 0, 0, 'slgc:fhgc:list', 'warning', 'admin', SYSDATE());
+
+-- =====================================================
+-- 新增:三维数据管理(对应旧版 gis_sw.html,后端 SwController)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2233, '三维数据管理', 2000, 16, 'sw', 'slgc/sw/index', 'SwData', 1, 0, 'C', 0, 0, 'slgc:sw:list', 'data-analysis', 'admin', SYSDATE());
+
+-- =====================================================
+-- 新增:水量数据管理(对应旧版 water,后端 WaterController)
+-- =====================================================
+INSERT INTO SYS_MENU (MENU_ID, MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_BY, CREATE_TIME)
+VALUES (2234, '水量数据管理', 2000, 17, 'water', 'slgc/water/index', 'WaterData', 1, 0, 'C', 0, 0, 'slgc:water:list', 'data-line', 'admin', SYSDATE());
+
+SET IDENTITY_INSERT SYS_MENU OFF;

+ 57 - 98
gw-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml

@@ -1,100 +1,59 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.goldenwater.quartz.mapper.SysJobLogMapper">
-
-	<resultMap type="SysJobLog" id="SysJobLogResult">
-		<id     property="jobLogId"       column="job_log_id"      />
-		<result property="jobName"        column="job_name"        />
-		<result property="jobGroup"       column="job_group"       />
-		<result property="invokeTarget"   column="invoke_target"   />
-		<result property="jobMessage"     column="job_message"     />
-		<result property="status"         column="status"          />
-		<result property="exceptionInfo"  column="exception_info"  />
-		<result property="startTime"      column="start_time"      />
-		<result property="endTime"        column="end_time"        />
-		<result property="createTime"     column="create_time"     />
-	</resultMap>
-	
-	<sql id="selectJobLogVo">
-        select job_log_id, job_name, job_group, invoke_target, job_message, status, exception_info, start_time, end_time, create_time 
-		from sys_job_log
-    </sql>
-	
-	<select id="selectJobLogList" parameterType="SysJobLog" resultMap="SysJobLogResult">
-		<include refid="selectJobLogVo"/>
-		<where>
-			<if test="jobName != null and jobName != ''">
-				AND job_name like concat('%', #{jobName}, '%')
-			</if>
-			<if test="jobGroup != null and jobGroup != ''">
-				AND job_group = #{jobGroup}
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-			<if test="invokeTarget != null and invokeTarget != ''">
-				AND invoke_target like concat('%', #{invokeTarget}, '%')
-			</if>
-			<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
-				and date_format(create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
-			</if>
-			<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
-				and date_format(create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
-			</if>
-		</where>
-		order by create_time desc
-	</select>
-	
-	<select id="selectJobLogAll" resultMap="SysJobLogResult">
-		<include refid="selectJobLogVo"/>
-	</select>
-	
-	<select id="selectJobLogById" parameterType="Long" resultMap="SysJobLogResult">
-		<include refid="selectJobLogVo"/>
-		where job_log_id = #{jobLogId}
-	</select>
-	
-	<delete id="deleteJobLogById" parameterType="Long">
- 		delete from sys_job_log where job_log_id = #{jobLogId}
- 	</delete>
- 	
- 	<delete id="deleteJobLogByIds" parameterType="Long">
- 		delete from sys_job_log where job_log_id in
- 		<foreach collection="array" item="jobLogId" open="(" separator="," close=")">
- 			#{jobLogId}
-        </foreach> 
- 	</delete>
- 	
- 	<update id="cleanJobLog">
-        truncate table sys_job_log
-    </update>
- 	
- 	<insert id="insertJobLog" parameterType="SysJobLog">
- 		insert into sys_job_log(
- 			<if test="jobLogId != null and jobLogId != 0">job_log_id,</if>
- 			<if test="jobName != null and jobName != ''">job_name,</if>
- 			<if test="jobGroup != null and jobGroup != ''">job_group,</if>
- 			<if test="invokeTarget != null and invokeTarget != ''">invoke_target,</if>
- 			<if test="jobMessage != null and jobMessage != ''">job_message,</if>
- 			<if test="status != null and status != ''">status,</if>
- 			<if test="exceptionInfo != null and exceptionInfo != ''">exception_info,</if>
- 			<if test="startTime != null">start_time,</if>
- 			<if test="endTime != null">end_time,</if>
- 			create_time
- 		)values(
- 			<if test="jobLogId != null and jobLogId != 0">#{jobLogId},</if>
- 			<if test="jobName != null and jobName != ''">#{jobName},</if>
- 			<if test="jobGroup != null and jobGroup != ''">#{jobGroup},</if>
- 			<if test="invokeTarget != null and invokeTarget != ''">#{invokeTarget},</if>
- 			<if test="jobMessage != null and jobMessage != ''">#{jobMessage},</if>
- 			<if test="status != null and status != ''">#{status},</if>
- 			<if test="exceptionInfo != null and exceptionInfo != ''">#{exceptionInfo},</if>
- 			<if test="startTime != null">#{startTime},</if>
- 			<if test="endTime != null">#{endTime},</if>
- 			sysdate()
- 		)
-	</insert>
-
-</mapper> 
+    <resultMap type="SysJobLog" id="SysJobLogResult">
+        <id property="jobLogId" column="job_log_id"/>
+        <result property="jobName" column="job_name"/>
+        <result property="jobGroup" column="job_group"/>
+        <result property="invokeTarget" column="invoke_target"/>
+        <result property="jobMessage" column="job_message"/>
+        <result property="status" column="status"/>
+        <result property="exceptionInfo" column="exception_info"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+    <sql id="selectJobLogVo">select job_log_id, job_name, job_group, invoke_target, job_message, status, exception_info, start_time, end_time, create_time from sys_job_log</sql>
+    <select id="selectJobLogList" parameterType="SysJobLog" resultMap="SysJobLogResult">
+        <include refid="selectJobLogVo"/>
+        <where>
+            <if test="jobName != null and jobName != ''">AND job_name like concat('%', #{jobName}, '%') </if>
+            <if test="jobGroup != null and jobGroup != ''">AND job_group = #{jobGroup}</if>
+            <if test="status != null and status != ''">AND status = #{status}</if>
+            <if test="invokeTarget != null and invokeTarget != ''">AND invoke_target like concat('%', #{invokeTarget}, '%') </if>
+            <if test="params.beginTime != null and params.beginTime != ''">and date_format(create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')</if>
+            <if test="params.endTime != null and params.endTime != ''">and date_format(create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')</if>
+        </where>
+        order by create_time desc
+    </select>
+    <select id="selectJobLogAll" resultMap="SysJobLogResult"><include refid="selectJobLogVo"/></select>
+    <select id="selectJobLogById" parameterType="Long" resultMap="SysJobLogResult"><include refid="selectJobLogVo"/> where job_log_id = #{jobLogId}</select>
+    <delete id="deleteJobLogById" parameterType="Long">delete from sys_job_log where job_log_id = #{jobLogId}</delete>
+    <delete id="deleteJobLogByIds" parameterType="Long">delete from sys_job_log where job_log_id in <foreach collection="array" item="jobLogId" open="(" separator="," close=")">#{jobLogId}</foreach></delete>
+    <update id="cleanJobLog">truncate table sys_job_log</update>
+    <insert id="insertJobLog" parameterType="SysJobLog">
+        insert into sys_job_log(
+            <if test="jobLogId != null and jobLogId != 0">job_log_id,</if>
+            <if test="jobName != null and jobName != ''">job_name,</if>
+            <if test="jobGroup != null and jobGroup != ''">job_group,</if>
+            <if test="invokeTarget != null and invokeTarget != ''">invoke_target,</if>
+            <if test="jobMessage != null and jobMessage != ''">job_message,</if>
+            <if test="status != null and status != ''">status,</if>
+            <if test="exceptionInfo != null and exceptionInfo != ''">exception_info,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            create_time
+        )values(
+            <if test="jobLogId != null and jobLogId != 0">#{jobLogId},</if>
+            <if test="jobName != null and jobName != ''">#{jobName},</if>
+            <if test="jobGroup != null and jobGroup != ''">#{jobGroup},</if>
+            <if test="invokeTarget != null and invokeTarget != ''">#{invokeTarget},</if>
+            <if test="jobMessage != null and jobMessage != ''">#{jobMessage},</if>
+            <if test="status != null and status != ''">#{status},</if>
+            <if test="exceptionInfo != null and exceptionInfo != ''">#{exceptionInfo},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            sysdate()
+        )
+    </insert>
+</mapper>

+ 74 - 109
gw-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml

@@ -1,111 +1,76 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.goldenwater.quartz.mapper.SysJobMapper">
-
-	<resultMap type="SysJob" id="SysJobResult">
-		<id     property="jobId"          column="job_id"          />
-		<result property="jobName"        column="job_name"        />
-		<result property="jobGroup"       column="job_group"       />
-		<result property="invokeTarget"   column="invoke_target"   />
-		<result property="cronExpression" column="cron_expression" />
-		<result property="misfirePolicy"  column="misfire_policy"  />
-		<result property="concurrent"     column="concurrent"      />
-		<result property="status"         column="status"          />
-		<result property="createBy"       column="create_by"       />
-		<result property="createTime"     column="create_time"     />
-		<result property="updateBy"       column="update_by"       />
-		<result property="updateTime"     column="update_time"     />
-		<result property="remark"         column="remark"          />
-	</resultMap>
-	
-	<sql id="selectJobVo">
-        select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark  
-		from sys_job
-    </sql>
-	
-	<select id="selectJobList" parameterType="SysJob" resultMap="SysJobResult">
-		<include refid="selectJobVo"/>
-		<where>
-			<if test="jobName != null and jobName != ''">
-				AND job_name like concat('%', #{jobName}, '%')
-			</if>
-			<if test="jobGroup != null and jobGroup != ''">
-				AND job_group = #{jobGroup}
-			</if>
-			<if test="status != null and status != ''">
-				AND status = #{status}
-			</if>
-			<if test="invokeTarget != null and invokeTarget != ''">
-				AND invoke_target like concat('%', #{invokeTarget}, '%')
-			</if>
-		</where>
-	</select>
-	
-	<select id="selectJobAll" resultMap="SysJobResult">
-		<include refid="selectJobVo"/>
-	</select>
-	
-	<select id="selectJobById" parameterType="Long" resultMap="SysJobResult">
-		<include refid="selectJobVo"/>
-		where job_id = #{jobId}
-	</select>
-	
-	<delete id="deleteJobById" parameterType="Long">
- 		delete from sys_job where job_id = #{jobId}
- 	</delete>
- 	
- 	<delete id="deleteJobByIds" parameterType="Long">
- 		delete from sys_job where job_id in
- 		<foreach collection="array" item="jobId" open="(" separator="," close=")">
- 			#{jobId}
-        </foreach> 
- 	</delete>
- 	
- 	<update id="updateJob" parameterType="SysJob">
- 		update sys_job
- 		<set>
- 			<if test="jobName != null and jobName != ''">job_name = #{jobName},</if>
- 			<if test="jobGroup != null and jobGroup != ''">job_group = #{jobGroup},</if>
- 			<if test="invokeTarget != null and invokeTarget != ''">invoke_target = #{invokeTarget},</if>
- 			<if test="cronExpression != null and cronExpression != ''">cron_expression = #{cronExpression},</if>
- 			<if test="misfirePolicy != null and misfirePolicy != ''">misfire_policy = #{misfirePolicy},</if>
- 			<if test="concurrent != null and concurrent != ''">concurrent = #{concurrent},</if>
- 			<if test="status !=null">status = #{status},</if>
- 			<if test="remark != null and remark != ''">remark = #{remark},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- 			update_time = sysdate()
- 		</set>
- 		where job_id = #{jobId}
-	</update>
- 	
- 	<insert id="insertJob" parameterType="SysJob" useGeneratedKeys="true" keyProperty="jobId">
- 		insert into sys_job(
- 			<if test="jobId != null and jobId != 0">job_id,</if>
- 			<if test="jobName != null and jobName != ''">job_name,</if>
- 			<if test="jobGroup != null and jobGroup != ''">job_group,</if>
- 			<if test="invokeTarget != null and invokeTarget != ''">invoke_target,</if>
- 			<if test="cronExpression != null and cronExpression != ''">cron_expression,</if>
- 			<if test="misfirePolicy != null and misfirePolicy != ''">misfire_policy,</if>
- 			<if test="concurrent != null and concurrent != ''">concurrent,</if>
- 			<if test="status != null and status != ''">status,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
- 			<if test="createBy != null and createBy != ''">create_by,</if>
- 			create_time
- 		)values(
- 			<if test="jobId != null and jobId != 0">#{jobId},</if>
- 			<if test="jobName != null and jobName != ''">#{jobName},</if>
- 			<if test="jobGroup != null and jobGroup != ''">#{jobGroup},</if>
- 			<if test="invokeTarget != null and invokeTarget != ''">#{invokeTarget},</if>
- 			<if test="cronExpression != null and cronExpression != ''">#{cronExpression},</if>
- 			<if test="misfirePolicy != null and misfirePolicy != ''">#{misfirePolicy},</if>
- 			<if test="concurrent != null and concurrent != ''">#{concurrent},</if>
- 			<if test="status != null and status != ''">#{status},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
- 			<if test="createBy != null and createBy != ''">#{createBy},</if>
- 			sysdate()
- 		)
-	</insert>
-
-</mapper> 
+    <resultMap type="SysJob" id="SysJobResult">
+        <id property="jobId" column="job_id"/>
+        <result property="jobName" column="job_name"/>
+        <result property="jobGroup" column="job_group"/>
+        <result property="invokeTarget" column="invoke_target"/>
+        <result property="cronExpression" column="cron_expression"/>
+        <result property="misfirePolicy" column="misfire_policy"/>
+        <result property="concurrent" column="concurrent"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+    <sql id="selectJobVo">select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark from sys_job</sql>
+    <select id="selectJobList" parameterType="SysJob" resultMap="SysJobResult">
+        <include refid="selectJobVo"/>
+        <where>
+            <if test="jobName != null and jobName != ''">AND job_name like concat('%', #{jobName}, '%') </if>
+            <if test="jobGroup != null and jobGroup != ''">AND job_group = #{jobGroup}</if>
+            <if test="status != null and status != ''">AND status = #{status}</if>
+            <if test="invokeTarget != null and invokeTarget != ''">AND invoke_target like concat('%', #{invokeTarget}, '%') </if>
+        </where>
+    </select>
+    <select id="selectJobAll" resultMap="SysJobResult"><include refid="selectJobVo"/></select>
+    <select id="selectJobById" parameterType="Long" resultMap="SysJobResult"><include refid="selectJobVo"/> where job_id = #{jobId}</select>
+    <delete id="deleteJobById" parameterType="Long">delete from sys_job where job_id = #{jobId}</delete>
+    <delete id="deleteJobByIds" parameterType="Long">delete from sys_job where job_id in <foreach collection="array" item="jobId" open="(" separator="," close=")">#{jobId}</foreach></delete>
+    <update id="updateJob" parameterType="SysJob">
+        update sys_job
+        <set>
+            <if test="jobName != null and jobName != ''">job_name = #{jobName},</if>
+            <if test="jobGroup != null and jobGroup != ''">job_group = #{jobGroup},</if>
+            <if test="invokeTarget != null and invokeTarget != ''">invoke_target = #{invokeTarget},</if>
+            <if test="cronExpression != null and cronExpression != ''">cron_expression = #{cronExpression},</if>
+            <if test="misfirePolicy != null and misfirePolicy != ''">misfire_policy = #{misfirePolicy},</if>
+            <if test="concurrent != null and concurrent != ''">concurrent = #{concurrent},</if>
+            <if test="status !=null">status = #{status},</if>
+            <if test="remark != null and remark != ''">remark = #{remark},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            update_time = sysdate()
+        </set>
+        where job_id = #{jobId}
+    </update>
+    <insert id="insertJob" parameterType="SysJob" useGeneratedKeys="true" keyProperty="jobId">
+        insert into sys_job(
+            <if test="jobId != null and jobId != 0">job_id,</if>
+            <if test="jobName != null and jobName != ''">job_name,</if>
+            <if test="jobGroup != null and jobGroup != ''">job_group,</if>
+            <if test="invokeTarget != null and invokeTarget != ''">invoke_target,</if>
+            <if test="cronExpression != null and cronExpression != ''">cron_expression,</if>
+            <if test="misfirePolicy != null and misfirePolicy != ''">misfire_policy,</if>
+            <if test="concurrent != null and concurrent != ''">concurrent,</if>
+            <if test="status != null and status != ''">status,</if>
+            <if test="remark != null and remark != ''">remark,</if>
+            <if test="createBy != null and createBy != ''">create_by,</if>
+            create_time
+        )values(
+            <if test="jobId != null and jobId != 0">#{jobId},</if>
+            <if test="jobName != null and jobName != ''">#{jobName},</if>
+            <if test="jobGroup != null and jobGroup != ''">#{jobGroup},</if>
+            <if test="invokeTarget != null and invokeTarget != ''">#{invokeTarget},</if>
+            <if test="cronExpression != null and cronExpression != ''">#{cronExpression},</if>
+            <if test="misfirePolicy != null and misfirePolicy != ''">#{misfirePolicy},</if>
+            <if test="concurrent != null and concurrent != ''">#{concurrent},</if>
+            <if test="status != null and status != ''">#{status},</if>
+            <if test="remark != null and remark != ''">#{remark},</if>
+            <if test="createBy != null and createBy != ''">#{createBy},</if>
+            sysdate()
+        )
+    </insert>
+</mapper>

+ 34 - 0
gw-slgcrun/pom.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>goldenwater</artifactId>
+        <groupId>com.goldenwater</groupId>
+        <version>3.9.2</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>gw-slgcrun</artifactId>
+
+    <description>
+        SLGC水利工程业务模块
+    </description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.goldenwater</groupId>
+            <artifactId>gw-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 46 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/config/ApiProperties.java

@@ -0,0 +1,46 @@
+package com.goldenwater.slgc.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * 外部 API 地址配置,对应 application.yml 中 goldenwater.api.*
+ * 部署时修改配置文件即可切换外部数据源地址
+ */
+@Component
+@ConfigurationProperties(prefix = "goldenwater.api")
+public class ApiProperties {
+
+    private String hydrology = "http://10.8.11.110:20080/outApi";
+    private String zggc = "http://10.8.40.222/WebService/NewGQ.asmx";
+    private String yjzh = "http://10.8.4.171:816/YJZH.asmx";
+    private String gateRecord = "http://10.8.4.136:83/GongCheng";
+    private String tbaddRealtime = "http://10.8.4.234:8888";
+    private String tbaGx = "";
+    private String waterSource = "";
+    private String syqStation = "";
+
+    public String getHydrology() { return hydrology; }
+    public void setHydrology(String hydrology) { this.hydrology = hydrology; }
+
+    public String getZggc() { return zggc; }
+    public void setZggc(String zggc) { this.zggc = zggc; }
+
+    public String getYjzh() { return yjzh; }
+    public void setYjzh(String yjzh) { this.yjzh = yjzh; }
+
+    public String getGateRecord() { return gateRecord; }
+    public void setGateRecord(String gateRecord) { this.gateRecord = gateRecord; }
+
+    public String getTbaddRealtime() { return tbaddRealtime; }
+    public void setTbaddRealtime(String tbaddRealtime) { this.tbaddRealtime = tbaddRealtime; }
+
+    public String getTbaGx() { return tbaGx; }
+    public void setTbaGx(String tbaGx) { this.tbaGx = tbaGx; }
+
+    public String getWaterSource() { return waterSource; }
+    public void setWaterSource(String waterSource) { this.waterSource = waterSource; }
+
+    public String getSyqStation() { return syqStation; }
+    public void setSyqStation(String syqStation) { this.syqStation = syqStation; }
+}

+ 17 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/config/RestTemplateConfig.java

@@ -0,0 +1,17 @@
+package com.goldenwater.slgc.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * RestTemplate 单例配置,避免每个代理控制器各自 new RestTemplate()
+ */
+@Configuration
+public class RestTemplateConfig {
+
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
+}

+ 91 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/CmsArticleController.java

@@ -0,0 +1,91 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.CmsArticle;
+import com.goldenwater.slgc.service.CmsArticleService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "13. 内容文章管理")
+@RestController
+@RequestMapping("/slgc/cms-article")
+public class CmsArticleController extends BaseController {
+    @Autowired
+    private CmsArticleService cmsArticleService;
+
+    @Operation(summary = "13.01 查询内容文章列表")
+    @GetMapping("/list")
+    public TableDataInfo list(CmsArticle cmsArticle) {
+        startPage();
+        List<CmsArticle> list = cmsArticleService.selectCmsArticleList(cmsArticle);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "13.02 获取内容文章详细信息")
+    @GetMapping(value = "/{aid}")
+    public AjaxResult getInfo(@PathVariable String aid) {
+        return success(cmsArticleService.selectCmsArticleById(aid));
+    }
+
+    @Operation(summary = "13.03 新增内容文章")
+    @Log(title = "内容文章管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CmsArticle cmsArticle) {
+        return toAjax(cmsArticleService.insertCmsArticle(cmsArticle));
+    }
+
+    @Operation(summary = "13.04 修改内容文章")
+    @Log(title = "内容文章管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CmsArticle cmsArticle) {
+        return toAjax(cmsArticleService.updateCmsArticle(cmsArticle));
+    }
+
+    @Operation(summary = "13.05 删除内容文章")
+    @Log(title = "内容文章管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{aids}")
+    public AjaxResult remove(@PathVariable String[] aids) {
+        return toAjax(cmsArticleService.deleteCmsArticleByIds(aids));
+    }
+
+    @Operation(summary = "13.06 批量新增内容文章")
+    @Log(title = "内容文章管理", businessType = BusinessType.INSERT)
+    @PostMapping("/batch")
+    public AjaxResult batchAdd(@RequestBody List<CmsArticle> list) {
+        return toAjax(cmsArticleService.batchInsert(list));
+    }
+
+    @Operation(summary = "13.07 批量修改内容文章")
+    @Log(title = "内容文章管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/batch")
+    public AjaxResult batchEdit(@RequestBody List<CmsArticle> list) {
+        return toAjax(cmsArticleService.batchUpdate(list));
+    }
+
+    @Operation(summary = "13.08 批量删除内容文章")
+    @Log(title = "内容文章管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/batch/{aids}")
+    public AjaxResult batchRemove(@PathVariable String[] aids) {
+        return toAjax(cmsArticleService.deleteCmsArticleByIds(aids));
+    }
+
+    @Operation(summary = "13.09 获取今日发布文章数")
+    @GetMapping("/published/today")
+    public AjaxResult getArticlesPublicNum() {
+        return success(cmsArticleService.selectTodayPublishedCount());
+    }
+}

+ 71 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/CmsArticleFileController.java

@@ -0,0 +1,71 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.CmsArticleFile;
+import com.goldenwater.slgc.service.CmsArticleFileService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "14. 内容文件管理")
+@RestController
+@RequestMapping("/slgc/cms-file")
+public class CmsArticleFileController extends BaseController {
+    @Autowired
+    private CmsArticleFileService cmsArticleFileService;
+
+    @Operation(summary = "14.01 查询内容文件列表")
+    @GetMapping("/list")
+    public TableDataInfo list(CmsArticleFile cmsArticleFile) {
+        startPage();
+        List<CmsArticleFile> list = cmsArticleFileService.selectCmsArticleFileList(cmsArticleFile);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "14.02 获取内容文件详细信息")
+    @GetMapping(value = "/{fileId}")
+    public AjaxResult getInfo(@PathVariable String fileId) {
+        return success(cmsArticleFileService.selectCmsArticleFileById(fileId));
+    }
+
+    @Operation(summary = "14.03 新增内容文件")
+    @Log(title = "内容文件管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CmsArticleFile cmsArticleFile) {
+        return toAjax(cmsArticleFileService.insertCmsArticleFile(cmsArticleFile));
+    }
+
+    @Operation(summary = "14.04 修改内容文件")
+    @Log(title = "内容文件管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CmsArticleFile cmsArticleFile) {
+        return toAjax(cmsArticleFileService.updateCmsArticleFile(cmsArticleFile));
+    }
+
+    @Operation(summary = "14.05 删除内容文件")
+    @Log(title = "内容文件管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{fileIds}")
+    public AjaxResult remove(@PathVariable String[] fileIds) {
+        return toAjax(cmsArticleFileService.deleteCmsArticleFileByIds(fileIds));
+    }
+
+    @Operation(summary = "14.06 根据文章ID删除文件")
+    @Log(title = "内容文件管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/byAid/{aid}")
+    public AjaxResult removeByAid(@PathVariable String aid) {
+        return toAjax(cmsArticleFileService.deleteByAid(aid));
+    }
+}

+ 76 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/CmsCateController.java

@@ -0,0 +1,76 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.CmsCate;
+import com.goldenwater.slgc.service.CmsCateService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "12. 内容分类管理")
+@RestController
+@RequestMapping("/slgc/cms-cate")
+public class CmsCateController extends BaseController {
+    @Autowired
+    private CmsCateService cmsCateService;
+
+    @Operation(summary = "12.01 查询内容分类列表")
+    @GetMapping("/list")
+    public TableDataInfo list(CmsCate cmsCate) {
+        startPage();
+        List<CmsCate> list = cmsCateService.selectCmsCateList(cmsCate);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "12.02 获取内容分类详细信息")
+    @GetMapping(value = "/{cateId}")
+    public AjaxResult getInfo(@PathVariable String cateId) {
+        return success(cmsCateService.selectCmsCateById(cateId));
+    }
+
+    @Operation(summary = "12.03 新增内容分类")
+    @Log(title = "内容分类管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CmsCate cmsCate) {
+        return toAjax(cmsCateService.insertCmsCate(cmsCate));
+    }
+
+    @Operation(summary = "12.04 修改内容分类")
+    @Log(title = "内容分类管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CmsCate cmsCate) {
+        return toAjax(cmsCateService.updateCmsCate(cmsCate));
+    }
+
+    @Operation(summary = "12.05 删除内容分类")
+    @Log(title = "内容分类管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{cateIds}")
+    public AjaxResult remove(@PathVariable String[] cateIds) {
+        return toAjax(cmsCateService.deleteCmsCateByIds(cateIds));
+    }
+
+    @Operation(summary = "12.06 获取内容分类树")
+    @GetMapping("/tree")
+    public AjaxResult getTree() {
+        return success(cmsCateService.getTree());
+    }
+
+    @Operation(summary = "12.07 查询子分类列表")
+    @GetMapping("/subList/{catePid}")
+    public AjaxResult getSubList(@PathVariable String catePid) {
+        return success(cmsCateService.findSubList(catePid));
+    }
+}

+ 64 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DamController.java

@@ -0,0 +1,64 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttDamBase;
+import com.goldenwater.slgc.service.DamService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "05. 坝信息管理")
+@RestController
+@RequestMapping("/slgc/dam")
+public class DamController extends BaseController {
+    @Autowired
+    private DamService damService;
+
+    @Operation(summary = "05.01 查询坝信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(AttDamBase attDamBase) {
+        startPage();
+        List<AttDamBase> list = damService.selectAttDamBaseList(attDamBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "05.02 获取坝信息详细信息")
+    @GetMapping(value = "/{damCode}")
+    public AjaxResult getInfo(@PathVariable String damCode) {
+        return success(damService.selectAttDamBaseById(damCode));
+    }
+
+    @Operation(summary = "05.03 新增坝信息")
+    @Log(title = "坝管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AttDamBase attDamBase) {
+        return toAjax(damService.insertAttDamBase(attDamBase));
+    }
+
+    @Operation(summary = "05.04 修改坝信息")
+    @Log(title = "坝管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AttDamBase attDamBase) {
+        return toAjax(damService.updateAttDamBase(attDamBase));
+    }
+
+    @Operation(summary = "05.05 删除坝信息")
+    @Log(title = "坝管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{damCodes}")
+    public AjaxResult remove(@PathVariable String[] damCodes) {
+        return toAjax(damService.deleteAttDamBaseByIds(damCodes));
+    }
+}

+ 73 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DikeController.java

@@ -0,0 +1,73 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttDikeBase;
+import com.goldenwater.slgc.service.DikeService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+
+@Tag(name = "01. 堤防信息管理")
+@RestController
+@RequestMapping("/slgc/dike")
+public class DikeController extends BaseController {
+    @Autowired
+    private DikeService dikeService;
+
+    @Operation(summary = "01.01 查询堤防信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(AttDikeBase attDikeBase) {
+        startPage();
+        List<AttDikeBase> list = dikeService.selectAttDikeBaseList(attDikeBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "01.02 获取堤防信息详细信息")
+    @GetMapping(value = "/{dikeCode}")
+    public AjaxResult getInfo(@PathVariable String dikeCode) {
+        return success(dikeService.selectAttDikeBaseById(dikeCode));
+    }
+
+    @Operation(summary = "01.03 新增堤防信息")
+    @Log(title = "堤防管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AttDikeBase attDikeBase) {
+        return toAjax(dikeService.insertAttDikeBase(attDikeBase));
+    }
+
+    @Operation(summary = "01.04 修改堤防信息")
+    @Log(title = "堤防管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AttDikeBase attDikeBase) {
+        return toAjax(dikeService.updateAttDikeBase(attDikeBase));
+    }
+
+    @Operation(summary = "01.05 删除堤防信息")
+    @Log(title = "堤防管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{dikeCodes}")
+    public AjaxResult remove(@PathVariable String[] dikeCodes) {
+        return toAjax(dikeService.deleteAttDikeBaseByIds(dikeCodes));
+    }
+
+    @Operation(summary = "01.6 统计堤防类型分布")
+    @GetMapping("/countType")
+    public AjaxResult countType() {
+        List<Map<String, Object>> list = dikeService.countType();
+        return success(list);
+    }
+}

+ 76 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DocCateController.java

@@ -0,0 +1,76 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.DocCate;
+import com.goldenwater.slgc.service.DocCateService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "15. 文档分类管理")
+@RestController
+@RequestMapping("/slgc/doc-cate")
+public class DocCateController extends BaseController {
+    @Autowired
+    private DocCateService docCateService;
+
+    @Operation(summary = "15.01 查询文档分类列表")
+    @GetMapping("/list")
+    public TableDataInfo list(DocCate docCate) {
+        startPage();
+        List<DocCate> list = docCateService.selectDocCateList(docCate);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "15.02 获取文档分类详细信息")
+    @GetMapping(value = "/{cateId}")
+    public AjaxResult getInfo(@PathVariable String cateId) {
+        return success(docCateService.selectDocCateById(cateId));
+    }
+
+    @Operation(summary = "15.03 新增文档分类")
+    @Log(title = "文档分类管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody DocCate docCate) {
+        return toAjax(docCateService.insertDocCate(docCate));
+    }
+
+    @Operation(summary = "15.04 修改文档分类")
+    @Log(title = "文档分类管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody DocCate docCate) {
+        return toAjax(docCateService.updateDocCate(docCate));
+    }
+
+    @Operation(summary = "15.05 删除文档分类")
+    @Log(title = "文档分类管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{cateIds}")
+    public AjaxResult remove(@PathVariable String[] cateIds) {
+        return toAjax(docCateService.deleteDocCateByIds(cateIds));
+    }
+
+    @Operation(summary = "15.06 获取文档分类树")
+    @GetMapping("/tree")
+    public AjaxResult getTree() {
+        return success(docCateService.getTree());
+    }
+
+    @Operation(summary = "15.07 查询子分类列表")
+    @GetMapping("/subList/{catePid}")
+    public AjaxResult getSubList(@PathVariable String catePid) {
+        return success(docCateService.findSubList(catePid));
+    }
+}

+ 119 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/DocFileController.java

@@ -0,0 +1,119 @@
+package com.goldenwater.slgc.controller;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.config.RuoYiConfig;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.common.utils.file.FileUploadUtils;
+import com.goldenwater.common.utils.uuid.IdUtils;
+import org.apache.commons.io.FilenameUtils;
+import com.goldenwater.slgc.domain.DocFile;
+import com.goldenwater.slgc.service.DocFileService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "16. 文档文件管理")
+@RestController
+@RequestMapping("/slgc/doc-file")
+public class DocFileController extends BaseController {
+    @Autowired
+    private DocFileService docFileService;
+
+    @Operation(summary = "16.01 查询文档文件列表")
+    @GetMapping("/list")
+    public TableDataInfo list(DocFile docFile) {
+        startPage();
+        List<DocFile> list = docFileService.selectDocFileList(docFile);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "16.02 获取文档文件详细信息")
+    @GetMapping(value = "/{fileId}")
+    public AjaxResult getInfo(@PathVariable String fileId) {
+        return success(docFileService.selectDocFileById(fileId));
+    }
+
+    @Operation(summary = "16.03 新增文档文件")
+    @Log(title = "文档文件管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody DocFile docFile) {
+        return toAjax(docFileService.insertDocFile(docFile));
+    }
+
+    @Operation(summary = "16.04 修改文档文件")
+    @Log(title = "文档文件管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody DocFile docFile) {
+        return toAjax(docFileService.updateDocFile(docFile));
+    }
+
+    @Operation(summary = "16.05 删除文档文件")
+    @Log(title = "文档文件管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{fileIds}")
+    public AjaxResult remove(@PathVariable String[] fileIds) {
+        return toAjax(docFileService.deleteDocFileByIds(fileIds));
+    }
+
+    @Operation(summary = "16.06 移动文档文件到指定分类")
+    @Log(title = "文档文件管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/move")
+    public AjaxResult move(@RequestParam("fileIds") String[] fileIds, @RequestParam("fileCate") String fileCate) {
+        return toAjax(docFileService.moveDocFile(fileIds, fileCate));
+    }
+
+    @Operation(summary = "16.06 重命名文档文件")
+    @Log(title = "文档文件管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/rename")
+    public AjaxResult rename(@RequestParam("fileId") String fileId,
+                             @RequestParam("fileName") String fileName) {
+        return toAjax(docFileService.renameDocFile(fileId, fileName));
+    }
+
+    @Operation(summary = "16.07 上传文档文件")
+    @Log(title = "文档文件管理", businessType = BusinessType.INSERT)
+    @PostMapping("/upload")
+    public AjaxResult upload(@RequestParam("file") MultipartFile file,
+                             @RequestParam(value = "fileCate", required = false) String fileCate,
+                             @RequestParam(value = "fileDesc", required = false) String fileDesc) {
+        try {
+            String filePath = RuoYiConfig.getUploadPath();
+            String fileName = FileUploadUtils.upload(filePath, file);
+
+            DocFile docFile = new DocFile();
+            docFile.setFileId(IdUtils.fastSimpleUUID());
+            docFile.setFileName(file.getOriginalFilename());
+            docFile.setFileType(FilenameUtils.getExtension(file.getOriginalFilename()));
+            docFile.setFileSize(BigDecimal.valueOf(file.getSize()));
+            docFile.setFilePath(fileName);
+            docFile.setFileCate(fileCate != null ? fileCate : "0");
+            docFile.setFileDesc(fileDesc);
+            docFile.setFileTime(new Date());
+            docFile.setDownTimes(0);
+
+            docFileService.insertDocFile(docFile);
+
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("url", fileName);
+            ajax.put("fileName", file.getOriginalFilename());
+            return ajax;
+        } catch (Exception e) {
+            return AjaxResult.error("上传失败: " + e.getMessage());
+        }
+    }
+}

+ 337 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/HydraulicController.java

@@ -0,0 +1,337 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttStBase;
+import com.goldenwater.slgc.domain.AttIrrBase;
+import com.goldenwater.slgc.domain.AttInsiBase;
+import com.goldenwater.slgc.domain.AttPoldBase;
+import com.goldenwater.slgc.domain.AttFsdaBase;
+import com.goldenwater.slgc.domain.AttDpdsBase;
+import com.goldenwater.slgc.domain.AttDiscBase;
+import com.goldenwater.slgc.domain.AttGrpjBase;
+import com.goldenwater.slgc.service.StService;
+import com.goldenwater.slgc.service.IrrService;
+import com.goldenwater.slgc.service.InsiService;
+import com.goldenwater.slgc.service.PoldService;
+import com.goldenwater.slgc.service.FsdaService;
+import com.goldenwater.slgc.service.DpdsService;
+import com.goldenwater.slgc.service.DiscService;
+import com.goldenwater.slgc.service.GrpjService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "08. 其他水利工程信息管理")
+@RestController
+@RequestMapping("/slgc/hydraulic")
+public class HydraulicController extends BaseController {
+    @Autowired
+    private StService stService;
+    @Autowired
+    private IrrService irrService;
+    @Autowired
+    private InsiService insiService;
+    @Autowired
+    private PoldService poldService;
+    @Autowired
+    private FsdaService fsdaService;
+    @Autowired
+    private DpdsService dpdsService;
+    @Autowired
+    private DiscService discService;
+    @Autowired
+    private GrpjService grpjService;
+
+    @Operation(summary = "08.01 查询水文站信息列表")
+    @GetMapping("/st/list")
+    public TableDataInfo stList(AttStBase attStBase) {
+        startPage();
+        List<AttStBase> list = stService.selectAttStBaseList(attStBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.02 获取水文站信息详细信息")
+    @GetMapping("/st/{stCode}")
+    public AjaxResult stGetInfo(@PathVariable String stCode) {
+        return success(stService.selectAttStBaseById(stCode));
+    }
+
+    @Operation(summary = "08.03 新增水文站信息")
+    @Log(title = "水文站管理", businessType = BusinessType.INSERT)
+    @PostMapping("/st")
+    public AjaxResult stAdd(@RequestBody AttStBase attStBase) {
+        return toAjax(stService.insertAttStBase(attStBase));
+    }
+
+    @Operation(summary = "08.04 修改水文站信息")
+    @Log(title = "水文站管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/st")
+    public AjaxResult stEdit(@RequestBody AttStBase attStBase) {
+        return toAjax(stService.updateAttStBase(attStBase));
+    }
+
+    @Operation(summary = "08.05 删除水文站信息")
+    @Log(title = "水文站管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/st/{stCodes}")
+    public AjaxResult stRemove(@PathVariable String[] stCodes) {
+        return toAjax(stService.deleteAttStBaseByIds(stCodes));
+    }
+
+    @Operation(summary = "08.06 查询灌区信息列表")
+    @GetMapping("/irr/list")
+    public TableDataInfo irrList(AttIrrBase attIrrBase) {
+        startPage();
+        List<AttIrrBase> list = irrService.selectAttIrrBaseList(attIrrBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.07 获取灌区信息详细信息")
+    @GetMapping("/irr/{irrCode}")
+    public AjaxResult irrGetInfo(@PathVariable String irrCode) {
+        return success(irrService.selectAttIrrBaseById(irrCode));
+    }
+
+    @Operation(summary = "08.08 新增灌区信息")
+    @Log(title = "灌区管理", businessType = BusinessType.INSERT)
+    @PostMapping("/irr")
+    public AjaxResult irrAdd(@RequestBody AttIrrBase attIrrBase) {
+        return toAjax(irrService.insertAttIrrBase(attIrrBase));
+    }
+
+    @Operation(summary = "08.09 修改灌区信息")
+    @Log(title = "灌区管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/irr")
+    public AjaxResult irrEdit(@RequestBody AttIrrBase attIrrBase) {
+        return toAjax(irrService.updateAttIrrBase(attIrrBase));
+    }
+
+    @Operation(summary = "08.10 删除灌区信息")
+    @Log(title = "灌区管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/irr/{irrCodes}")
+    public AjaxResult irrRemove(@PathVariable String[] irrCodes) {
+        return toAjax(irrService.deleteAttIrrBaseByIds(irrCodes));
+    }
+
+    @Operation(summary = "08.11 查询机电排灌信息列表")
+    @GetMapping("/insi/list")
+    public TableDataInfo insiList(AttInsiBase attInsiBase) {
+        startPage();
+        List<AttInsiBase> list = insiService.selectAttInsiBaseList(attInsiBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.12 获取机电排灌信息详细信息")
+    @GetMapping("/insi/{insiCode}")
+    public AjaxResult insiGetInfo(@PathVariable String insiCode) {
+        return success(insiService.selectAttInsiBaseById(insiCode));
+    }
+
+    @Operation(summary = "08.13 新增机电排灌信息")
+    @Log(title = "机电排灌管理", businessType = BusinessType.INSERT)
+    @PostMapping("/insi")
+    public AjaxResult insiAdd(@RequestBody AttInsiBase attInsiBase) {
+        return toAjax(insiService.insertAttInsiBase(attInsiBase));
+    }
+
+    @Operation(summary = "08.14 修改机电排灌信息")
+    @Log(title = "机电排灌管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/insi")
+    public AjaxResult insiEdit(@RequestBody AttInsiBase attInsiBase) {
+        return toAjax(insiService.updateAttInsiBase(attInsiBase));
+    }
+
+    @Operation(summary = "08.15 删除机电排灌信息")
+    @Log(title = "机电排灌管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/insi/{insiCodes}")
+    public AjaxResult insiRemove(@PathVariable String[] insiCodes) {
+        return toAjax(insiService.deleteAttInsiBaseByIds(insiCodes));
+    }
+
+    @Operation(summary = "08.16 查询防洪闸信息列表")
+    @GetMapping("/pold/list")
+    public TableDataInfo poldList(AttPoldBase attPoldBase) {
+        startPage();
+        List<AttPoldBase> list = poldService.selectAttPoldBaseList(attPoldBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.17 获取防洪闸信息详细信息")
+    @GetMapping("/pold/{poldCode}")
+    public AjaxResult poldGetInfo(@PathVariable String poldCode) {
+        return success(poldService.selectAttPoldBaseById(poldCode));
+    }
+
+    @Operation(summary = "08.18 新增防洪闸信息")
+    @Log(title = "防洪闸管理", businessType = BusinessType.INSERT)
+    @PostMapping("/pold")
+    public AjaxResult poldAdd(@RequestBody AttPoldBase attPoldBase) {
+        return toAjax(poldService.insertAttPoldBase(attPoldBase));
+    }
+
+    @Operation(summary = "08.19 修改防洪闸信息")
+    @Log(title = "防洪闸管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/pold")
+    public AjaxResult poldEdit(@RequestBody AttPoldBase attPoldBase) {
+        return toAjax(poldService.updateAttPoldBase(attPoldBase));
+    }
+
+    @Operation(summary = "08.20 删除防洪闸信息")
+    @Log(title = "防洪闸管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/pold/{poldCodes}")
+    public AjaxResult poldRemove(@PathVariable String[] poldCodes) {
+        return toAjax(poldService.deleteAttPoldBaseByIds(poldCodes));
+    }
+
+    @Operation(summary = "08.21 查询蓄滞洪区信息列表")
+    @GetMapping("/fsda/list")
+    public TableDataInfo fsdaList(AttFsdaBase attFsdaBase) {
+        startPage();
+        List<AttFsdaBase> list = fsdaService.selectAttFsdaBaseList(attFsdaBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.22 获取蓄滞洪区信息详细信息")
+    @GetMapping("/fsda/{fsdaCode}")
+    public AjaxResult fsdaGetInfo(@PathVariable String fsdaCode) {
+        return success(fsdaService.selectAttFsdaBaseById(fsdaCode));
+    }
+
+    @Operation(summary = "08.23 新增蓄滞洪区信息")
+    @Log(title = "蓄滞洪区管理", businessType = BusinessType.INSERT)
+    @PostMapping("/fsda")
+    public AjaxResult fsdaAdd(@RequestBody AttFsdaBase attFsdaBase) {
+        return toAjax(fsdaService.insertAttFsdaBase(attFsdaBase));
+    }
+
+    @Operation(summary = "08.24 修改蓄滞洪区信息")
+    @Log(title = "蓄滞洪区管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/fsda")
+    public AjaxResult fsdaEdit(@RequestBody AttFsdaBase attFsdaBase) {
+        return toAjax(fsdaService.updateAttFsdaBase(attFsdaBase));
+    }
+
+    @Operation(summary = "08.25 删除蓄滞洪区信息")
+    @Log(title = "蓄滞洪区管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/fsda/{fsdaCodes}")
+    public AjaxResult fsdaRemove(@PathVariable String[] fsdaCodes) {
+        return toAjax(fsdaService.deleteAttFsdaBaseByIds(fsdaCodes));
+    }
+
+    @Operation(summary = "08.26 查询排水沟信息列表")
+    @GetMapping("/dpds/list")
+    public TableDataInfo dpdsList(AttDpdsBase attDpdsBase) {
+        startPage();
+        List<AttDpdsBase> list = dpdsService.selectAttDpdsBaseList(attDpdsBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.27 获取排水沟信息详细信息")
+    @GetMapping("/dpds/{dpdsCode}")
+    public AjaxResult dpdsGetInfo(@PathVariable String dpdsCode) {
+        return success(dpdsService.selectAttDpdsBaseById(dpdsCode));
+    }
+
+    @Operation(summary = "08.28 新增排水沟信息")
+    @Log(title = "排水沟管理", businessType = BusinessType.INSERT)
+    @PostMapping("/dpds")
+    public AjaxResult dpdsAdd(@RequestBody AttDpdsBase attDpdsBase) {
+        return toAjax(dpdsService.insertAttDpdsBase(attDpdsBase));
+    }
+
+    @Operation(summary = "08.29 修改排水沟信息")
+    @Log(title = "排水沟管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/dpds")
+    public AjaxResult dpdsEdit(@RequestBody AttDpdsBase attDpdsBase) {
+        return toAjax(dpdsService.updateAttDpdsBase(attDpdsBase));
+    }
+
+    @Operation(summary = "08.30 删除排水沟信息")
+    @Log(title = "排水沟管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/dpds/{dpdsCodes}")
+    public AjaxResult dpdsRemove(@PathVariable String[] dpdsCodes) {
+        return toAjax(dpdsService.deleteAttDpdsBaseByIds(dpdsCodes));
+    }
+
+    @Operation(summary = "08.31 查询消力池信息列表")
+    @GetMapping("/disc/list")
+    public TableDataInfo discList(AttDiscBase attDiscBase) {
+        startPage();
+        List<AttDiscBase> list = discService.selectAttDiscBaseList(attDiscBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.32 获取消力池信息详细信息")
+    @GetMapping("/disc/{discCode}")
+    public AjaxResult discGetInfo(@PathVariable String discCode) {
+        return success(discService.selectAttDiscBaseById(discCode));
+    }
+
+    @Operation(summary = "08.33 新增消力池信息")
+    @Log(title = "消力池管理", businessType = BusinessType.INSERT)
+    @PostMapping("/disc")
+    public AjaxResult discAdd(@RequestBody AttDiscBase attDiscBase) {
+        return toAjax(discService.insertAttDiscBase(attDiscBase));
+    }
+
+    @Operation(summary = "08.34 修改消力池信息")
+    @Log(title = "消力池管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/disc")
+    public AjaxResult discEdit(@RequestBody AttDiscBase attDiscBase) {
+        return toAjax(discService.updateAttDiscBase(attDiscBase));
+    }
+
+    @Operation(summary = "08.35 删除消力池信息")
+    @Log(title = "消力池管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/disc/{discCodes}")
+    public AjaxResult discRemove(@PathVariable String[] discCodes) {
+        return toAjax(discService.deleteAttDiscBaseByIds(discCodes));
+    }
+
+    @Operation(summary = "08.36 查询沟渠信息列表")
+    @GetMapping("/grpj/list")
+    public TableDataInfo grpjList(AttGrpjBase attGrpjBase) {
+        startPage();
+        List<AttGrpjBase> list = grpjService.selectAttGrpjBaseList(attGrpjBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "08.37 获取沟渠信息详细信息")
+    @GetMapping("/grpj/{grpjCode}")
+    public AjaxResult grpjGetInfo(@PathVariable String grpjCode) {
+        return success(grpjService.selectAttGrpjBaseById(grpjCode));
+    }
+
+    @Operation(summary = "08.38 新增沟渠信息")
+    @Log(title = "沟渠管理", businessType = BusinessType.INSERT)
+    @PostMapping("/grpj")
+    public AjaxResult grpjAdd(@RequestBody AttGrpjBase attGrpjBase) {
+        return toAjax(grpjService.insertAttGrpjBase(attGrpjBase));
+    }
+
+    @Operation(summary = "08.39 修改沟渠信息")
+    @Log(title = "沟渠管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/grpj")
+    public AjaxResult grpjEdit(@RequestBody AttGrpjBase attGrpjBase) {
+        return toAjax(grpjService.updateAttGrpjBase(attGrpjBase));
+    }
+
+    @Operation(summary = "08.40 删除沟渠信息")
+    @Log(title = "沟渠管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/grpj/{grpjCodes}")
+    public AjaxResult grpjRemove(@PathVariable String[] grpjCodes) {
+        return toAjax(grpjService.deleteAttGrpjBaseByIds(grpjCodes));
+    }
+}

+ 64 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/KmController.java

@@ -0,0 +1,64 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttKmBase;
+import com.goldenwater.slgc.service.KmService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "09. 公里桩信息管理")
+@RestController
+@RequestMapping("/slgc/km")
+public class KmController extends BaseController {
+    @Autowired
+    private KmService kmService;
+
+    @Operation(summary = "09.01 查询公里桩信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(AttKmBase attKmBase) {
+        startPage();
+        List<AttKmBase> list = kmService.selectAttKmBaseList(attKmBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "09.02 获取公里桩信息详细信息")
+    @GetMapping(value = "/{kmCode}")
+    public AjaxResult getInfo(@PathVariable String kmCode) {
+        return success(kmService.selectAttKmBaseById(kmCode));
+    }
+
+    @Operation(summary = "09.03 新增公里桩信息")
+    @Log(title = "公里桩管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AttKmBase attKmBase) {
+        return toAjax(kmService.insertAttKmBase(attKmBase));
+    }
+
+    @Operation(summary = "09.04 修改公里桩信息")
+    @Log(title = "公里桩管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AttKmBase attKmBase) {
+        return toAjax(kmService.updateAttKmBase(attKmBase));
+    }
+
+    @Operation(summary = "09.05 删除公里桩信息")
+    @Log(title = "公里桩管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{kmCodes}")
+    public AjaxResult remove(@PathVariable String[] kmCodes) {
+        return toAjax(kmService.deleteAttKmBaseByIds(kmCodes));
+    }
+}

+ 127 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/PlayerController.java

@@ -0,0 +1,127 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.Player;
+import com.goldenwater.slgc.domain.PlayerItem;
+import com.goldenwater.slgc.service.PlayerItemService;
+import com.goldenwater.slgc.service.PlayerService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "17. 播放器管理")
+@RestController
+@RequestMapping("/slgc/player")
+public class PlayerController extends BaseController {
+    @Autowired
+    private PlayerService playerService;
+
+    @Autowired
+    private PlayerItemService playerItemService;
+
+    // ========== 播放器配置 ==========
+
+    @Operation(summary = "17.01 查询播放器配置列表")
+    @GetMapping("/list")
+    public TableDataInfo list(Player player) {
+        startPage();
+        List<Player> list = playerService.selectPlayerList(player);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "17.02 获取播放器配置详细信息")
+    @GetMapping(value = "/{plyId}")
+    public AjaxResult getInfo(@PathVariable String plyId) {
+        return success(playerService.selectPlayerById(plyId));
+    }
+
+    @Operation(summary = "17.03 新增播放器配置")
+    @Log(title = "播放器管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Player player) {
+        return toAjax(playerService.insertPlayer(player));
+    }
+
+    @Operation(summary = "17.04 修改播放器配置")
+    @Log(title = "播放器管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Player player) {
+        return toAjax(playerService.updatePlayer(player));
+    }
+
+    @Operation(summary = "17.05 删除播放器配置")
+    @Log(title = "播放器管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{plyIds}")
+    public AjaxResult remove(@PathVariable String[] plyIds) {
+        return toAjax(playerService.deletePlayerByIds(plyIds));
+    }
+
+    @Operation(summary = "17.06 查询所有播放器配置")
+    @GetMapping("/selectAll")
+    public AjaxResult selectAll() {
+        return success(playerService.selectAll());
+    }
+
+    // ========== 播放器项目 ==========
+
+    @Operation(summary = "17.07 查询播放器项目列表")
+    @GetMapping("/item/list")
+    public TableDataInfo itemList(PlayerItem playerItem) {
+        startPage();
+        List<PlayerItem> list = playerItemService.selectPlayerItemList(playerItem);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "17.08 获取播放器项目详细信息")
+    @GetMapping("/item/{id}")
+    public AjaxResult itemGetInfo(@PathVariable String id) {
+        return success(playerItemService.selectPlayerItemById(id));
+    }
+
+    @Operation(summary = "17.09 新增播放器项目")
+    @Log(title = "播放器项目管理", businessType = BusinessType.INSERT)
+    @PostMapping("/item")
+    public AjaxResult itemAdd(@RequestBody PlayerItem playerItem) {
+        return toAjax(playerItemService.insertPlayerItem(playerItem));
+    }
+
+    @Operation(summary = "17.10 修改播放器项目")
+    @Log(title = "播放器项目管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/item")
+    public AjaxResult itemEdit(@RequestBody PlayerItem playerItem) {
+        return toAjax(playerItemService.updatePlayerItem(playerItem));
+    }
+
+    @Operation(summary = "17.11 删除播放器项目")
+    @Log(title = "播放器项目管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/item/{ids}")
+    public AjaxResult itemRemove(@PathVariable String[] ids) {
+        return toAjax(playerItemService.deletePlayerItemByIds(ids));
+    }
+
+    @Operation(summary = "17.12 根据播放器ID删除项目")
+    @Log(title = "播放器项目管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/item/ply/{plyId}")
+    public AjaxResult itemRemoveByPlyId(@PathVariable String plyId) {
+        return toAjax(playerItemService.deleteByPlyId(plyId));
+    }
+
+    @Operation(summary = "17.13 查询所有播放器项目")
+    @GetMapping("/item/selectAll")
+    public AjaxResult itemSelectAll() {
+        return success(playerItemService.selectAll());
+    }
+}

+ 72 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/PustController.java

@@ -0,0 +1,72 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttPustBase;
+import com.goldenwater.slgc.service.PustService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "03. 水闸信息管理")
+@RestController
+@RequestMapping("/slgc/pust")
+public class PustController extends BaseController {
+    @Autowired
+    private PustService pustService;
+
+    @Operation(summary = "03.01 查询水闸信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(AttPustBase attPustBase) {
+        startPage();
+        List<AttPustBase> list = pustService.selectAttPustBaseList(attPustBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "03.02 获取水闸信息详细信息")
+    @GetMapping(value = "/{pustCode}")
+    public AjaxResult getInfo(@PathVariable String pustCode) {
+        return success(pustService.selectAttPustBaseById(pustCode));
+    }
+
+    @Operation(summary = "03.03 新增水闸信息")
+    @Log(title = "水闸管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AttPustBase attPustBase) {
+        return toAjax(pustService.insertAttPustBase(attPustBase));
+    }
+
+    @Operation(summary = "03.04 修改水闸信息")
+    @Log(title = "水闸管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AttPustBase attPustBase) {
+        return toAjax(pustService.updateAttPustBase(attPustBase));
+    }
+
+    @Operation(summary = "03.05 删除水闸信息")
+    @Log(title = "水闸管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{pustCodes}")
+    public AjaxResult remove(@PathVariable String[] pustCodes) {
+        return toAjax(pustService.deleteAttPustBaseByIds(pustCodes));
+    }
+
+    @Operation(summary = "03.06 统计水闸规模分布")
+    @GetMapping("/countType")
+    public AjaxResult countType() {
+        List<Map<String, Object>> list = pustService.countType();
+        return success(list);
+    }
+}

+ 401 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/RelController.java

@@ -0,0 +1,401 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.RelDikeAd1;
+import com.goldenwater.slgc.domain.RelDikeBas;
+import com.goldenwater.slgc.domain.RelPustAd;
+import com.goldenwater.slgc.domain.RelPustBas;
+import com.goldenwater.slgc.domain.RelResAd1;
+import com.goldenwater.slgc.domain.RelResBas;
+import com.goldenwater.slgc.domain.RelWagaAd;
+import com.goldenwater.slgc.domain.RelWagaBas;
+import com.goldenwater.slgc.service.RelDikeAd1Service;
+import com.goldenwater.slgc.service.RelDikeBasService;
+import com.goldenwater.slgc.service.RelPustAdService;
+import com.goldenwater.slgc.service.RelPustBasService;
+import com.goldenwater.slgc.service.RelResAd1Service;
+import com.goldenwater.slgc.service.RelResBasService;
+import com.goldenwater.slgc.service.RelWagaAdService;
+import com.goldenwater.slgc.service.RelWagaBasService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "10. 关联信息管理")
+@RestController
+@RequestMapping("/slgc/rel")
+public class RelController extends BaseController {
+    @Autowired
+    private RelDikeBasService relDikeBasService;
+    @Autowired
+    private RelResBasService relResBasService;
+    @Autowired
+    private RelPustBasService relPustBasService;
+    @Autowired
+    private RelWagaBasService relWagaBasService;
+    @Autowired
+    private RelDikeAd1Service relDikeAd1Service;
+    @Autowired
+    private RelResAd1Service relResAd1Service;
+    @Autowired
+    private RelPustAdService relPustAdService;
+    @Autowired
+    private RelWagaAdService relWagaAdService;
+
+    // ==================== REL_DIKE_BAS ====================
+
+    @Operation(summary = "10.01 查询堤防基本信息关联列表")
+    @GetMapping("/dike-bas/list")
+    public TableDataInfo listDikeBas(RelDikeBas relDikeBas) {
+        startPage();
+        List<RelDikeBas> list = relDikeBasService.selectRelDikeBasList(relDikeBas);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.02 获取堤防基本信息关联详细信息")
+    @GetMapping("/dike-bas/{dikeCode}/{basCode}")
+    public AjaxResult getInfoDikeBas(@PathVariable String dikeCode, @PathVariable String basCode) {
+        RelDikeBas relDikeBas = new RelDikeBas();
+        relDikeBas.setDikeCode(dikeCode);
+        relDikeBas.setBasCode(basCode);
+        return success(relDikeBasService.selectRelDikeBasById(relDikeBas));
+    }
+
+    @Operation(summary = "10.03 新增堤防基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/dike-bas")
+    public AjaxResult addDikeBas(@RequestBody RelDikeBas relDikeBas) {
+        return toAjax(relDikeBasService.insertRelDikeBas(relDikeBas));
+    }
+
+    @Operation(summary = "10.04 修改堤防基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/dike-bas")
+    public AjaxResult editDikeBas(@RequestBody RelDikeBas relDikeBas) {
+        return toAjax(relDikeBasService.updateRelDikeBas(relDikeBas));
+    }
+
+    @Operation(summary = "10.05 删除堤防基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/dike-bas/{dikeCode}/{basCode}")
+    public AjaxResult removeDikeBas(@PathVariable String dikeCode, @PathVariable String basCode) {
+        RelDikeBas relDikeBas = new RelDikeBas();
+        relDikeBas.setDikeCode(dikeCode);
+        relDikeBas.setBasCode(basCode);
+        return toAjax(relDikeBasService.deleteRelDikeBasById(relDikeBas));
+    }
+
+    // ==================== REL_RES_BAS ====================
+
+    @Operation(summary = "10.06 查询水库基本信息关联列表")
+    @GetMapping("/res-bas/list")
+    public TableDataInfo listResBas(RelResBas relResBas) {
+        startPage();
+        List<RelResBas> list = relResBasService.selectRelResBasList(relResBas);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.07 获取水库基本信息关联详细信息")
+    @GetMapping("/res-bas/{resCode}/{basCode}")
+    public AjaxResult getInfoResBas(@PathVariable String resCode, @PathVariable String basCode) {
+        RelResBas relResBas = new RelResBas();
+        relResBas.setResCode(resCode);
+        relResBas.setBasCode(basCode);
+        return success(relResBasService.selectRelResBasById(relResBas));
+    }
+
+    @Operation(summary = "10.08 新增水库基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/res-bas")
+    public AjaxResult addResBas(@RequestBody RelResBas relResBas) {
+        return toAjax(relResBasService.insertRelResBas(relResBas));
+    }
+
+    @Operation(summary = "10.09 修改水库基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/res-bas")
+    public AjaxResult editResBas(@RequestBody RelResBas relResBas) {
+        return toAjax(relResBasService.updateRelResBas(relResBas));
+    }
+
+    @Operation(summary = "10.10 删除水库基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/res-bas/{resCode}/{basCode}")
+    public AjaxResult removeResBas(@PathVariable String resCode, @PathVariable String basCode) {
+        RelResBas relResBas = new RelResBas();
+        relResBas.setResCode(resCode);
+        relResBas.setBasCode(basCode);
+        return toAjax(relResBasService.deleteRelResBasById(relResBas));
+    }
+
+    // ==================== REL_PUST_BAS ====================
+
+    @Operation(summary = "10.11 查询水闸基本信息关联列表")
+    @GetMapping("/pust-bas/list")
+    public TableDataInfo listPustBas(RelPustBas relPustBas) {
+        startPage();
+        List<RelPustBas> list = relPustBasService.selectRelPustBasList(relPustBas);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.12 获取水闸基本信息关联详细信息")
+    @GetMapping("/pust-bas/{pustCode}/{basCode}")
+    public AjaxResult getInfoPustBas(@PathVariable String pustCode, @PathVariable String basCode) {
+        RelPustBas relPustBas = new RelPustBas();
+        relPustBas.setPustCode(pustCode);
+        relPustBas.setBasCode(basCode);
+        return success(relPustBasService.selectRelPustBasById(relPustBas));
+    }
+
+    @Operation(summary = "10.13 新增水闸基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/pust-bas")
+    public AjaxResult addPustBas(@RequestBody RelPustBas relPustBas) {
+        return toAjax(relPustBasService.insertRelPustBas(relPustBas));
+    }
+
+    @Operation(summary = "10.14 修改水闸基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/pust-bas")
+    public AjaxResult editPustBas(@RequestBody RelPustBas relPustBas) {
+        return toAjax(relPustBasService.updateRelPustBas(relPustBas));
+    }
+
+    @Operation(summary = "10.15 删除水闸基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/pust-bas/{pustCode}/{basCode}")
+    public AjaxResult removePustBas(@PathVariable String pustCode, @PathVariable String basCode) {
+        RelPustBas relPustBas = new RelPustBas();
+        relPustBas.setPustCode(pustCode);
+        relPustBas.setBasCode(basCode);
+        return toAjax(relPustBasService.deleteRelPustBasById(relPustBas));
+    }
+
+    // ==================== REL_WAGA_BAS ====================
+
+    @Operation(summary = "10.16 查询泵站基本信息关联列表")
+    @GetMapping("/waga-bas/list")
+    public TableDataInfo listWagaBas(RelWagaBas relWagaBas) {
+        startPage();
+        List<RelWagaBas> list = relWagaBasService.selectRelWagaBasList(relWagaBas);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.17 获取泵站基本信息关联详细信息")
+    @GetMapping("/waga-bas/{wagaCode}/{basCode}")
+    public AjaxResult getInfoWagaBas(@PathVariable String wagaCode, @PathVariable String basCode) {
+        RelWagaBas relWagaBas = new RelWagaBas();
+        relWagaBas.setWagaCode(wagaCode);
+        relWagaBas.setBasCode(basCode);
+        return success(relWagaBasService.selectRelWagaBasById(relWagaBas));
+    }
+
+    @Operation(summary = "10.18 新增泵站基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/waga-bas")
+    public AjaxResult addWagaBas(@RequestBody RelWagaBas relWagaBas) {
+        return toAjax(relWagaBasService.insertRelWagaBas(relWagaBas));
+    }
+
+    @Operation(summary = "10.19 修改泵站基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/waga-bas")
+    public AjaxResult editWagaBas(@RequestBody RelWagaBas relWagaBas) {
+        return toAjax(relWagaBasService.updateRelWagaBas(relWagaBas));
+    }
+
+    @Operation(summary = "10.20 删除泵站基本信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/waga-bas/{wagaCode}/{basCode}")
+    public AjaxResult removeWagaBas(@PathVariable String wagaCode, @PathVariable String basCode) {
+        RelWagaBas relWagaBas = new RelWagaBas();
+        relWagaBas.setWagaCode(wagaCode);
+        relWagaBas.setBasCode(basCode);
+        return toAjax(relWagaBasService.deleteRelWagaBasById(relWagaBas));
+    }
+
+    // ==================== REL_DIKE_AD1 ====================
+
+    @Operation(summary = "10.21 查询堤防行政信息关联列表")
+    @GetMapping("/dike-ad1/list")
+    public TableDataInfo listDikeAd1(RelDikeAd1 relDikeAd1) {
+        startPage();
+        List<RelDikeAd1> list = relDikeAd1Service.selectRelDikeAd1List(relDikeAd1);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.22 获取堤防行政信息关联详细信息")
+    @GetMapping("/dike-ad1/{dikeCode}/{adCode}")
+    public AjaxResult getInfoDikeAd1(@PathVariable String dikeCode, @PathVariable String adCode) {
+        RelDikeAd1 relDikeAd1 = new RelDikeAd1();
+        relDikeAd1.setDikeCode(dikeCode);
+        relDikeAd1.setAdCode(adCode);
+        return success(relDikeAd1Service.selectRelDikeAd1ById(relDikeAd1));
+    }
+
+    @Operation(summary = "10.23 新增堤防行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/dike-ad1")
+    public AjaxResult addDikeAd1(@RequestBody RelDikeAd1 relDikeAd1) {
+        return toAjax(relDikeAd1Service.insertRelDikeAd1(relDikeAd1));
+    }
+
+    @Operation(summary = "10.24 修改堤防行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/dike-ad1")
+    public AjaxResult editDikeAd1(@RequestBody RelDikeAd1 relDikeAd1) {
+        return toAjax(relDikeAd1Service.updateRelDikeAd1(relDikeAd1));
+    }
+
+    @Operation(summary = "10.25 删除堤防行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/dike-ad1/{dikeCode}/{adCode}")
+    public AjaxResult removeDikeAd1(@PathVariable String dikeCode, @PathVariable String adCode) {
+        RelDikeAd1 relDikeAd1 = new RelDikeAd1();
+        relDikeAd1.setDikeCode(dikeCode);
+        relDikeAd1.setAdCode(adCode);
+        return toAjax(relDikeAd1Service.deleteRelDikeAd1ById(relDikeAd1));
+    }
+
+    // ==================== REL_RES_AD1 ====================
+
+    @Operation(summary = "10.26 查询水库行政信息关联列表")
+    @GetMapping("/res-ad1/list")
+    public TableDataInfo listResAd1(RelResAd1 relResAd1) {
+        startPage();
+        List<RelResAd1> list = relResAd1Service.selectRelResAd1List(relResAd1);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.27 获取水库行政信息关联详细信息")
+    @GetMapping("/res-ad1/{resCode}/{adCode}")
+    public AjaxResult getInfoResAd1(@PathVariable String resCode, @PathVariable String adCode) {
+        RelResAd1 relResAd1 = new RelResAd1();
+        relResAd1.setResCode(resCode);
+        relResAd1.setAdCode(adCode);
+        return success(relResAd1Service.selectRelResAd1ById(relResAd1));
+    }
+
+    @Operation(summary = "10.28 新增水库行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/res-ad1")
+    public AjaxResult addResAd1(@RequestBody RelResAd1 relResAd1) {
+        return toAjax(relResAd1Service.insertRelResAd1(relResAd1));
+    }
+
+    @Operation(summary = "10.29 修改水库行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/res-ad1")
+    public AjaxResult editResAd1(@RequestBody RelResAd1 relResAd1) {
+        return toAjax(relResAd1Service.updateRelResAd1(relResAd1));
+    }
+
+    @Operation(summary = "10.30 删除水库行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/res-ad1/{resCode}/{adCode}")
+    public AjaxResult removeResAd1(@PathVariable String resCode, @PathVariable String adCode) {
+        RelResAd1 relResAd1 = new RelResAd1();
+        relResAd1.setResCode(resCode);
+        relResAd1.setAdCode(adCode);
+        return toAjax(relResAd1Service.deleteRelResAd1ById(relResAd1));
+    }
+
+    // ==================== REL_PUST_AD ====================
+
+    @Operation(summary = "10.31 查询水闸行政信息关联列表")
+    @GetMapping("/pust-ad/list")
+    public TableDataInfo listPustAd(RelPustAd relPustAd) {
+        startPage();
+        List<RelPustAd> list = relPustAdService.selectRelPustAdList(relPustAd);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.32 获取水闸行政信息关联详细信息")
+    @GetMapping("/pust-ad/{pustCode}/{adCode}")
+    public AjaxResult getInfoPustAd(@PathVariable String pustCode, @PathVariable String adCode) {
+        RelPustAd relPustAd = new RelPustAd();
+        relPustAd.setPustCode(pustCode);
+        relPustAd.setAdCode(adCode);
+        return success(relPustAdService.selectRelPustAdById(relPustAd));
+    }
+
+    @Operation(summary = "10.33 新增水闸行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/pust-ad")
+    public AjaxResult addPustAd(@RequestBody RelPustAd relPustAd) {
+        return toAjax(relPustAdService.insertRelPustAd(relPustAd));
+    }
+
+    @Operation(summary = "10.34 修改水闸行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/pust-ad")
+    public AjaxResult editPustAd(@RequestBody RelPustAd relPustAd) {
+        return toAjax(relPustAdService.updateRelPustAd(relPustAd));
+    }
+
+    @Operation(summary = "10.35 删除水闸行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/pust-ad/{pustCode}/{adCode}")
+    public AjaxResult removePustAd(@PathVariable String pustCode, @PathVariable String adCode) {
+        RelPustAd relPustAd = new RelPustAd();
+        relPustAd.setPustCode(pustCode);
+        relPustAd.setAdCode(adCode);
+        return toAjax(relPustAdService.deleteRelPustAdById(relPustAd));
+    }
+
+    // ==================== REL_WAGA_AD ====================
+
+    @Operation(summary = "10.36 查询泵站行政信息关联列表")
+    @GetMapping("/waga-ad/list")
+    public TableDataInfo listWagaAd(RelWagaAd relWagaAd) {
+        startPage();
+        List<RelWagaAd> list = relWagaAdService.selectRelWagaAdList(relWagaAd);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "10.37 获取泵站行政信息关联详细信息")
+    @GetMapping("/waga-ad/{wagaCode}/{adCode}")
+    public AjaxResult getInfoWagaAd(@PathVariable String wagaCode, @PathVariable String adCode) {
+        RelWagaAd relWagaAd = new RelWagaAd();
+        relWagaAd.setWagaCode(wagaCode);
+        relWagaAd.setAdCode(adCode);
+        return success(relWagaAdService.selectRelWagaAdById(relWagaAd));
+    }
+
+    @Operation(summary = "10.38 新增泵站行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.INSERT)
+    @PostMapping("/waga-ad")
+    public AjaxResult addWagaAd(@RequestBody RelWagaAd relWagaAd) {
+        return toAjax(relWagaAdService.insertRelWagaAd(relWagaAd));
+    }
+
+    @Operation(summary = "10.39 修改泵站行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/waga-ad")
+    public AjaxResult editWagaAd(@RequestBody RelWagaAd relWagaAd) {
+        return toAjax(relWagaAdService.updateRelWagaAd(relWagaAd));
+    }
+
+    @Operation(summary = "10.40 删除泵站行政信息关联")
+    @Log(title = "关联管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/waga-ad/{wagaCode}/{adCode}")
+    public AjaxResult removeWagaAd(@PathVariable String wagaCode, @PathVariable String adCode) {
+        RelWagaAd relWagaAd = new RelWagaAd();
+        relWagaAd.setWagaCode(wagaCode);
+        relWagaAd.setAdCode(adCode);
+        return toAjax(relWagaAdService.deleteRelWagaAdById(relWagaAd));
+    }
+}

+ 72 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/ReservoirController.java

@@ -0,0 +1,72 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttResBase;
+import com.goldenwater.slgc.service.ReservoirService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "02. 水库信息管理")
+@RestController
+@RequestMapping("/slgc/reservoir")
+public class ReservoirController extends BaseController {
+    @Autowired
+    private ReservoirService reservoirService;
+
+    @Operation(summary = "02.01 查询水库信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(AttResBase attResBase) {
+        startPage();
+        List<AttResBase> list = reservoirService.selectAttResBaseList(attResBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "02.02 获取水库信息详细信息")
+    @GetMapping(value = "/{resCode}")
+    public AjaxResult getInfo(@PathVariable String resCode) {
+        return success(reservoirService.selectAttResBaseById(resCode));
+    }
+
+    @Operation(summary = "02.03 新增水库信息")
+    @Log(title = "水库管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AttResBase attResBase) {
+        return toAjax(reservoirService.insertAttResBase(attResBase));
+    }
+
+    @Operation(summary = "02.04 修改水库信息")
+    @Log(title = "水库管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AttResBase attResBase) {
+        return toAjax(reservoirService.updateAttResBase(attResBase));
+    }
+
+    @Operation(summary = "02.05 删除水库信息")
+    @Log(title = "水库管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{resCodes}")
+    public AjaxResult remove(@PathVariable String[] resCodes) {
+        return toAjax(reservoirService.deleteAttResBaseByIds(resCodes));
+    }
+
+    @Operation(summary = "02.06 统计水库规模分布")
+    @GetMapping("/countType")
+    public AjaxResult countType() {
+        List<Map<String, Object>> list = reservoirService.countType();
+        return success(list);
+    }
+}

+ 142 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/RiverController.java

@@ -0,0 +1,142 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttRvBase;
+import com.goldenwater.slgc.domain.AttReaBase;
+import com.goldenwater.slgc.domain.AttLkBase;
+import com.goldenwater.slgc.service.RiverService;
+import com.goldenwater.slgc.service.ReachService;
+import com.goldenwater.slgc.service.LakeService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "06. 河流河道湖泊信息管理")
+@RestController
+@RequestMapping("/slgc/river")
+public class RiverController extends BaseController {
+    @Autowired
+    private RiverService riverService;
+    @Autowired
+    private ReachService reachService;
+    @Autowired
+    private LakeService lakeService;
+
+    @Operation(summary = "06.01 查询河流信息列表")
+    @GetMapping("/rv/list")
+    public TableDataInfo rvList(AttRvBase attRvBase) {
+        startPage();
+        List<AttRvBase> list = riverService.selectAttRvBaseList(attRvBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "06.02 获取河流信息详细信息")
+    @GetMapping("/rv/{rvCode}")
+    public AjaxResult rvGetInfo(@PathVariable String rvCode) {
+        return success(riverService.selectAttRvBaseById(rvCode));
+    }
+
+    @Operation(summary = "06.03 新增河流信息")
+    @Log(title = "河流管理", businessType = BusinessType.INSERT)
+    @PostMapping("/rv")
+    public AjaxResult rvAdd(@RequestBody AttRvBase attRvBase) {
+        return toAjax(riverService.insertAttRvBase(attRvBase));
+    }
+
+    @Operation(summary = "06.04 修改河流信息")
+    @Log(title = "河流管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/rv")
+    public AjaxResult rvEdit(@RequestBody AttRvBase attRvBase) {
+        return toAjax(riverService.updateAttRvBase(attRvBase));
+    }
+
+    @Operation(summary = "06.05 删除河流信息")
+    @Log(title = "河流管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/rv/{rvCodes}")
+    public AjaxResult rvRemove(@PathVariable String[] rvCodes) {
+        return toAjax(riverService.deleteAttRvBaseByIds(rvCodes));
+    }
+
+    @Operation(summary = "06.06 查询河道信息列表")
+    @GetMapping("/rea/list")
+    public TableDataInfo reaList(AttReaBase attReaBase) {
+        startPage();
+        List<AttReaBase> list = reachService.selectAttReaBaseList(attReaBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "06.07 获取河道信息详细信息")
+    @GetMapping("/rea/{reaCode}")
+    public AjaxResult reaGetInfo(@PathVariable String reaCode) {
+        return success(reachService.selectAttReaBaseById(reaCode));
+    }
+
+    @Operation(summary = "06.08 新增河道信息")
+    @Log(title = "河道管理", businessType = BusinessType.INSERT)
+    @PostMapping("/rea")
+    public AjaxResult reaAdd(@RequestBody AttReaBase attReaBase) {
+        return toAjax(reachService.insertAttReaBase(attReaBase));
+    }
+
+    @Operation(summary = "06.09 修改河道信息")
+    @Log(title = "河道管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/rea")
+    public AjaxResult reaEdit(@RequestBody AttReaBase attReaBase) {
+        return toAjax(reachService.updateAttReaBase(attReaBase));
+    }
+
+    @Operation(summary = "06.10 删除河道信息")
+    @Log(title = "河道管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/rea/{reaCodes}")
+    public AjaxResult reaRemove(@PathVariable String[] reaCodes) {
+        return toAjax(reachService.deleteAttReaBaseByIds(reaCodes));
+    }
+
+    @Operation(summary = "06.11 查询湖泊信息列表")
+    @GetMapping("/lk/list")
+    public TableDataInfo lkList(AttLkBase attLkBase) {
+        startPage();
+        List<AttLkBase> list = lakeService.selectAttLkBaseList(attLkBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "06.12 获取湖泊信息详细信息")
+    @GetMapping("/lk/{lkCode}")
+    public AjaxResult lkGetInfo(@PathVariable String lkCode) {
+        return success(lakeService.selectAttLkBaseById(lkCode));
+    }
+
+    @Operation(summary = "06.13 新增湖泊信息")
+    @Log(title = "湖泊管理", businessType = BusinessType.INSERT)
+    @PostMapping("/lk")
+    public AjaxResult lkAdd(@RequestBody AttLkBase attLkBase) {
+        return toAjax(lakeService.insertAttLkBase(attLkBase));
+    }
+
+    @Operation(summary = "06.14 修改湖泊信息")
+    @Log(title = "湖泊管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/lk")
+    public AjaxResult lkEdit(@RequestBody AttLkBase attLkBase) {
+        return toAjax(lakeService.updateAttLkBase(attLkBase));
+    }
+
+    @Operation(summary = "06.15 删除湖泊信息")
+    @Log(title = "湖泊管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/lk/{lkCodes}")
+    public AjaxResult lkRemove(@PathVariable String[] lkCodes) {
+        return toAjax(lakeService.deleteAttLkBaseByIds(lkCodes));
+    }
+}

+ 181 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/StructureController.java

@@ -0,0 +1,181 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttBridBase;
+import com.goldenwater.slgc.domain.AttRudABase;
+import com.goldenwater.slgc.domain.AttFlumBase;
+import com.goldenwater.slgc.domain.AttPipeBase;
+import com.goldenwater.slgc.service.BridgeService;
+import com.goldenwater.slgc.service.RudaService;
+import com.goldenwater.slgc.service.FlumeService;
+import com.goldenwater.slgc.service.PipeService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "07. 桥梁涵洞渡槽管道信息管理")
+@RestController
+@RequestMapping("/slgc/structure")
+public class StructureController extends BaseController {
+    @Autowired
+    private BridgeService bridgeService;
+    @Autowired
+    private RudaService rudaService;
+    @Autowired
+    private FlumeService flumeService;
+    @Autowired
+    private PipeService pipeService;
+
+    @Operation(summary = "07.01 查询桥梁信息列表")
+    @GetMapping("/brid/list")
+    public TableDataInfo bridList(AttBridBase attBridBase) {
+        startPage();
+        List<AttBridBase> list = bridgeService.selectAttBridBaseList(attBridBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "07.02 获取桥梁信息详细信息")
+    @GetMapping("/brid/{bridCode}")
+    public AjaxResult bridGetInfo(@PathVariable String bridCode) {
+        return success(bridgeService.selectAttBridBaseById(bridCode));
+    }
+
+    @Operation(summary = "07.03 新增桥梁信息")
+    @Log(title = "桥梁管理", businessType = BusinessType.INSERT)
+    @PostMapping("/brid")
+    public AjaxResult bridAdd(@RequestBody AttBridBase attBridBase) {
+        return toAjax(bridgeService.insertAttBridBase(attBridBase));
+    }
+
+    @Operation(summary = "07.04 修改桥梁信息")
+    @Log(title = "桥梁管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/brid")
+    public AjaxResult bridEdit(@RequestBody AttBridBase attBridBase) {
+        return toAjax(bridgeService.updateAttBridBase(attBridBase));
+    }
+
+    @Operation(summary = "07.05 删除桥梁信息")
+    @Log(title = "桥梁管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/brid/{bridCodes}")
+    public AjaxResult bridRemove(@PathVariable String[] bridCodes) {
+        return toAjax(bridgeService.deleteAttBridBaseByIds(bridCodes));
+    }
+
+    @Operation(summary = "07.06 查询涵洞信息列表")
+    @GetMapping("/ruda/list")
+    public TableDataInfo rudaList(AttRudABase attRudABase) {
+        startPage();
+        List<AttRudABase> list = rudaService.selectAttRudABaseList(attRudABase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "07.07 获取涵洞信息详细信息")
+    @GetMapping("/ruda/{rudaCode}")
+    public AjaxResult rudaGetInfo(@PathVariable String rudaCode) {
+        return success(rudaService.selectAttRudABaseById(rudaCode));
+    }
+
+    @Operation(summary = "07.08 新增涵洞信息")
+    @Log(title = "涵洞管理", businessType = BusinessType.INSERT)
+    @PostMapping("/ruda")
+    public AjaxResult rudaAdd(@RequestBody AttRudABase attRudABase) {
+        return toAjax(rudaService.insertAttRudABase(attRudABase));
+    }
+
+    @Operation(summary = "07.09 修改涵洞信息")
+    @Log(title = "涵洞管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/ruda")
+    public AjaxResult rudaEdit(@RequestBody AttRudABase attRudABase) {
+        return toAjax(rudaService.updateAttRudABase(attRudABase));
+    }
+
+    @Operation(summary = "07.10 删除涵洞信息")
+    @Log(title = "涵洞管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/ruda/{rudaCodes}")
+    public AjaxResult rudaRemove(@PathVariable String[] rudaCodes) {
+        return toAjax(rudaService.deleteAttRudABaseByIds(rudaCodes));
+    }
+
+    @Operation(summary = "07.11 查询渡槽信息列表")
+    @GetMapping("/flum/list")
+    public TableDataInfo flumList(AttFlumBase attFlumBase) {
+        startPage();
+        List<AttFlumBase> list = flumeService.selectAttFlumBaseList(attFlumBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "07.12 获取渡槽信息详细信息")
+    @GetMapping("/flum/{flumCode}")
+    public AjaxResult flumGetInfo(@PathVariable String flumCode) {
+        return success(flumeService.selectAttFlumBaseById(flumCode));
+    }
+
+    @Operation(summary = "07.13 新增渡槽信息")
+    @Log(title = "渡槽管理", businessType = BusinessType.INSERT)
+    @PostMapping("/flum")
+    public AjaxResult flumAdd(@RequestBody AttFlumBase attFlumBase) {
+        return toAjax(flumeService.insertAttFlumBase(attFlumBase));
+    }
+
+    @Operation(summary = "07.14 修改渡槽信息")
+    @Log(title = "渡槽管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/flum")
+    public AjaxResult flumEdit(@RequestBody AttFlumBase attFlumBase) {
+        return toAjax(flumeService.updateAttFlumBase(attFlumBase));
+    }
+
+    @Operation(summary = "07.15 删除渡槽信息")
+    @Log(title = "渡槽管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/flum/{flumCodes}")
+    public AjaxResult flumRemove(@PathVariable String[] flumCodes) {
+        return toAjax(flumeService.deleteAttFlumBaseByIds(flumCodes));
+    }
+
+    @Operation(summary = "07.16 查询管道信息列表")
+    @GetMapping("/pipe/list")
+    public TableDataInfo pipeList(AttPipeBase attPipeBase) {
+        startPage();
+        List<AttPipeBase> list = pipeService.selectAttPipeBaseList(attPipeBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "07.17 获取管道信息详细信息")
+    @GetMapping("/pipe/{pipeCode}")
+    public AjaxResult pipeGetInfo(@PathVariable String pipeCode) {
+        return success(pipeService.selectAttPipeBaseById(pipeCode));
+    }
+
+    @Operation(summary = "07.18 新增管道信息")
+    @Log(title = "管道管理", businessType = BusinessType.INSERT)
+    @PostMapping("/pipe")
+    public AjaxResult pipeAdd(@RequestBody AttPipeBase attPipeBase) {
+        return toAjax(pipeService.insertAttPipeBase(attPipeBase));
+    }
+
+    @Operation(summary = "07.19 修改管道信息")
+    @Log(title = "管道管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/pipe")
+    public AjaxResult pipeEdit(@RequestBody AttPipeBase attPipeBase) {
+        return toAjax(pipeService.updateAttPipeBase(attPipeBase));
+    }
+
+    @Operation(summary = "07.20 删除管道信息")
+    @Log(title = "管道管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/pipe/{pipeCodes}")
+    public AjaxResult pipeRemove(@PathVariable String[] pipeCodes) {
+        return toAjax(pipeService.deleteAttPipeBaseByIds(pipeCodes));
+    }
+}

+ 72 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/WagaController.java

@@ -0,0 +1,72 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.AttWagaBase;
+import com.goldenwater.slgc.service.WagaService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "04. 泵站信息管理")
+@RestController
+@RequestMapping("/slgc/waga")
+public class WagaController extends BaseController {
+    @Autowired
+    private WagaService wagaService;
+
+    @Operation(summary = "04.01 查询泵站信息列表")
+    @GetMapping("/list")
+    public TableDataInfo list(AttWagaBase attWagaBase) {
+        startPage();
+        List<AttWagaBase> list = wagaService.selectAttWagaBaseList(attWagaBase);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "04.02 获取泵站信息详细信息")
+    @GetMapping(value = "/{wagaCode}")
+    public AjaxResult getInfo(@PathVariable String wagaCode) {
+        return success(wagaService.selectAttWagaBaseById(wagaCode));
+    }
+
+    @Operation(summary = "04.03 新增泵站信息")
+    @Log(title = "泵站管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AttWagaBase attWagaBase) {
+        return toAjax(wagaService.insertAttWagaBase(attWagaBase));
+    }
+
+    @Operation(summary = "04.04 修改泵站信息")
+    @Log(title = "泵站管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AttWagaBase attWagaBase) {
+        return toAjax(wagaService.updateAttWagaBase(attWagaBase));
+    }
+
+    @Operation(summary = "04.05 删除泵站信息")
+    @Log(title = "泵站管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{wagaCodes}")
+    public AjaxResult remove(@PathVariable String[] wagaCodes) {
+        return toAjax(wagaService.deleteAttWagaBaseByIds(wagaCodes));
+    }
+
+    @Operation(summary = "04.06 统计泵站等级分布")
+    @GetMapping("/countType")
+    public AjaxResult countType() {
+        List<Map<String, Object>> list = wagaService.countType();
+        return success(list);
+    }
+}

+ 103 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/WaterUnitController.java

@@ -0,0 +1,103 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.SlgcWaterUnit;
+import com.goldenwater.slgc.domain.SlgcWaterUnitRecord;
+import com.goldenwater.slgc.service.WaterUnitService;
+import com.goldenwater.slgc.service.WaterUnitRecordService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "11. 水利考核管理")
+@RestController
+@RequestMapping("/slgc/water-unit")
+public class WaterUnitController extends BaseController {
+    @Autowired
+    private WaterUnitService waterUnitService;
+    @Autowired
+    private WaterUnitRecordService waterUnitRecordService;
+
+    @Operation(summary = "11.01 查询水管单位列表")
+    @GetMapping("/list")
+    public TableDataInfo list(SlgcWaterUnit slgcWaterUnit) {
+        startPage();
+        List<SlgcWaterUnit> list = waterUnitService.selectWaterUnitList(slgcWaterUnit);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "11.02 获取水管单位详细信息")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable String id) {
+        return success(waterUnitService.selectWaterUnitById(id));
+    }
+
+    @Operation(summary = "11.03 新增水管单位")
+    @Log(title = "水利考核管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SlgcWaterUnit slgcWaterUnit) {
+        return toAjax(waterUnitService.insertWaterUnit(slgcWaterUnit));
+    }
+
+    @Operation(summary = "11.04 修改水管单位")
+    @Log(title = "水利考核管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SlgcWaterUnit slgcWaterUnit) {
+        return toAjax(waterUnitService.updateWaterUnit(slgcWaterUnit));
+    }
+
+    @Operation(summary = "11.05 删除水管单位")
+    @Log(title = "水利考核管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(waterUnitService.deleteWaterUnitByIds(ids));
+    }
+
+    @Operation(summary = "11.06 查询审核记录列表")
+    @GetMapping("/record/list")
+    public TableDataInfo listRecord(String unitId) {
+        startPage();
+        List<SlgcWaterUnitRecord> list = waterUnitRecordService.selectWaterUnitRecordList(unitId);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "11.07 获取审核记录详细信息")
+    @GetMapping("/record/{id}")
+    public AjaxResult getInfoRecord(@PathVariable String id) {
+        return success(waterUnitRecordService.selectWaterUnitRecordById(id));
+    }
+
+    @Operation(summary = "11.08 新增审核记录")
+    @Log(title = "水利考核管理", businessType = BusinessType.INSERT)
+    @PostMapping("/record")
+    public AjaxResult addRecord(@RequestBody SlgcWaterUnitRecord record) {
+        return toAjax(waterUnitRecordService.insertWaterUnitRecord(record));
+    }
+
+    @Operation(summary = "11.09 修改审核记录")
+    @Log(title = "水利考核管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/record")
+    public AjaxResult editRecord(@RequestBody SlgcWaterUnitRecord record) {
+        return toAjax(waterUnitRecordService.updateWaterUnitRecord(record));
+    }
+
+    @Operation(summary = "11.10 删除审核记录")
+    @Log(title = "水利考核管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/record/{ids}")
+    public AjaxResult removeRecord(@PathVariable String[] ids) {
+        return toAjax(waterUnitRecordService.deleteWaterUnitRecordByIds(ids));
+    }
+}

+ 64 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/WryController.java

@@ -0,0 +1,64 @@
+package com.goldenwater.slgc.controller;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.annotation.Log;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.common.enums.BusinessType;
+import com.goldenwater.slgc.domain.Wry;
+import com.goldenwater.slgc.service.WryService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "18. 污染源环保统计管理")
+@RestController
+@RequestMapping("/slgc/wry")
+public class WryController extends BaseController {
+    @Autowired
+    private WryService wryService;
+
+    @Operation(summary = "18.01 查询污染源环保统计列表")
+    @GetMapping("/list")
+    public TableDataInfo list(Wry wry) {
+        startPage();
+        List<Wry> list = wryService.selectWryList(wry);
+        return getDataTable(list);
+    }
+
+    @Operation(summary = "18.02 获取污染源环保统计详细信息")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable String id) {
+        return success(wryService.selectWryById(id));
+    }
+
+    @Operation(summary = "18.03 新增污染源环保统计")
+    @Log(title = "污染源环保统计管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Wry wry) {
+        return toAjax(wryService.insertWry(wry));
+    }
+
+    @Operation(summary = "18.04 修改污染源环保统计")
+    @Log(title = "污染源环保统计管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Wry wry) {
+        return toAjax(wryService.updateWry(wry));
+    }
+
+    @Operation(summary = "18.05 删除污染源环保统计")
+    @Log(title = "污染源环保统计管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(wryService.deleteWryByIds(ids));
+    }
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/AsmxProxyController.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import jakarta.servlet.http.HttpServletRequest;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "28. 通用ASMX代理")
+@RestController
+@RequestMapping("/slgc/asmx")
+public class AsmxProxyController extends BaseController {
+
+    private static final String YJZH_BASE = "http://10.8.4.171:816";
+    private static final String NEWGQ_BASE = "http://10.8.40.222/WebService";
+
+    @Operation(summary = "28.01 通用ASMX代理转发")
+    @GetMapping("/{type}/{fun}")
+    public AjaxResult proxy(@PathVariable String type, @PathVariable String fun, HttpServletRequest request) {
+        String query = request.getQueryString();
+        String base = "NewGQ".equals(type) ? NEWGQ_BASE : YJZH_BASE;
+        return success(ProxyHelper.fetchSoapXmlToJson(base + "/" + type + ".asmx/" + fun + (query != null ? "?" + query : "")));
+    }
+}

+ 29 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/EarlyWarningController.java

@@ -0,0 +1,29 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "19. 预警管理")
+@RestController
+@RequestMapping("/slgc/earlywarning")
+public class EarlyWarningController extends BaseController {
+
+    private static final String API = "http://10.8.11.110:20080/outApi";
+
+    @Operation(summary = "19.01 查询预警列表")
+    @GetMapping("/list")
+    public AjaxResult list() {
+        return success(ProxyHelper.fetchJson(API + "/getStation"));
+    }
+
+    @Operation(summary = "19.02 查询预警历史")
+    @GetMapping("/history")
+    public AjaxResult history() {
+        return success(ProxyHelper.fetchJson(API + "/swflow/listForTable"));
+    }
+}

+ 32 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/FhgcController.java

@@ -0,0 +1,32 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.common.core.page.TableDataInfo;
+import com.goldenwater.slgc.domain.AttResBase;
+import com.goldenwater.slgc.service.ReservoirService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "32. 防洪工程数据库")
+@RestController
+@RequestMapping("/slgc/fhgc")
+public class FhgcController extends BaseController {
+
+    @Autowired
+    private ReservoirService reservoirService;
+
+    @Operation(summary = "查询防洪工程水库数据")
+    @GetMapping("/list")
+    public TableDataInfo list(AttResBase attResBase) {
+        startPage();
+        List<AttResBase> list = reservoirService.selectAttResBaseList(attResBase);
+        return getDataTable(list);
+    }
+}

+ 57 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/GCFBController.java

@@ -0,0 +1,57 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.Collections;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "33. 工程分布数据")
+@RestController
+@RequestMapping("/slgc/gcfb")
+public class GCFBController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public GCFBController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "查询工程分布数据")
+    @GetMapping("/list")
+    public AjaxResult list(@RequestParam(defaultValue = "") String typeNames) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_SWJCZL?typeNames=" + typeNames;
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private Object parseJsonFromSoap(String xml) {
+        if (xml == null || xml.isEmpty()) return Collections.emptyList();
+        try {
+            javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
+            org.w3c.dom.Document doc = db.parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            javax.xml.xpath.XPath xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
+            org.w3c.dom.NodeList nodes = (org.w3c.dom.NodeList) xpath.evaluate("//Table/string", doc, javax.xml.xpath.XPathConstants.NODESET);
+            if (nodes.getLength() > 0) {
+                String json = nodes.item(0).getTextContent().trim();
+                com.alibaba.fastjson2.JSONArray arr = com.alibaba.fastjson2.JSONArray.parseArray(json);
+                return arr != null ? arr : Collections.emptyList();
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+}

+ 45 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/GhtController.java

@@ -0,0 +1,45 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "24. 工程概化图")
+@RestController
+@RequestMapping("/slgc/ght")
+public class GhtController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public GhtController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "24.01 查询概化图数据")
+    @GetMapping("/list")
+    public AjaxResult list(@RequestParam(defaultValue = "") String name) {
+        try {
+            String xml = restTemplate.getForObject(apiProperties.getYjzh() + "/SELECT_GCGHT?name=" + name, String.class);
+            org.w3c.dom.Document doc = javax.xml.parsers.DocumentBuilderFactory.newInstance()
+                    .newDocumentBuilder().parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            org.w3c.dom.NodeList nodes = (org.w3c.dom.NodeList)
+                    javax.xml.xpath.XPathFactory.newInstance().newXPath()
+                    .evaluate("//Table/string", doc, javax.xml.xpath.XPathConstants.NODESET);
+            if (nodes.getLength() > 0) {
+                String json = nodes.item(0).getTextContent().trim();
+                com.alibaba.fastjson2.JSONArray arr = com.alibaba.fastjson2.JSONArray.parseArray(json);
+                return success(arr != null ? arr : java.util.Collections.emptyList());
+            }
+        } catch (Exception ignored) {}
+        return success(java.util.Collections.emptyList());
+    }
+}

+ 84 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/HydrologyController.java

@@ -0,0 +1,84 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "23. 水文信息")
+@RestController
+@RequestMapping("/slgc/hydrology")
+public class HydrologyController extends BaseController {
+
+    private final ApiProperties apiProperties;
+
+    public HydrologyController(ApiProperties apiProperties) {
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "23.01 查询站点列表")
+    @GetMapping("/stations")
+    public AjaxResult stations() {
+        return success(ProxyHelper.fetchJson(apiProperties.getHydrology() + "/getStation"));
+    }
+
+    @Operation(summary = "23.02 查询水位数据")
+    @GetMapping("/level")
+    public AjaxResult level(@RequestParam(defaultValue = "") String rtucd,
+                            @RequestParam(defaultValue = "") String startTime,
+                            @RequestParam(defaultValue = "") String endTime) {
+        return success(ProxyHelper.fetchJson(apiProperties.getHydrology() + "/c0d1/list?rtucd=" + rtucd + "&startTime=" + startTime + "&endTime=" + endTime));
+    }
+
+    @Operation(summary = "23.03 查询流量数据")
+    @GetMapping("/flow")
+    public AjaxResult flow(@RequestParam(defaultValue = "") String rtucd,
+                           @RequestParam(defaultValue = "") String startTime,
+                           @RequestParam(defaultValue = "") String endTime) {
+        return success(ProxyHelper.fetchJson(apiProperties.getHydrology() + "/c0d2/list?rtucd=" + rtucd + "&startTime=" + startTime + "&endTime=" + endTime));
+    }
+
+    @Operation(summary = "23.04 查询实时监测数据")
+    @GetMapping("/realtime")
+    public AjaxResult realtime(@RequestParam(defaultValue = "") String rtucd,
+                               @RequestParam(defaultValue = "") String startTime,
+                               @RequestParam(defaultValue = "") String endTime) {
+        // 支持按站码 rtucd 过滤,与前端 handleStationDetail() 传参一致
+        String url = apiProperties.getHydrology() + "/swflow/listForTable";
+        if (!rtucd.isEmpty()) {
+            url = apiProperties.getHydrology() + "/swflow/historyList?rtucd=" + rtucd
+                    + "&startTime=" + startTime + "&endTime=" + endTime;
+        }
+        return success(ProxyHelper.fetchJson(url));
+    }
+
+    @Operation(summary = "23.05 查询水文综合列表数据")
+    @GetMapping("/list")
+    public AjaxResult list(@RequestParam(defaultValue = "") String rtucd,
+                           @RequestParam(defaultValue = "") String dataType,
+                           @RequestParam(defaultValue = "") String startTime,
+                           @RequestParam(defaultValue = "") String endTime) {
+        return success(ProxyHelper.fetchJson(apiProperties.getHydrology() + "/list?rtucd=" + rtucd + "&dataType=" + dataType + "&startTime=" + startTime + "&endTime=" + endTime));
+    }
+
+    @Operation(summary = "23.06 查询水质数据")
+    @GetMapping("/waterQuality")
+    public AjaxResult waterQuality(@RequestParam(defaultValue = "") String rtucd,
+                                   @RequestParam(defaultValue = "") String startTime,
+                                   @RequestParam(defaultValue = "") String endTime) {
+        return success(ProxyHelper.fetchJson(apiProperties.getHydrology() + "/waterQuality/list?rtucd=" + rtucd + "&startTime=" + startTime + "&endTime=" + endTime));
+    }
+
+    @Operation(summary = "23.07 查询工情数据")
+    @GetMapping("/engineering")
+    public AjaxResult engineering(@RequestParam(defaultValue = "") String type,
+                                  @RequestParam(defaultValue = "") String startTime,
+                                  @RequestParam(defaultValue = "") String endTime) {
+        return success(ProxyHelper.fetchJson(apiProperties.getHydrology() + "/engineering/list?type=" + type + "&startTime=" + startTime + "&endTime=" + endTime));
+    }
+}

+ 94 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/MonitorController.java

@@ -0,0 +1,94 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.Collections;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "21. 监测管理")
+@RestController
+@RequestMapping("/slgc/monitor")
+public class MonitorController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public MonitorController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "21.01 查询监测列表")
+    @GetMapping("/list")
+    public AjaxResult list(String startDate, String bsnm, String frgrd) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_BZselect?StartDate=" + (startDate != null ? startDate : "")
+                    + "&BSNM=" + (bsnm != null ? bsnm : "") + "&FRGRD=" + (frgrd != null ? frgrd : "");
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "21.02 查询工程数据")
+    @GetMapping("/gc")
+    public AjaxResult gc(String startDate) {
+        try {
+            String url = apiProperties.getYjzh() + "/Select_GC?StartDate=" + (startDate != null ? startDate : "");
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "21.04 查询实时水情(太浦闸/望亭/常熟)")
+    @GetMapping("/realtime-tbadd")
+    public AjaxResult realtimeTbadd() {
+        try {
+            String url = apiProperties.getTbaddRealtime() + "/tbadd/wd/3d";
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(com.alibaba.fastjson2.JSON.parseObject(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "21.03 查询工程设施")
+    @GetMapping("/gcsz")
+    public AjaxResult gcsz(String ennm, String ptcd, String rtcd) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_GCSZ?ennm=" + (ennm != null ? ennm : "")
+                    + "&ptcd=" + (ptcd != null ? ptcd : "") + "&rtcd=" + (rtcd != null ? rtcd : "");
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private Object parseJsonFromSoap(String xml) {
+        if (xml == null || xml.isEmpty()) return Collections.emptyList();
+        try {
+            javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
+            org.w3c.dom.Document doc = db.parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            javax.xml.xpath.XPath xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
+            org.w3c.dom.NodeList nodes = (org.w3c.dom.NodeList) xpath.evaluate("//Table/string", doc, javax.xml.xpath.XPathConstants.NODESET);
+            if (nodes.getLength() > 0) {
+                String json = nodes.item(0).getTextContent().trim();
+                com.alibaba.fastjson2.JSONArray arr = com.alibaba.fastjson2.JSONArray.parseArray(json);
+                return arr != null ? arr : Collections.emptyList();
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+}

+ 76 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/ProxyHelper.java

@@ -0,0 +1,76 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class ProxyHelper {
+
+    private static final RestTemplate rt = new RestTemplate();
+
+    public static Object fetchJson(String url) {
+        try {
+            ResponseEntity<String> resp = rt.getForEntity(url, String.class);
+            String body = resp.getBody();
+            if (body != null && !body.isEmpty()) {
+                body = body.trim();
+                if (body.startsWith("[")) {
+                    return com.alibaba.fastjson2.JSONArray.parseArray(body);
+                } else if (body.startsWith("{")) {
+                    return com.alibaba.fastjson2.JSONObject.parseObject(body);
+                }
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+
+    public static Object fetchSoapXmlToJson(String url) {
+        try {
+            ResponseEntity<String> resp = rt.getForEntity(url, String.class);
+            String xml = resp.getBody();
+            if (xml == null || xml.isEmpty()) return Collections.emptyList();
+
+            Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
+                    .parse(new ByteArrayInputStream(xml.getBytes("UTF-8")));
+            XPath xpath = XPathFactory.newInstance().newXPath();
+
+            NodeList strings = (NodeList) xpath.evaluate("//Table/string", doc, XPathConstants.NODESET);
+            if (strings.getLength() > 0) {
+                String json = strings.item(0).getTextContent().trim();
+                if (json.startsWith("[")) return com.alibaba.fastjson2.JSONArray.parseArray(json);
+                if (json.startsWith("{")) return com.alibaba.fastjson2.JSONObject.parseObject(json);
+            }
+
+            NodeList rows = (NodeList) xpath.evaluate("//NewDataSet/Table | //DocumentElement/Table", doc, XPathConstants.NODESET);
+            if (rows.getLength() > 0) {
+                List<Map<String, String>> result = new ArrayList<>();
+                for (int i = 0; i < rows.getLength(); i++) {
+                    Element el = (Element) rows.item(i);
+                    Map<String, String> map = new LinkedHashMap<>();
+                    NodeList children = el.getChildNodes();
+                    for (int j = 0; j < children.getLength(); j++) {
+                        if (children.item(j) instanceof Element) {
+                            Element child = (Element) children.item(j);
+                            map.put(child.getTagName(), child.getTextContent());
+                        }
+                    }
+                    result.add(map);
+                }
+                return result;
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+}

+ 95 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/ShgcController.java

@@ -0,0 +1,95 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import javax.sql.DataSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.PostConstruct;
+
+@Tag(name = "29. 涉河项目管理")
+@RestController
+@RequestMapping("/slgc/shgc")
+public class ShgcController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public ShgcController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Autowired
+    private DataSource dataSource;
+    private JdbcTemplate jdbc;
+
+    @PostConstruct
+    public void init() {
+        this.jdbc = new JdbcTemplate(dataSource);
+    }
+
+    @Operation(summary = "查询涉河项目列表")
+    @GetMapping("/list")
+    public AjaxResult list(@RequestParam(defaultValue = "") String type,
+                           @RequestParam(defaultValue = "") String name) {
+        try {
+            // 使用参数化查询防止 SQL 注入
+            StringBuilder sql = new StringBuilder("select * from tba_gc_info where 1=1");
+            java.util.List<Object> params = new java.util.ArrayList<>();
+            if (!type.isEmpty()) {
+                sql.append(" and type = ?");
+                params.add(type);
+            }
+            if (!name.isEmpty()) {
+                sql.append(" and name like ?");
+                params.add("%" + name + "%");
+            }
+            List<Map<String, Object>> result = jdbc.queryForList(sql.toString(), params.toArray());
+            return success(result);
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "查询直管工程信息(引排水量)")
+    @GetMapping("/real/info")
+    public AjaxResult realInfo() {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_Engineering1";
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private Object parseJsonFromSoap(String xml) {
+        if (xml == null || xml.isEmpty()) return Collections.emptyList();
+        try {
+            javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
+            org.w3c.dom.Document doc = db.parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            javax.xml.xpath.XPath xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
+            org.w3c.dom.NodeList nodes = (org.w3c.dom.NodeList) xpath.evaluate("//Table/string", doc, javax.xml.xpath.XPathConstants.NODESET);
+            if (nodes.getLength() > 0) {
+                String json = nodes.item(0).getTextContent().trim();
+                com.alibaba.fastjson2.JSONArray arr = com.alibaba.fastjson2.JSONArray.parseArray(json);
+                return arr != null ? arr : Collections.emptyList();
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+}

+ 93 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/SwController.java

@@ -0,0 +1,93 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.Collections;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "31. 三维数据管理")
+@RestController
+@RequestMapping("/slgc/sw")
+public class SwController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public SwController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "查询三维基础资料")
+    @GetMapping("/info/list")
+    public AjaxResult infoList() {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_SWJCZL";
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "查询三维建模数据")
+    @GetMapping("/jm/list")
+    public AjaxResult jmList(@RequestParam(defaultValue = "") String stnm) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_SWJM?stnm=" + stnm;
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "查询三维实景拍摄数据")
+    @GetMapping("/sj/list")
+    public AjaxResult sjList(@RequestParam(defaultValue = "") String stnm) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_SJPS?stnm=" + stnm;
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "查询现场图片")
+    @GetMapping("/tp/list")
+    public AjaxResult tpList(@RequestParam(defaultValue = "") String stnm) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_XCTP?stnm=" + stnm;
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private Object parseJsonFromSoap(String xml) {
+        if (xml == null || xml.isEmpty()) return Collections.emptyList();
+        try {
+            javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
+            org.w3c.dom.Document doc = db.parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            javax.xml.xpath.XPath xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
+            org.w3c.dom.NodeList nodes = (org.w3c.dom.NodeList) xpath.evaluate("//Table/string", doc, javax.xml.xpath.XPathConstants.NODESET);
+            if (nodes.getLength() > 0) {
+                String json = nodes.item(0).getTextContent().trim();
+                com.alibaba.fastjson2.JSONArray arr = com.alibaba.fastjson2.JSONArray.parseArray(json);
+                return arr != null ? arr : Collections.emptyList();
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/SyqController.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "31. 水源地站点代理")
+@RestController
+@RequestMapping("/slgc/syq")
+public class SyqController extends BaseController {
+
+    private final ApiProperties apiProperties;
+
+    public SyqController(ApiProperties apiProperties) {
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "31.01 获取水源地站点列表")
+    @GetMapping("/szy/station")
+    public AjaxResult station() {
+        return success(ProxyHelper.fetchJson(apiProperties.getSyqStation() + "/zhxx/syq/szy/station"));
+    }
+}

+ 47 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/TbaGxController.java

@@ -0,0 +1,47 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "29. 水源地/水质/tba-gx代理")
+@RestController
+@RequestMapping("/slgc/tba-gx")
+public class TbaGxController extends BaseController {
+
+    private final ApiProperties apiProperties;
+
+    public TbaGxController(ApiProperties apiProperties) {
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "29.01 水源地水文最新数据")
+    @GetMapping("/syq/newest")
+    public AjaxResult syqNewest(@RequestParam(defaultValue = "n") String code) {
+        return success(ProxyHelper.fetchJson(apiProperties.getTbaGx() + "/tba/gx/syq/newest?code=" + code));
+    }
+
+    @Operation(summary = "29.02 省界/流域水质最新数据")
+    @GetMapping("/sj/basin/newest")
+    public AjaxResult sjBasinNewest(@RequestParam String bizCode) {
+        return success(ProxyHelper.fetchJson(apiProperties.getTbaGx() + "/tba/gx/sj/basin/newest?bizCode=" + bizCode));
+    }
+
+    @Operation(summary = "29.03 水质自动站最新数据")
+    @GetMapping("/sz/auto/newest")
+    public AjaxResult szAutoNewest(@RequestParam String bizCode) {
+        return success(ProxyHelper.fetchJson(apiProperties.getTbaGx() + "/tba/gx/sz/auto/newest?bizCode=" + bizCode));
+    }
+
+    @Operation(summary = "29.04 蓝藻最新数据")
+    @GetMapping("/sz/lz/newest")
+    public AjaxResult szLzNewest(@RequestParam String bizCode) {
+        return success(ProxyHelper.fetchJson(apiProperties.getTbaGx() + "/tba/gx/sz/lz/newest?bizCode=" + bizCode));
+    }
+}

+ 54 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/TyphoonController.java

@@ -0,0 +1,54 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "27. 台风管理")
+@RestController
+@RequestMapping("/slgc/typhoon")
+public class TyphoonController extends BaseController {
+
+    private static final String API = "http://typhoon.zjwater.gov.cn/Api";
+
+    @Operation(summary = "27.01 查询台风年份数据")
+    @GetMapping("/year/list")
+    public AjaxResult yearList() {
+        return success(ProxyHelper.fetchJson(API + "/TyphoonList/0"));
+    }
+
+    @Operation(summary = "27.02 查询台风信息列表")
+    @GetMapping("/info/list")
+    public AjaxResult infoList(@RequestParam(defaultValue = "2024") String year) {
+        return success(ProxyHelper.fetchJson(API + "/TyphoonList/" + year));
+    }
+
+    @Operation(summary = "27.03 查询台风路径数据")
+    @GetMapping("/path/list")
+    public AjaxResult pathList(String tfid) {
+        return success(ProxyHelper.fetchJson(API + "/TyphoonInfo/" + (tfid != null ? tfid : "")));
+    }
+
+    @Operation(summary = "27.04 查询台风事件")
+    @GetMapping("/event/list")
+    public AjaxResult eventList(String tfid) {
+        return success(ProxyHelper.fetchJson(API + "/TyphoonEvent/" + (tfid != null ? tfid : "") + "/Flase"));
+    }
+
+    @Operation(summary = "27.05 查询未来降雨")
+    @GetMapping("/least/rain")
+    public AjaxResult leastRain(@RequestParam(defaultValue = "24") String type) {
+        return success(ProxyHelper.fetchJson(API + "/LeastRain/" + type));
+    }
+
+    @Operation(summary = "27.06 查询云图")
+    @GetMapping("/least/cloud")
+    public AjaxResult leastCloud() {
+        return success(ProxyHelper.fetchJson(API + "/LeastCloud"));
+    }
+}

+ 75 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WaterController.java

@@ -0,0 +1,75 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.Collections;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "30. 水量数据管理")
+@RestController
+@RequestMapping("/slgc/water")
+public class WaterController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public WaterController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "查询闸坝水量数据")
+    @GetMapping("/bz/list")
+    public AjaxResult bzList(@RequestParam(defaultValue = "") String startDate,
+                             @RequestParam(defaultValue = "") String bsnm,
+                             @RequestParam(defaultValue = "") String frgrd) {
+        try {
+            String url = apiProperties.getYjzh() + "/SELECT_BZselect?StartDate=" + startDate
+                    + "&BSNM=" + bsnm + "&FRGRD=" + frgrd;
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "查询工程水量数据")
+    @GetMapping("/gc/list")
+    public AjaxResult gcList(@RequestParam(defaultValue = "") String startDate,
+                             @RequestParam(defaultValue = "") String bsnm,
+                             @RequestParam(defaultValue = "") String frgrd) {
+        try {
+            String url = apiProperties.getYjzh() + "/Select_GC?StartDate=" + startDate
+                    + "&BSNM=" + bsnm + "&FRGRD=" + frgrd;
+            ResponseEntity<String> resp = restTemplate.getForEntity(url, String.class);
+            return success(parseJsonFromSoap(resp.getBody()));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private Object parseJsonFromSoap(String xml) {
+        if (xml == null || xml.isEmpty()) return Collections.emptyList();
+        try {
+            javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
+            org.w3c.dom.Document doc = db.parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            javax.xml.xpath.XPath xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
+            org.w3c.dom.NodeList nodes = (org.w3c.dom.NodeList) xpath.evaluate("//Table/string", doc, javax.xml.xpath.XPathConstants.NODESET);
+            if (nodes.getLength() > 0) {
+                String json = nodes.item(0).getTextContent().trim();
+                com.alibaba.fastjson2.JSONArray arr = com.alibaba.fastjson2.JSONArray.parseArray(json);
+                return arr != null ? arr : Collections.emptyList();
+            }
+        } catch (Exception ignored) {}
+        return Collections.emptyList();
+    }
+}

+ 23 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WaterFuncController.java

@@ -0,0 +1,23 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "20. 水功能区")
+@RestController
+@RequestMapping("/slgc/waterfunc")
+public class WaterFuncController extends BaseController {
+
+    private static final String API = "http://10.8.4.135:8083/szybh/sgnq";
+
+    @Operation(summary = "20.01 查询水功能区列表")
+    @GetMapping("/list")
+    public AjaxResult list() {
+        return success(ProxyHelper.fetchJson(API + "/getSgnqList"));
+    }
+}

+ 70 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WaterSourceController.java

@@ -0,0 +1,70 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "30. 水源地管理代理")
+@RestController
+@RequestMapping("/slgc/water-source")
+public class WaterSourceController extends BaseController {
+
+    private final ApiProperties apiProperties;
+
+    public WaterSourceController(ApiProperties apiProperties) {
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "30.01 根据水源地ID获取水功能区")
+    @GetMapping("/getWfBySwsId")
+    public AjaxResult getWfBySwsId(@RequestParam String swsId) {
+        return success(ProxyHelper.fetchJson(apiProperties.getWaterSource() + "/water/source/getWfBySwsId?swsId=" + swsId));
+    }
+
+    @Operation(summary = "30.02 根据水源地ID获取水源地详情")
+    @GetMapping("/getSydByswsId")
+    public AjaxResult getSydByswsId(@RequestParam String swsId) {
+        return success(ProxyHelper.fetchJson(apiProperties.getWaterSource() + "/water/source/getSydByswsId?swsId=" + swsId));
+    }
+
+    @Operation(summary = "30.03 获取所有水源地")
+    @GetMapping("/getAllSWS")
+    public AjaxResult getAllSWS(@RequestParam String type) {
+        return success(ProxyHelper.fetchJson(apiProperties.getWaterSource() + "/water/source/getAllSWS?type=" + type));
+    }
+
+    @Operation(summary = "30.04 更新点位信息")
+    @PostMapping("/updatePoint")
+    public AjaxResult updatePoint(@RequestParam String districtId, @RequestParam String wzPoint, @RequestParam String districtSide) {
+        return success(ProxyHelper.fetchJson(apiProperties.getWaterSource()
+                + "/water/source/updatePoint?districtId=" + districtId + "&wzPoint=" + wzPoint + "&districtSide=" + districtSide));
+    }
+
+    @Operation(summary = "30.05 按年统计")
+    @GetMapping("/sumcyear")
+    public AjaxResult sumcyear(@RequestParam String swsId, @RequestParam String year) {
+        return success(ProxyHelper.fetchJson(apiProperties.getWaterSource() + "/water/source/sumcyear?swsId=" + swsId + "&year=" + year));
+    }
+
+    @Operation(summary = "30.06 按类型获取区域")
+    @GetMapping("/getAreaByType")
+    public AjaxResult getAreaByType(@RequestParam String type, @RequestParam(required = false) String wfzId, @RequestParam(required = false) String swsId) {
+        String url = apiProperties.getWaterSource() + "/water/source/getAreaByType?type=" + type;
+        if (wfzId != null) url += "&wfzId=" + wfzId;
+        if (swsId != null) url += "&swsId=" + swsId;
+        return success(ProxyHelper.fetchJson(url));
+    }
+
+    @Operation(summary = "30.07 获取点位")
+    @GetMapping("/getPoint")
+    public AjaxResult getPoint(@RequestParam String qyid) {
+        return success(ProxyHelper.fetchJson(apiProperties.getWaterSource() + "/water/source/getPoint?qyid=" + qyid));
+    }
+}

+ 34 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WeatherController.java

@@ -0,0 +1,34 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "26. 天气管理")
+@RestController
+@RequestMapping("/slgc/weather")
+public class WeatherController extends BaseController {
+
+    private static final String ORCL_TBA = "http://10.8.4.68:8888/WebService/Orcl_Tba.asmx/ToStrong";
+
+    @Operation(summary = "26.01 查询云图数据")
+    @GetMapping("/yuntu")
+    public AjaxResult yuntu(@RequestParam(defaultValue = "") String type,
+                            @RequestParam(defaultValue = "") String startDate,
+                            @RequestParam(defaultValue = "") String endDate) {
+        return success(ProxyHelper.fetchSoapXmlToJson(ORCL_TBA + "?filedown=1&strdate=" + startDate + "&strdate2=" + endDate));
+    }
+
+    @Operation(summary = "26.02 查询福建云图数据")
+    @GetMapping("/fujian")
+    public AjaxResult fujian(@RequestParam(defaultValue = "1") String type,
+                             @RequestParam(defaultValue = "") String startDate,
+                             @RequestParam(defaultValue = "") String endDate) {
+        return success(ProxyHelper.fetchSoapXmlToJson(ORCL_TBA + "?filedown=" + type + "&strdate=" + startDate + "&strdate2=" + endDate));
+    }
+}

+ 31 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/WindController.java

@@ -0,0 +1,31 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "25. 风情管理")
+@RestController
+@RequestMapping("/slgc/wind")
+public class WindController extends BaseController {
+
+    private static final String YJZH = "http://10.8.4.171:816/YJZH.asmx";
+
+    @Operation(summary = "25.01 查询当日风浪数据")
+    @GetMapping("/list")
+    public AjaxResult list(@RequestParam(defaultValue = "") String date) {
+        return success(ProxyHelper.fetchSoapXmlToJson(YJZH + "/SELECT_QXFL?st=" + date));
+    }
+
+    @Operation(summary = "25.02 查询单站风浪序列")
+    @GetMapping("/station")
+    public AjaxResult station(String stcd, String st, String et) {
+        return success(ProxyHelper.fetchSoapXmlToJson(YJZH + "/SELECT_FLSTCD?stcd=" + (stcd != null ? stcd : "")
+                + "&st=" + (st != null ? st : "") + "&et=" + (et != null ? et : "")));
+    }
+}

+ 116 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/controller/proxy/ZggcController.java

@@ -0,0 +1,116 @@
+package com.goldenwater.slgc.controller.proxy;
+
+import java.util.Collections;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.goldenwater.common.core.controller.BaseController;
+import com.goldenwater.common.core.domain.AjaxResult;
+import com.goldenwater.slgc.config.ApiProperties;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@Tag(name = "22. 工程监管")
+@RestController
+@RequestMapping("/slgc/zggc")
+public class ZggcController extends BaseController {
+
+    private final RestTemplate restTemplate;
+    private final ApiProperties apiProperties;
+
+    public ZggcController(RestTemplate restTemplate, ApiProperties apiProperties) {
+        this.restTemplate = restTemplate;
+        this.apiProperties = apiProperties;
+    }
+
+    @Operation(summary = "22.01 查询水情数据")
+    @GetMapping("/station")
+    public AjaxResult station(@RequestParam(defaultValue = "0") int statCode, String date) {
+        String d = date != null ? date : new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
+        String[] codes = {"69642", "69485", "69462"};
+        String stcd = statCode >= 0 && statCode < 3 ? codes[statCode] : "69642";
+        try {
+            String xml = restTemplate.getForObject(apiProperties.getZggc() + "/SYSW?strTime=" + d + "&stcd=" + stcd, String.class);
+            return success(parseDiffgram(xml));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "22.02 查询流量数据")
+    @GetMapping("/flow")
+    public AjaxResult flow(String date) {
+        String d = date != null ? date : new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
+        try {
+            String xml = restTemplate.getForObject(apiProperties.getZggc() + "/GetTGTQ?stime=" + d, String.class);
+            return success(parseDiffgram(xml));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "22.03 查询工程监管列表")
+    @GetMapping("/list")
+    public AjaxResult list(String date) {
+        String d = date != null ? date : new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
+        try {
+            String xml = restTemplate.getForObject(apiProperties.getZggc() + "/SYSW?strTime=" + d, String.class);
+            return success(parseDiffgram(xml));
+        } catch (Exception e) {
+            return success(Collections.emptyList());
+        }
+    }
+
+    @Operation(summary = "22.04 查询工程门户(三大站实时数据)")
+    @GetMapping("/portal")
+    public AjaxResult portal() {
+        String d = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
+        String[] codes = {"69642", "69485", "69462"};
+        String[] names = {"太浦闸", "望亭枢纽", "常熟水利枢纽"};
+        java.util.List<java.util.Map<String, Object>> result = new java.util.ArrayList<>();
+        for (int i = 0; i < codes.length; i++) {
+            try {
+                String xml = restTemplate.getForObject(apiProperties.getZggc() + "/SYSW?strTime=" + d + "&stcd=" + codes[i], String.class);
+                Object data = parseDiffgram(xml);
+                java.util.Map<String, Object> map = new java.util.LinkedHashMap<>();
+                map.put("stcd", codes[i]);
+                map.put("name", names[i]);
+                map.put("stationName", names[i]);
+                map.put("data", data);
+                result.add(map);
+            } catch (Exception e) {
+                // skip individual station failure
+            }
+        }
+        return success(result);
+    }
+
+    private Object parseDiffgram(String xml) {
+        if (xml == null || xml.isEmpty()) return Collections.emptyList();
+        try {
+            javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
+            org.w3c.dom.Document doc = db.parse(new java.io.ByteArrayInputStream(xml.getBytes("UTF-8")));
+            javax.xml.xpath.XPath xpath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
+            org.w3c.dom.NodeList rows = (org.w3c.dom.NodeList) xpath.evaluate("//NewDataSet/Table", doc, javax.xml.xpath.XPathConstants.NODESET);
+            java.util.List<java.util.Map<String, String>> result = new java.util.ArrayList<>();
+            for (int i = 0; i < rows.getLength(); i++) {
+                org.w3c.dom.Element el = (org.w3c.dom.Element) rows.item(i);
+                java.util.Map<String, String> map = new java.util.LinkedHashMap<>();
+                org.w3c.dom.NodeList children = el.getChildNodes();
+                for (int j = 0; j < children.getLength(); j++) {
+                    if (children.item(j) instanceof org.w3c.dom.Element) {
+                        org.w3c.dom.Element child = (org.w3c.dom.Element) children.item(j);
+                        map.put(child.getTagName(), child.getTextContent());
+                    }
+                }
+                result.add(map);
+            }
+            return result;
+        } catch (Exception e) {
+            return Collections.emptyList();
+        }
+    }
+}

+ 59 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttBridBase.java

@@ -0,0 +1,59 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttBridBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "桥梁信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttBridBase extends AttBridBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "桥梁名称")
+    private String bridName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "桥梁位置")
+    private String bridLoc;
+    @Schema(description = "主要桥梁类型")
+    private String mainBridYtpe;
+    @Schema(description = "主桥长度(m)")
+    private BigDecimal mainBridLen;
+    @Schema(description = "主桥宽度(m)")
+    private BigDecimal mainBridWid;
+    @Schema(description = "主桥孔数")
+    private Short mainBridHoleNum;
+    @Schema(description = "副桥孔数")
+    private Short depuBridHoleNum;
+    @Schema(description = "主桥孔净跨(m)")
+    private BigDecimal mainBridHoleNetSpan;
+    @Schema(description = "桥梁设计荷载")
+    private BigDecimal bridDesLoad;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 56 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDamBase.java

@@ -0,0 +1,56 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "坝信息实体")
+@Data
+public class AttDamBase {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "坝编码")
+    private String damCode;
+    @Schema(description = "坝名称")
+    private String damName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "坝位置")
+    private String damLoc;
+    @Schema(description = "是否主坝")
+    private String ifMainDam;
+    @Schema(description = "坝级别")
+    private String damGrad;
+    @Schema(description = "最大坝高(m)")
+    private BigDecimal damMaxHeig;
+    @Schema(description = "坝顶长度(m)")
+    private BigDecimal damTopLen;
+    @Schema(description = "坝顶宽度(m)")
+    private BigDecimal damTopWid;
+    @Schema(description = "坝型(材料)")
+    private String damTypeMat;
+    @Schema(description = "坝型(结构)")
+    private String damTypeStr;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "采集日期")
+    private Date collDate;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 89 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDikeBase.java

@@ -0,0 +1,89 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "堤防信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttDikeBase extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "堤防编码")
+    private String dikeCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+    @Schema(description = "堤防名称")
+    private String dikeName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "起点位置")
+    private String startLoc;
+    @Schema(description = "终点位置")
+    private String endLoc;
+    @Schema(description = "堤防等级")
+    private String dikeGrad;
+    @Schema(description = "堤防类型")
+    private String dikeType;
+    @Schema(description = "堤防结构")
+    private String dikePatt;
+    @Schema(description = "堤防长度")
+    private BigDecimal dikeLen;
+    @Schema(description = "起始桩号")
+    private String dikeStartNum;
+    @Schema(description = "终止桩号")
+    private String dikeEndNum;
+    @Schema(description = "起点堤顶高程")
+    private BigDecimal startDikeTopEl;
+    @Schema(description = "终点堤顶高程")
+    private BigDecimal endDikeTopEl;
+    @Schema(description = "最小堤高")
+    private BigDecimal dikeHeigMin;
+    @Schema(description = "最大堤高")
+    private BigDecimal dikeHeigMax;
+    @Schema(description = "最小堤顶宽")
+    private BigDecimal dikeTopWidMin;
+    @Schema(description = "最大堤顶宽")
+    private BigDecimal dikeTopWidMax;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "工程任务")
+    private String engTask;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "管理单位")
+    private String admDep;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+    @Schema(description = "数据来源")
+    private String source;
+    @Schema(description = "堤防结构名称")
+    private String dikePattName;
+    @Schema(description = "临时编码")
+    private String tempcode;
+    @Schema(description = "类型")
+    private String type;
+    @Schema(description = "关键字")
+    private String key;
+}

+ 47 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDiscBase.java

@@ -0,0 +1,47 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttDiscBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "消力池信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttDiscBase extends AttDiscBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "消力池名称")
+    private String discName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "起点位置")
+    private String startLoc;
+    @Schema(description = "终点位置")
+    private String endLoc;
+    @Schema(description = "消力池等级")
+    private String discGrad;
+    @Schema(description = "消力池类型")
+    private String discType;
+    @Schema(description = "消力池形式")
+    private String discPatt;
+    @Schema(description = "消力池长度(m)")
+    private BigDecimal discLen;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 39 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttDpdsBase.java

@@ -0,0 +1,39 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttDpdsBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "排水沟信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttDpdsBase extends AttDpdsBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "排水沟名称")
+    private String dpdsName;
+    @Schema(description = "经度")
+    private BigDecimal dpdsLong;
+    @Schema(description = "纬度")
+    private BigDecimal dpdsLat;
+    @Schema(description = "排水沟位置")
+    private String dpdsLoc;
+    @Schema(description = "挡数")
+    private Short dangNum;
+    @Schema(description = "排水沟编码")
+    private String dpdsNum;
+    @Schema(description = "排水沟长度(m)")
+    private BigDecimal dpdsLen;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 57 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttFlumBase.java

@@ -0,0 +1,57 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttFlumBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "渡槽信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttFlumBase extends AttFlumBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "渡槽名称")
+    private String flumName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "渡槽位置")
+    private String flumLoc;
+    @Schema(description = "渡槽水力特性")
+    private BigDecimal flumWatProp;
+    @Schema(description = "渡槽形式")
+    private String flumPatt;
+    @Schema(description = "断面形式")
+    private String flumSecPatt;
+    @Schema(description = "跨河长度(m)")
+    private BigDecimal crRvLen;
+    @Schema(description = "支撑类型")
+    private String suppType;
+    @Schema(description = "支撑孔数")
+    private Short suppOrifNum;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 59 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttFsdaBase.java

@@ -0,0 +1,59 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttFsdaBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "蓄滞洪区信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttFsdaBase extends AttFsdaBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "蓄滞洪区名称")
+    private String fsdaName;
+    @Schema(description = "左下经度")
+    private BigDecimal lowLeftLong;
+    @Schema(description = "左下纬度")
+    private BigDecimal lowLeftLat;
+    @Schema(description = "右上经度")
+    private BigDecimal upRightLong;
+    @Schema(description = "右上纬度")
+    private BigDecimal upRightLat;
+    @Schema(description = "蓄滞洪区位置")
+    private String fsdaLoc;
+    @Schema(description = "蓄滞洪区类型")
+    private String fedaType;
+    @Schema(description = "建设日期")
+    private Date buildFlDate;
+    @Schema(description = "总面积(km²)")
+    private BigDecimal fsdaTotAera;
+    @Schema(description = "围堤长度(m)")
+    private BigDecimal fsdaDikeLen;
+    @Schema(description = "设计蓄洪面积(km²)")
+    private BigDecimal desFlArea;
+    @Schema(description = "设计蓄洪水位(m)")
+    private BigDecimal desFlStag;
+    @Schema(description = "设计蓄洪库容(万m³)")
+    private BigDecimal desStorCap;
+    @Schema(description = "设计分洪流量(m³/s)")
+    private BigDecimal desFlFlow;
+    @Schema(description = "影响面积(亩)")
+    private Long arArea;
+    @Schema(description = "影响人口(万人)")
+    private BigDecimal fsdaPop;
+    @Schema(description = "影响GDP(亿元)")
+    private BigDecimal fsdaGdp;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 43 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttGrpjBase.java

@@ -0,0 +1,43 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttGrpjBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "沟渠信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttGrpjBase extends AttGrpjBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "沟渠名称")
+    private String grpjName;
+    @Schema(description = "经度")
+    private BigDecimal grpjLong;
+    @Schema(description = "纬度")
+    private BigDecimal grpjLat;
+    @Schema(description = "沟渠位置")
+    private String grpjLoc;
+    @Schema(description = "工程数量")
+    private Short engNum;
+    @Schema(description = "工程长度(m)")
+    private BigDecimal engLen;
+    @Schema(description = "管理长度(m)")
+    private BigDecimal mangReaLen;
+    @Schema(description = "岸别")
+    private String bank;
+    @Schema(description = "走向")
+    private String grpjBrin;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 57 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttInsiBase.java

@@ -0,0 +1,57 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttInsiBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "机电排灌信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttInsiBase extends AttInsiBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "机电排灌名称")
+    private String insiName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "位置")
+    private String insiLoc;
+    @Schema(description = "类型")
+    private String insiType;
+    @Schema(description = "管涵净高(m)")
+    private BigDecimal pipeNetHeig;
+    @Schema(description = "管涵净宽(m)")
+    private BigDecimal pipeNetWid;
+    @Schema(description = "管道内径(m)")
+    private BigDecimal pipeIndi;
+    @Schema(description = "孔数")
+    private Short orifNum;
+    @Schema(description = "基础结构形式")
+    private String baseStrPatt;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 57 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttIrrBase.java

@@ -0,0 +1,57 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttIrrBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "灌区信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttIrrBase extends AttIrrBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "灌区名称")
+    private String irrName;
+    @Schema(description = "左下经度")
+    private BigDecimal lowLeftLong;
+    @Schema(description = "左下纬度")
+    private BigDecimal lowLeftLat;
+    @Schema(description = "右上经度")
+    private BigDecimal upRightLong;
+    @Schema(description = "右上纬度")
+    private BigDecimal upRightLat;
+    @Schema(description = "灌溉范围")
+    private String irrRang;
+    @Schema(description = "水源类型")
+    private String wausType;
+    @Schema(description = "节水类型")
+    private String wasoType;
+    @Schema(description = "工程规模")
+    private String engScal;
+    @Schema(description = "总灌溉面积(亩)")
+    private Long totIrrArea;
+    @Schema(description = "有效灌溉面积(亩)")
+    private Long effIrrArea;
+    @Schema(description = "设计灌溉面积(亩)")
+    private Long desIrrArea;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 63 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttKmBase.java

@@ -0,0 +1,63 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "公里桩信息实体")
+@Data
+public class AttKmBase {
+    @Schema(description = "公里桩编码")
+    private String kmCode;
+    @Schema(description = "公里桩名称")
+    private String kmName;
+    @Schema(description = "行政区划代码")
+    private String adcd;
+    @Schema(description = "行政区划名称")
+    private String adnm;
+    @Schema(description = "经度")
+    private BigDecimal lgtd;
+    @Schema(description = "纬度")
+    private BigDecimal lttd;
+    @Schema(description = "类型")
+    private String type;
+    @Schema(description = "原编码")
+    private String oldCode;
+    @Schema(description = "工程类型")
+    private String gcType;
+    @Schema(description = "数据来源")
+    private String source;
+    @Schema(description = "所在河流")
+    private String locrc;
+    @Schema(description = "位置")
+    private String loc;
+    @Schema(description = "东西岸")
+    private String ewBank;
+    @Schema(description = "南北岸")
+    private String snBank;
+    @Schema(description = "河道状况")
+    private String rcStat;
+    @Schema(description = "工程形式")
+    private String gcForm;
+    @Schema(description = "孔站编号")
+    private String holeStaNum;
+    @Schema(description = "宽度/流量")
+    private String widFlow;
+    @Schema(description = "启闭形式")
+    private String hoistForm;
+    @Schema(description = "闸顶高程")
+    private String gaTopHig;
+    @Schema(description = "闸底高程")
+    private String gaBotHig;
+    @Schema(description = "设计流量")
+    private String desFlow;
+    @Schema(description = "现场管理单位")
+    private String siteManaUnit;
+    @Schema(description = "电话")
+    private String phone;
+    @Schema(description = "通讯单位")
+    private String comUnit;
+    @Schema(description = "图集编号")
+    private String atlasNum;
+}

+ 49 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttLkBase.java

@@ -0,0 +1,49 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttLkBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "湖泊信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttLkBase extends AttLkBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "湖泊名称")
+    private String lkName;
+    @Schema(description = "左下经度")
+    private BigDecimal lowLeftLong;
+    @Schema(description = "左下纬度")
+    private BigDecimal lowLeftLat;
+    @Schema(description = "右上经度")
+    private BigDecimal upRightLong;
+    @Schema(description = "右上纬度")
+    private BigDecimal upRightLat;
+    @Schema(description = "跨湖类型")
+    private String crOverType;
+    @Schema(description = "湖泊位置")
+    private String lkLoc;
+    @Schema(description = "多年平均水面面积(km²)")
+    private BigDecimal meaAnnWatArea;
+    @Schema(description = "多年平均湖泊容积(万m³)")
+    private BigDecimal meaAnnLkVol;
+    @Schema(description = "咸淡湖")
+    private String salFreWat;
+    @Schema(description = "多年平均水深(m)")
+    private BigDecimal meaAnnWatDept;
+    @Schema(description = "最大水深(m)")
+    private BigDecimal maxDept;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 55 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttPipeBase.java

@@ -0,0 +1,55 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttPipeBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "管道信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttPipeBase extends AttPipeBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "管道名称")
+    private String pipeName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "管道位置")
+    private String pipeLoc;
+    @Schema(description = "管道类型")
+    private String pipeType;
+    @Schema(description = "管道外径(m)")
+    private BigDecimal pipeOudi;
+    @Schema(description = "管道用途")
+    private String pipeUse;
+    @Schema(description = "穿河形式")
+    private String crRvForm;
+    @Schema(description = "穿河长度(m)")
+    private BigDecimal crRvLen;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 51 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttPoldBase.java

@@ -0,0 +1,51 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttPoldBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "防洪闸信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttPoldBase extends AttPoldBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "防洪闸名称")
+    private String poldName;
+    @Schema(description = "左下经度")
+    private BigDecimal lowLeftLong;
+    @Schema(description = "左下纬度")
+    private BigDecimal lowLeftLat;
+    @Schema(description = "右上经度")
+    private BigDecimal upRightLong;
+    @Schema(description = "右上纬度")
+    private BigDecimal upRightLat;
+    @Schema(description = "防洪闸位置")
+    private String poldLoc;
+    @Schema(description = "防洪闸类型")
+    private String poldClas;
+    @Schema(description = "设计流量(m³/s)")
+    private BigDecimal desFlow;
+    @Schema(description = "运行方式")
+    private String opPr;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 83 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttPustBase.java

@@ -0,0 +1,83 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "水闸信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttPustBase extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "水闸编码")
+    private String pustCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+    @Schema(description = "水闸名称")
+    private String pustName;
+    @Schema(description = "水闸经度")
+    private BigDecimal pustLong;
+    @Schema(description = "水闸纬度")
+    private BigDecimal pustLat;
+    @Schema(description = "水闸位置")
+    private String pustLoc;
+    @Schema(description = "水闸类型")
+    private String pustType;
+    @Schema(description = "设计流量")
+    private BigDecimal insFlow;
+    @Schema(description = "装机功率")
+    private BigDecimal insPow;
+    @Schema(description = "水泵数量")
+    private BigDecimal pumpNum;
+    @Schema(description = "机组台数")
+    private BigDecimal pumpSetNum;
+    @Schema(description = "总装机容量")
+    private BigDecimal desTotInsCap;
+    @Schema(description = "设计扬程")
+    private BigDecimal desHead;
+    @Schema(description = "工程任务")
+    private String engTask;
+    @Schema(description = "灌溉范围")
+    private String wasuRang;
+    @Schema(description = "工程等级")
+    private String engGrad;
+    @Schema(description = "工程规模")
+    private String engScal;
+    @Schema(description = "主要水工类型")
+    private String wainWasoType;
+    @Schema(description = "主要建筑物级别")
+    private String mainBuildGrad;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "投产日期")
+    private Date startRunDate;
+    @Schema(description = "管理单位")
+    private String admDep;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+    @Schema(description = "类型")
+    private String type;
+    @Schema(description = "数据来源")
+    private String source;
+    @Schema(description = "工程类型")
+    private String gcType;
+    @Schema(description = "原编码")
+    private String oldCode;
+    @Schema(description = "关键字")
+    private String key;
+}

+ 43 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttReaBase.java

@@ -0,0 +1,43 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttReaBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "河道信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttReaBase extends AttReaBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "河道名称")
+    private String reaName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "起点位置")
+    private String startLoc;
+    @Schema(description = "终点位置")
+    private String endLoc;
+    @Schema(description = "河道形式")
+    private String rvChanPatt;
+    @Schema(description = "河道长度(km)")
+    private BigDecimal reaLen;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 101 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttResBase.java

@@ -0,0 +1,101 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "水库信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttResBase extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "水库编码")
+    private String resCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+    @Schema(description = "水库名称")
+    private String resName;
+    @Schema(description = "左下经度")
+    private BigDecimal lowLeftLong;
+    @Schema(description = "左下纬度")
+    private BigDecimal lowLeftLat;
+    @Schema(description = "右上经度")
+    private BigDecimal upRightLong;
+    @Schema(description = "右上纬度")
+    private BigDecimal upRightLat;
+    @Schema(description = "水库位置")
+    private String resLoc;
+    @Schema(description = "水库类型")
+    private String resType;
+    @Schema(description = "工程等级")
+    private String engGrad;
+    @Schema(description = "工程规模")
+    private String engScal;
+    @Schema(description = "流域面积")
+    private BigDecimal watShedArea;
+    @Schema(description = "多年平均径流量")
+    private BigDecimal daadMulAverRuof;
+    @Schema(description = "上游防洪库容")
+    private BigDecimal uppLevFlco;
+    @Schema(description = "正常蓄水位")
+    private BigDecimal normWatLev;
+    @Schema(description = "正常库区面积")
+    private BigDecimal normPoolStagArea;
+    @Schema(description = "正常库容")
+    private BigDecimal normPoolStagCap;
+    @Schema(description = "防洪限制水位")
+    private BigDecimal flLowLimLev;
+    @Schema(description = "防洪限制库容")
+    private BigDecimal flLowLimLevCap;
+    @Schema(description = "死水位")
+    private BigDecimal deadLev;
+    @Schema(description = "总库容")
+    private BigDecimal totCap;
+    @Schema(description = "调洪库容")
+    private BigDecimal storFlCap;
+    @Schema(description = "防洪库容")
+    private BigDecimal flcoCap;
+    @Schema(description = "兴利库容")
+    private BigDecimal benResCap;
+    @Schema(description = "死库容")
+    private BigDecimal deadCap;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "管理单位")
+    private String admDep;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+    @Schema(description = "类型")
+    private String type;
+    @Schema(description = "关键字")
+    private String key;
+    @Schema(description = "经度")
+    private BigDecimal lgtd;
+    @Schema(description = "纬度")
+    private BigDecimal lttd;
+    @Schema(description = "行政区划名称")
+    private String adnm;
+    @Schema(description = "公里桩编码")
+    private String kmCode;
+    @Schema(description = "公里桩名称")
+    private String kmName;
+    @Schema(description = "设计流量")
+    private BigDecimal desFlow;
+}

+ 61 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttRudABase.java

@@ -0,0 +1,61 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttRudABaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "涵洞信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttRudABase extends AttRudABaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "涵洞名称")
+    private String rudaName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "涵洞位置")
+    private String rudaLoc;
+    @Schema(description = "涵洞高度(m)")
+    private BigDecimal rudaHeig;
+    @Schema(description = "涵洞长度(m)")
+    private BigDecimal rudaDamLen;
+    @Schema(description = "工程等级")
+    private String engGrad;
+    @Schema(description = "主要建筑物级别")
+    private String mainBuildGrad;
+    @Schema(description = "调节类型")
+    private String retType;
+    @Schema(description = "填筑类型")
+    private String filEmType;
+    @Schema(description = "影响程度")
+    private String inflMed;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "管理单位")
+    private String admDep;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 59 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttRvBase.java

@@ -0,0 +1,59 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttRvBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "河流信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttRvBase extends AttRvBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "河流名称")
+    private String rvName;
+    @Schema(description = "河源经度")
+    private BigDecimal rvSourLong;
+    @Schema(description = "河源纬度")
+    private BigDecimal rvSourLat;
+    @Schema(description = "河口经度")
+    private BigDecimal rvMouLong;
+    @Schema(description = "河口纬度")
+    private BigDecimal rvMouLat;
+    @Schema(description = "河源位置")
+    private String rvSourLoc;
+    @Schema(description = "河口位置")
+    private String rvMouLoc;
+    @Schema(description = "跨河类型")
+    private String crOverType;
+    @Schema(description = "流经地区")
+    private String flowArea;
+    @Schema(description = "河流类型")
+    private String rvType;
+    @Schema(description = "河流等级")
+    private String rvGrad;
+    @Schema(description = "岸别")
+    private String bank;
+    @Schema(description = "河流长度(km)")
+    private BigDecimal rvLen;
+    @Schema(description = "流域面积(km²)")
+    private BigDecimal rvBasArea;
+    @Schema(description = "多年平均流量(m³/s)")
+    private BigDecimal lonAverAnnFlow;
+    @Schema(description = "实测年径流量(万m³)")
+    private BigDecimal meaAnnRuof;
+    @Schema(description = "平均比降")
+    private BigDecimal averSlop;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 47 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttStBase.java

@@ -0,0 +1,47 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.AttStBaseKey;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "水文站信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttStBase extends AttStBaseKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "测站名称")
+    private String stName;
+    @Schema(description = "测站类型")
+    private String stType;
+    @Schema(description = "测站经度")
+    private BigDecimal stLong;
+    @Schema(description = "测站纬度")
+    private BigDecimal stLat;
+    @Schema(description = "测站地址")
+    private String stSite;
+    @Schema(description = "建站年月")
+    private Date stYearMon;
+    @Schema(description = "开始报汛年月")
+    private Date begRepoYearMon;
+    @Schema(description = "岸别")
+    private String bank;
+    @Schema(description = "方位")
+    private Short stDir;
+    @Schema(description = "集水面积(km²)")
+    private BigDecimal catArea;
+    @Schema(description = "监测项目")
+    private String moniItem;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+}

+ 91 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/AttWagaBase.java

@@ -0,0 +1,91 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Schema(description = "泵站信息实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class AttWagaBase extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "泵站编码")
+    private String wagaCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+    @Schema(description = "泵站名称")
+    private String wagaName;
+    @Schema(description = "起点经度")
+    private BigDecimal startLong;
+    @Schema(description = "起点纬度")
+    private BigDecimal startLat;
+    @Schema(description = "终点经度")
+    private BigDecimal endLong;
+    @Schema(description = "终点纬度")
+    private BigDecimal endLat;
+    @Schema(description = "泵站位置")
+    private String wagaLoc;
+    @Schema(description = "泵站类型")
+    private String wagaType;
+    @Schema(description = "泵站用途")
+    private String wagaUse;
+    @Schema(description = "工程等级")
+    private String engGrad;
+    @Schema(description = "工程规模")
+    private String engScal;
+    @Schema(description = "主要水工类型")
+    private String wainWasoType;
+    @Schema(description = "通航吨位")
+    private BigDecimal lockDisc;
+    @Schema(description = "泵站台数")
+    private BigDecimal gaorNum;
+    @Schema(description = "装机功率")
+    private BigDecimal insPow;
+    @Schema(description = "总装机容量")
+    private BigDecimal desTotInsCap;
+    @Schema(description = "工程状态")
+    private String engStat;
+    @Schema(description = "运行状态")
+    private String runStat;
+    @Schema(description = "开工日期")
+    private Date startDate;
+    @Schema(description = "竣工日期")
+    private Date compDate;
+    @Schema(description = "管理单位")
+    private String admDep;
+    @Schema(description = "备注")
+    private String note;
+    @Schema(description = "更新日期")
+    private Date updDate;
+    @Schema(description = "类型")
+    private String type;
+    @Schema(description = "泵站总净宽")
+    private BigDecimal gaorTotNetWid;
+    @Schema(description = "河流编码")
+    private String rvCode;
+    @Schema(description = "行政区划代码")
+    private String adcd;
+    @Schema(description = "水资源分区代码")
+    private String wscd;
+    @Schema(description = "拦河坝高")
+    private BigDecimal rubDamHig;
+    @Schema(description = "拦河坝长")
+    private BigDecimal rubDamLen;
+    @Schema(description = "数据来源")
+    private String source;
+    @Schema(description = "工程类型")
+    private String gcType;
+    @Schema(description = "原编码")
+    private String oldCode;
+    @Schema(description = "关键字")
+    private String key;
+}

+ 23 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/BizCateTree.java

@@ -0,0 +1,23 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "分类树实体")
+public class BizCateTree {
+    @Schema(description = "分类ID")
+    private String cateId;
+    @Schema(description = "父分类ID")
+    private String catePid;
+    @Schema(description = "分类名称")
+    private String cateName;
+    @Schema(description = "业务部门")
+    private String bizDept;
+    @Schema(description = "状态(open/closed)")
+    private String state;
+    @Schema(description = "父ID")
+    private String _parentId;
+    @Schema(description = "子节点")
+    private String children;
+}

+ 23 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/BizDocFileParam.java

@@ -0,0 +1,23 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@Schema(description = "文档文件参数实体")
+public class BizDocFileParam {
+    @Schema(description = "文件类型")
+    private String fileType;
+    @Schema(description = "文件名")
+    private String fileName;
+    @Schema(description = "文件分类")
+    private String fileCate;
+    @Schema(description = "文件大小")
+    private BigDecimal fileSize;
+    @Schema(description = "文件描述")
+    private String fileDesc;
+    @Schema(description = "下载次数")
+    private Integer downTimes;
+}

+ 65 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/CmsArticle.java

@@ -0,0 +1,65 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Schema(description = "内容文章实体")
+@Data
+public class CmsArticle {
+    @Schema(description = "文章ID")
+    private String aid;
+    @Schema(description = "业务部门")
+    private String bizDept;
+    @Schema(description = "分类ID")
+    private String cateId;
+    @Schema(description = "标题")
+    private String title;
+    @Schema(description = "副标题")
+    private String subtitle;
+    @Schema(description = "关键词")
+    private String keyword;
+    @Schema(description = "是否图片新闻")
+    private String isImage;
+    @Schema(description = "缩略图")
+    private String thumbnail;
+    @Schema(description = "来源")
+    private String source;
+    @Schema(description = "摘要")
+    private String summary;
+    @Schema(description = "状态")
+    private String status;
+    @Schema(description = "发布人")
+    private String pubUser;
+    @Schema(description = "发布日期")
+    private Date pubDate;
+    @Schema(description = "截止日期")
+    private Date dueDate;
+    @Schema(description = "审核人")
+    private String auditUser;
+    @Schema(description = "审核日期")
+    private Date auditDate;
+    @Schema(description = "是否置顶")
+    private String isTop;
+    @Schema(description = "是否删除")
+    private String isDel;
+    @Schema(description = "是否允许评论")
+    private String isComment;
+    @Schema(description = "浏览次数")
+    private Integer viewCount;
+    @Schema(description = "评论次数")
+    private Integer commentCount;
+    @Schema(description = "文章内容")
+    private String content;
+    @Schema(description = "发布平台")
+    private String pubPlatform;
+    @Schema(description = "标题颜色")
+    private String titleColor;
+    @Schema(description = "类型")
+    private String type;
+
+    /** 文章文件列表 */
+    private List<CmsArticleFile> articleFiles;
+}

+ 27 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/CmsArticleFile.java

@@ -0,0 +1,27 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "内容文件实体")
+@Data
+public class CmsArticleFile {
+    @Schema(description = "文件ID")
+    private String fileId;
+    @Schema(description = "文章ID")
+    private String aid;
+    @Schema(description = "文件类型")
+    private String fileType;
+    @Schema(description = "文件名称")
+    private String fileName;
+    @Schema(description = "文件大小")
+    private BigDecimal fileSize;
+    @Schema(description = "文件路径")
+    private String filePath;
+    @Schema(description = "文件描述")
+    private String fileDesc;
+    @Schema(description = "下载次数")
+    private Integer downTimes;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/CmsCate.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "内容分类实体")
+@Data
+public class CmsCate {
+    @Schema(description = "分类ID")
+    private String cateId;
+    @Schema(description = "父分类ID")
+    private String catePid;
+    @Schema(description = "分类名称")
+    private String cateName;
+    @Schema(description = "分类备注")
+    private String cateMemo;
+    @Schema(description = "业务部门")
+    private String bizDept;
+    @Schema(description = "排序")
+    private Long cateSeq;
+
+    /** 子分类*/
+    private List<CmsCate> children;
+    /** 分类名称(树形显示) */
+    private String name;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/DocCate.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "文档分类实体")
+@Data
+public class DocCate {
+    @Schema(description = "分类ID")
+    private String cateId;
+    @Schema(description = "父分类ID")
+    private String catePid;
+    @Schema(description = "分类名称")
+    private String cateName;
+    @Schema(description = "分类备注")
+    private String cateMemo;
+    @Schema(description = "业务部门")
+    private String bizDept;
+    @Schema(description = "排序")
+    private Long cateSeq;
+
+    /** 子分类*/
+    private List<DocCate> children;
+    /** 分类名称(树形显示) */
+    private String name;
+}

+ 36 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/DocFile.java

@@ -0,0 +1,36 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Schema(description = "文档文件实体")
+@Data
+public class DocFile {
+    @Schema(description = "文件ID")
+    private String fileId;
+    @Schema(description = "关联ID")
+    private String aid;
+    @Schema(description = "文件类型")
+    private String fileType;
+    @Schema(description = "文件名称")
+    private String fileName;
+    @Schema(description = "文件大小")
+    private BigDecimal fileSize;
+    @Schema(description = "文件路径")
+    private String filePath;
+    @Schema(description = "文件分类")
+    private String fileCate;
+    @Schema(description = "文件描述")
+    private String fileDesc;
+    @Schema(description = "文件时间")
+    private Date fileTime;
+    @Schema(description = "下载次数")
+    private Integer downTimes;
+
+    /** 文件ID列表(用于批量移动) */
+    private List<String> fileIds;
+}

+ 21 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/GCSZ.java

@@ -0,0 +1,21 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "工程设置实体")
+public class GCSZ {
+    @Schema(description = "测站编码")
+    private String STCD;
+    @Schema(description = "测站名称")
+    private String STNM;
+    @Schema(description = "河流名称")
+    private String RVNM;
+    @Schema(description = "水系名称")
+    private String HNNM;
+    @Schema(description = "站类")
+    private String TTST;
+    @Schema(description = "报汛等级")
+    private String RGFLRSCP;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjDike.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Schema(description = "堤防对象实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class ObjDike extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "堤防编码")
+    private String dikeCode;
+    @Schema(description = "堤防名称")
+    private String dikeName;
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjPust.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Schema(description = "水闸对象实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class ObjPust extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "水闸编码")
+    private String pustCode;
+    @Schema(description = "水闸名称")
+    private String pustName;
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjRes.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Schema(description = "水库对象实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class ObjRes extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "水库编码")
+    private String resCode;
+    @Schema(description = "水库名称")
+    private String resName;
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/ObjWaga.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import com.goldenwater.common.core.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Schema(description = "泵站对象实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class ObjWaga extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "泵站编码")
+    private String wagaCode;
+    @Schema(description = "泵站名称")
+    private String wagaName;
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 27 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/Player.java

@@ -0,0 +1,27 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "播放器配置实体")
+@Data
+public class Player {
+    @Schema(description = "播放器ID")
+    private String plyId;
+    @Schema(description = "播放器编码")
+    private String plyCode;
+    @Schema(description = "播放器名称")
+    private String plyName;
+    @Schema(description = "播放器类型")
+    private String plyType;
+    @Schema(description = "播放地址")
+    private String plyUrl;
+    @Schema(description = "显示高度")
+    private String viewHeigh;
+    @Schema(description = "显示宽度")
+    private String viewWidth;
+    @Schema(description = "浏览次数")
+    private Short viewCount;
+    @Schema(description = "状态")
+    private String plyState;
+}

+ 23 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/PlayerItem.java

@@ -0,0 +1,23 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "播放器项目实体")
+@Data
+public class PlayerItem {
+    @Schema(description = "项目ID")
+    private String id;
+    @Schema(description = "播放器ID")
+    private String plyId;
+    @Schema(description = "图片文本")
+    private String imgText;
+    @Schema(description = "图片地址")
+    private String imgUrl;
+    @Schema(description = "链接地址")
+    private String linkUrl;
+    @Schema(description = "链接类型")
+    private String linkType;
+    @Schema(description = "备注")
+    private String note;
+}

+ 24 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelDikeAd1.java

@@ -0,0 +1,24 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelDikeAd1Key;
+
+import java.util.Date;
+
+@Schema(description = "堤防行政信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelDikeAd1 extends RelDikeAd1Key {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 24 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelDikeBas.java

@@ -0,0 +1,24 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelDikeBasKey;
+
+import java.util.Date;
+
+@Schema(description = "堤防基本信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelDikeBas extends RelDikeBasKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelPustAd.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelPustAdKey;
+
+import java.util.Date;
+
+@Schema(description = "水闸行政信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelPustAd extends RelPustAdKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+    @Schema(description = "数据来源")
+    private String source;
+    @Schema(description = "原编码")
+    private String oldCode;
+}

+ 24 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelPustBas.java

@@ -0,0 +1,24 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelPustBasKey;
+
+import java.util.Date;
+
+@Schema(description = "水闸基本信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelPustBas extends RelPustBasKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+}

+ 26 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelResAd1.java

@@ -0,0 +1,26 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelResAd1Key;
+
+import java.util.Date;
+
+@Schema(description = "水库行政信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelResAd1 extends RelResAd1Key {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+    @Schema(description = "数据来源")
+    private String source;
+}

+ 26 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelResBas.java

@@ -0,0 +1,26 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelResBasKey;
+
+import java.util.Date;
+
+@Schema(description = "水库基本信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelResBas extends RelResBasKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+    @Schema(description = "数据来源")
+    private String source;
+}

+ 28 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelWagaAd.java

@@ -0,0 +1,28 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelWagaAdKey;
+
+import java.util.Date;
+
+@Schema(description = "泵站行政信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelWagaAd extends RelWagaAdKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+    @Schema(description = "数据来源")
+    private String source;
+    @Schema(description = "原编码")
+    private String oldCode;
+}

+ 26 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/RelWagaBas.java

@@ -0,0 +1,26 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import com.goldenwater.slgc.domain.key.RelWagaBasKey;
+
+import java.util.Date;
+
+@Schema(description = "泵站基本信息关联实体")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class RelWagaBas extends RelWagaBasKey {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "起始日期")
+    private Date fromDate;
+    @Schema(description = "截止日期")
+    private Date toDate;
+    @Schema(description = "数据来源")
+    private String source;
+}

+ 39 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/SlgcWaterUnit.java

@@ -0,0 +1,39 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "水管单位实体")
+@Data
+public class SlgcWaterUnit {
+    @Schema(description = "主键ID")
+    private String id;
+    @Schema(description = "单位名称")
+    private String name;
+    @Schema(description = "省份")
+    private String province;
+    @Schema(description = "城市")
+    private String city;
+    @Schema(description = "传真")
+    private String fax;
+    @Schema(description = "经度")
+    private String longitude;
+    @Schema(description = "纬度")
+    private String latitude;
+    @Schema(description = "地址")
+    private String address;
+    @Schema(description = "联系人")
+    private String contacts;
+    @Schema(description = "联系电话")
+    private String telphone;
+    @Schema(description = "创建时间")
+    private Date createTime;
+    @Schema(description = "更新时间")
+    private Date updateTime;
+    @Schema(description = "是否删除(0-正常 1-删除)")
+    private String isDelete;
+    @Schema(description = "最近考核日期")
+    private String approvalDate;
+}

+ 27 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/SlgcWaterUnitRecord.java

@@ -0,0 +1,27 @@
+package com.goldenwater.slgc.domain;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "审核记录实体")
+@Data
+public class SlgcWaterUnitRecord {
+    @Schema(description = "主键ID")
+    private String id;
+    @Schema(description = "考核编号")
+    private String approvalNumber;
+    @Schema(description = "考核日期")
+    private Date approvalDate;
+    @Schema(description = "水管单位ID")
+    private String unitId;
+    @Schema(description = "考核内容")
+    private String approvalContent;
+    @Schema(description = "创建时间")
+    private Date createTime;
+    @Schema(description = "更新时间")
+    private Date updateTime;
+    @Schema(description = "是否删除(0-正常 1-删除)")
+    private String isDelete;
+}

+ 124 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/Wry.java

@@ -0,0 +1,124 @@
+package com.goldenwater.slgc.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@Schema(description = "污染源环保统计实体")
+public class Wry {
+    @Schema(description = "主键ID")
+    private String id;
+
+    @Schema(description = "菜单编号")
+    private String menuNum;
+
+    @Schema(description = "地区")
+    private String area;
+
+    @Schema(description = "年份")
+    private String year;
+
+    @Schema(description = "字段1")
+    private String f1;
+
+    @Schema(description = "字段2")
+    private String f2;
+
+    @Schema(description = "字段3")
+    private String f3;
+
+    @Schema(description = "字段4")
+    private String f4;
+
+    @Schema(description = "字段5")
+    private String f5;
+
+    @Schema(description = "字段6")
+    private String f6;
+
+    @Schema(description = "字段7")
+    private String f7;
+
+    @Schema(description = "字段8")
+    private String f8;
+
+    @Schema(description = "字段9")
+    private String f9;
+
+    @Schema(description = "字段10")
+    private String f10;
+
+    @Schema(description = "字段11")
+    private String f11;
+
+    @Schema(description = "字段12")
+    private String f12;
+
+    @Schema(description = "字段13")
+    private String f13;
+
+    @Schema(description = "字段14")
+    private String f14;
+
+    @Schema(description = "字段15")
+    private String f15;
+
+    @Schema(description = "字段16")
+    private String f16;
+
+    @Schema(description = "字段17")
+    private String f17;
+
+    @Schema(description = "字段18")
+    private String f18;
+
+    @Schema(description = "字段19")
+    private String f19;
+
+    @Schema(description = "字段20")
+    private String f20;
+
+    @Schema(description = "字段21")
+    private String f21;
+
+    @Schema(description = "字段22")
+    private String f22;
+
+    @Schema(description = "字段23")
+    private String f23;
+
+    @Schema(description = "字段24")
+    private String f24;
+
+    @Schema(description = "字段25")
+    private String f25;
+
+    @Schema(description = "字段26")
+    private String f26;
+
+    @Schema(description = "字段27")
+    private String f27;
+
+    @Schema(description = "字段28")
+    private String f28;
+
+    @Schema(description = "字段29")
+    private String f29;
+
+    @Schema(description = "字段30")
+    private String f30;
+
+    @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @Schema(description = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    @Schema(description = "是否删除(0-正常 1-删除)")
+    private String isDelete;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttBridBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "桥梁实体主键")
+@Data
+public class AttBridBaseKey {
+    @Schema(description = "桥梁编码")
+    private String bridCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttDikeBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "堤防巡查属性主键")
+@Data
+public class AttDikeBaseKey {
+    @Schema(description = "堤防编码")
+    private String dikeCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttDiscBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "消力池实体主键")
+@Data
+public class AttDiscBaseKey {
+    @Schema(description = "消力池编码")
+    private String discCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttDpdsBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "排水沟实体主键")
+@Data
+public class AttDpdsBaseKey {
+    @Schema(description = "排水沟编码")
+    private String dpdsCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttFlumBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "渡槽实体主键")
+@Data
+public class AttFlumBaseKey {
+    @Schema(description = "渡槽编码")
+    private String flumCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttFsdaBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "蓄滞洪区实体主键")
+@Data
+public class AttFsdaBaseKey {
+    @Schema(description = "蓄滞洪区编码")
+    private String fsdaCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

+ 15 - 0
gw-slgcrun/src/main/java/com/goldenwater/slgc/domain/key/AttGrpjBaseKey.java

@@ -0,0 +1,15 @@
+package com.goldenwater.slgc.domain.key;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Schema(description = "沟渠实体主键")
+@Data
+public class AttGrpjBaseKey {
+    @Schema(description = "沟渠编码")
+    private String grpjCode;
+    @Schema(description = "采集日期")
+    private Date collDate;
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов