Compare commits

...

97 Commits

Author SHA1 Message Date
gjh aef4c93d1a 配置信息调整(本地 和 生产) 20 hours ago
gjh d379f4fbe9 增加字段用于区分是否上报过点位 2 days ago
gjh 939f97673f 工单导出加入线程池优化,调整检索条件 2 days ago
gjh d796e1ebda 文件校验 2 days ago
gjh 784bb88710 配置修改 3 days ago
gjh 901cd64de9 工单批量上传优化v2 3 days ago
gjh ff1d0328c4 工单批量上传优化 4 days ago
gjh c40242e434 批量点位上报优化 4 days ago
gjh c03400dc8c 延期时间校验 4 days ago
gjh 8e4b9d445c 审批意见调整 5 days ago
gjh 02699cd8db 工单相关罚款逻辑调整 5 days ago
gjh 684f962a75 批量审核工单 1 week ago
gjh fa59455db2 url调整 1 week ago
gjh f036e10893 小程序订阅 1 week ago
gjh 5653ca8954 框架自带权限过滤取消多余代码 1 week ago
gjh 428ab58dc2 排序调整和 同单单位派遣处理时间延续而非重置 1 week ago
gjh 7e4f7e7168 工单信息导出:延期,扣款等多个字段 1 week ago
gjh 0e472041b9 工单信息导出相关调整 2 weeks ago
gjh fe9d86248b 二次派遣不会重新计算时间 2 weeks ago
gjh c89053e3ca 工单管理若干需求调整 2 weeks ago
gjh 492fed0f1e 工单查询检索字段增加,新增项目绑定部门 3 weeks ago
gjh 2d08c578ae 待处理人修改 3 weeks ago
gjh 82bdbd6ffa 增加查询条件避免出现报错 3 weeks ago
gjh 2fea5db25b 合同管理加入角色权限过滤,项目管理需要协商 3 weeks ago
gjh e56a432241 点位信息导入(关联运维单位和派出所 线程池优化) 3 weeks ago
gjh 9a95e74860 工单信息导出 3 weeks ago
gjh 203e6d94ce 点位信息的导入导出 3 weeks ago
gjh ae889418ce 根据项目名称获取到对应的运维单位(乙方) 3 weeks ago
gjh 9ed0a94c0d 1.关闭验证码 2.增加工单处理接口给小程序 4 weeks ago
gjh 349d60fb66 根据url 返回文件流 1 month ago
gjh 6635087ebe 开发权限 2 months ago
gjh aa9ab78bda 根据合同名称查询对应的运维单位,创建日常巡检任务时设置默认交付内容 2 months ago
gjh 3aba8f46ee 延期审核流程 2 months ago
gjh 9fc9fba0fe 工单派遣,工单作废,再次延期判断 2 months ago
gjh 2c69be80f9 工单派遣列表接口 2 months ago
gjh 1845990686 工单延期历史记录 2 months ago
gjh 0350f3decf 工单延期 2 months ago
gjh 21fa46f315 工单初审 终审 回退 2 months ago
gjh b73bcca465 工单处理剩余时间计算 2 months ago
gjh 1c9035e6c5 工单处理以及工单处理详情接口 2 months ago
gjh c863ea73a0 故障上报 派遣流程修改,新增工单流程信息 2 months ago
gjh 2c59acd62d 工单延期基础接口 2 months ago
gjh 9fa8a43afc 1.点位下拉框 2.相关列表排序按照最新创建时间 2 months ago
gjh 4c83236eef 工作日报,附件设置 2 months ago
gjh 2db9f39222 限制取消 2 months ago
gjh 9bb8b3da7d 补充 附件 2 months ago
gjh 5d29fd67cf 补充 2 months ago
gjh 3872dd78f5 支持上传多个附件 采用序列化存储,根据id再反序列化回显 2 months ago
gjh 51aeea7899 新增考核项目导入 并增加文件名称字段 2 months ago
gjh 5e81a91190 关闭XSS开关 2 months ago
gjh e851a11b45 判断当月是否已经评估分 2 months ago
gjh b2b628979e 判断当月是否已经评估分 2 months ago
gjh 2d194d3177 通知公告基础接口 2 months ago
gjh 6293f54a53 过滤掉没有评分的记录 2 months ago
gjh d6703fa80d 1.编辑考核 2成绩查询 3.配置考核项 2 months ago
gjh 0ba9aa6fd5 考核相关接口 2 months ago
gjh 817c9d10f0 新增基础接口 2 months ago
gjh 9a8a7bc97d 材料库基础接口 组织机构下拉框 工作列表增加时间范围查询 2 months ago
gjh 1718b5b316 根据服务目录自动和手动创建工作内容 2 months ago
gjh 0ccccdae82 根据服务目录自动创建 工作内容 2 months ago
gjh 843c86cf9e 专项工作列表 2 months ago
gjh 7fb42a549e 通过服务目录id获取对应的所有 协议内容 2 months ago
gjh 98c291f740 手动创建巡检任务 2 months ago
gjh eff315be79 新增字段限制解除--日报 2 months ago
gjh 6e12139124 点位上报,工单信息 巡检日报字段调整 2 months ago
gjh fb816d4e5d 巡检日报基础接口 3 months ago
gjh 5326e7774a 故障小类下拉框 和 项目管理合同基础接口 3 months ago
gjh 7e156b37c1 根据巡检计划模拟生成工单 3 months ago
gjh b287b8f9b1 合同管理-配置服务目录生成巡检计划 3 months ago
gjh 7b5a96156c 合同类别、文档类别下拉框 3 months ago
gjh 35481a33fd 文档信息基础接口 3 months ago
gjh 60175c0c09 新增合同-所属项目下拉框 3 months ago
gjh d2ddfaf16e 单位,区域,故障大类下拉框 3 months ago
gjh c9a4b22e69 故障大类类别接口用于前端新增-项目信息 3 months ago
gjh 809abcfddc 项目合同基础接口 3 months ago
gjh 5479d5ffa2 合同信息基础接口 3 months ago
gjh 3fcf549619 服务目录下拉框+新增 3 months ago
gjh e2e757012e 下载服务内容模板 3 months ago
gjh e0de9e725c 服务具体内容导入接口 3 months ago
gjh 8e3831afc6 字段修改 3 months ago
gjh 440123c869 服务目录列表修改 3 months ago
gjh cfbc349722 修改字段 3 months ago
gjh f153bd4eda 资产管理-点位信息列表查询-基础接口 4 months ago
gjh 78fd133125 资产管理-点位信息项目目录-基础接口 4 months ago
gjh 374ae6a823 服务目录-协议信息表-基础接口 4 months ago
gjh aad7aa92c3 服务目录基础接口 4 months ago
gjh b79b0bd801 巡检日报基础接口 4 months ago
gjh b6620309bc 工单延期审核基础接口 4 months ago
gjh 5c8a0d07cb 工单信息表字段修改 4 months ago
gjh f64027156d 巡检计划表,项目信息表基础接口 4 months ago
gjh 4c4f3b236d 初始化系统 4 months ago
gjh da004f3cad 增量sql脚本备份 5 months ago
gjh fd803e8f69 增量sql脚本备份 5 months ago
gejunhao ba2521dd23 更新字段 6 months ago
gejunhao b5471d6540 更新字段 6 months ago
gejunhao 23c3907cfa 测试 6 months ago
gejunhao 0d6ef45c31 初始化项目测试 6 months ago
  1. 6
      pom.xml
  2. 5
      ruoyi-admin/pom.xml
  3. 2
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java
  4. 26
      ruoyi-admin/src/main/resources/application-prod.yml
  5. 8
      ruoyi-admin/src/main/resources/application.yml
  6. 90
      ruoyi-admin/src/test/java/org/dromara/test/AssertUnitTest.java
  7. 140
      ruoyi-admin/src/test/java/org/dromara/test/DemoUnitTest.java
  8. 144
      ruoyi-admin/src/test/java/org/dromara/test/ParamUnitTest.java
  9. 108
      ruoyi-admin/src/test/java/org/dromara/test/TagUnitTest.java
  10. 24
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/file/FileUtils.java
  11. 115
      ruoyi-modules/guoyan-platform/pom.xml
  12. 13
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/config/AppConfig.java
  13. 175
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/AgreementInfoController.java
  14. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/CheckTypeController.java
  15. 150
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractInfoController.java
  16. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractTypeController.java
  17. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DailyInspectionReportController.java
  18. 114
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DistrictInfoController.java
  19. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DocumentInfoController.java
  20. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DocumentTypeController.java
  21. 136
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationInfoController.java
  22. 138
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationTemplateController.java
  23. 175
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ExcelController.java
  24. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/FaultCategoryTypeController.java
  25. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/FaultSubcategoryTypeController.java
  26. 147
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java
  27. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/LargeRatingTypeController.java
  28. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/MaterialInfoController.java
  29. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/NoticeInfoController.java
  30. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/OrganizationTypeController.java
  31. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/PartyInfoController.java
  32. 140
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/PerformanceManagementController.java
  33. 114
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/PointInfoController.java
  34. 118
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectCategoryPointController.java
  35. 148
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java
  36. 187
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/RoutineInspectionInfoController.java
  37. 181
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java
  38. 88
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/TestController.java
  39. 269
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WeChatController.java
  40. 113
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkDealInfoController.java
  41. 114
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkDelayProcessController.java
  42. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayController.java
  43. 115
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayHistoryController.java
  44. 233
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java
  45. 123
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderProcessController.java
  46. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkReviewInfoController.java
  47. 70
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/converter/WorkOrderStatusConverter.java
  48. 106
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AgreementInfo.java
  49. 32
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/Attachment.java
  50. 75
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AttachmentSerializer.java
  51. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/CheckType.java
  52. 142
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ContractInfo.java
  53. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ContractType.java
  54. 115
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DailyInspectionReport.java
  55. 70
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DistrictInfo.java
  56. 57
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DocumentInfo.java
  57. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DocumentType.java
  58. 102
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/EvaluationInfo.java
  59. 77
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/EvaluationTemplate.java
  60. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/FaultCategoryType.java
  61. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/FaultSubcategoryType.java
  62. 109
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/InspectionPlanInfo.java
  63. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/LargeRatingType.java
  64. 76
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/MaterialInfo.java
  65. 74
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/NoticeInfo.java
  66. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/OrganizationType.java
  67. 52
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/PartyInfo.java
  68. 84
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/PerformanceManagement.java
  69. 110
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/PointInfo.java
  70. 76
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectCategoryPoint.java
  71. 107
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectInfo.java
  72. 45
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectManager.java
  73. 111
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/RoutineInspectionInfo.java
  74. 80
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ServiceCatalogCategory.java
  75. 77
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkDealInfo.java
  76. 84
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkDelayProcess.java
  77. 149
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelay.java
  78. 159
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelayHistory.java
  79. 213
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java
  80. 82
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderProcess.java
  81. 124
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkReviewInfo.java
  82. 18
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/app/WeComSubscribeDataItem.java
  83. 43
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/app/WeComSubscribeMessageRequest.java
  84. 96
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/AgreementInfoBo.java
  85. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/CheckTypeBo.java
  86. 168
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ContractInfoBo.java
  87. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ContractTypeBo.java
  88. 122
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DailyInspectionReportBo.java
  89. 66
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DistrictInfoBo.java
  90. 64
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DocumentInfoBo.java
  91. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DocumentTypeBo.java
  92. 107
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/EvaluationInfoBo.java
  93. 77
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/EvaluationTemplateBo.java
  94. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/FaultCategoryTypeBo.java
  95. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/FaultSubcategoryTypeBo.java
  96. 110
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/InspectionPlanInfoBo.java
  97. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/LargeRatingTypeBo.java
  98. 74
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/MaterialInfoBo.java
  99. 79
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/NoticeInfoBo.java
  100. 42
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/OrganizationTypeBo.java

6
pom.xml

@ -346,6 +346,12 @@
<version>${revision}</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>guoyan-platform</artifactId>
<version>${revision}</version>
</dependency>
<!-- 工作流模块 -->
<dependency>
<groupId>org.dromara</groupId>

5
ruoyi-admin/pom.xml

@ -86,6 +86,11 @@
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
<!-- guoyan-platform-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>guoyan-platform</artifactId>
</dependency>
<!-- 工作流模块 -->
<dependency>

2
ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java

@ -60,7 +60,7 @@ public class PasswordAuthStrategy implements IAuthStrategy {
boolean captchaEnabled = captchaProperties.getEnable();
// 验证码开关
if (captchaEnabled) {
validateCaptcha(tenantId, username, code, uuid);
//validateCaptcha(tenantId, username, code, uuid);
}
LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> {
SysUserVo user = loadUserByUsername(username);

26
ruoyi-admin/src/main/resources/application-prod.yml

@ -4,7 +4,7 @@ spring.servlet.multipart.location: /ruoyi/server/temp
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP
@ -16,7 +16,7 @@ spring.boot.admin.client:
--- # snail-job 配置
snail-job:
enabled: true
enabled: false
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
group: "ruoyi_group"
# SnailJob 接入验证令牌 详见 script/sql/snail_job.sql `sj_group_config` 表
@ -50,17 +50,17 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://10.1.21.250:3306/prod-management-platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: root
password: HXj-6nR|D8xy*h#!I&:(
# 从库数据源
slave:
lazy: true
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username:
password:
# slave:
# lazy: true
# type: ${spring.datasource.type}
# driverClassName: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
# username:
# password:
# oracle:
# type: ${spring.datasource.type}
# driverClassName: oracle.jdbc.OracleDriver
@ -101,11 +101,11 @@ spring.data:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
port: 6383
# 数据库索引
database: 0
# redis 密码必须配置
password: ruoyi123
password: F*Nx=BZli+ZCCI-Fil+3
# 连接超时时间
timeout: 10s
# 是否开启ssl

8
ruoyi-admin/src/main/resources/application.yml

@ -21,7 +21,8 @@ captcha:
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
# 服务器的HTTP端口 本地默认为:8080 远程测试 dev:18080
# prod: 18082
port: 8080
servlet:
# 应用的访问路径
@ -70,7 +71,8 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: @profiles.active@
# 生产环境 prod
active: dev
# 文件上传
servlet:
multipart:
@ -227,6 +229,8 @@ xss:
- /system/notice
- /workflow/model/save
- /workflow/model/editModelXml
## 通知公告富文本
- /platform/noticeInfo
# 全局线程池相关配置
# 如使用JDK21请直接使用虚拟线程 不要开启此配置

90
ruoyi-admin/src/test/java/org/dromara/test/AssertUnitTest.java

@ -1,45 +1,45 @@
package org.dromara.test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
/**
* 断言单元测试案例
*
* @author Lion Li
*/
@DisplayName("断言单元测试案例")
public class AssertUnitTest {
@DisplayName("测试 assertEquals 方法")
@Test
public void testAssertEquals() {
Assertions.assertEquals("666", new String("666"));
Assertions.assertNotEquals("666", new String("666"));
}
@DisplayName("测试 assertSame 方法")
@Test
public void testAssertSame() {
Object obj = new Object();
Object obj1 = obj;
Assertions.assertSame(obj, obj1);
Assertions.assertNotSame(obj, obj1);
}
@DisplayName("测试 assertTrue 方法")
@Test
public void testAssertTrue() {
Assertions.assertTrue(true);
Assertions.assertFalse(true);
}
@DisplayName("测试 assertNull 方法")
@Test
public void testAssertNull() {
Assertions.assertNull(null);
Assertions.assertNotNull(null);
}
}
//package org.dromara.test;
//
//import org.junit.jupiter.api.Assertions;
//import org.junit.jupiter.api.DisplayName;
//import org.junit.jupiter.api.Test;
//
///**
// * 断言单元测试案例
// *
// * @author Lion Li
// */
//@DisplayName("断言单元测试案例")
//public class AssertUnitTest {
//
// @DisplayName("测试 assertEquals 方法")
// @Test
// public void testAssertEquals() {
// Assertions.assertEquals("666", new String("666"));
// Assertions.assertNotEquals("666", new String("666"));
// }
//
// @DisplayName("测试 assertSame 方法")
// @Test
// public void testAssertSame() {
// Object obj = new Object();
// Object obj1 = obj;
// Assertions.assertSame(obj, obj1);
// Assertions.assertNotSame(obj, obj1);
// }
//
// @DisplayName("测试 assertTrue 方法")
// @Test
// public void testAssertTrue() {
// Assertions.assertTrue(true);
// Assertions.assertFalse(true);
// }
//
// @DisplayName("测试 assertNull 方法")
// @Test
// public void testAssertNull() {
// Assertions.assertNull(null);
// Assertions.assertNotNull(null);
// }
//
//}

140
ruoyi-admin/src/test/java/org/dromara/test/DemoUnitTest.java

@ -1,70 +1,70 @@
package org.dromara.test;
import org.dromara.common.core.config.RuoYiConfig;
import org.junit.jupiter.api.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.concurrent.TimeUnit;
/**
* 单元测试案例
*
* @author Lion Li
*/
@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件
@DisplayName("单元测试案例")
public class DemoUnitTest {
@Autowired
private RuoYiConfig ruoYiConfig;
@DisplayName("测试 @SpringBootTest @Test @DisplayName 注解")
@Test
public void testTest() {
System.out.println(ruoYiConfig);
}
@Disabled
@DisplayName("测试 @Disabled 注解")
@Test
public void testDisabled() {
System.out.println(ruoYiConfig);
}
@Timeout(value = 2L, unit = TimeUnit.SECONDS)
@DisplayName("测试 @Timeout 注解")
@Test
public void testTimeout() throws InterruptedException {
Thread.sleep(3000);
System.out.println(ruoYiConfig);
}
@DisplayName("测试 @RepeatedTest 注解")
@RepeatedTest(3)
public void testRepeatedTest() {
System.out.println(666);
}
@BeforeAll
public static void testBeforeAll() {
System.out.println("@BeforeAll ==================");
}
@BeforeEach
public void testBeforeEach() {
System.out.println("@BeforeEach ==================");
}
@AfterEach
public void testAfterEach() {
System.out.println("@AfterEach ==================");
}
@AfterAll
public static void testAfterAll() {
System.out.println("@AfterAll ==================");
}
}
//package org.dromara.test;
//
//import org.dromara.common.core.config.RuoYiConfig;
//import org.junit.jupiter.api.*;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//
//import java.util.concurrent.TimeUnit;
//
///**
// * 单元测试案例
// *
// * @author Lion Li
// */
//@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件
//@DisplayName("单元测试案例")
//public class DemoUnitTest {
//
// @Autowired
// private RuoYiConfig ruoYiConfig;
//
// @DisplayName("测试 @SpringBootTest @Test @DisplayName 注解")
// @Test
// public void testTest() {
// System.out.println(ruoYiConfig);
// }
//
// @Disabled
// @DisplayName("测试 @Disabled 注解")
// @Test
// public void testDisabled() {
// System.out.println(ruoYiConfig);
// }
//
// @Timeout(value = 2L, unit = TimeUnit.SECONDS)
// @DisplayName("测试 @Timeout 注解")
// @Test
// public void testTimeout() throws InterruptedException {
// Thread.sleep(3000);
// System.out.println(ruoYiConfig);
// }
//
//
// @DisplayName("测试 @RepeatedTest 注解")
// @RepeatedTest(3)
// public void testRepeatedTest() {
// System.out.println(666);
// }
//
// @BeforeAll
// public static void testBeforeAll() {
// System.out.println("@BeforeAll ==================");
// }
//
// @BeforeEach
// public void testBeforeEach() {
// System.out.println("@BeforeEach ==================");
// }
//
// @AfterEach
// public void testAfterEach() {
// System.out.println("@AfterEach ==================");
// }
//
// @AfterAll
// public static void testAfterAll() {
// System.out.println("@AfterAll ==================");
// }
//
//}

144
ruoyi-admin/src/test/java/org/dromara/test/ParamUnitTest.java

@ -1,72 +1,72 @@
package org.dromara.test;
import org.dromara.common.core.enums.UserType;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.NullSource;
import org.junit.jupiter.params.provider.ValueSource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
/**
* 带参数单元测试案例
*
* @author Lion Li
*/
@DisplayName("带参数单元测试案例")
public class ParamUnitTest {
@DisplayName("测试 @ValueSource 注解")
@ParameterizedTest
@ValueSource(strings = {"t1", "t2", "t3"})
public void testValueSource(String str) {
System.out.println(str);
}
@DisplayName("测试 @NullSource 注解")
@ParameterizedTest
@NullSource
public void testNullSource(String str) {
System.out.println(str);
}
@DisplayName("测试 @EnumSource 注解")
@ParameterizedTest
@EnumSource(UserType.class)
public void testEnumSource(UserType type) {
System.out.println(type.getUserType());
}
@DisplayName("测试 @MethodSource 注解")
@ParameterizedTest
@MethodSource("getParam")
public void testMethodSource(String str) {
System.out.println(str);
}
public static Stream<String> getParam() {
List<String> list = new ArrayList<>();
list.add("t1");
list.add("t2");
list.add("t3");
return list.stream();
}
@BeforeEach
public void testBeforeEach() {
System.out.println("@BeforeEach ==================");
}
@AfterEach
public void testAfterEach() {
System.out.println("@AfterEach ==================");
}
}
//package org.dromara.test;
//
//import org.dromara.common.core.enums.UserType;
//import org.junit.jupiter.api.AfterEach;
//import org.junit.jupiter.api.BeforeEach;
//import org.junit.jupiter.api.DisplayName;
//import org.junit.jupiter.params.ParameterizedTest;
//import org.junit.jupiter.params.provider.EnumSource;
//import org.junit.jupiter.params.provider.MethodSource;
//import org.junit.jupiter.params.provider.NullSource;
//import org.junit.jupiter.params.provider.ValueSource;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.stream.Stream;
//
///**
// * 带参数单元测试案例
// *
// * @author Lion Li
// */
//@DisplayName("带参数单元测试案例")
//public class ParamUnitTest {
//
// @DisplayName("测试 @ValueSource 注解")
// @ParameterizedTest
// @ValueSource(strings = {"t1", "t2", "t3"})
// public void testValueSource(String str) {
// System.out.println(str);
// }
//
// @DisplayName("测试 @NullSource 注解")
// @ParameterizedTest
// @NullSource
// public void testNullSource(String str) {
// System.out.println(str);
// }
//
// @DisplayName("测试 @EnumSource 注解")
// @ParameterizedTest
// @EnumSource(UserType.class)
// public void testEnumSource(UserType type) {
// System.out.println(type.getUserType());
// }
//
// @DisplayName("测试 @MethodSource 注解")
// @ParameterizedTest
// @MethodSource("getParam")
// public void testMethodSource(String str) {
// System.out.println(str);
// }
//
// public static Stream<String> getParam() {
// List<String> list = new ArrayList<>();
// list.add("t1");
// list.add("t2");
// list.add("t3");
// return list.stream();
// }
//
// @BeforeEach
// public void testBeforeEach() {
// System.out.println("@BeforeEach ==================");
// }
//
// @AfterEach
// public void testAfterEach() {
// System.out.println("@AfterEach ==================");
// }
//
//
//}

108
ruoyi-admin/src/test/java/org/dromara/test/TagUnitTest.java

@ -1,54 +1,54 @@
package org.dromara.test;
import org.junit.jupiter.api.*;
import org.springframework.boot.test.context.SpringBootTest;
/**
* 标签单元测试案例
*
* @author Lion Li
*/
@SpringBootTest
@DisplayName("标签单元测试案例")
public class TagUnitTest {
@Tag("dev")
@DisplayName("测试 @Tag dev")
@Test
public void testTagDev() {
System.out.println("dev");
}
@Tag("prod")
@DisplayName("测试 @Tag prod")
@Test
public void testTagProd() {
System.out.println("prod");
}
@Tag("local")
@DisplayName("测试 @Tag local")
@Test
public void testTagLocal() {
System.out.println("local");
}
@Tag("exclude")
@DisplayName("测试 @Tag exclude")
@Test
public void testTagExclude() {
System.out.println("exclude");
}
@BeforeEach
public void testBeforeEach() {
System.out.println("@BeforeEach ==================");
}
@AfterEach
public void testAfterEach() {
System.out.println("@AfterEach ==================");
}
}
//package org.dromara.test;
//
//import org.junit.jupiter.api.*;
//import org.springframework.boot.test.context.SpringBootTest;
//
///**
// * 标签单元测试案例
// *
// * @author Lion Li
// */
//@SpringBootTest
//@DisplayName("标签单元测试案例")
//public class TagUnitTest {
//
// @Tag("dev")
// @DisplayName("测试 @Tag dev")
// @Test
// public void testTagDev() {
// System.out.println("dev");
// }
//
// @Tag("prod")
// @DisplayName("测试 @Tag prod")
// @Test
// public void testTagProd() {
// System.out.println("prod");
// }
//
// @Tag("local")
// @DisplayName("测试 @Tag local")
// @Test
// public void testTagLocal() {
// System.out.println("local");
// }
//
// @Tag("exclude")
// @DisplayName("测试 @Tag exclude")
// @Test
// public void testTagExclude() {
// System.out.println("exclude");
// }
//
// @BeforeEach
// public void testBeforeEach() {
// System.out.println("@BeforeEach ==================");
// }
//
// @AfterEach
// public void testAfterEach() {
// System.out.println("@AfterEach ==================");
// }
//
//
//}

24
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/file/FileUtils.java

@ -4,9 +4,12 @@ import cn.hutool.core.io.FileUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.rmi.ServerException;
/**
* 文件处理工具类
@ -14,6 +17,7 @@ import java.nio.charset.StandardCharsets;
* @author Lion Li
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Slf4j
public class FileUtils extends FileUtil {
/**
@ -40,4 +44,24 @@ public class FileUtils extends FileUtil {
String encode = URLEncoder.encode(s, StandardCharsets.UTF_8);
return encode.replaceAll("\\+", "%20");
}
public static void checkExcel(MultipartFile file, String templateFileName) throws ServerException {
if (file == null || file.isEmpty()) {
throw new ServerException("请选择要上传的文件");
}
// ✅ 获取上传文件的原始名称
String originalFilename = file.getOriginalFilename();
// 校验文件名称是否匹配模板
//templateFileName = "批量点位上报模板.xlsx";
if (!templateFileName.contains(originalFilename)){
throw new ServerException("请检查上传的文件名称!");
}
if (originalFilename == null || !(originalFilename.endsWith(".xls") || originalFilename.endsWith(".xlsx"))) {
throw new ServerException("请上传正确的文件格式");
}
// 打印文件名(例如:test.xlsx)
log.info("上传的文件名是:" + originalFilename);
}
}

115
ruoyi-modules/guoyan-platform/pom.xml

@ -0,0 +1,115 @@
<?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>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-modules</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>guoyan-platform</artifactId>
<dependencies>
<!-- 通用工具-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-doc</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sms</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-mail</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-redis</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-idempotent</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-log</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-excel</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-security</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-web</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-ratelimiter</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-translation</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sensitive</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-encrypt</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-tenant</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-workflow</artifactId>
</dependency>
</dependencies>
</project>

13
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/config/AppConfig.java

@ -0,0 +1,13 @@
package org.dromara.platform.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class AppConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

175
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/AgreementInfoController.java

@ -0,0 +1,175 @@
package org.dromara.platform.controller;
import java.io.*;
import java.net.URLEncoder;
import java.util.List;
import com.alibaba.excel.EasyExcel;
import jakarta.mail.internet.MimeUtility;
import jakarta.servlet.ServletOutputStream;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.extern.slf4j.Slf4j;
import org.dromara.platform.domain.AgreementInfo;
import org.dromara.platform.listener.AgreementInfoListener;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.AgreementInfoVo;
import org.dromara.platform.domain.bo.AgreementInfoBo;
import org.dromara.platform.service.IAgreementInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/**
* 协议信息
*
* @author gejunhao
* @date 2025-03-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/platform/agreementInfo")
public class AgreementInfoController extends BaseController {
private final IAgreementInfoService agreementInfoService;
/**
* 查询协议信息列表
*/
//@SaCheckPermission("platform:agreementInfo:list")
@GetMapping("/list")
public TableDataInfo<AgreementInfoVo> list(AgreementInfoBo bo, PageQuery pageQuery) {
return agreementInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出协议信息列表
*/
//@SaCheckPermission("platform:agreementInfo:export")
@Log(title = "协议信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(AgreementInfoBo bo, HttpServletResponse response) {
List<AgreementInfoVo> list = agreementInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "协议信息", AgreementInfoVo.class, response);
}
/**
* 获取协议信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:agreementInfo:query")
@GetMapping("/{id}")
public R<AgreementInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(agreementInfoService.queryById(id));
}
/**
* 新增协议信息
*/
//@SaCheckPermission("platform:agreementInfo:add")
@Log(title = "协议信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody AgreementInfoBo bo) {
return toAjax(agreementInfoService.insertByBo(bo));
}
/**
* 修改协议信息
*/
//@SaCheckPermission("platform:agreementInfo:edit")
@Log(title = "协议信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AgreementInfoBo bo) {
return toAjax(agreementInfoService.updateByBo(bo));
}
/**
* 删除协议信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:agreementInfo:remove")
@Log(title = "协议信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(agreementInfoService.deleteWithValidByIds(List.of(ids), true));
}
@PostMapping("/upload")
public void upload(MultipartFile file, HttpServletResponse response,String categoryId) throws IOException {
long t1 = System.currentTimeMillis();
EasyExcel.read(file.getInputStream(), AgreementInfo.class, new AgreementInfoListener(agreementInfoService,categoryId)).sheet().doRead();
response.setContentType("text/html;charset=utf8");
long t2 = System.currentTimeMillis();
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1));
log.info("导入协议信息表数据成功! 共用时:{}ms",(t2-t1));
}
@GetMapping("downLoadTemplate")
public void downLoadTemplate(HttpServletResponse httpServletResponse) {
InputStream inputStream = null;
try (ServletOutputStream outputStream = httpServletResponse.getOutputStream()) {
//设置响应头信息,包括下载后的文件名和编码等
String fileName = "服务内容导入模版.xlsx";
String encodedFileName = MimeUtility.encodeText(fileName, "UTF-8", "B"); // 使用 MIME 编码
httpServletResponse.addHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\"; filename*=utf-8''" + URLEncoder.encode(fileName, "UTF-8"));
httpServletResponse.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
httpServletResponse.setCharacterEncoding("UTF-8");
//在文件夹里获取到文件并转为流
inputStream = new ClassPathResource("/服务内容导入模版.xlsx").getInputStream();
byte[] b = streamToByteArray(inputStream);
httpServletResponse.getOutputStream().write(b);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//文件流转字节方法
public static byte[] streamToByteArray(InputStream in) throws Exception {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n;
while (-1 != (n = in.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/CheckTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.CheckTypeVo;
import org.dromara.platform.domain.bo.CheckTypeBo;
import org.dromara.platform.service.ICheckTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 考核类型-类别
*
* @author gejunhao
* @date 2025-04-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/checkType")
public class CheckTypeController extends BaseController {
private final ICheckTypeService checkTypeService;
/**
* 查询考核类型-类别列表
*/
//@SaCheckPermission("platform:checkType:list")
@GetMapping("/list")
public TableDataInfo<CheckTypeVo> list(CheckTypeBo bo, PageQuery pageQuery) {
return checkTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出考核类型-类别列表
*/
//@SaCheckPermission("platform:checkType:export")
@Log(title = "考核类型-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CheckTypeBo bo, HttpServletResponse response) {
List<CheckTypeVo> list = checkTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "考核类型-类别", CheckTypeVo.class, response);
}
/**
* 获取考核类型-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:checkType:query")
@GetMapping("/{id}")
public R<CheckTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(checkTypeService.queryById(id));
}
/**
* 新增考核类型-类别
*/
//@SaCheckPermission("platform:checkType:add")
@Log(title = "考核类型-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CheckTypeBo bo) {
return toAjax(checkTypeService.insertByBo(bo));
}
/**
* 修改考核类型-类别
*/
//@SaCheckPermission("platform:checkType:edit")
@Log(title = "考核类型-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CheckTypeBo bo) {
return toAjax(checkTypeService.updateByBo(bo));
}
/**
* 删除考核类型-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:checkType:remove")
@Log(title = "考核类型-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(checkTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

150
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractInfoController.java

@ -0,0 +1,150 @@
package org.dromara.platform.controller;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.ContractInfo;
import org.dromara.platform.domain.vo.ContractSelectVo;
import org.dromara.platform.domain.vo.ProjectSelectVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.ContractInfoVo;
import org.dromara.platform.domain.bo.ContractInfoBo;
import org.dromara.platform.service.IContractInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 合同信息
*
* @author Lion Li
* @date 2025-03-26
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/contractInfo")
public class ContractInfoController extends BaseController {
private final IContractInfoService contractInfoService;
/**
* 查询合同信息列表
*/
//@SaCheckPermission("platform:contractInfo:list")
@GetMapping("/list")
public TableDataInfo<ContractInfoVo> list(ContractInfoBo bo, PageQuery pageQuery) {
return contractInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出合同信息列表
*/
//@SaCheckPermission("platform:contractInfo:export")
@Log(title = "合同信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ContractInfoBo bo, HttpServletResponse response) {
List<ContractInfoVo> list = contractInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "合同信息", ContractInfoVo.class, response);
}
/**
* 获取合同信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:contractInfo:query")
@GetMapping("/{id}")
public R<ContractInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(contractInfoService.queryById(id));
}
/**
* 新增合同信息
*/
//@SaCheckPermission("platform:contractInfo:add")
@Log(title = "合同信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ContractInfoBo bo) {
return toAjax(contractInfoService.insertByBo(bo));
}
/**
* 修改合同信息
*/
//@SaCheckPermission("platform:contractInfo:edit")
@Log(title = "合同信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ContractInfoBo bo) {
return toAjax(contractInfoService.updateByBo(bo));
}
/**
* 删除合同信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:contractInfo:remove")
@Log(title = "合同信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(contractInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:contractInfo:queryContractInfoByProjectId")
@GetMapping("/queryContractInfoByProjectId")
public R<ContractInfo> queryContractInfoByProjectId(@NotNull(message = "项目id不能为空")
@Param("projectId") String projectId) {
return R.ok(contractInfoService.queryContractInfoByProjectId(projectId));
}
/**
* 获取项目名称下拉框
*/
//@SaCheckPermission("platform:contractInfo:getNames")
@GetMapping("/getNames")
public R<List<ContractSelectVo>> getNames() {
List<ContractSelectVo> rs = contractInfoService.getNames();
return R.ok(rs);
}
//@SaCheckPermission("platform:contractInfo:getContractNamesByProjectName")
@PostMapping("/getContractNamesByProjectName")
public R<List<ContractSelectVo>> getContractNamesByProjectName(@RequestBody Map<String, String> requestBody) {
String projectName = requestBody.get("projectName");
List<ContractSelectVo> rs = contractInfoService.getContractNamesByProjectName(projectName);
return R.ok(rs);
}
/**
* 根据合同名称获取对应的运维单位 (乙方)
*
*/
//@SaCheckPermission("platform:contractInfo:getIoCompany")
@GetMapping("/getIoCompany")
public R<String> getIoCompany(@Param("name") String name) {
String rs = contractInfoService.getIoCompany(name);
return R.ok("获取合同对应的运维单位", rs);
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.ContractTypeVo;
import org.dromara.platform.domain.bo.ContractTypeBo;
import org.dromara.platform.service.IContractTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 合同类别-类别
*
* @author gejunhao
* @date 2025-04-08
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/contractType")
public class ContractTypeController extends BaseController {
private final IContractTypeService contractTypeService;
/**
* 查询合同类别-类别列表
*/
//@SaCheckPermission("platform:contractType:list")
@GetMapping("/list")
public TableDataInfo<ContractTypeVo> list(ContractTypeBo bo, PageQuery pageQuery) {
return contractTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出合同类别-类别列表
*/
//@SaCheckPermission("platform:contractType:export")
@Log(title = "合同类别-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ContractTypeBo bo, HttpServletResponse response) {
List<ContractTypeVo> list = contractTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "合同类别-类别", ContractTypeVo.class, response);
}
/**
* 获取合同类别-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:contractType:query")
@GetMapping("/{id}")
public R<ContractTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(contractTypeService.queryById(id));
}
/**
* 新增合同类别-类别
*/
//@SaCheckPermission("platform:contractType:add")
@Log(title = "合同类别-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ContractTypeBo bo) {
return toAjax(contractTypeService.insertByBo(bo));
}
/**
* 修改合同类别-类别
*/
//@SaCheckPermission("platform:contractType:edit")
@Log(title = "合同类别-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ContractTypeBo bo) {
return toAjax(contractTypeService.updateByBo(bo));
}
/**
* 删除合同类别-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:contractType:remove")
@Log(title = "合同类别-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(contractTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DailyInspectionReportController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.DailyInspectionReportVo;
import org.dromara.platform.domain.bo.DailyInspectionReportBo;
import org.dromara.platform.service.IDailyInspectionReportService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 巡检日报
*
* @author gejunhao
* @date 2025-02-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/inspectionDailyReport")
public class DailyInspectionReportController extends BaseController {
private final IDailyInspectionReportService dailyInspectionReportService;
/**
* 查询巡检日报列表
*/
//@SaCheckPermission("platform:inspectionDailyReport:list")
@GetMapping("/list")
public TableDataInfo<DailyInspectionReportVo> list(DailyInspectionReportBo bo, PageQuery pageQuery) {
return dailyInspectionReportService.queryPageList(bo, pageQuery);
}
/**
* 导出巡检日报列表
*/
//@SaCheckPermission("platform:inspectionDailyReport:export")
@Log(title = "巡检日报", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DailyInspectionReportBo bo, HttpServletResponse response) {
List<DailyInspectionReportVo> list = dailyInspectionReportService.queryList(bo);
ExcelUtil.exportExcel(list, "巡检日报", DailyInspectionReportVo.class, response);
}
/**
* 获取巡检日报详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:inspectionDailyReport:query")
@GetMapping("/{id}")
public R<DailyInspectionReportVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(dailyInspectionReportService.queryById(id));
}
/**
* 新增巡检日报
*/
//@SaCheckPermission("platform:inspectionDailyReport:add")
@Log(title = "巡检日报", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DailyInspectionReportBo bo) {
return toAjax(dailyInspectionReportService.insertByBo(bo));
}
/**
* 修改巡检日报
*/
//@SaCheckPermission("platform:inspectionDailyReport:edit")
@Log(title = "巡检日报", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DailyInspectionReportBo bo) {
return toAjax(dailyInspectionReportService.updateByBo(bo));
}
/**
* 删除巡检日报
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:inspectionDailyReport:remove")
@Log(title = "巡检日报", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(dailyInspectionReportService.deleteWithValidByIds(List.of(ids), true));
}
}

114
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DistrictInfoController.java

@ -0,0 +1,114 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.DistrictInfo;
import org.dromara.platform.domain.ProjectCategoryPoint;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.DistrictInfoVo;
import org.dromara.platform.domain.bo.DistrictInfoBo;
import org.dromara.platform.service.IDistrictInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 区域信息-用于下拉框
*
* @author gejunhao
* @date 2025-04-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/districtInfo")
public class DistrictInfoController extends BaseController {
private final IDistrictInfoService districtInfoService;
/**
* 查询区域信息-用于下拉框列表
*/
//@SaCheckPermission("platform:districtInfo:list")
@GetMapping("/list")
public TableDataInfo<DistrictInfoVo> list(DistrictInfoBo bo, PageQuery pageQuery) {
return districtInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出区域信息-用于下拉框列表
*/
//@SaCheckPermission("platform:districtInfo:export")
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DistrictInfoBo bo, HttpServletResponse response) {
List<DistrictInfoVo> list = districtInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "区域信息-用于下拉框", DistrictInfoVo.class, response);
}
/**
* 获取区域信息-用于下拉框详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:districtInfo:query")
@GetMapping("/{id}")
public R<DistrictInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(districtInfoService.queryById(id));
}
/**
* 新增区域信息-用于下拉框
*/
//@SaCheckPermission("platform:districtInfo:add")
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DistrictInfoBo bo) {
return toAjax(districtInfoService.insertByBo(bo));
}
/**
* 修改区域信息-用于下拉框
*/
//@SaCheckPermission("platform:districtInfo:edit")
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DistrictInfoBo bo) {
return toAjax(districtInfoService.updateByBo(bo));
}
/**
* 删除区域信息-用于下拉框
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:districtInfo:remove")
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(districtInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:districtInfo:queryAll")
@GetMapping("/queryAll")
public R<List<DistrictInfo>> queryAll() {
return R.ok(districtInfoService.queryAll());
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DocumentInfoController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.platform.domain.bo.DocumentInfoBo;
import org.dromara.platform.domain.vo.DocumentInfoVo;
import org.dromara.platform.service.IDocumentInfoService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 文档信息
*
* @author gejunhao
* @date 2025-04-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/documentInfo")
public class DocumentInfoController extends BaseController {
private final IDocumentInfoService documentInfoService;
/**
* 查询文档信息列表
*/
//@SaCheckPermission("platform:documentInfo:list")
@GetMapping("/list")
public TableDataInfo<DocumentInfoVo> list(DocumentInfoBo bo, PageQuery pageQuery) {
return documentInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出文档信息列表
*/
//@SaCheckPermission("platform:documentInfo:export")
@Log(title = "文档信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DocumentInfoBo bo, HttpServletResponse response) {
List<DocumentInfoVo> list = documentInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "文档信息", DocumentInfoVo.class, response);
}
/**
* 获取文档信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:documentInfo:query")
@GetMapping("/{id}")
public R<DocumentInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(documentInfoService.queryById(id));
}
/**
* 新增文档信息
*/
//@SaCheckPermission("platform:documentInfo:add")
@Log(title = "文档信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DocumentInfoBo bo) {
return toAjax(documentInfoService.insertByBo(bo));
}
/**
* 修改文档信息
*/
//@SaCheckPermission("platform:documentInfo:edit")
@Log(title = "文档信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DocumentInfoBo bo) {
return toAjax(documentInfoService.updateByBo(bo));
}
/**
* 删除文档信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:documentInfo:remove")
@Log(title = "文档信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(documentInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/DocumentTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.DocumentTypeVo;
import org.dromara.platform.domain.bo.DocumentTypeBo;
import org.dromara.platform.service.IDocumentTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 文件类别-类别
*
* @author gejunhao
* @date 2025-04-08
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/documentType")
public class DocumentTypeController extends BaseController {
private final IDocumentTypeService documentTypeService;
/**
* 查询文件类别-类别列表
*/
//@SaCheckPermission("platform:documentType:list")
@GetMapping("/list")
public TableDataInfo<DocumentTypeVo> list(DocumentTypeBo bo, PageQuery pageQuery) {
return documentTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出文件类别-类别列表
*/
//@SaCheckPermission("platform:documentType:export")
@Log(title = "文件类别-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DocumentTypeBo bo, HttpServletResponse response) {
List<DocumentTypeVo> list = documentTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "文件类别-类别", DocumentTypeVo.class, response);
}
/**
* 获取文件类别-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:documentType:query")
@GetMapping("/{id}")
public R<DocumentTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(documentTypeService.queryById(id));
}
/**
* 新增文件类别-类别
*/
//@SaCheckPermission("platform:documentType:add")
@Log(title = "文件类别-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DocumentTypeBo bo) {
return toAjax(documentTypeService.insertByBo(bo));
}
/**
* 修改文件类别-类别
*/
//@SaCheckPermission("platform:documentType:edit")
@Log(title = "文件类别-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DocumentTypeBo bo) {
return toAjax(documentTypeService.updateByBo(bo));
}
/**
* 删除文件类别-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:documentType:remove")
@Log(title = "文件类别-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(documentTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

136
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationInfoController.java

@ -0,0 +1,136 @@
package org.dromara.platform.controller;
import java.util.Date;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.dto.EvaluationDto;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.EvaluationInfoVo;
import org.dromara.platform.domain.bo.EvaluationInfoBo;
import org.dromara.platform.service.IEvaluationInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 考核评分信息
*
* @author gejunhao
* @date 2025-04-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/evaluationInfo")
public class EvaluationInfoController extends BaseController {
private final IEvaluationInfoService evaluationInfoService;
/**
* 查询考核评分信息列表
*/
//@SaCheckPermission("platform:evaluationInfo:list")
@GetMapping("/list")
public TableDataInfo<EvaluationInfoVo> list(EvaluationInfoBo bo, PageQuery pageQuery) {
return evaluationInfoService.queryPageList(bo, pageQuery);
}
//@SaCheckPermission("platform:evaluationInfo:listForScore")
@GetMapping("/listForScore")
public TableDataInfo<EvaluationInfoVo> listForScore(EvaluationInfoBo bo, PageQuery pageQuery) {
return evaluationInfoService.queryPageListForScore(bo, pageQuery);
}
/**
* 导出考核评分信息列表
*/
//@SaCheckPermission("platform:evaluationInfo:export")
@Log(title = "考核评分信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(EvaluationInfoBo bo, HttpServletResponse response) {
List<EvaluationInfoVo> list = evaluationInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "考核评分信息", EvaluationInfoVo.class, response);
}
/**
* 获取考核评分信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:evaluationInfo:query")
@GetMapping("/{id}")
public R<EvaluationInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(evaluationInfoService.queryById(id));
}
/**
* 新增考核评分信息
*/
//@SaCheckPermission("platform:evaluationInfo:add")
@Log(title = "考核评分信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody EvaluationInfoBo bo) {
return toAjax(evaluationInfoService.insertByBo(bo));
}
/**
* 修改考核评分信息
*/
//@SaCheckPermission("platform:evaluationInfo:edit")
@Log(title = "考核评分信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EvaluationInfoBo bo) {
return toAjax(evaluationInfoService.updateByBo(bo));
}
/**
* 删除考核评分信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:evaluationInfo:remove")
@Log(title = "考核评分信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(evaluationInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:evaluationInfo:addBySelect")
@RepeatSubmit()
@PostMapping("/addBySelect")
public R<Void> addBySelect(@Validated(AddGroup.class) @RequestBody EvaluationDto dto) {
evaluationInfoService.addBySelect(dto);
return R.ok("创建成功!");
}
//@SaCheckPermission("platform:evaluationInfo:isScoreExits")
@GetMapping("/isScoreExits")
public R<Boolean> isScoreExits(EvaluationInfoBo bo) {
Date checkTime = bo.getCheckTime();
String ioCompany = bo.getIoCompany();
Boolean flag = evaluationInfoService.isScoreExits(ioCompany,checkTime);
return R.ok(flag);
}
}

138
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationTemplateController.java

@ -0,0 +1,138 @@
package org.dromara.platform.controller;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.EvaluationTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.EvaluationTemplateVo;
import org.dromara.platform.domain.bo.EvaluationTemplateBo;
import org.dromara.platform.service.IEvaluationTemplateService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 考核评分信息-模板
*
* @author gejunhao
* @date 2025-04-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/evaluationTemplate")
public class EvaluationTemplateController extends BaseController {
private final IEvaluationTemplateService evaluationTemplateService;
/**
* 查询考核评分信息-模板列表
*/
//@SaCheckPermission("platform:evaluationTemplate:list")
@GetMapping("/list")
public TableDataInfo<EvaluationTemplateVo> list(EvaluationTemplateBo bo, PageQuery pageQuery) {
return evaluationTemplateService.queryPageList(bo, pageQuery);
}
/**
* 导出考核评分信息-模板列表
*/
//@SaCheckPermission("platform:evaluationTemplate:export")
@Log(title = "考核评分信息-模板", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(EvaluationTemplateBo bo, HttpServletResponse response) {
List<EvaluationTemplateVo> list = evaluationTemplateService.queryList(bo);
ExcelUtil.exportExcel(list, "考核评分信息-模板", EvaluationTemplateVo.class, response);
}
/**
* 获取考核评分信息-模板详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:evaluationTemplate:query")
@GetMapping("/{id}")
public R<EvaluationTemplateVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(evaluationTemplateService.queryById(id));
}
/**
* 新增考核评分信息-模板
*/
//@SaCheckPermission("platform:evaluationTemplate:add")
@Log(title = "考核评分信息-模板", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody EvaluationTemplateBo bo) {
return toAjax(evaluationTemplateService.insertByBo(bo));
}
/**
* 修改考核评分信息-模板
*/
//@SaCheckPermission("platform:evaluationTemplate:edit")
@Log(title = "考核评分信息-模板", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EvaluationTemplateBo bo) {
return toAjax(evaluationTemplateService.updateByBo(bo));
}
/**
* 删除考核评分信息-模板
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:evaluationTemplate:remove")
@Log(title = "考核评分信息-模板", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(evaluationTemplateService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 根据标识获取详情
* @param flag
* @return
*/
//@SaCheckPermission("platform:evaluationTemplate:queryByFlag")
@GetMapping("/queryByFlag")
public R<List<EvaluationTemplate>> queryByFlag(@Param("flag") String flag) {
List<EvaluationTemplate> rs = evaluationTemplateService.queryByFlag(flag);
return R.ok(rs);
}
//@SaCheckPermission("platform:evaluationTemplate:batchEdit")
@Log(title = "考核评分信息-模板", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/batchEdit")
public R<Void> batchEdit(@Validated(EditGroup.class) @RequestBody List<EvaluationTemplate> updateList) {
return toAjax(evaluationTemplateService.batchEdit(updateList));
}
//@SaCheckPermission("platform:evaluationTemplate:getTree")
@GetMapping("/getTree")
public R<Map<String, Object>> getTree() {
Map<String, Object> rs = evaluationTemplateService.getTree();
return R.ok(rs);
}
}

175
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ExcelController.java

@ -0,0 +1,175 @@
package org.dromara.platform.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.excel.EasyExcel;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.file.FileUtils;
import org.dromara.platform.domain.bo.PointInfoBo;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.platform.domain.vo.PointInfoVo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.listener.PointInfoListener;
import org.dromara.platform.listener.WorkOrderInfoListener;
import org.dromara.platform.service.IContractInfoService;
import org.dromara.platform.service.IPointInfoService;
import org.dromara.platform.service.IWorkOrderInfoService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URLEncoder;
import java.rmi.ServerException;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/excel")
public class ExcelController {
@Resource
private IPointInfoService pointInfoService ;
@Resource
private IContractInfoService contractInfoService;
@Resource
private IWorkOrderInfoService workOrderInfoService ;
@PostMapping("/uploadPointInfo")
public void uploadPointInfo(MultipartFile file, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
// 业务层
EasyExcel.read(file.getInputStream(), PointInfoVo.class, new PointInfoListener(pointInfoService)).sheet().doRead();
response.setContentType("text/html;charset=utf8");
long t2 = System.currentTimeMillis();
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1)+"ms");
log.info("批量导入点位信息成功! 共用时:{}ms",(t2-t1));
}
/**
* 导出点位信息
*/
@PostMapping("/ExportPointInfo")
public void ExportPointInfo(PointInfoBo bo, HttpServletResponse response) throws IOException {
List<PointInfoVo> list = pointInfoService.queryList(bo);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String flag = "点位信息";
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期: " + currentDate);
String fileName = URLEncoder.encode( flag+currentDate, "UTF-8")
.replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), PointInfoVo.class)
.sheet("点位信息"+currentDate)
.doWrite(list);
}
/**
* 工单信息导出
* @param bo
* @param response
* @throws IOException
*/
@PostMapping("/ExportWorkOrderInfo")
public void ExportWorkOrderInfo(WorkOrderInfoBo bo, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
List<WorkOrderInfoVo> list = workOrderInfoService.queryListForExport(bo);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String flag = "工单信息";
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期: " + currentDate);
String fileName = URLEncoder.encode( flag+currentDate, "UTF-8")
.replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), WorkOrderInfoVo.class)
.sheet("工单信息"+currentDate)
.doWrite(list);
long t2 = System.currentTimeMillis();
String message = "导出全部数据耗时时:"+(t2-t1)+"ms";
log.info(message);
}
/**
* 批量点位上报
* @param file
* @param response
* @return
* @throws IOException
*/
@PostMapping("/uploadWorkOrderInfo")
public R<List<String>> uploadWorkOrderInfo(MultipartFile file, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
// TODO 文件校验
WorkOrderInfoListener listener = new WorkOrderInfoListener(workOrderInfoService, contractInfoService);
try {
// 开始读取 Excel 文件
EasyExcel.read(file.getInputStream(), WorkOrderInfoVo.class, listener)
.sheet()
.doRead();
List<String> errorMessages = listener.getErrorMessages();
// ✅ 提前检查错误信息,存在则汇总返回给前端
if (CollectionUtil.isNotEmpty(errorMessages)) {
// 返回错误信息列表
return R.ok("部分数据导入失败", errorMessages);
}
// ⬇️只有在没有错误的情况下才执行以下内容
long t2 = System.currentTimeMillis();
String message = "导入全部数据成功! 共用时:"+(t2-t1)+"ms";
List<String> successMessages = new ArrayList<>();
successMessages.add(message);
return R.ok(message,successMessages);
} catch (Exception e) {
log.error("文件导入失败: ", e);
return R.fail("文件导入失败: " + e.getMessage());
}
}
@PostMapping("/checkFile")
public void checkFile(MultipartFile file, String templateFileName,HttpServletResponse response) throws IOException {
FileUtils.checkExcel(file, templateFileName);
}
private void checkExcel(MultipartFile file, String templateFileName) throws ServerException {
if (file == null || file.isEmpty()) {
throw new ServerException("请选择要上传的文件");
}
// ✅ 获取上传文件的原始名称
String originalFilename = file.getOriginalFilename();
// 校验文件名称是否匹配模板
//templateFileName = "批量点位上报模板.xlsx";
if (!templateFileName.contains(originalFilename)){
throw new ServerException("请检查上传的文件名称!");
}
if (originalFilename == null || !(originalFilename.endsWith(".xls") || originalFilename.endsWith(".xlsx"))) {
throw new ServerException("请上传正确的文件格式");
}
// 打印文件名(例如:test.xlsx)
log.info("上传的文件名是:" + originalFilename);
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/FaultCategoryTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.FaultCategoryTypeVo;
import org.dromara.platform.domain.bo.FaultCategoryTypeBo;
import org.dromara.platform.service.IFaultCategoryTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 故障大类-类别
*
* @author gejunhao
* @date 2025-04-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/faultCategoryType")
public class FaultCategoryTypeController extends BaseController {
private final IFaultCategoryTypeService faultCategoryTypeService;
/**
* 查询故障大类-类别列表
*/
//@SaCheckPermission("platform:categoryType:list")
@GetMapping("/list")
public TableDataInfo<FaultCategoryTypeVo> list(FaultCategoryTypeBo bo, PageQuery pageQuery) {
return faultCategoryTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出故障大类-类别列表
*/
//@SaCheckPermission("platform:categoryType:export")
@Log(title = "故障大类-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(FaultCategoryTypeBo bo, HttpServletResponse response) {
List<FaultCategoryTypeVo> list = faultCategoryTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "故障大类-类别", FaultCategoryTypeVo.class, response);
}
/**
* 获取故障大类-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:categoryType:query")
@GetMapping("/{id}")
public R<FaultCategoryTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(faultCategoryTypeService.queryById(id));
}
/**
* 新增故障大类-类别
*/
//@SaCheckPermission("platform:categoryType:add")
@Log(title = "故障大类-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody FaultCategoryTypeBo bo) {
return toAjax(faultCategoryTypeService.insertByBo(bo));
}
/**
* 修改故障大类-类别
*/
//@SaCheckPermission("platform:categoryType:edit")
@Log(title = "故障大类-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody FaultCategoryTypeBo bo) {
return toAjax(faultCategoryTypeService.updateByBo(bo));
}
/**
* 删除故障大类-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:categoryType:remove")
@Log(title = "故障大类-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(faultCategoryTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/FaultSubcategoryTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.FaultSubcategoryTypeVo;
import org.dromara.platform.domain.bo.FaultSubcategoryTypeBo;
import org.dromara.platform.service.IFaultSubcategoryTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 故障小类-类别
*
* @author gejunhao
* @date 2025-04-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/subcategoryType")
public class FaultSubcategoryTypeController extends BaseController {
private final IFaultSubcategoryTypeService faultSubcategoryTypeService;
/**
* 查询故障小类-类别列表
*/
//@SaCheckPermission("platform:subcategoryType:list")
@GetMapping("/list")
public TableDataInfo<FaultSubcategoryTypeVo> list(FaultSubcategoryTypeBo bo, PageQuery pageQuery) {
return faultSubcategoryTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出故障小类-类别列表
*/
//@SaCheckPermission("platform:subcategoryType:export")
@Log(title = "故障小类-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(FaultSubcategoryTypeBo bo, HttpServletResponse response) {
List<FaultSubcategoryTypeVo> list = faultSubcategoryTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "故障小类-类别", FaultSubcategoryTypeVo.class, response);
}
/**
* 获取故障小类-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:subcategoryType:query")
@GetMapping("/{id}")
public R<FaultSubcategoryTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(faultSubcategoryTypeService.queryById(id));
}
/**
* 新增故障小类-类别
*/
//@SaCheckPermission("platform:subcategoryType:add")
@Log(title = "故障小类-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody FaultSubcategoryTypeBo bo) {
return toAjax(faultSubcategoryTypeService.insertByBo(bo));
}
/**
* 修改故障小类-类别
*/
//@SaCheckPermission("platform:subcategoryType:edit")
@Log(title = "故障小类-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody FaultSubcategoryTypeBo bo) {
return toAjax(faultSubcategoryTypeService.updateByBo(bo));
}
/**
* 删除故障小类-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:subcategoryType:remove")
@Log(title = "故障小类-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(faultSubcategoryTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

147
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/InspectionPlanInfoController.java

@ -0,0 +1,147 @@
package org.dromara.platform.controller;
import java.util.List;
import java.util.Set;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.AgreementInfo;
import org.dromara.platform.domain.dto.RoutineWorkDto;
import org.dromara.platform.domain.vo.ioCompanySelectVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.InspectionPlanInfoVo;
import org.dromara.platform.domain.bo.InspectionPlanInfoBo;
import org.dromara.platform.service.IInspectionPlanInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 巡检计划
*
* @author gejunhao
* @date 2025-02-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/inspectPlanInfo")
public class InspectionPlanInfoController extends BaseController {
private final IInspectionPlanInfoService inspectionPlanInfoService;
/**
* 查询巡检计划列表
*/
//@SaCheckPermission("platform:inspectPlanInfo:list")
@GetMapping("/list")
public TableDataInfo<InspectionPlanInfoVo> list(InspectionPlanInfoBo bo, PageQuery pageQuery) {
return inspectionPlanInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出巡检计划列表
*/
//@SaCheckPermission("platform:inspectPlanInfo:export")
@Log(title = "巡检计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(InspectionPlanInfoBo bo, HttpServletResponse response) {
List<InspectionPlanInfoVo> list = inspectionPlanInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "巡检计划", InspectionPlanInfoVo.class, response);
}
/**
* 获取巡检计划详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:inspectPlanInfo:query")
@GetMapping("/{id}")
public R<InspectionPlanInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(inspectionPlanInfoService.queryById(id));
}
/**
* 新增巡检计划
*/
//@SaCheckPermission("platform:inspectPlanInfo:add")
@Log(title = "巡检计划", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody InspectionPlanInfoBo bo) {
return toAjax(inspectionPlanInfoService.insertByBo(bo));
}
/**
* 修改巡检计划
*/
//@SaCheckPermission("platform:inspectPlanInfo:edit")
@Log(title = "巡检计划", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody InspectionPlanInfoBo bo) {
return toAjax(inspectionPlanInfoService.updateByBo(bo));
}
/**
* 删除巡检计划
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:inspectPlanInfo:remove")
@Log(title = "巡检计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(inspectionPlanInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:inspectPlanInfo:createPlans")
@GetMapping("/createPlans")
public R<Void> createPlans(@NotNull(message = "主键不能为空")
@Param("contractId") String contractId,
@Param("categoryId") String categoryId) {
inspectionPlanInfoService.createPlans(contractId,categoryId);
return R.ok("创建巡检计划成功!");
}
//@SaCheckPermission("platform:inspectPlanInfo:getIoCompanyNames")
@GetMapping("/getIoCompanyNames")
public R<Set<String>> getIoCompanyNames() {
Set<String> rs = inspectionPlanInfoService.getIoCompanyNames();
return R.ok(rs);
}
//@SaCheckPermission("platform:inspectPlanInfo:findLeafNodeInfos")
@GetMapping("/findLeafNodeInfos")
public R<List<AgreementInfo>> findLeafNodeInfos( @Param("categoryId") String categoryId) {
List<AgreementInfo> rs = inspectionPlanInfoService.findLeafNodeInfos(categoryId);
return R.ok(rs);
}
//@SaCheckPermission("platform:inspectPlanInfo:createPlansByHands")
@PostMapping("/createPlansByHands")
public R<Void> createPlansByHand(@RequestBody RoutineWorkDto routineWorkDto) {
String contractId = routineWorkDto.getContractId();
String categoryId = routineWorkDto.getCategoryId();
List<String> serviceProjectList = routineWorkDto.getServiceProjectList();
inspectionPlanInfoService.createPlansByHands(contractId,categoryId,serviceProjectList);
return R.ok("手动创建巡检计划成功!");
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/LargeRatingTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.LargeRatingTypeVo;
import org.dromara.platform.domain.bo.LargeRatingTypeBo;
import org.dromara.platform.service.ILargeRatingTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 评分大类-类别
*
* @author gejunhao
* @date 2025-04-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/largeRatingType")
public class LargeRatingTypeController extends BaseController {
private final ILargeRatingTypeService largeRatingTypeService;
/**
* 查询评分大类-类别列表
*/
//@SaCheckPermission("platform:ratingType:list")
@GetMapping("/list")
public TableDataInfo<LargeRatingTypeVo> list(LargeRatingTypeBo bo, PageQuery pageQuery) {
return largeRatingTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出评分大类-类别列表
*/
//@SaCheckPermission("platform:ratingType:export")
@Log(title = "评分大类-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(LargeRatingTypeBo bo, HttpServletResponse response) {
List<LargeRatingTypeVo> list = largeRatingTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "评分大类-类别", LargeRatingTypeVo.class, response);
}
/**
* 获取评分大类-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:ratingType:query")
@GetMapping("/{id}")
public R<LargeRatingTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(largeRatingTypeService.queryById(id));
}
/**
* 新增评分大类-类别
*/
//@SaCheckPermission("platform:ratingType:add")
@Log(title = "评分大类-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody LargeRatingTypeBo bo) {
return toAjax(largeRatingTypeService.insertByBo(bo));
}
/**
* 修改评分大类-类别
*/
//@SaCheckPermission("platform:ratingType:edit")
@Log(title = "评分大类-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody LargeRatingTypeBo bo) {
return toAjax(largeRatingTypeService.updateByBo(bo));
}
/**
* 删除评分大类-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:ratingType:remove")
@Log(title = "评分大类-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(largeRatingTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/MaterialInfoController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.MaterialInfoVo;
import org.dromara.platform.domain.bo.MaterialInfoBo;
import org.dromara.platform.service.IMaterialInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 材料库-信息
*
* @author gejunhao
* @date 2025-04-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/matrialInfo")
public class MaterialInfoController extends BaseController {
private final IMaterialInfoService materialInfoService;
/**
* 查询材料库-信息列表
*/
//@SaCheckPermission("platform:matrialInfo:list")
@GetMapping("/list")
public TableDataInfo<MaterialInfoVo> list(MaterialInfoBo bo, PageQuery pageQuery) {
return materialInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出材料库-信息列表
*/
//@SaCheckPermission("platform:matrialInfo:export")
@Log(title = "材料库-信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(MaterialInfoBo bo, HttpServletResponse response) {
List<MaterialInfoVo> list = materialInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "材料库-信息", MaterialInfoVo.class, response);
}
/**
* 获取材料库-信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:matrialInfo:query")
@GetMapping("/{id}")
public R<MaterialInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(materialInfoService.queryById(id));
}
/**
* 新增材料库-信息
*/
//@SaCheckPermission("platform:matrialInfo:add")
@Log(title = "材料库-信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody MaterialInfoBo bo) {
return toAjax(materialInfoService.insertByBo(bo));
}
/**
* 修改材料库-信息
*/
//@SaCheckPermission("platform:matrialInfo:edit")
@Log(title = "材料库-信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody MaterialInfoBo bo) {
return toAjax(materialInfoService.updateByBo(bo));
}
/**
* 删除材料库-信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:matrialInfo:remove")
@Log(title = "材料库-信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(materialInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/NoticeInfoController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.NoticeInfoVo;
import org.dromara.platform.domain.bo.NoticeInfoBo;
import org.dromara.platform.service.INoticeInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 公告通知信息
*
* @author gejunhao
* @date 2025-04-23
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/noticeInfo")
public class NoticeInfoController extends BaseController {
private final INoticeInfoService noticeInfoService;
/**
* 查询公告通知信息列表
*/
//@SaCheckPermission("platform:noticeInfo:list")
@GetMapping("/list")
public TableDataInfo<NoticeInfoVo> list(NoticeInfoBo bo, PageQuery pageQuery) {
return noticeInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出公告通知信息列表
*/
//@SaCheckPermission("platform:noticeInfo:export")
@Log(title = "公告通知信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(NoticeInfoBo bo, HttpServletResponse response) {
List<NoticeInfoVo> list = noticeInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "公告通知信息", NoticeInfoVo.class, response);
}
/**
* 获取公告通知信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:noticeInfo:query")
@GetMapping("/{id}")
public R<NoticeInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(noticeInfoService.queryById(id));
}
/**
* 新增公告通知信息
*/
//@SaCheckPermission("platform:noticeInfo:add")
@Log(title = "公告通知信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody NoticeInfoBo bo) {
return toAjax(noticeInfoService.insertByBo(bo));
}
/**
* 修改公告通知信息
*/
//@SaCheckPermission("platform:noticeInfo:edit")
@Log(title = "公告通知信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody NoticeInfoBo bo) {
return toAjax(noticeInfoService.updateByBo(bo));
}
/**
* 删除公告通知信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:noticeInfo:remove")
@Log(title = "公告通知信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(noticeInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/OrganizationTypeController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.OrganizationTypeVo;
import org.dromara.platform.domain.bo.OrganizationTypeBo;
import org.dromara.platform.service.IOrganizationTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 所属机构-类别
*
* @author gejunhao
* @date 2025-04-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/organizationType")
public class OrganizationTypeController extends BaseController {
private final IOrganizationTypeService organizationTypeService;
/**
* 查询所属机构-类别列表
*/
//@SaCheckPermission("platform:organizationType:list")
@GetMapping("/list")
public TableDataInfo<OrganizationTypeVo> list(OrganizationTypeBo bo, PageQuery pageQuery) {
return organizationTypeService.queryPageList(bo, pageQuery);
}
/**
* 导出所属机构-类别列表
*/
//@SaCheckPermission("platform:organizationType:export")
@Log(title = "所属机构-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OrganizationTypeBo bo, HttpServletResponse response) {
List<OrganizationTypeVo> list = organizationTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "所属机构-类别", OrganizationTypeVo.class, response);
}
/**
* 获取所属机构-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:organizationType:query")
@GetMapping("/{id}")
public R<OrganizationTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(organizationTypeService.queryById(id));
}
/**
* 新增所属机构-类别
*/
//@SaCheckPermission("platform:organizationType:add")
@Log(title = "所属机构-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrganizationTypeBo bo) {
return toAjax(organizationTypeService.insertByBo(bo));
}
/**
* 修改所属机构-类别
*/
//@SaCheckPermission("platform:organizationType:edit")
@Log(title = "所属机构-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrganizationTypeBo bo) {
return toAjax(organizationTypeService.updateByBo(bo));
}
/**
* 删除所属机构-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:organizationType:remove")
@Log(title = "所属机构-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(organizationTypeService.deleteWithValidByIds(List.of(ids), true));
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/PartyInfoController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.PartyInfoVo;
import org.dromara.platform.domain.bo.PartyInfoBo;
import org.dromara.platform.service.IPartyInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 单位信息-用于下拉框
*
* @author gejunhao
* @date 2025-04-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/partyInfo")
public class PartyInfoController extends BaseController {
private final IPartyInfoService partyInfoService;
/**
* 查询单位信息-用于下拉框列表
*/
//@SaCheckPermission("platform:partyInfo:list")
@GetMapping("/list")
public TableDataInfo<PartyInfoVo> list(PartyInfoBo bo, PageQuery pageQuery) {
return partyInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出单位信息-用于下拉框列表
*/
//@SaCheckPermission("platform:partyInfo:export")
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(PartyInfoBo bo, HttpServletResponse response) {
List<PartyInfoVo> list = partyInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "单位信息-用于下拉框", PartyInfoVo.class, response);
}
/**
* 获取单位信息-用于下拉框详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:partyInfo:query")
@GetMapping("/{id}")
public R<PartyInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(partyInfoService.queryById(id));
}
/**
* 新增单位信息-用于下拉框
*/
//@SaCheckPermission("platform:partyInfo:add")
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody PartyInfoBo bo) {
return toAjax(partyInfoService.insertByBo(bo));
}
/**
* 修改单位信息-用于下拉框
*/
//@SaCheckPermission("platform:partyInfo:edit")
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PartyInfoBo bo) {
return toAjax(partyInfoService.updateByBo(bo));
}
/**
* 删除单位信息-用于下拉框
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:partyInfo:remove")
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(partyInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

140
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/PerformanceManagementController.java

@ -0,0 +1,140 @@
package org.dromara.platform.controller;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.List;
import com.alibaba.excel.EasyExcel;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.extern.slf4j.Slf4j;
import org.dromara.platform.domain.PerformanceManagement;
import org.dromara.platform.domain.ProjectManager;
import org.dromara.platform.listener.PerformanceManagementListener;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.PerformanceManagementVo;
import org.dromara.platform.domain.bo.PerformanceManagementBo;
import org.dromara.platform.service.IPerformanceManagementService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/**
* 考核管理
*
* @author gejunhao
* @date 2025-04-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/platform/management")
public class PerformanceManagementController extends BaseController {
private final IPerformanceManagementService performanceManagementService;
/**
* 查询考核管理列表
*/
//@SaCheckPermission("platform:management:list")
@GetMapping("/list")
public TableDataInfo<PerformanceManagementVo> list(PerformanceManagementBo bo, PageQuery pageQuery) {
return performanceManagementService.queryPageList(bo, pageQuery);
}
/**
* 导出考核管理列表
*/
//@SaCheckPermission("platform:management:export")
@Log(title = "考核管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(PerformanceManagementBo bo, HttpServletResponse response) throws IOException {
List<PerformanceManagementVo> list = performanceManagementService.queryList(bo);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String flag = "考核管理项";
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期: " + currentDate);
String fileName = URLEncoder.encode( flag+currentDate, "UTF-8")
.replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), PerformanceManagementVo.class)
.sheet("考核管理"+currentDate)
.doWrite(list);
}
/**
* 获取考核管理详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:management:query")
@GetMapping("/{id}")
public R<PerformanceManagementVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(performanceManagementService.queryById(id));
}
/**
* 新增考核管理
*/
//@SaCheckPermission("platform:management:add")
@Log(title = "考核管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody PerformanceManagementBo bo) {
return toAjax(performanceManagementService.insertByBo(bo));
}
/**
* 修改考核管理
*/
//@SaCheckPermission("platform:management:edit")
@Log(title = "考核管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PerformanceManagementBo bo) {
return toAjax(performanceManagementService.updateByBo(bo));
}
/**
* 删除考核管理
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:management:remove")
@Log(title = "考核管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(performanceManagementService.deleteWithValidByIds(List.of(ids), true));
}
@PostMapping("/uploadFromExcel")
public void uploadPerformanceManagement(MultipartFile file, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
EasyExcel.read(file.getInputStream(), PerformanceManagement.class, new PerformanceManagementListener(performanceManagementService)).sheet().doRead();
response.setContentType("text/html;charset=utf8");
long t2 = System.currentTimeMillis();
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1)+"ms");
log.info("导入考核项目成功! 共用时:{}ms",(t2-t1));
}
}

114
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/PointInfoController.java

@ -0,0 +1,114 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.vo.PointSelectVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.PointInfoVo;
import org.dromara.platform.domain.bo.PointInfoBo;
import org.dromara.platform.service.IPointInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 点位信息
*
* @author gejunhao
* @date 2025-03-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/pointInfo")
public class PointInfoController extends BaseController {
private final IPointInfoService pointInfoService;
/**
* 查询点位信息列表
*/
//@SaCheckPermission("platform:pointInfo:list")
@GetMapping("/list")
public TableDataInfo<PointInfoVo> list(PointInfoBo bo, PageQuery pageQuery) {
return pointInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出点位信息列表
*/
//@SaCheckPermission("platform:pointInfo:export")
@Log(title = "点位信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(PointInfoBo bo, HttpServletResponse response) {
List<PointInfoVo> list = pointInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "点位信息", PointInfoVo.class, response);
}
/**
* 获取点位信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:pointInfo:query")
@GetMapping("/{id}")
public R<PointInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(pointInfoService.queryById(id));
}
/**
* 新增点位信息
*/
//@SaCheckPermission("platform:pointInfo:add")
@Log(title = "点位信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody PointInfoBo bo) {
return toAjax(pointInfoService.insertByBo(bo));
}
/**
* 修改点位信息
*/
//@SaCheckPermission("platform:pointInfo:edit")
@Log(title = "点位信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PointInfoBo bo) {
return toAjax(pointInfoService.updateByBo(bo));
}
/**
* 删除点位信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:pointInfo:remove")
@Log(title = "点位信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(pointInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:pointInfo:queryPointNames")
@GetMapping("/queryPointNames")
public R<List<PointSelectVo>> queryPointNames() {
List<PointSelectVo> rs = pointInfoService.queryPointNames();
return R.ok(rs);
}
}

118
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectCategoryPointController.java

@ -0,0 +1,118 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.ProjectCategoryPoint;
import org.dromara.platform.domain.ServiceCatalogCategory;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.ProjectCategoryPointVo;
import org.dromara.platform.domain.bo.ProjectCategoryPointBo;
import org.dromara.platform.service.IProjectCategoryPointService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 项目目录-点位
*
* @author gejunhao
* @date 2025-03-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/projectCategoryPoint")
public class ProjectCategoryPointController extends BaseController {
private final IProjectCategoryPointService projectCategoryPointService;
/**
* 查询项目目录-点位列表
*/
//@SaCheckPermission("platform:projectCategoryPoint:list")
@GetMapping("/list")
public TableDataInfo<ProjectCategoryPointVo> list(ProjectCategoryPointBo bo, PageQuery pageQuery) {
return projectCategoryPointService.queryPageList(bo, pageQuery);
}
/**
* 导出项目目录-点位列表
*/
//@SaCheckPermission("platform:projectCategoryPoint:export")
@Log(title = "项目目录-点位", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ProjectCategoryPointBo bo, HttpServletResponse response) {
List<ProjectCategoryPointVo> list = projectCategoryPointService.queryList(bo);
ExcelUtil.exportExcel(list, "项目目录-点位", ProjectCategoryPointVo.class, response);
}
/**
* 获取项目目录-点位详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:projectCategoryPoint:query")
@GetMapping("/{id}")
public R<ProjectCategoryPointVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(projectCategoryPointService.queryById(id));
}
/**
* 新增项目目录-点位
*/
//@SaCheckPermission("platform:projectCategoryPoint:add")
@Log(title = "项目目录-点位", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProjectCategoryPointBo bo) {
return toAjax(projectCategoryPointService.insertByBo(bo));
}
/**
* 修改项目目录-点位
*/
//@SaCheckPermission("platform:projectCategoryPoint:edit")
@Log(title = "项目目录-点位", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProjectCategoryPointBo bo) {
return toAjax(projectCategoryPointService.updateByBo(bo));
}
/**
* 删除项目目录-点位
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:projectCategoryPoint:remove")
@Log(title = "项目目录-点位", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(projectCategoryPointService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 获取服务目录- (+)
*
*/
//@SaCheckPermission("platform:projectCategoryPoint:queryAll")
@GetMapping("/queryAll")
public R<List<ProjectCategoryPoint>> queryAll() {
return R.ok(projectCategoryPointService.queryAll());
}
}

148
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java

@ -0,0 +1,148 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.ContractInfo;
import org.dromara.platform.domain.vo.ProjectSelectVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.ProjectInfoVo;
import org.dromara.platform.domain.bo.ProjectInfoBo;
import org.dromara.platform.service.IProjectInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 项目信息
*
* @author gejunhao
* @date 2025-03-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/projectInfo")
public class ProjectInfoController extends BaseController {
private final IProjectInfoService projectInfoService;
/**
* 查询项目信息列表
*/
//@SaCheckPermission("platform:projectInfo:list")
@GetMapping("/list")
public TableDataInfo<ProjectInfoVo> list(ProjectInfoBo bo, PageQuery pageQuery) {
return projectInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出项目信息列表
*/
//@SaCheckPermission("platform:projectInfo:export")
@Log(title = "项目信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ProjectInfoBo bo, HttpServletResponse response) {
List<ProjectInfoVo> list = projectInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "项目信息", ProjectInfoVo.class, response);
}
/**
* 获取项目信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:projectInfo:query")
@GetMapping("/{id}")
public R<ProjectInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(projectInfoService.queryById(id));
}
/**
* 新增项目信息
*/
//@SaCheckPermission("platform:projectInfo:add")
@Log(title = "项目信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProjectInfoBo bo) {
return toAjax(projectInfoService.insertByBo(bo));
}
/**
* 修改项目信息
*/
//@SaCheckPermission("platform:projectInfo:edit")
@Log(title = "项目信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProjectInfoBo bo) {
return toAjax(projectInfoService.updateByBo(bo));
}
/**
* 删除项目信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:projectInfo:remove")
@Log(title = "项目信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(projectInfoService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 获取项目名称下拉框
*/
//@SaCheckPermission("platform:projectInfo:getNames")
@GetMapping("/getNames")
public R<List<ProjectSelectVo>> getNames() {
return R.ok(projectInfoService.getNames());
}
/**
* 根据项目名称获取合同名称
*/
//@SaCheckPermission("platform:projectInfo:getContractNameByProjectName")
@GetMapping("/getContractNameByProjectName")
public R<List<String>> getContractNameByProjectName(@Param("projectName") String projectName) {
List<String> contractNames = projectInfoService.getContractNameByProjectName(projectName);
return R.ok(contractNames);
}
//@SaCheckPermission("platform:projectInfo:getContractInfoByProjectName")
@GetMapping("/getContractInfoByProjectName")
public R<List<ContractInfo>> getContractInfoByProjectName(@Param("projectName") String projectName) {
List<ContractInfo> rs = projectInfoService.getContractInfoByProjectName(projectName);
return R.ok(rs);
}
@GetMapping("/getContractPartyBNameByProjectName")
public R<String> getContractPartyBNameByProjectName(String projectName) {
String partyB = projectInfoService.getContractPartyBNameByProjectName(projectName);
return R.ok("乙方单位",partyB);
}
@GetMapping("/bindUnit")
public R<Void> bindUnit(String projectId,Long deptId ) {
projectInfoService.bindUnit(projectId,deptId);
return R.ok("项目配置相关单位成功!");
}
}

187
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/RoutineInspectionInfoController.java

@ -0,0 +1,187 @@
package org.dromara.platform.controller;
import java.util.Date;
import java.util.List;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.InspectionPlanInfo;
import org.dromara.platform.domain.RoutineInspectionInfo;
import org.dromara.platform.domain.dto.RoutineInspectionDto;
import org.dromara.platform.domain.dto.RoutineWorkDto;
import org.dromara.platform.service.IInspectionPlanInfoService;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.RoutineInspectionInfoVo;
import org.dromara.platform.domain.bo.RoutineInspectionInfoBo;
import org.dromara.platform.service.IRoutineInspectionInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 日常巡检-计划
*
* @author gejunhao
* @date 2025-04-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/routineInspectionInfo")
public class RoutineInspectionInfoController extends BaseController {
private final IRoutineInspectionInfoService routineInspectionInfoService;
@Resource
private IInspectionPlanInfoService inspectionPlanInfoService;
/**
* 查询日常巡检-计划列表
*/
//@SaCheckPermission("platform:routineInspectionInfo:list")
@GetMapping("/list")
public TableDataInfo<RoutineInspectionInfoVo> list(RoutineInspectionInfoBo bo, PageQuery pageQuery) {
return routineInspectionInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出日常巡检-计划列表
*/
//@SaCheckPermission("platform:routineInspectionInfo:export")
@Log(title = "日常巡检-计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(RoutineInspectionInfoBo bo, HttpServletResponse response) {
List<RoutineInspectionInfoVo> list = routineInspectionInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "日常巡检-计划", RoutineInspectionInfoVo.class, response);
}
/**
* 获取日常巡检-计划详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:routineInspectionInfo:query")
@GetMapping("/{id}")
public R<RoutineInspectionInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(routineInspectionInfoService.queryById(id));
}
/**
* 新增日常巡检-计划
*/
//@SaCheckPermission("platform:routineInspectionInfo:add")
@Log(title = "日常巡检-计划", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody RoutineInspectionInfoBo bo) {
return toAjax(routineInspectionInfoService.insertByBo(bo));
}
/**
* 修改日常巡检-计划
*/
//@SaCheckPermission("platform:routineInspectionInfo:edit")
@Log(title = "日常巡检-计划", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody RoutineInspectionInfoBo bo) {
return toAjax(routineInspectionInfoService.updateByBo(bo));
}
/**
* 删除日常巡检-计划
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:routineInspectionInfo:remove")
@Log(title = "日常巡检-计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(routineInspectionInfoService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 创建日常巡检任务
* @param routineInspectionDto
* @return
*/
//@SaCheckPermission("platform:routineInspectionInfo:createRoutineInspection")
@PostMapping("/createRoutineInspection")
public R<Void> createPlans(@RequestBody RoutineInspectionDto routineInspectionDto) {
List<RoutineInspectionInfoBo> finishStatus = routineInspectionDto.getFinishStatus();
String projectName = routineInspectionDto.getProjectName();
String contractName = routineInspectionDto.getContractName();
String description = routineInspectionDto.getDescription();
String serviceProject = routineInspectionDto.getServiceProject();
String ioCompany = routineInspectionDto.getIoCompany();
String pointName = routineInspectionDto.getPointName();
routineInspectionInfoService.createRoutineInspection(finishStatus, projectName,
contractName,
description,
serviceProject,
ioCompany,
pointName
);
return R.ok("创建日常巡检任务成功!");
}
/**
* 查询日常巡检-计划列表
*/
//@SaCheckPermission("platform:routineInspectionInfo:specialList")
@GetMapping("/specialList")
public TableDataInfo<RoutineInspectionInfoVo> specialList(RoutineInspectionInfoBo bo, PageQuery pageQuery) {
return routineInspectionInfoService.queryPageSpecialList(bo, pageQuery);
}
//@SaCheckPermission("platform:routineInspectionInfo:autoCreatePlans")
@PostMapping("/autoCreatePlans")
public R<Void> autoCreatePlans(@RequestBody RoutineWorkDto routineWorkDto) {
String contractId = routineWorkDto.getContractId();
String categoryId = routineWorkDto.getCategoryId();
List<String> serviceProjectList = routineWorkDto.getServiceProjectList();
inspectionPlanInfoService.autoCreatePlans( contractId, categoryId, serviceProjectList);
return R.ok("根据服务目录创建工作内容 !");
}
//@SaCheckPermission("platform:routineInspectionInfo:createSpecialInspection")
@PostMapping("/createSpecialInspection")
public R<Void> createSpecialInspection(@RequestBody RoutineInspectionDto routineInspectionDto) {
String projectName = routineInspectionDto.getProjectName();
String contractName = routineInspectionDto.getContractName();
String description = routineInspectionDto.getDescription();
String serviceProject = routineInspectionDto.getServiceProject();
String ioCompany = routineInspectionDto.getIoCompany();
String pointName = routineInspectionDto.getPointName();
String deliverContent = routineInspectionDto.getDeliverContent();
Date scheduleStartDate = routineInspectionDto.getScheduleStartDate();
Date scheduleEndDate = routineInspectionDto.getScheduleEndDate();
String code = routineInspectionDto.getCode();
routineInspectionInfoService.createSpecialInspection( projectName,
contractName,
description,
serviceProject,
ioCompany,
pointName,deliverContent,scheduleStartDate,scheduleEndDate,code
);
return R.ok("创建成功!");
}
}

181
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java

@ -0,0 +1,181 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.ServiceCatalogCategory;
import org.dromara.platform.domain.vo.ServiceCatalogSelectVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.ServiceCatalogCategoryVo;
import org.dromara.platform.domain.bo.ServiceCatalogCategoryBo;
import org.dromara.platform.service.IServiceCatalogCategoryService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 服务目录-类别
*
* @author gejunhao
* @date 2025-03-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/catalogCategory")
public class ServiceCatalogCategoryController extends BaseController {
private final IServiceCatalogCategoryService serviceCatalogCategoryService;
/**
* 查询服务目录-类别列表
*/
//@SaCheckPermission("platform:catalogCategory:list")
@GetMapping("/list")
public TableDataInfo<ServiceCatalogCategoryVo> list(ServiceCatalogCategoryBo bo, PageQuery pageQuery) {
return serviceCatalogCategoryService.queryPageList(bo, pageQuery);
}
/**
* 导出服务目录-类别列表
*/
//@SaCheckPermission("platform:catalogCategory:export")
@Log(title = "服务目录-类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ServiceCatalogCategoryBo bo, HttpServletResponse response) {
List<ServiceCatalogCategoryVo> list = serviceCatalogCategoryService.queryList(bo);
ExcelUtil.exportExcel(list, "服务目录-类别", ServiceCatalogCategoryVo.class, response);
}
/**
* 获取服务目录-类别详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:catalogCategory:query")
@GetMapping("/{id}")
public R<ServiceCatalogCategoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(serviceCatalogCategoryService.queryById(id));
}
/**
* 新增服务目录-类别
*/
//@SaCheckPermission("platform:catalogCategory:add")
@Log(title = "服务目录-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ServiceCatalogCategoryBo bo) {
return toAjax(serviceCatalogCategoryService.insertByBo(bo));
}
/**
* 修改服务目录-类别
*/
//@SaCheckPermission("platform:catalogCategory:edit")
@Log(title = "服务目录-类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ServiceCatalogCategoryBo bo) {
return toAjax(serviceCatalogCategoryService.updateByBo(bo));
}
/**
* 删除服务目录-类别
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:catalogCategory:remove")
@Log(title = "服务目录-类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(serviceCatalogCategoryService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 获取服务目录- (+)
*/
//@SaCheckPermission("platform:catalogCategory:queryAll")
@GetMapping("/queryAll")
public R<List<ServiceCatalogCategory>> queryAll() {
return R.ok(serviceCatalogCategoryService.queryAll());
}
/**
* 获取服务目录-子集信息 (暂时未使用)
*
* @param id 主键
*/
//@SaCheckPermission("platform:catalogCategory:querySubInfoById")
@GetMapping("querySubInfoById/{id}")
public R<List<ServiceCatalogCategoryVo>> querySubInfoById(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(serviceCatalogCategoryService.querySubInfoById(id));
}
//@SaCheckPermission("platform:catalogCategory:queryCategory")
@GetMapping("/queryCategory")
public R<List<ServiceCatalogCategoryVo>> queryCategory() {
return R.ok(serviceCatalogCategoryService.queryCategory());
}
/**
* 多层级服务目录
*
* @return
*/
//@SaCheckPermission("platform:catalogCategory:buildFullTree")
@GetMapping("/queryBuildFullTree")
public R<List<ServiceCatalogCategory>> buildFullTree() {
return R.ok(serviceCatalogCategoryService.buildFullTree());
}
/**
* 查询全部服务目录名称用于(下拉框)
*
* @return
*/
//@SaCheckPermission("platform:catalogCategory:queryAllCategoryName")
@GetMapping("/queryAllCategoryName")
public R<List<ServiceCatalogSelectVo>> queryAllCategoryName() {
List<ServiceCatalogSelectVo> rs = serviceCatalogCategoryService.queryAllCatalogName();
return R.ok(rs);
}
/**
* 新增服务目录-类别
*/
//@SaCheckPermission("platform:catalogCategory:saveCategory")
@Log(title = "服务目录-类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/saveCategory")
public R<Void> saveCategory(@Validated(AddGroup.class) @RequestBody ServiceCatalogCategoryBo bo) {
return toAjax( serviceCatalogCategoryService.saveByBo(bo));
}
//@SaCheckPermission("platform:catalogCategory:queryOutCategoryName")
@GetMapping("/queryOutCategoryName")
public R<List<ServiceCatalogSelectVo>> queryOutCategoryName() {
List<ServiceCatalogSelectVo> rs = serviceCatalogCategoryService.queryOutCategoryName();
return R.ok(rs);
}
}

88
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/TestController.java

@ -0,0 +1,88 @@
package org.dromara.platform.controller;
import com.alibaba.excel.EasyExcel;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.platform.domain.PerformanceManagement;
import org.dromara.platform.domain.ProjectManager;
import org.dromara.platform.listener.PerformanceManagementListener;
import org.dromara.platform.listener.ProjectManagerListener;
import org.dromara.platform.service.IPerformanceManagementService;
import org.dromara.platform.service.ProjectManagerService;
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.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URLEncoder;
import java.time.LocalDate;
/**
* @Author gejunhao
* @Date 2025/1/10 14:11
* @Description: 测试接口
*/
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/test")
public class TestController {
@GetMapping("/hello")
public void test(HttpServletResponse response) throws IOException {
log.warn("hello word!");
response.setContentType("text/html;charset=utf8");
response.getWriter().println("调用接口成功!");
}
@Resource
private ProjectManagerService projectManagerService;
@PostMapping("/uploadProjectManager")
public void upload(MultipartFile file, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
EasyExcel.read(file.getInputStream(), ProjectManager.class, new ProjectManagerListener(projectManagerService)).sheet().doRead();
response.setContentType("text/html;charset=utf8");
long t2 = System.currentTimeMillis();
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1));
log.info("导入项目负责人数据成功! 共用时:{}ms",(t2-t1));
}
@GetMapping("/downloadProjectManager")
public void download(HttpServletResponse response) throws IOException {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String flag = "项目负责人信息";
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期: " + currentDate);
String fileName = URLEncoder.encode( flag+currentDate, "UTF-8")
.replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), ProjectManager.class)
.sheet("项目联系人信息"+currentDate)
.doWrite(projectManagerService.getData());
}
@Resource
private IPerformanceManagementService performanceManagementService;
@PostMapping("/uploadPerformanceManagement")
public void uploadPerformanceManagement(MultipartFile file, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
EasyExcel.read(file.getInputStream(), PerformanceManagement.class, new PerformanceManagementListener(performanceManagementService)).sheet().doRead();
response.setContentType("text/html;charset=utf8");
long t2 = System.currentTimeMillis();
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1));
log.info("导入项目负责人数据成功! 共用时:{}ms",(t2-t1));
}
}

269
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WeChatController.java

@ -0,0 +1,269 @@
package org.dromara.platform.controller;
import com.alibaba.excel.EasyExcel;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.platform.domain.PerformanceManagement;
import org.dromara.platform.domain.ProjectManager;
import org.dromara.platform.domain.app.WeComSubscribeDataItem;
import org.dromara.platform.domain.app.WeComSubscribeMessageRequest;
import org.dromara.platform.domain.bo.PartyInfoBo;
import org.dromara.platform.domain.vo.PartyInfoVo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.listener.PerformanceManagementListener;
import org.dromara.platform.listener.ProjectManagerListener;
import org.dromara.platform.service.IPerformanceManagementService;
import org.dromara.platform.service.IWorkOrderInfoService;
import org.dromara.platform.service.ProjectManagerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;
/**
* @Author gejunhao
* @Date 2025/1/10 14:11
* @Description: 测试接口
*/
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/wechat")
public class WeChatController {
// 替换为你的 AppID 和 AppSecret
private static final String APP_ID = "wxe2eba8943d47678e";
private static final String APP_SECRET = "7af0a56aaa7780ad041ee4cda2359353";
private static final String APP_OPENID = "ohCQF7nRbdBVnk4GUD_TgTRv_IYs";
private static final String ACCESS_TOKEN = "93_Rdp-c-VBBN-2qNAxBQ1pmx3gvuxjoMk2A_BmczJinRcJ9G3IwJ-okucNWz30OY7bb_8tk44XjQ5pdaRf8-lvrb8blIUjuFDklcyLtjX-1g4Ik9Q1cUuzhP-O9DwLYPhAEASFW";
private static final String TEMPLATE_ID = "z9G-4dk8JHget0Ftm8ysEa6pT2mztklfDTYF9sYBDzM";
private static final String SUBSCRIBE_SEND_PREFIX = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
@GetMapping("/hello")
public void test(HttpServletResponse response) throws IOException {
log.warn("hello word!");
response.setContentType("text/html;charset=utf8");
response.getWriter().println("调用接口成功!");
}
@Autowired
private ObjectMapper objectMapper;
@Resource
private RestTemplate restTemplate;
@GetMapping("/getOpenId")
public R< Map<String, String>> getOpenId(String jsCode) throws JsonProcessingException {
Map<String, String> result = getOpenIdForApp(jsCode);
return R.ok("根据jsCode获取对应的openId", result);
}
@GetMapping("/getAccessToken")
public R<Map<String, String>> getAccessToken() throws JsonProcessingException {
Map<String, String> result = getAccessTokenForApp();
// 5. 返回给前端
return R.ok("获取对应的access_token",result);
}
@GetMapping("/sendSubscribeMsgTest")
public ResponseEntity<String> sendSubscribeMsgTest(String openid, String accessToken) {
// 使用默认值或传入参数
openid = openid == null ? APP_OPENID : openid;
accessToken = accessToken == null ? ACCESS_TOKEN : accessToken;
String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken;
// 构建请求体
WeComSubscribeMessageRequest request = new WeComSubscribeMessageRequest();
request.setTouser(openid);
request.setTemplate_id(TEMPLATE_ID);
request.setPage("pages/index/index");
Map<String, WeComSubscribeDataItem> dataMap = new HashMap<>();
dataMap.put("character_string5", new WeComSubscribeDataItem("工单编号:123456"));
dataMap.put("thing2", new WeComSubscribeDataItem("空调内部故障"));
dataMap.put("time13", new WeComSubscribeDataItem("2025年6月20日"));
dataMap.put("thing10", new WeComSubscribeDataItem("宁波国研机房"));
dataMap.put("thing8", new WeComSubscribeDataItem("2025年6月21日"));
request.setData(dataMap);
// 打印格式化的 JSON 请求体
try {
String formattedJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(request);
String compactJson = objectMapper.writeValueAsString(request);
System.out.println("🎯 请求地址: " + url);
System.out.println("📥 请求体 JSON(紧凑格式):\n" + compactJson);
System.out.println("📘 请求体 JSON(格式化):\n" + formattedJson);
} catch (JsonProcessingException e) {
System.err.println("⚠ JSON 序列化失败:" + e.getMessage());
}
// 设置请求头并清除可能导致 412 的字段
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
// 显式移除 If-Match / If-None-Match(保险起见)
headers.remove("If-Match");
headers.remove("If-None-Match");
HttpEntity<WeComSubscribeMessageRequest> entity = new HttpEntity<>(request, headers);
// 发送请求并捕获异常
try {
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
// 打印响应结果(调试用)
System.out.println("📤 响应状态码: " + response.getStatusCode());
System.out.println("📤 响应内容: " + response.getBody());
return response;
} catch (HttpClientErrorException e) {
// 或者返回错误信息给前端
System.err.println("❌ HTTP 错误状态码: " + e.getStatusCode());
System.err.println("❌ 响应头: " + e.getResponseHeaders());
System.err.println("❌ 响应体: " + e.getResponseBodyAsString());
throw e;
}
}
@GetMapping("/sendSubscribeMsg")
public ResponseEntity<String> sendSubscribeMsg(
@RequestParam(required = false) String openid,
@RequestParam(required = false) String accessToken) {
// 使用默认值或传入参数
openid = openid == null ? APP_OPENID : openid;
accessToken = accessToken == null ? ACCESS_TOKEN : accessToken;
String url = SUBSCRIBE_SEND_PREFIX + accessToken;
// 构建请求体对象
WeComSubscribeMessageRequest request = new WeComSubscribeMessageRequest();
request.setTouser(openid);
request.setTemplate_id(TEMPLATE_ID);
request.setPage("pages/index/index");
Map<String, WeComSubscribeDataItem> dataMap = new HashMap<>();
dataMap.put("character_string5", new WeComSubscribeDataItem("工单编号:123456"));
dataMap.put("thing2", new WeComSubscribeDataItem("故障标题:空调内部故障"));
dataMap.put("time13", new WeComSubscribeDataItem("发生时间:2025年6月20日"));
dataMap.put("thing10", new WeComSubscribeDataItem("发生位置:宁波国研机房"));
dataMap.put("thing8", new WeComSubscribeDataItem("计划完成时间:2025年6月21日"));
request.setData(dataMap);
// 序列化 JSON 并记录日志
String jsonBody;
try {
jsonBody = objectMapper.writeValueAsString(request);
} catch (JsonProcessingException e) {
String errorMsg = "❌ JSON 构建失败:" + e.getMessage();
log.error(errorMsg, e); // 统一日志记录
return ResponseEntity.status(500).body(errorMsg);
}
// 打印调试信息(格式化 JSON)
try {
String formattedJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(request);
log.info("🎯 请求地址: {}", url);
log.info("📘 请求体 JSON(格式化):\n{}", formattedJson);
} catch (JsonProcessingException e) {
log.warn("⚠️ 格式化 JSON 失败,跳过打印");
}
// 创建 HttpClient 实例并发送 POST 请求
HttpClient client = HttpClient.newHttpClient();
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonBody))
.build();
try {
HttpResponse<String> response = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
// 记录响应结果
log.info("📤 响应状态码: {}", response.statusCode());
log.info("📤 响应内容: {}", response.body());
// 返回给前端
return ResponseEntity.status(response.statusCode()).body(response.body());
} catch (IOException | InterruptedException e) {
String errorMsg = "❌ 请求发送失败:" + e.getMessage();
log.error(errorMsg, e);
return ResponseEntity.status(500).body(errorMsg);
}
}
private Map<String, String> getAccessTokenForApp() throws JsonProcessingException {
// 1. 构造请求 URL
String url = "https://api.weixin.qq.com/cgi-bin/token?" +
"grant_type=client_credential&" +
"appid={appid}&" +
"secret={secret}";
// 2. 构造参数 Map
Map<String, String> uriVariables = new HashMap<>();
uriVariables.put("appid", APP_ID);
uriVariables.put("secret", APP_SECRET);
// 3. 发起请求
String response = restTemplate.getForObject(url, String.class, uriVariables);
// 4. 解析 JSON 获取 access_token
Map<String, String> result = objectMapper.readValue(response, new TypeReference<Map<String, String>>() {});
String accessToken = result.get("access_token");
if (accessToken == null || accessToken.isEmpty()) {
throw new RuntimeException("获取 access_token 失败: " + response);
}
log.info("获取access_token:{}",accessToken);
return result;
}
private Map<String, String> getOpenIdForApp(String jsCode) throws JsonProcessingException {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid={appid}&secret={secret}&js_code={jscode}&grant_type=authorization_code";
Map<String, String> uriVariables = new HashMap<>();
uriVariables.put("appid", APP_ID);
uriVariables.put("secret", APP_SECRET);
uriVariables.put("jscode", jsCode);
// 发送 GET 请求并接收返回结果(微信返回的是 JSON)
String response = restTemplate.getForObject(url, String.class, uriVariables);
// 这里你可以解析 response 获取 openid 等信息
log.info("微信返回结果:{}", response);
Map<String, String> result = objectMapper.readValue(response, new TypeReference<Map<String, String>>() {});
return result;
}
}

113
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkDealInfoController.java

@ -0,0 +1,113 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkDealInfoVo;
import org.dromara.platform.domain.bo.WorkDealInfoBo;
import org.dromara.platform.service.IWorkDealInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单处理信息
*
* @author gejunhao
* @date 2025-04-29
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/dealInfo")
public class WorkDealInfoController extends BaseController {
private final IWorkDealInfoService workDealInfoService;
/**
* 查询工单处理信息列表
*/
//@SaCheckPermission("platform:dealInfo:list")
@GetMapping("/list")
public TableDataInfo<WorkDealInfoVo> list(WorkDealInfoBo bo, PageQuery pageQuery) {
return workDealInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出工单处理信息列表
*/
//@SaCheckPermission("platform:dealInfo:export")
@Log(title = "工单处理信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkDealInfoBo bo, HttpServletResponse response) {
List<WorkDealInfoVo> list = workDealInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "工单处理信息", WorkDealInfoVo.class, response);
}
/**
* 获取工单处理信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:dealInfo:query")
@GetMapping("/{id}")
public R<WorkDealInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workDealInfoService.queryById(id));
}
/**
* 新增工单处理信息
*/
//@SaCheckPermission("platform:dealInfo:add")
@Log(title = "工单处理信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkDealInfoBo bo) {
return toAjax(workDealInfoService.insertByBo(bo));
}
/**
* 修改工单处理信息
*/
//@SaCheckPermission("platform:dealInfo:edit")
@Log(title = "工单处理信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WorkDealInfoBo bo) {
return toAjax(workDealInfoService.updateByBo(bo));
}
/**
* 删除工单处理信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:dealInfo:remove")
@Log(title = "工单处理信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workDealInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:dealInfo:query")
@GetMapping("/getInfoByOrderId")
public R<WorkDealInfoVo> getInfoByOrderId(@Param("workOrderId") String workOrderId) {
WorkDealInfoVo rs = workDealInfoService.getInfoByOrderId(workOrderId);
return R.ok(rs);
}
}

114
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkDelayProcessController.java

@ -0,0 +1,114 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.bo.WorkOrderProcessBo;
import org.dromara.platform.domain.vo.WorkOrderProcessVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkDelayProcessVo;
import org.dromara.platform.domain.bo.WorkDelayProcessBo;
import org.dromara.platform.service.IWorkDelayProcessService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单延期流程信息
*
* @author gejunhao
* @date 2025-05-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/delayProcess")
public class WorkDelayProcessController extends BaseController {
private final IWorkDelayProcessService workDelayProcessService;
/**
* 查询工单延期流程信息列表
*/
//@SaCheckPermission("platform:delayProcess:list")
@GetMapping("/list")
public TableDataInfo<WorkDelayProcessVo> list(WorkDelayProcessBo bo, PageQuery pageQuery) {
return workDelayProcessService.queryPageList(bo, pageQuery);
}
/**
* 导出工单延期流程信息列表
*/
//@SaCheckPermission("platform:delayProcess:export")
@Log(title = "工单延期流程信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkDelayProcessBo bo, HttpServletResponse response) {
List<WorkDelayProcessVo> list = workDelayProcessService.queryList(bo);
ExcelUtil.exportExcel(list, "工单延期流程信息", WorkDelayProcessVo.class, response);
}
/**
* 获取工单延期流程信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:delayProcess:query")
@GetMapping("/{id}")
public R<WorkDelayProcessVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workDelayProcessService.queryById(id));
}
/**
* 新增工单延期流程信息
*/
//@SaCheckPermission("platform:delayProcess:add")
@Log(title = "工单延期流程信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkDelayProcessBo bo) {
return toAjax(workDelayProcessService.insertByBo(bo));
}
/**
* 修改工单延期流程信息
*/
//@SaCheckPermission("platform:delayProcess:edit")
@Log(title = "工单延期流程信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WorkDelayProcessBo bo) {
return toAjax(workDelayProcessService.updateByBo(bo));
}
/**
* 删除工单延期流程信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:delayProcess:remove")
@Log(title = "工单延期流程信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workDelayProcessService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:delayProcess:queryProcess")
@GetMapping("/queryProcess")
public R<List<WorkDelayProcessVo>> queryProcess(WorkDelayProcessBo bo) {
List<WorkDelayProcessVo> rs = workDelayProcessService.queryList(bo);
return R.ok(rs);
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkOrderDelayVo;
import org.dromara.platform.domain.bo.WorkOrderDelayBo;
import org.dromara.platform.service.IWorkOrderDelayService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单延期审核
*
* @author gejunhao
* @date 2025-04-28
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/orderDelay")
public class WorkOrderDelayController extends BaseController {
private final IWorkOrderDelayService workOrderDelayService;
/**
* 查询工单延期审核列表
*/
//@SaCheckPermission("platform:orderDelay:list")
@GetMapping("/list")
public TableDataInfo<WorkOrderDelayVo> list(WorkOrderDelayBo bo, PageQuery pageQuery) {
return workOrderDelayService.queryPageList(bo, pageQuery);
}
/**
* 导出工单延期审核列表
*/
//@SaCheckPermission("platform:orderDelay:export")
@Log(title = "工单延期审核", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkOrderDelayBo bo, HttpServletResponse response) {
List<WorkOrderDelayVo> list = workOrderDelayService.queryList(bo);
ExcelUtil.exportExcel(list, "工单延期审核", WorkOrderDelayVo.class, response);
}
/**
* 获取工单延期审核详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:orderDelay:query")
@GetMapping("/{id}")
public R<WorkOrderDelayVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(workOrderDelayService.queryById(id));
}
/**
* 新增工单延期审核
*/
//@SaCheckPermission("platform:orderDelay:add")
@Log(title = "工单延期审核", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkOrderDelayBo bo) {
return toAjax(workOrderDelayService.insertByBo(bo));
}
/**
* 修改工单延期审核
*/
//@SaCheckPermission("platform:orderDelay:edit")
@Log(title = "工单延期审核", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WorkOrderDelayBo bo) {
return toAjax(workOrderDelayService.updateByBo(bo));
}
/**
* 删除工单延期审核
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:orderDelay:remove")
@Log(title = "工单延期审核", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(workOrderDelayService.deleteWithValidByIds(List.of(ids), true));
}
}

115
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayHistoryController.java

@ -0,0 +1,115 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.apache.ibatis.annotations.Param;
import org.dromara.platform.domain.WorkOrderDelayHistory;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkOrderDelayHistoryVo;
import org.dromara.platform.domain.bo.WorkOrderDelayHistoryBo;
import org.dromara.platform.service.IWorkOrderDelayHistoryService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单延期审核-历史操作
*
* @author gejunhao
* @date 2025-05-06
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/orderDelayHistory")
public class WorkOrderDelayHistoryController extends BaseController {
private final IWorkOrderDelayHistoryService workOrderDelayHistoryService;
/**
* 查询工单延期审核-历史操作列表
*/
//@SaCheckPermission("platform:orderDelayHistory:list")
@GetMapping("/list")
public TableDataInfo<WorkOrderDelayHistoryVo> list(WorkOrderDelayHistoryBo bo, PageQuery pageQuery) {
return workOrderDelayHistoryService.queryPageList(bo, pageQuery);
}
/**
* 导出工单延期审核-历史操作列表
*/
//@SaCheckPermission("platform:orderDelayHistory:export")
@Log(title = "工单延期审核-历史操作", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkOrderDelayHistoryBo bo, HttpServletResponse response) {
List<WorkOrderDelayHistoryVo> list = workOrderDelayHistoryService.queryList(bo);
ExcelUtil.exportExcel(list, "工单延期审核-历史操作", WorkOrderDelayHistoryVo.class, response);
}
/**
* 获取工单延期审核-历史操作详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:orderDelayHistory:query")
@GetMapping("/{id}")
public R<WorkOrderDelayHistoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workOrderDelayHistoryService.queryById(id));
}
/**
* 新增工单延期审核-历史操作
*/
//@SaCheckPermission("platform:orderDelayHistory:add")
@Log(title = "工单延期审核-历史操作", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkOrderDelayHistoryBo bo) {
return toAjax(workOrderDelayHistoryService.insertByBo(bo));
}
/**
* 修改工单延期审核-历史操作
*/
//@SaCheckPermission("platform:orderDelayHistory:edit")
@Log(title = "工单延期审核-历史操作", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WorkOrderDelayHistoryBo bo) {
return toAjax(workOrderDelayHistoryService.updateByBo(bo));
}
/**
* 删除工单延期审核-历史操作
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:orderDelayHistory:remove")
@Log(title = "工单延期审核-历史操作", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workOrderDelayHistoryService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:orderDelayHistory:queryByWorkOrderId")
@GetMapping("/queryByWorkOrderId")
public R<List<WorkOrderDelayHistory>> queryByWorkOrderId(@Param("workOrderId") String workOrderId) {
List<WorkOrderDelayHistory> rs = workOrderDelayHistoryService.queryByWorkOrderId(workOrderId);
return R.ok(rs);
}
}

233
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java

@ -0,0 +1,233 @@
package org.dromara.platform.controller;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.platform.domain.InspectionPlanInfo;
import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.platform.domain.bo.WorkOrderDelayBo;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.platform.domain.bo.WorkReviewInfoBo;
import org.dromara.platform.domain.dto.WorkOrderInfoDto;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.service.IWorkOrderInfoService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Set;
/**
* 工单信息
*
* @author gejunhao
* @date 2025-01-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/workOrder")
public class WorkOrderInfoController extends BaseController {
private final IWorkOrderInfoService workOrderInfoService;
/**
* 查询工单信息列表
*/
////@SaCheckPermission("platform:workOrder:list")
@GetMapping("/list")
public TableDataInfo<WorkOrderInfoVo> list(WorkOrderInfoBo bo, PageQuery pageQuery) {
return workOrderInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出工单信息列表
*/
//@SaCheckPermission("platform:workOrder:export")
@Log(title = "工单信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkOrderInfoBo bo, HttpServletResponse response) {
List<WorkOrderInfoVo> list = workOrderInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "工单信息", WorkOrderInfoVo.class, response);
}
/**
* 获取工单信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:workOrder:query")
@GetMapping("/{id}")
public R<WorkOrderInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workOrderInfoService.queryById(id));
}
/**
* 新增工单信息
*/
//@SaCheckPermission("platform:workOrder:add")
@Log(title = "工单信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/add")
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkOrderInfoBo bo) {
return toAjax(workOrderInfoService.insertByBo(bo));
}
/**
* 修改工单信息
*/
//@SaCheckPermission("platform:workOrder:edit")
@Log(title = "工单信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/update")
public R<Void> edit(@RequestBody WorkOrderInfoBo bo) {
return toAjax(workOrderInfoService.updateByBo(bo));
}
/**
* 删除工单信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:workOrder:remove")
@Log(title = "工单信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workOrderInfoService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:workOrder:createOrders")
@PostMapping("/createOrders")
public R<List<WorkOrderInfo>> createOrders(@RequestBody InspectionPlanInfo inspectionPlanInfo) {
List<WorkOrderInfo> rs = workOrderInfoService.createOrders(inspectionPlanInfo);
return R.ok(rs);
}
//@SaCheckPermission("platform:workOrder:dispatchOrder")
@PostMapping("/dispatchOrder")
public R<Void> dispatchOrder(@RequestBody WorkOrderInfoBo bo ) {
workOrderInfoService.dispatchOrder(bo);
return R.ok("派遣工单成功!");
}
//@SaCheckPermission("platform:workOrder:takeOrder")
@GetMapping("/takeOrder")
public R<Void> takeOrder(String workOrderId ) {
workOrderInfoService.takeOrder(workOrderId);
return R.ok("接单成功!");
}
//@SaCheckPermission("platform:workOrder:dealOrder")
@PostMapping("/dealOrder")
public R<Void> dealOrder(@RequestBody WorkOrderInfoBo bo ) {
workOrderInfoService.dealOrder(bo);
return R.ok("处理工单成功!");
}
//@SaCheckPermission("platform:workOrder:rollBackOrder")
@PostMapping("/rollBackOrder")
public R<Void> rollBackOrder(@RequestBody WorkOrderInfoBo bo ) {
workOrderInfoService.rollBackOrder(bo);
return R.ok("回退工单成功!");
}
//@SaCheckPermission("platform:workOrder:delayOrder")
@PostMapping("/delayOrder")
public R<Void> delayOrder(@RequestBody WorkOrderInfoBo bo ) {
workOrderInfoService.delayOrder(bo);
return R.ok("工单延期成功!");
}
//@SaCheckPermission("platform:workOrder:delaySubmit ")
@PostMapping("/delaySubmit")
public R<Void> delaySubmit (@RequestBody WorkOrderDelayBo bo ) {
workOrderInfoService.delaySubmit(bo);
return R.ok("工单延期审批成功!");
}
//@SaCheckPermission("platform:workOrder:initReviewOrder")
@PostMapping("/initReviewOrder")
public R<Void> initReviewOrder(@RequestBody WorkReviewInfoBo bo ) {
workOrderInfoService.initReviewOrder(bo);
return R.ok("初审工单成功!");
}
//@SaCheckPermission("platform:workOrder:lastReviewOrder")
@PostMapping("/lastReviewOrder")
public R<Void> lastReviewOrder(@RequestBody WorkReviewInfoBo bo ) {
workOrderInfoService.lastReviewOrder(bo);
return R.ok("终审工单成功!");
}
@PostMapping("/batchReviewOrder")
public R<Void> batchReviewOrder(@RequestBody WorkReviewInfoBo bo ) {
workOrderInfoService.batchReviewOrder(bo);
return R.ok("批量审核工单!");
}
@GetMapping("/getFaultLocationList")
public R<Set<String>> getFaultLocationList(String maintenanceUnit) {
Set<String> rs = workOrderInfoService.getFaultLocationList(maintenanceUnit);
return R.ok(rs);
}
//@SaCheckPermission("platform:workOrder:dealWithList")
@GetMapping("/dealWithList")
public TableDataInfo<WorkOrderInfoVo> dealWithList(WorkOrderInfoBo bo, PageQuery pageQuery) {
TableDataInfo<WorkOrderInfoVo> rs = workOrderInfoService.dealWithList(bo, pageQuery);
return rs;
}
@GetMapping("/dealWithListForApp")
public TableDataInfo<WorkOrderInfoVo> dealWithListForApp(WorkOrderInfoBo bo, PageQuery pageQuery) {
TableDataInfo<WorkOrderInfoVo> rs = workOrderInfoService.dealWithListForApp(bo, pageQuery);
return rs;
}
//@SaCheckPermission("platform:workOrder:reviewList")
@GetMapping("/reviewList")
public TableDataInfo<WorkOrderInfoVo> reviewList(WorkOrderInfoBo bo, PageQuery pageQuery) {
TableDataInfo<WorkOrderInfoVo> rs = workOrderInfoService.reviewList(bo, pageQuery);
return rs;
}
//@SaCheckPermission("platform:workOrder:dispatchList")
@GetMapping("/dispatchList")
public TableDataInfo<WorkOrderInfoVo> dispatchList(WorkOrderInfoBo bo, PageQuery pageQuery) {
TableDataInfo<WorkOrderInfoVo> rs = workOrderInfoService.dispatchList(bo, pageQuery);
return rs;
}
@GetMapping("/getMaintenanceUnit")
public R<String> getMaintenanceUnit(String workOrderId ) {
String unitName = workOrderInfoService.getMaintenanceUnit(workOrderId);
return R.ok("获取对应的运维单位信息!", unitName);
}
@GetMapping("/getOverTimeCost")
public R<WorkOrderInfoDto> getOverTimeCost(String workOrderId ) {
WorkOrderInfoDto rs = workOrderInfoService.getOverTimeCost(workOrderId);
return R.ok(rs);
}
}

123
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderProcessController.java

@ -0,0 +1,123 @@
package org.dromara.platform.controller;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.vo.ContractSelectVo;
import org.dromara.platform.domain.vo.WorkOrderHistoryVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkOrderProcessVo;
import org.dromara.platform.domain.bo.WorkOrderProcessBo;
import org.dromara.platform.service.IWorkOrderProcessService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单流程信息
*
* @author gejunhao
* @date 2025-04-28
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/orderProcess")
public class WorkOrderProcessController extends BaseController {
private final IWorkOrderProcessService workOrderProcessService;
/**
* 查询工单流程信息列表
*/
//@SaCheckPermission("platform:orderProcess:list")
@GetMapping("/list")
public TableDataInfo<WorkOrderProcessVo> list(WorkOrderProcessBo bo, PageQuery pageQuery) {
return workOrderProcessService.queryPageList(bo, pageQuery);
}
/**
* 导出工单流程信息列表
*/
//@SaCheckPermission("platform:orderProcess:export")
@Log(title = "工单流程信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkOrderProcessBo bo, HttpServletResponse response) {
List<WorkOrderProcessVo> list = workOrderProcessService.queryList(bo);
ExcelUtil.exportExcel(list, "工单流程信息", WorkOrderProcessVo.class, response);
}
/**
* 获取工单流程信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:orderProcess:query")
@GetMapping("/{id}")
public R<WorkOrderProcessVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workOrderProcessService.queryById(id));
}
/**
* 新增工单流程信息
*/
//@SaCheckPermission("platform:orderProcess:add")
@Log(title = "工单流程信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkOrderProcessBo bo) {
return toAjax(workOrderProcessService.insertByBo(bo));
}
/**
* 修改工单流程信息
*/
//@SaCheckPermission("platform:orderProcess:edit")
@Log(title = "工单流程信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WorkOrderProcessBo bo) {
return toAjax(workOrderProcessService.updateByBo(bo));
}
/**
* 删除工单流程信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:orderProcess:remove")
@Log(title = "工单流程信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workOrderProcessService.deleteWithValidByIds(List.of(ids), true));
}
//@SaCheckPermission("platform:orderProcess:queryProcess")
@GetMapping("/queryProcess")
public R<List<WorkOrderProcessVo>> queryProcess(WorkOrderProcessBo bo) {
List<WorkOrderProcessVo> rs = workOrderProcessService.queryList(bo);
return R.ok(rs);
}
//@SaCheckPermission("platform:orderProcess:historyInfo")
@GetMapping("/historyInfo")
public R<List<WorkOrderHistoryVo>> historyInfo(WorkOrderProcessBo bo) {
List<WorkOrderHistoryVo> rs = workOrderProcessService.historyInfo(bo);
return R.ok(rs);
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkReviewInfoController.java

@ -0,0 +1,105 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkReviewInfoVo;
import org.dromara.platform.domain.bo.WorkReviewInfoBo;
import org.dromara.platform.service.IWorkReviewInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单审批信息
*
* @author gejunhao
* @date 2025-04-30
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/reviewInfo")
public class WorkReviewInfoController extends BaseController {
private final IWorkReviewInfoService workReviewInfoService;
/**
* 查询工单审批信息列表
*/
//@SaCheckPermission("platform:reviewInfo:list")
@GetMapping("/list")
public TableDataInfo<WorkReviewInfoVo> list(WorkReviewInfoBo bo, PageQuery pageQuery) {
return workReviewInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出工单审批信息列表
*/
//@SaCheckPermission("platform:reviewInfo:export")
@Log(title = "工单审批信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkReviewInfoBo bo, HttpServletResponse response) {
List<WorkReviewInfoVo> list = workReviewInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "工单审批信息", WorkReviewInfoVo.class, response);
}
/**
* 获取工单审批信息详细信息
*
* @param id 主键
*/
//@SaCheckPermission("platform:reviewInfo:query")
@GetMapping("/{id}")
public R<WorkReviewInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workReviewInfoService.queryById(id));
}
/**
* 新增工单审批信息
*/
//@SaCheckPermission("platform:reviewInfo:add")
@Log(title = "工单审批信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkReviewInfoBo bo) {
return toAjax(workReviewInfoService.insertByBo(bo));
}
/**
* 修改工单审批信息
*/
//@SaCheckPermission("platform:reviewInfo:edit")
@Log(title = "工单审批信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WorkReviewInfoBo bo) {
return toAjax(workReviewInfoService.updateByBo(bo));
}
/**
* 删除工单审批信息
*
* @param ids 主键串
*/
//@SaCheckPermission("platform:reviewInfo:remove")
@Log(title = "工单审批信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workReviewInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

70
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/converter/WorkOrderStatusConverter.java

@ -0,0 +1,70 @@
package org.dromara.platform.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
/**
* 用户信息性别转换器
*
* @author 张德龙
*/
public class WorkOrderStatusConverter implements Converter<Long> {
/**
* Convert Java objects to excel objects
*
* @param value Java Data.NotNull.
* @param contentProperty Content property.Nullable.
* @param globalConfiguration Global configuration.NotNull.
* @return Data to put into a Excel
* * 当前状态
* * 0 待派遣
* * 1 待接单
* * 2 处理中
* * 3 运维单位处理时回退至派遣
* * 4 初审
* * 5 终审
* * 6 结案
* * 7 处理中(已延期)
* * 8 作废
* * 9 待接单(派遣)
* * 10 待接单(转派)
*/
@Override
public WriteCellData<?> convertToExcelData(Long value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
if (value == null) {
return new WriteCellData<>("未知");
}
long status = value; // 自动拆箱为基本类型 long
switch ((int) status) { // 可以安全地转为 int
case 0:
return new WriteCellData<>("待派遣");
case 1:
return new WriteCellData<>("待接单");
case 2:
return new WriteCellData<>("处理中");
case 3:
return new WriteCellData<>("运维单位处理时回退至派遣");
case 4:
return new WriteCellData<>("初审");
case 5:
return new WriteCellData<>("终审");
case 6:
return new WriteCellData<>("结案");
case 7:
return new WriteCellData<>("处理中(已延期)");
case 8:
return new WriteCellData<>("作废");
case 9:
return new WriteCellData<>("待接单(派遣)");
case 10:
return new WriteCellData<>("待接单(转派)");
default:
return new WriteCellData<>("未知");
}
}
}

106
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AgreementInfo.java

@ -0,0 +1,106 @@
package org.dromara.platform.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 协议信息对象 agreement_info
*
* @author gejunhao
* @date 2025-03-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("agreement_info")
public class AgreementInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自增id
*/
@TableId(value = "id")
@ExcelIgnore
private String id;
/**
* 服务目录id
*/
@ExcelIgnore
private String serviceCategoryId;
/**
* 交付内容
*/
@ExcelProperty("交付内容")
private String deliverContent;
/**
* 服务项目
*/
@ExcelProperty("服务项目")
private String serviceProject;
/**
* 代码
*/
@ExcelProperty("代码")
private String code;
/**
* 服务内容
*/
@ExcelProperty("服务内容")
private String serviceContent;
/**
* 响应级别
*/
@ExcelProperty("响应级别")
private String responseLevel;
/**
* 服务频率
*/
@ExcelProperty("服务频率")
private String frequency;
/**
* 请求类型
*/
@ExcelProperty("请求类型")
private String responseType;
/**
* 交付方式
*/
@ExcelProperty("交付方式")
private String deliverType;
/**
* 交付成果
*/
@ExcelProperty("交付成果")
private String deliverResult;
/**
* 当前状态
*/
@ExcelIgnore
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

32
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/Attachment.java

@ -0,0 +1,32 @@
package org.dromara.platform.domain;
public class Attachment {
private String url;
private String name;
// 默认构造函数
public Attachment() {}
// 带参数的构造函数
public Attachment(String url, String name) {
this.url = url;
this.name = name;
}
// Getter 和 Setter 方法
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

75
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AttachmentSerializer.java

@ -0,0 +1,75 @@
package org.dromara.platform.domain;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class AttachmentSerializer {
private final ObjectMapper objectMapper = new ObjectMapper();
/**
* 将List<Attachment>序列化为JSON字符串
*
* @param attachment 包含附件信息的列表
* @return 序列化后的JSON字符串
*/
public String serializeAttachments(List<Attachment> attachment) {
try {
// 使用ObjectMapper将List<Attachment>转换为JSON字符串
return objectMapper.writeValueAsString(attachment);
} catch (JsonProcessingException e) {
// 处理可能发生的异常
e.printStackTrace();
// 根据实际情况决定如何处理错误,这里简单地返回null
return null;
}
}
/**
* 将JSON字符串反序列化为List<Attachment>
*
* @param attachmentJson JSON格式的字符串
* @return 反序列化后的List<Attachment>
*/
public List<Attachment> deserializeAttachments(String attachmentJson) {
try {
// 使用ObjectMapper将JSON字符串转换回List<Attachment>
return objectMapper.readValue(attachmentJson, new TypeReference<List<Attachment>>() {});
} catch (JsonProcessingException e) {
// 处理可能发生的异常
e.printStackTrace();
// 根据实际情况决定如何处理错误,这里简单地返回null
return null;
}
}
// 测试方法
public static void main(String[] args) {
AttachmentSerializer serializer = new AttachmentSerializer();
// 创建一些模拟数据
List<Attachment> attachmentList = List.of(
new Attachment("http://example.com/file1.pdf", "File One"),
new Attachment("http://example.com/file2.docx", "File Two")
);
// 序列化
String serialized = serializer.serializeAttachments(attachmentList);
System.out.println(serialized); // 输出序列化后的JSON字符串
// 反序列化
List<Attachment> deserializedAttachments = serializer.deserializeAttachments(serialized);
System.out.println("Deserialized:");
if (deserializedAttachments != null) {
for (Attachment attachment : deserializedAttachments) {
System.out.println("URL: " + attachment.getUrl() + ", Name: " + attachment.getName());
}
} else {
System.out.println("Failed to deserialize the JSON string.");
}
}
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/CheckType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 考核类型-类别对象 check_type
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("check_type")
public class CheckType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 名称
*/
private String name;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

142
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ContractInfo.java

@ -0,0 +1,142 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 合同信息对象 contract_info
*
* @author Lion Li
* @date 2025-03-26
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("contract_info")
public class ContractInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 合同名称
*/
private String contractName;
/**
* 合同编号
*/
private String contractCode;
/**
* 项目名称
*/
private String projectName;
/**
* 所有者ID
*/
private String ownerId;
/**
* 所有者名称
*/
private String ownerName;
/**
* 是否为子合同1表示是子合同0或NULL则不是
*/
private Long isChildren;
/**
* 合同类型
*/
private String contractType;
/**
* 所属区域
*/
private String district;
/**
* 合同金额
*/
private Long contractPrice;
/**
* 签订日期
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date signDate;
/**
* 开始时间
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date startDate;
/**
* 结束时间
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date endDate;
/**
* 甲方单位
*/
private String partyA;
/**
* 甲方代表
*/
private String partyAPerson;
/**
* 乙方单位
*/
private String partyB;
/**
* 乙方代表
*/
private String partyBPerson;
/**
* 合同内容
*/
private String contractContent;
/**
* 合同备注
*/
private String remark;
/**
* 附件
*/
private String attachment;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ContractType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 合同类别-类别对象 contract_type
*
* @author gejunhao
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("contract_type")
public class ContractType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 合同类别名称
*/
private String typeName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

115
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DailyInspectionReport.java

@ -0,0 +1,115 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
import java.util.List;
/**
* 巡检日报对象 daily_inspection_report
*
* @author gejunhao
* @date 2025-02-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("daily_inspection_report")
public class DailyInspectionReport extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 记录唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 项目名称
*/
private String projectName;
/**
* 巡检单位
*/
private String inspectionUnit;
/**
* 类型
*/
private String type;
/**
* 附件
*/
@TableField(exist = false)
private List<Attachment> attachments;
/**
* 巡检图片
*/
@TableField(exist = false)
private List<Attachment> inspectionPhotos;
/**
* 巡检时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date inspectionTime;
/**
* 巡检人员
*/
private String inspectionPeople;
/**
* 巡检部位
*/
private String inspectionPart;
/**
* 附件
*/
private String attachment;
/**
* 运维单位
*/
private String ioCompany;
/**
* 巡检情况
*/
private String inspectionStatus;
/**
* 平台在线率
*/
private Long platformOnlineRate;
/**
* 问题处理描述
*/
private String problemHandleDesc;
/**
* 巡检照片
*/
private String inspectionPhoto;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

70
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DistrictInfo.java

@ -0,0 +1,70 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 区域信息-用于下拉框对象 district_info
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("district_info")
public class DistrictInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
List<DistrictInfo> children;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 区域名称
*/
private String districtName;
/**
* 区域类别:
*/
private String districtType;
/**
* 所有者ID
*/
private String ownerId;
/**
* 所有者名称
*/
private String ownerName;
/**
* 是否为子1表示是子0或NULL则不是
*/
private Long isChildren;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

57
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DocumentInfo.java

@ -0,0 +1,57 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 文档信息对象 document_info
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("document_info")
public class DocumentInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 文档名称
*/
private String documentName;
/**
* 文档类型
*/
private String type;
/**
* 附件
*/
private String attachment;
/**
* 当前状态:0启用 1禁用
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DocumentType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 文件类别-类别对象 document_type
*
* @author gejunhao
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("document_type")
public class DocumentType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 文件类别名称
*/
private String typeName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

102
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/EvaluationInfo.java

@ -0,0 +1,102 @@
package org.dromara.platform.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.util.Date;
/**
* 考核评分信息对象 evaluation_info
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("evaluation_info")
public class EvaluationInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 运维单位
*/
private String ioCompany;
/**
* 考核项目
*/
private String checkProject;
/**
* 考核名称
*/
private String checkName;
/**
* 考核时间
*/
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM")
private Date checkTime;
/**
* 考核得分
*/
private Long checkRating;
/**
* 评分大类
*/
private String largeRating;
/**
* 评分小类
*/
private String smallRating;
/**
* 扣分标准
*/
private String standards;
/**
* 总分
*/
private Long sumRating;
/**
* 扣分
*/
private Long subRating;
/**
* 备注
*/
private String remark;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

77
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/EvaluationTemplate.java

@ -0,0 +1,77 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 考核评分信息-模板对象 evaluation_template
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("evaluation_template")
public class EvaluationTemplate extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 标识用于后续归属
*/
private String flag;
/**
* 评分大类
*/
private String largeRating;
/**
* 评分小类
*/
private String smallRating;
/**
* 扣分标准
*/
private String standards;
/**
* 总分默认为0
*/
private Long sumRating;
/**
* 扣分默认为0
*/
private Long subRating;
/**
* 备注
*/
private String remark;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/FaultCategoryType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 故障大类-类别对象 fault_category_type
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("fault_category_type")
public class FaultCategoryType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 故障类别名称
*/
private String typeName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/FaultSubcategoryType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 故障小类-类别对象 fault_subcategory_type
*
* @author gejunhao
* @date 2025-04-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("fault_subcategory_type")
public class FaultSubcategoryType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 故障小类名称
*/
private String typeName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

109
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/InspectionPlanInfo.java

@ -0,0 +1,109 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 巡检计划对象 inspection_plan_info
*
* @author gejunhao
* @date 2025-02-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("inspection_plan_info")
public class InspectionPlanInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private String id;
/**
* 合同名称
*/
private String contractName;
/**
* 项目名称
*/
private String projectName;
/**
* 计划描述
*/
private String description;
/**
* 开始日期
*/
private Date startDate;
/**
* 结束日期
*/
private Date endDate;
/**
* 频次
*/
private String frequency;
/**
* 当前状态
*/
private Long status;
/**
* 完成情况
*/
private Long progress;
/**
* 运维单位
*/
private String ioCompany;
/**
* 报修时间
*/
private Date fixTime;
/**
* 计划时间
*/
private Date planDate;
/**
* 服务内容
*/
private String serviceProject;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
/**
* 巡检部位
*/
@TableField(exist = false)
private String inspectionPart;
/**
* 交付内容
*/
private String deliverContent;
private String code;
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/LargeRatingType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 评分大类-类别对象 large_rating_type
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("large_rating_type")
public class LargeRatingType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 名称
*/
private String name;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

76
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/MaterialInfo.java

@ -0,0 +1,76 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.Date;
/**
* 材料库-信息对象 material_info
*
* @author gejunhao
* @date 2025-04-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("material_info")
public class MaterialInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 名称
*/
private String name;
/**
* 规格
*/
private String standards;
/**
* 数量
*/
private String amount;
/**
* 单位
*/
private String unit;
/**
* 备注
*/
private String remark;
/**
* 项目id
*/
private String projectId;
/**
* 当前状态
*/
private Long status;
private Double price;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

74
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/NoticeInfo.java

@ -0,0 +1,74 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 公告通知信息对象 notice_info
*
* @author gejunhao
* @date 2025-04-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("notice_info")
public class NoticeInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 标题
*/
private String title;
/**
* 项目名称
*/
private String projectName;
/**
* 类型
*/
private String type;
/**
* 操作人
*/
private String handler;
/**
* 公告通知正文
*/
private String content;
/**
* 附件
*/
private String attachment;
private String fileName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/OrganizationType.java

@ -0,0 +1,47 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 所属机构-类别对象 organization_type
*
* @author gejunhao
* @date 2025-04-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("organization_type")
public class OrganizationType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 组织机构名称
*/
private String organizationName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

52
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/PartyInfo.java

@ -0,0 +1,52 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 单位信息-用于下拉框对象 party_info
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("party_info")
public class PartyInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 单位名称
*/
private String partyName;
/**
* 单位类别:甲方 乙方
*/
private String partyType;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

84
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/PerformanceManagement.java

@ -0,0 +1,84 @@
package org.dromara.platform.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 考核管理对象 performance_management
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("performance_management")
public class PerformanceManagement extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@ExcelIgnore
@TableId(value = "id")
private String id;
/**
*考核类型
*/
@ExcelProperty("考核类型")
private String checkType;
/**
* 类型(暂未使用)
*/
@ExcelIgnore
private String type;
/**
* 评分大类
*/
@ExcelProperty("评分大类")
private String largeRating;
/**
* 评分小类
*/
@ExcelProperty("评分小类")
private String smallRating;
/**
* 分值
*/
@ExcelProperty("分值")
private Long rating;
/**
* 扣分标准
*/
@ExcelProperty("扣分标准")
private String standards;
/**
* 当前状态
*/
@ExcelIgnore
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

110
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/PointInfo.java

@ -0,0 +1,110 @@
package org.dromara.platform.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
/**
* 点位信息对象 point_info
*
* @author gejunhao
* @date 2025-03-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("point_info")
public class PointInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自增id
*/
@TableId(value = "id")
private String id;
/**
* 编码
*/
private String code;
/**
* 点位名称
*/
private String pointName;
/**
* 地址
*/
private String address;
/**
* 所属机构
*/
private String organizationName;
/**
* 链路维护单位
*/
private String linkUnit;
/**
* 维护单位
*/
private String maintenanceUnit;
/**
* 摄像机类型
*/
private String cameraType;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
private String projectName;
private String projectId;
/**
* 备注
*/
private String remark;
private String ip;
private String port;
/**
* 建设项目
*/
private String buildProject;
/**
* 建设时间
*/
private String buildTime;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

76
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectCategoryPoint.java

@ -0,0 +1,76 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 项目目录-点位对象 project_category_point
*
* @author gejunhao
* @date 2025-03-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_category_point")
public class ProjectCategoryPoint extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
List<ProjectCategoryPoint> children;
/**
* 目录ID唯一标识每个目录条目
*/
@TableId(value = "id")
private String id;
/**
* 项目id
*/
private String projectId;
/**
* 目录名称表示目录的名字
*/
private String projectName;
/**
* 编号用于额外标识或排序目的
*/
private String code;
/**
* 是否为子目录true表示是子目录false则不是
*/
private Long isChildren;
/**
* 上级目录id指向父目录的id如果没有父目录则为空
*/
private String ownerId;
/**
* 上级目录名称冗余存储父目录的名称以便查询优化
*/
private String ownerName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

107
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectInfo.java

@ -0,0 +1,107 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 项目信息对象 project_info
*
* @author gejunhao
* @date 2025-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_info")
public class ProjectInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 项目名称
*/
private String projectName;
/**
* 合同名称
*/
private String contractName;
/**
* 项目编号
*/
private String projectCode;
/**
* 项目类别
*/
private String projectType;
/**
* 故障大类
*/
private String faultCategory;
/**
* 接单超期时间
*/
private String orderTakingOverTime;
/**
* 接单超期扣款
*/
private String orderTakingCost;
/**
* 处理超期时间
*/
private String handleOverTime;
/**
* 处理超期扣款
*/
private String handleCost;
/**
* 关联项目数量
*/
private Long relatedProjectAmount;
/**
* 项目概要
*/
private String projectContent;
/**
* 项目图标
*/
private String icon;
/**
* 附件
*/
private String attachment;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

45
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectManager.java

@ -0,0 +1,45 @@
package org.dromara.platform.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
*
* @author 14212
* @TableName project_manager
*/
@TableName(value ="project_manager")
@Data
public class ProjectManager implements Serializable {
@ExcelProperty(value = "序号")
//@TableId(type = IdType.AUTO)
@TableField(exist = false)
private Integer id;
@ExcelProperty(value = "项目名称")
private String projectName;
/**
* 可以有多个项目负责人
*/
@ExcelProperty(value = "项目负责人")
private String manager;
@ExcelProperty(value = "联系方式")
private String phone;
@ExcelIgnore
private String tenantId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

111
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/RoutineInspectionInfo.java

@ -0,0 +1,111 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 日常巡检-计划对象 routine_inspection_info
*
* @author gejunhao
* @date 2025-04-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("routine_inspection_info")
public class RoutineInspectionInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 记录唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 项目名称
*/
private String projectName;
/**
* 所属合同
*/
private String contractName;
/**
* 计划描述
*/
private String description;
/**
* 服务项目
*/
private String serviceProject;
/**
* 代码
*/
private String code;
/**
* 运维单位
*/
private String ioCompany;
/**
* 计划开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date scheduleStartDate;
/**
* 计划结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date scheduleEndDate;
/**
* 实际完成时间
*/
private Date finishDate;
/**
* 巡检点位
*/
private String pointName;
/**
* 当前状态
*/
private Long status;
/**
* 处理人
*/
private String handler;
/**
* 审批人
*/
private String approver;
/**
* 交付内容
*/
private String deliverContent;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

80
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ServiceCatalogCategory.java

@ -0,0 +1,80 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 服务目录-类别对象 service_catalog_category
*
* @author gejunhao
* @date 2025-03-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("service_catalog_category")
public class ServiceCatalogCategory extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
List<ServiceCatalogCategory> children;
/**
* 目录ID唯一标识每个目录条目
*/
@TableId(value = "id")
private String id;
// /**
// * 项目id
// */
// private String categoryId;
/**
* 项目目录名称
*/
private String categoryName;
/**
* 描述
*/
private String description;
/**
* 编号用于额外标识或排序目的
*/
private String code;
/**
* 是否为子目录true表示是子目录false则不是
*/
private Long isChildren;
/**
* 上级目录id指向父目录的id如果没有父目录则为空
*/
private String ownerId;
/**
* 上级目录名称冗余存储父目录的名称以便查询优化
*/
private String ownerName;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

77
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkDealInfo.java

@ -0,0 +1,77 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
import java.util.List;
/**
* 工单处理信息对象 work_deal_info
*
* @author gejunhao
* @date 2025-04-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_deal_info")
public class WorkDealInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 关联的工单ID
*/
private String workOrderId;
/**
* 维修人员
*/
private String fixPeople;
/**
* 修复时间
*/
private Date fixTime;
/**
* 修复结果
*/
private String fixResult;
/**
* 费用情况
*/
private Long cost;
/**
* 故障图片
*/
private String attachment;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
@TableField(exist = false)
private List<Attachment> attachments;
}

84
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkDelayProcess.java

@ -0,0 +1,84 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 工单延期流程信息对象 work_delay_process
*
* @author gejunhao
* @date 2025-05-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_delay_process")
public class WorkDelayProcess extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 关联的工单ID
*/
private String workOrderId;
/**
* 操作人
*/
private String operator;
/**
* 操作时间
*/
private Date operationTime;
/**
* 操作名称
*/
private String operationName;
/**
* 用时
*/
private String duration;
/**
* 操作描述
*/
private String description;
/**
* 环节
*/
private String stage;
/**
* 处理结果描述
*/
private String feedback;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

149
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelay.java

@ -0,0 +1,149 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 工单延期审核对象 work_order_delay
*
* @author gejunhao
* @date 2025-04-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_order_delay")
public class WorkOrderDelay extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 工单延期记录的唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 所属项目的名称
*/
private String projectName;
/**
* 所属合同的名称或编号
*/
private String contractName;
/**
* 延期的原因说明
*/
private String delayReason;
/**
* 原定的预计结束时间延期前的时间
*/
private Date beforeDelayTime;
/**
* 新的预计结束时间延期后的时间
*/
private Date afterDelayTime;
/**
* 处理结果
*/
private String handleResult;
/**
* 报修人员
*/
private String repairer;
/**
* 报修人员ID
*/
private String repairerId;
/**
* 报修时间
*/
private Date repairerTime;
/**
* 是否事故 (0: , 1: )
*/
private String isAccident;
/**
* 响应级别 (0: 常规, 1: 紧急, 2: 特急)
*/
private String responseLevel;
/**
* 响应时限
*/
private Long responseTime;
/**
* 故障大类
*/
private String faultCategory;
/**
* 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)
*/
private String faultSubcategory;
/**
* 所属机构
*/
private String organizationName;
/**
* 故障地点
*/
private String faultLocation;
/**
* 故障描述
*/
private String faultDescription;
/**
* 故障图片
*/
private String attachment;
/**
* 待处理人
*/
private String handler;
/**
* 待处理人ID
*/
private String handlerId;
/**
* 审批人
*/
private String approver;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

159
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelayHistory.java

@ -0,0 +1,159 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 工单延期审核-历史操作对象 work_order_delay_history
*
* @author gejunhao
* @date 2025-05-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_order_delay_history")
public class WorkOrderDelayHistory extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 工单延期记录的唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 工单id
*/
private String workOrderId;
/**
* 所属项目的名称
*/
private String projectName;
/**
* 所属合同的名称或编号
*/
private String contractName;
/**
* 延期的原因说明
*/
private String delayReason;
/**
* 原定的预计结束时间延期前的时间
*/
private Date beforeDelayTime;
/**
* 新的预计结束时间延期后的时间
*/
private Date afterDelayTime;
/**
* 处理结果
*/
private String handleResult;
/**
* 审核意见
*/
private String auditOpinion;
/**
* 报修人员
*/
private String repairer;
/**
* 报修人员ID
*/
private String repairerId;
/**
* 报修时间
*/
private Date repairerTime;
/**
* 是否事故 (0: , 1: )
*/
private String isAccident;
/**
* 响应级别 (0: 常规, 1: 紧急, 2: 特急)
*/
private String responseLevel;
/**
* 响应时限
*/
private Long responseTime;
/**
* 故障大类
*/
private String faultCategory;
/**
* 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)
*/
private String faultSubcategory;
/**
* 所属机构
*/
private String organizationName;
/**
* 故障地点
*/
private String faultLocation;
/**
* 故障描述
*/
private String faultDescription;
/**
* 故障图片
*/
private String attachment;
/**
* 待处理人
*/
private String handler;
/**
* 待处理人ID
*/
private String handlerId;
/**
* 审批人
*/
private String approver;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

213
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java

@ -0,0 +1,213 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.constant.TransConstant;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.util.List;
/**
* 工单信息对象 work_order_info
*
* @author gejunhao
* @date 2025-04-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_order_info")
public class WorkOrderInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 工单ID
*/
@TableId(value = "id")
private String id;
/**
* 所属项目
*/
private String projectName;
/**
* 合同名称
*/
private String contractName;
/**
* 维护单位
*/
private String maintenanceUnit;
/**
* 报修人员
*/
private String repairer;
/**
* 报修人员ID
*/
private String repairerId;
/**
*报修时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date repairTime;
/**
* 是否事故 (0: , 1: )
*/
private String isAccident;
/**
* 响应级别 (0: 常规, 1: 紧急, 2: 特急)
*/
private String responseLevel;
/**
* 响应时限
*/
private Long responseTime;
/**
* 故障大类
*/
private String faultCategory;
/**
* 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)
*/
private String faultSubcategory;
/**
* 所属机构
*/
private String organizationName;
/**
* 故障地点
*/
private String faultLocation;
/**
* 故障描述
*/
private String faultDescription;
/**
* 故障图片
*/
private String attachment;
/**
* 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)
*/
private String maintenanceRequirement;
/**
* 派遣意见
*/
private String dispatchOpinion;
/**
* 是否派遣
*/
private String isDispatched;
/**
* 纬度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/**
* 处理人
*/
private String handler;
/**
* 处理时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date handleTime;
/**
* 处理结果
*/
private String handleResult;
/**
* 当前状态
* 0 待派遣
* 1 待接单
* 2 处理中
* 3 运维单位处理时回退至派遣
* 4 初审
* 5 终审
* 6 结案
* 7 处理中(已延期)
* 8 作废
* 9 待接单(派遣)
* 10 待接单(转派)
*
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
@TableField(exist = false)
//@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private List<Attachment> attachments;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date ScheduleStartDate;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date ScheduleEndDate;
/**
* 巡检点位
*/
@TableField(exist = false)
private String inspectionPoint;
/**
* 工单类型
*/
@TableField(exist = false)
private String type;
/**
* 运维单位
*/
@TableField(exist = false)
private String ioCompany;
//@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startDate;
/**
* 结束时间
*/
//@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;
}

82
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderProcess.java

@ -0,0 +1,82 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 工单流程信息对象 work_order_process
*
* @author gejunhao
* @date 2025-04-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_order_process")
public class WorkOrderProcess extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 关联的工单ID
*/
private String workOrderId;
/**
* 操作人
*/
private String operator;
/**
* 操作时间
*/
private Date operationTime;
/**
* 用时单位
*/
private String duration;
/**
* 环节
*/
private String stage;
/**
* 操作名称
*/
private String operationName;
/**
* 处理结果描述
*/
private String feedback;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
/**
* 操作描述
*/
private String description;
}

124
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkReviewInfo.java

@ -0,0 +1,124 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 工单审批信息对象 work_review_info
*
* @author gejunhao
* @date 2025-04-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_review_info")
public class WorkReviewInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 唯一标识符
*/
@TableId(value = "id")
private String id;
/**
* 关联的工单ID
*/
private String workOrderId;
/**
* 审批人
*/
private String reviewPeople;
/**
* 申请人
*/
private String applyPeople;
/**
* 项目名称
*/
private String projectName;
/**
* 合同名称
*/
private String contractName;
/**
* 处理结果:通过,退回
*/
private String handleResult;
/**
* 接单是否超期
*/
private String isOrderTakingOvertime;
/**
* 接单超期扣款
*/
private Long orderTakingCost;
/**
* 处理是否超期
*/
private String isHandleOvertime;
/**
* 处理超期扣款
*/
private Long handleCost;
/**
* 其他扣款费用
*/
private Long otherCost;
/**
* 其他扣费原因
*/
private String otherCostReason;
/**
* 处理结果描述
*/
private String auditOpinion;
/**
* 是否结案:,
*/
private String isCloseCase;
/**
* 操作时间
*/
private Date operationTime;
/**
* 附件
*/
private String attachment;
/**
* 当前状态
*/
private Long status;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

18
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/app/WeComSubscribeDataItem.java

@ -0,0 +1,18 @@
package org.dromara.platform.domain.app;
public class WeComSubscribeDataItem {
private String value;
public WeComSubscribeDataItem(String value) {
this.value = value;
}
// Getter and Setter
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

43
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/app/WeComSubscribeMessageRequest.java

@ -0,0 +1,43 @@
package org.dromara.platform.domain.app;
import java.util.Map;
public class WeComSubscribeMessageRequest {
private String touser;
private String template_id;
private String page;
private Map<String, WeComSubscribeDataItem> data;
// Getter and Setter
public String getTouser() {
return touser;
}
public void setTouser(String touser) {
this.touser = touser;
}
public String getTemplate_id() {
return template_id;
}
public void setTemplate_id(String template_id) {
this.template_id = template_id;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public Map<String, WeComSubscribeDataItem> getData() {
return data;
}
public void setData(Map<String, WeComSubscribeDataItem> data) {
this.data = data;
}
}

96
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/AgreementInfoBo.java

@ -0,0 +1,96 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.AgreementInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 协议信息业务对象 agreement_info
*
* @author gejunhao
* @date 2025-03-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = AgreementInfo.class, reverseConvertGenerate = false)
public class AgreementInfoBo extends BaseEntity {
/**
* 自增id
*/
@NotBlank(message = "自增id不能为空", groups = { EditGroup.class })
private String id;
/**
* 服务目录id
*/
@NotBlank(message = "服务目录id不能为空", groups = { AddGroup.class, EditGroup.class })
private String serviceCategoryId;
/**
* 交付内容
*/
@NotBlank(message = "交付内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String deliverContent;
/**
* 服务项目
*/
@NotBlank(message = "服务项目不能为空", groups = { AddGroup.class, EditGroup.class })
private String serviceProject;
/**
* 代码
*/
//@NotBlank(message = "代码不能为空", groups = { AddGroup.class, EditGroup.class })
private String code;
/**
* 服务内容
*/
@NotBlank(message = "服务内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String serviceContent;
/**
* 响应级别
*/
@NotBlank(message = "相应级别不能为空", groups = { AddGroup.class, EditGroup.class })
private String responseLevel;
/**
* 服务频率
*/
@NotBlank(message = "服务频率不能为空", groups = { AddGroup.class, EditGroup.class })
private String frequency;
/**
* 请求类型
*/
@NotBlank(message = "请求类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String responseType;
/**
* 交付方式
*/
@NotNull(message = "交付方式不能为空", groups = { AddGroup.class, EditGroup.class })
private String deliverType;
/**
* 交付成果
*/
@NotBlank(message = "交付成果不能为空", groups = { AddGroup.class, EditGroup.class })
private String deliverResult;
/**
* 当前状态
*/
//@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/CheckTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.CheckType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 考核类型-类别业务对象 check_type
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CheckType.class, reverseConvertGenerate = false)
public class CheckTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 名称
*/
@NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 当前状态
*/
//@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

168
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ContractInfoBo.java

@ -0,0 +1,168 @@
package org.dromara.platform.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.platform.domain.Attachment;
import org.dromara.platform.domain.ContractInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 合同信息业务对象 contract_info
*
* @author gejunhao
* @date 2025-03-26
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ContractInfo.class, reverseConvertGenerate = false)
public class ContractInfoBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 附件
*/
@TableField(exist = false)
//@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private List<Attachment> attachments;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 合同名称
*/
@NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractName;
/**
* 合同编号
*/
@NotBlank(message = "合同编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractCode;
/**
* 所有者ID
*/
//@NotBlank(message = "所有者ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String ownerId;
/**
* 所有者名称
*/
//@NotBlank(message = "所有者名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String ownerName;
/**
* 是否为子合同1表示是子合同0或NULL则不是
*/
//@NotNull(message = "是否为子合同(1表示是子合同,0或NULL则不是)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long isChildren;
/**
* 合同类型
*/
@NotBlank(message = "合同类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractType;
/**
* 所属区域
*/
@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
private String district;
/**
* 合同金额
*/
@NotNull(message = "合同金额不能为空", groups = { AddGroup.class, EditGroup.class })
private Long contractPrice;
/**
* 签订日期
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@NotNull(message = "签订日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date signDate;
/**
* 开始时间
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@NotNull(message = "开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date startDate;
/**
* 结束时间
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@NotNull(message = "结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date endDate;
/**
* 甲方单位
*/
@NotBlank(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String partyA;
/**
* 甲方代表
*/
@NotBlank(message = "甲方代表不能为空", groups = { AddGroup.class, EditGroup.class })
private String partyAPerson;
/**
* 乙方单位
*/
@NotBlank(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String partyB;
/**
* 乙方代表
*/
@NotBlank(message = "乙方代表不能为空", groups = { AddGroup.class, EditGroup.class })
private String partyBPerson;
/**
* 合同内容
*/
@NotBlank(message = "合同内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractContent;
/**
* 合同备注
*/
//@NotBlank(message = "合同备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 附件
*/
//@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private String attachment;
/**
* 当前状态
*/
//@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ContractTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.ContractType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 合同类别-类别业务对象 contract_type
*
* @author gejunhao
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ContractType.class, reverseConvertGenerate = false)
public class ContractTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 合同类别名称
*/
@NotBlank(message = "合同类别名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String typeName;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

122
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DailyInspectionReportBo.java

@ -0,0 +1,122 @@
package org.dromara.platform.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.platform.domain.Attachment;
import org.dromara.platform.domain.DailyInspectionReport;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 巡检日报业务对象 daily_inspection_report
*
* @author gejunhao
* @date 2025-02-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DailyInspectionReport.class, reverseConvertGenerate = false)
public class DailyInspectionReportBo extends BaseEntity {
/**
* 记录唯一标识符
*/
@NotNull(message = "记录唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 巡检单位
*/
//@NotBlank(message = "巡检单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String inspectionUnit;
/**
* 类型
*/
//@NotNull(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
/**
* 巡检时间
*/
@NotNull(message = "巡检时间不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date inspectionTime;
/**
* 巡检人员
*/
//@NotBlank(message = "巡检人员不能为空", groups = { AddGroup.class, EditGroup.class })
private String inspectionPeople;
/**
* 巡检部位
*/
//@NotBlank(message = "巡检部位不能为空", groups = { AddGroup.class, EditGroup.class })
private String inspectionPart;
/**
* 附件
*/
//@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private String attachment;
/**
* 附件
*/
@TableField(exist = false)
private List<Attachment> attachments;
/**
* 巡检图片
*/
@TableField(exist = false)
private List<Attachment> inspectionPhotos;
/**
* 运维单位
*/
//@NotBlank(message = "运维单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String ioCompany;
/**
* 巡检情况
*/
@NotNull(message = "巡检情况不能为空", groups = { AddGroup.class, EditGroup.class })
private String inspectionStatus;
/**
* 平台在线率
*/
@NotNull(message = "平台在线率不能为空", groups = { AddGroup.class, EditGroup.class })
private Long platformOnlineRate;
/**
* 问题处理描述
*/
//@NotBlank(message = "问题处理描述不能为空", groups = { AddGroup.class, EditGroup.class })
private String problemHandleDesc;
/**
* 巡检照片
*/
//@NotBlank(message = "巡检照片不能为空", groups = { AddGroup.class, EditGroup.class })
private String inspectionPhoto;
}

66
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DistrictInfoBo.java

@ -0,0 +1,66 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.DistrictInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 区域信息-用于下拉框业务对象 district_info
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DistrictInfo.class, reverseConvertGenerate = false)
public class DistrictInfoBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 区域名称
*/
@NotBlank(message = "区域名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String districtName;
/**
* 区域类别:
*/
@NotBlank(message = "区域类别: 市 县 区不能为空", groups = { AddGroup.class, EditGroup.class })
private String districtType;
/**
* 所有者ID
*/
@NotBlank(message = "所有者ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String ownerId;
/**
* 所有者名称
*/
@NotBlank(message = "所有者名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String ownerName;
/**
* 是否为子1表示是子0或NULL则不是
*/
@NotNull(message = "是否为子(1表示是子,0或NULL则不是)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long isChildren;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

64
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DocumentInfoBo.java

@ -0,0 +1,64 @@
package org.dromara.platform.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.platform.domain.Attachment;
import org.dromara.platform.domain.DocumentInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.List;
/**
* 文档信息业务对象 document_info
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DocumentInfo.class, reverseConvertGenerate = false)
public class DocumentInfoBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 文档名称
*/
@NotBlank(message = "文档名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String documentName;
/**
* 文档类型
*/
@NotBlank(message = "文档类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
/**
* 附件
*/
//@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private String attachment;
/**
* 附件
*/
@TableField(exist = false)
private List<Attachment> attachments;
/**
* 当前状态:0启用 1禁用
*/
@NotNull(message = "当前状态:0启用 1禁用不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/DocumentTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.DocumentType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 文件类别-类别业务对象 document_type
*
* @author gejunhao
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DocumentType.class, reverseConvertGenerate = false)
public class DocumentTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 文件类别名称
*/
@NotBlank(message = "文件类别名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String typeName;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

107
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/EvaluationInfoBo.java

@ -0,0 +1,107 @@
package org.dromara.platform.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.platform.domain.EvaluationInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 考核评分信息业务对象 evaluation_info
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = EvaluationInfo.class, reverseConvertGenerate = false)
public class EvaluationInfoBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 运维单位
*/
@NotBlank(message = "运维单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String ioCompany;
/**
* 考核项目
*/
@NotBlank(message = "考核项目不能为空", groups = { AddGroup.class, EditGroup.class })
private String checkProject;
/**
* 考核名称
*/
@NotBlank(message = "考核名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String checkName;
/**
* 考核时间
*/
//@NotBlank(message = "考核时间不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM")
private Date checkTime;
/**
* 考核得分
*/
// @NotNull(message = "考核得分不能为空", groups = { AddGroup.class, EditGroup.class })
private Long checkRating;
/**
* 评分大类
*/
// @NotBlank(message = "评分大类不能为空", groups = { AddGroup.class, EditGroup.class })
private String largeRating;
/**
* 评分小类
*/
//@NotBlank(message = "评分小类不能为空", groups = { AddGroup.class, EditGroup.class })
private String smallRating;
/**
* 扣分标准
*/
// @NotBlank(message = "扣分标准不能为空", groups = { AddGroup.class, EditGroup.class })
private String standards;
/**
* 总分
*/
//@NotNull(message = "总分不能为空", groups = { AddGroup.class, EditGroup.class })
private Long sumRating;
/**
* 扣分
*/
//@NotNull(message = "扣分不能为空", groups = { AddGroup.class, EditGroup.class })
private Long subRating;
/**
* 备注
*/
private String remark;
/**
* 当前状态
*/
//@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

77
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/EvaluationTemplateBo.java

@ -0,0 +1,77 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.EvaluationTemplate;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 考核评分信息-模板业务对象 evaluation_template
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = EvaluationTemplate.class, reverseConvertGenerate = false)
public class EvaluationTemplateBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 标识用于后续归属
*/
@NotBlank(message = "标识用于后续归属不能为空", groups = { AddGroup.class, EditGroup.class })
private String flag;
/**
* 评分大类
*/
@NotBlank(message = "评分大类不能为空", groups = { AddGroup.class, EditGroup.class })
private String largeRating;
/**
* 评分小类
*/
@NotBlank(message = "评分小类不能为空", groups = { AddGroup.class, EditGroup.class })
private String smallRating;
/**
* 扣分标准
*/
@NotBlank(message = "扣分标准不能为空", groups = { AddGroup.class, EditGroup.class })
private String standards;
/**
* 总分默认为0
*/
@NotNull(message = "总分,默认为0不能为空", groups = { AddGroup.class, EditGroup.class })
private Long sumRating;
/**
* 扣分默认为0
*/
@NotNull(message = "扣分,默认为0不能为空", groups = { AddGroup.class, EditGroup.class })
private Long subRating;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 当前状态
*/
private Long status;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/FaultCategoryTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.FaultCategoryType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 故障大类-类别业务对象 fault_category_type
*
* @author gejunhao
* @date 2025-04-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = FaultCategoryType.class, reverseConvertGenerate = false)
public class FaultCategoryTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 故障类别名称
*/
@NotBlank(message = "故障类别名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String typeName;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/FaultSubcategoryTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.FaultSubcategoryType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 故障小类-类别业务对象 fault_subcategory_type
*
* @author gejunhao
* @date 2025-04-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = FaultSubcategoryType.class, reverseConvertGenerate = false)
public class FaultSubcategoryTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 故障小类名称
*/
@NotBlank(message = "故障小类名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String typeName;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

110
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/InspectionPlanInfoBo.java

@ -0,0 +1,110 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.InspectionPlanInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 巡检计划业务对象 inspection_plan_info
*
* @author gejunhao
* @date 2025-02-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = InspectionPlanInfo.class, reverseConvertGenerate = false)
public class InspectionPlanInfoBo extends BaseEntity {
/**
* 主键ID
*/
@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
private String id;
/**
* 合同名称
*/
@NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractName;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 计划描述
*/
@NotBlank(message = "计划描述不能为空", groups = { AddGroup.class, EditGroup.class })
private String description;
/**
* 开始日期
*/
@NotNull(message = "开始日期不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startDate;
/**
* 结束日期
*/
@NotNull(message = "结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;
/**
* 频次
*/
@NotNull(message = "频次不能为空", groups = { AddGroup.class, EditGroup.class })
private String frequency;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
/**
* 完成情况
*/
@NotNull(message = "完成情况不能为空", groups = { AddGroup.class, EditGroup.class })
private Long progress;
/**
* 运维单位
*/
@NotBlank(message = "运维单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String ioCompany;
/**
* 报修时间
*/
@NotNull(message = "报修时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date fixTime;
/**
* 计划时间
*/
@NotNull(message = "计划时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date planDate;
/**
* 编码
*/
private String code;
/**
* 交付内容
*/
private String deliverContent;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/LargeRatingTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.LargeRatingType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 评分大类-类别业务对象 large_rating_type
*
* @author gejunhao
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = LargeRatingType.class, reverseConvertGenerate = false)
public class LargeRatingTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 名称
*/
@NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 当前状态
*/
//@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

74
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/MaterialInfoBo.java

@ -0,0 +1,74 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.MaterialInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 材料库-信息业务对象 material_info
*
* @author gejunhao
* @date 2025-04-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = MaterialInfo.class, reverseConvertGenerate = false)
public class MaterialInfoBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 名称
*/
@NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 规格
*/
@NotBlank(message = "规格不能为空", groups = { AddGroup.class, EditGroup.class })
private String standards;
/**
* 数量
*/
@NotBlank(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class })
private String amount;
/**
* 单位
*/
@NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String unit;
/**
* 备注
*/
//@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 项目id
*/
@NotBlank(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectId;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
@NotNull(message = "价格为空", groups = { AddGroup.class, EditGroup.class })
private Double price;
}

79
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/NoticeInfoBo.java

@ -0,0 +1,79 @@
package org.dromara.platform.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.platform.domain.Attachment;
import org.dromara.platform.domain.NoticeInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.List;
/**
* 公告通知信息业务对象 notice_info
*
* @author gejunhao
* @date 2025-04-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = NoticeInfo.class, reverseConvertGenerate = false)
public class NoticeInfoBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 标题
*/
@NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
private String title;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 类型
*/
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
private String fileName;
/**
* 操作人
*/
//@NotBlank(message = "操作人不能为空", groups = { AddGroup.class, EditGroup.class })
private String handler;
/**
* 公告通知正文
*/
@NotBlank(message = "公告通知正文不能为空", groups = { AddGroup.class, EditGroup.class })
private String content;
/**
* 附件
*/
@TableField(exist = false)
//@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private List<Attachment> attachments;
/**
* 当前状态
*/
//@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

42
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/OrganizationTypeBo.java

@ -0,0 +1,42 @@
package org.dromara.platform.domain.bo;
import org.dromara.platform.domain.OrganizationType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 所属机构-类别业务对象 organization_type
*
* @author gejunhao
* @date 2025-04-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrganizationType.class, reverseConvertGenerate = false)
public class OrganizationTypeBo extends BaseEntity {
/**
* 唯一标识符
*/
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id;
/**
* 组织机构名称
*/
@NotBlank(message = "组织机构名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String organizationName;
/**
* 当前状态
*/
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
}

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

Loading…
Cancel
Save