Эх сурвалжийг харах

!71 基于 Maven Module 的方式拆分多模块
Merge pull request !71 from 芋道源码/feature/multi-module

芋道源码 3 жил өмнө
parent
commit
bb02c8eccc
100 өөрчлөгдсөн 543 нэмэгдсэн , 4521 устгасан
  1. 40 33
      README.md
  2. 7 3
      http-client.env.json
  3. BIN
      img.png
  4. 34 4
      pom.xml
  5. 462 44
      sql/ruoyi-vue-pro.sql
  6. 0 168
      yudao-admin-server/pom.xml
  7. 0 14
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/AdminServerApplication.java
  8. 0 4
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/monitor/package-info.java
  9. 0 6
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/package-info.java
  10. 0 41
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/security/SecurityConfiguration.java
  11. 0 17
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormSimpleRespVO.java
  12. 0 14
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java
  13. 0 31
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java
  14. 0 18
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java
  15. 0 22
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/model/BpmModeImportReqVO.java
  16. 0 26
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/model/ModelPageReqVO.java
  17. 0 34
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmFormConvert.java
  18. 0 44
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmTaskAssignRuleConvert.java
  19. 0 37
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java
  20. 0 57
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/message/BpmMessageConvert.java
  21. 0 30
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/BpmOALeaveConvert.java
  22. 0 6
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/package-info.java
  23. 0 33
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmActivityConvert.java
  24. 0 120
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmProcessInstanceConvert.java
  25. 0 126
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmTaskConvert.java
  26. 0 5
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmTaskMessageRuleDO.java
  27. 0 96
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java
  28. 0 85
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/task/BpmTaskExtDO.java
  29. 0 25
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmFormMapper.java
  30. 0 23
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java
  31. 0 64
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
  32. 0 28
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/message/BpmMessageEnum.java
  33. 0 81
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java
  34. 0 60
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java
  35. 0 7
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/package-info.java
  36. 0 62
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java
  37. 0 30
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignStartUserScript.java
  38. 0 6
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/event/package-info.java
  39. 0 7
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/listener/package-info.java
  40. 0 6
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/package-info.java
  41. 0 9
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/package-info.java
  42. 0 113
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmFormServiceImpl.java
  43. 0 114
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java
  44. 0 40
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/message/BpmMessageService.java
  45. 0 68
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/message/impl/BpmMessageServiceImpl.java
  46. 0 86
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/BpmOALeaveServiceImpl.java
  47. 0 32
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/listener/BpmOALeaveResultListener.java
  48. 0 93
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmActivityServiceImpl.java
  49. 0 12
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/package-info.java
  50. 0 105
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/InfConfigController.java
  51. 0 40
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigBaseVO.java
  52. 0 21
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigCreateReqVO.java
  53. 0 46
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigExcelVO.java
  54. 0 33
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigExportReqVO.java
  55. 0 38
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigPageReqVO.java
  56. 0 31
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigRespVO.java
  57. 0 21
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigUpdateReqVO.java
  58. 0 155
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/doc/InfDbDocController.java
  59. 0 86
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/file/InfFileController.java
  60. 0 35
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/file/vo/InfFilePageReqVO.java
  61. 0 145
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/InfJobController.java
  62. 0 81
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/InfJobLogController.java
  63. 0 37
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobBaseVO.java
  64. 0 21
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobCreateReqVO.java
  65. 0 56
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobExcelVO.java
  66. 0 20
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobExportReqVO.java
  67. 0 25
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobPageReqVO.java
  68. 0 31
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobRespVO.java
  69. 0 21
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobUpdateReqVO.java
  70. 0 53
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogBaseVO.java
  71. 0 53
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogExcelVO.java
  72. 0 33
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogExportReqVO.java
  73. 0 38
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogPageReqVO.java
  74. 0 23
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogRespVO.java
  75. 0 60
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/InfApiAccessLogController.java
  76. 0 74
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/InfApiErrorLogController.java
  77. 0 75
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogBaseVO.java
  78. 0 65
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogExcelVO.java
  79. 0 42
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogExportReqVO.java
  80. 0 47
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogPageReqVO.java
  81. 0 23
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogRespVO.java
  82. 0 96
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogBaseVO.java
  83. 0 91
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogExcelVO.java
  84. 0 39
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogExportReqVO.java
  85. 0 44
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogPageReqVO.java
  86. 0 29
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogRespVO.java
  87. 0 36
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/redis/vo/InfRedisKeyRespVO.java
  88. 0 44
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/redis/vo/InfRedisMonitorRespVO.java
  89. 0 29
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/config/InfConfigConvert.java
  90. 0 18
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/file/InfFileConvert.java
  91. 0 36
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/job/InfJobConvert.java
  92. 0 30
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/job/InfJobLogConvert.java
  93. 0 30
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/logger/InfApiAccessLogConvert.java
  94. 0 28
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/logger/InfApiErrorLogConvert.java
  95. 0 6
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/package-info.java
  96. 0 34
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/redis/RedisConvert.java
  97. 0 72
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/job/InfJobDO.java
  98. 0 80
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/job/InfJobLogDO.java
  99. 0 37
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/config/InfConfigMapper.java
  100. 0 24
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/file/InfFileMapper.java

+ 40 - 33
README.md

@@ -87,6 +87,11 @@ ps:核心功能已经实现,正在对接微信小程序中...
 * 2022 Q2 => 完成对 <https://github.com/YunaiV/onemall> 的迁移,作为 onemall 的 Spring Boot 单体版本。
 * 2022 Q4 => 完成对 <https://github.com/YunaiV/onemall>> 的重构,作为 onemall 的 Spring Cloud 微服务版本。
 
+### 会员中心
+
+正在开发中,大体计划如下:
+* 2021 Q1 =》完成对 <https://github.com/YunaiV/onemall> 的迁移 
+
 ### 基础设施
 
 |  | 功能 | 描述 |
@@ -118,43 +123,45 @@ ps:核心功能已经实现,正在对接微信小程序中...
 
 ## 技术栈
 
-| 项目 | 说明 |
-| --- | --- |
-| `yudao-dependencies` | Maven 依赖版本管理 |
-| `yudao-framework` | Java 框架拓展 |
-| `yudao-admin-server` | 管理后台的服务端 |
-| `yudao-admin-ui` | 管理后台的 UI 界面 |
-| `yudao-user-server` | 用户前台的服务端 |
-| `yudao-user-ui` | 用户前台的 UI 界面 |
-| `yudao-core-service` | 公共服务,提供共享逻辑 |
-
-> 友情提示:`yudao-admin-server` 和 `yudao-user-server` 会存在需要复用的逻辑,通过 `yudao-core-service` 实现。
+| 项目                    | 说明                 |
+|-----------------------|--------------------|
+| `yudao-dependencies`  | Maven 依赖版本管理       |
+| `yudao-framework`     | Java 框架拓展          |
+| `yudao-server`        | 管理后台 + 用户 APP 的服务端 |
+| `yudao-admin-ui`      | 管理后台的 UI 界面        |
+| `yudao-user-ui`       | 用户 APP 的 UI 界面     |
+| `yudao-module-system` | 系统功能的 Module 模块    |
+| `yudao-module-member` | 会员中心的 Module 模块    |
+| `yudao-module-infra`  | 基础设施的 Module 模块    |
+| `yudao-module-tool`   | 研发工具的 Module 模块    |
+| `yudao-module-bpm`    | 工作流程的 Module 模块    |
+| `yudao-module-pay`    | 支付系统的 Module 模块    |
 
 ### 后端
 
-| 框架 | 说明 |  版本 | 学习指南 |
-| --- | --- | --- | --- |
-| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.4.12 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
-| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 |  |
-| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.8 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
-| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.4.3.4 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
-| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
-| [Redis](https://redis.io/) | key-value 数据库 | 5.0 |  |
-| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.16.6 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
-| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架  | 5.3.13 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
-| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.4.9 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
-| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.1.7 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
+| 框架 | 说明 | 版本       | 学习指南 |
+| --- | --- |----------| --- |
+| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.5.9    | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
+| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7      |  |
+| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.8    | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
+| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.4.3.4  | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
+| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.5.0    | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
+| [Redis](https://redis.io/) | key-value 数据库 | 5.0      |  |
+| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.16.8   | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
+| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架  | 5.3.15   | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
+| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.5.4    | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
+| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.0    | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
 | [Activiti](https://github.com/Activiti/Activiti) | 工作流引擎 | 7.1.0.M6 | [文档](TODO)  |
-| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
-| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.2 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
-| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.0 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
-| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
-| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.4.2 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
-| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.11.4 |  |
-| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.4.1 | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
-| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.16.14 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
-| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.7.1 | - |
-| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 3.6.28 | - |
+| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2    | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
+| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.2    | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
+| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.0    | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
+| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.5.0    | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
+| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.4.2    | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
+| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.12.6   |  |
+| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.4.1    | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
+| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.16.14  | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
+| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.7.2    | - |
+| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 3.9.0    | - |
 
 ### 前端
 

+ 7 - 3
http-client.env.json

@@ -1,7 +1,11 @@
 {
   "local": {
-    "baseUrl": "http://127.0.0.1:48080/api",
-    "userServerUrl": "http://127.0.0.1:28080/api",
-    "token": "test1"
+    "baseUrl": "http://127.0.0.1:48080/admin-api",
+    "token": "test1",
+    "adminTenentId": "1",
+
+    "appApi": "http://127.0.0.1:48080/app-api",
+    "appToken": "test1",
+    "appTenentId": "1"
   }
 }

BIN
img.png


+ 34 - 4
pom.xml

@@ -10,9 +10,15 @@
     <modules>
         <module>yudao-dependencies</module>
         <module>yudao-framework</module>
-        <module>yudao-admin-server</module>
-        <module>yudao-user-server</module>
-        <module>yudao-core-service</module>
+        <!-- Server 主项目 -->
+        <module>yudao-server</module>
+        <!--  各种 module 拓展 -->
+        <module>yudao-module-member</module>
+        <module>yudao-module-bpm</module>
+        <module>yudao-module-system</module>
+        <module>yudao-module-infra</module>
+        <module>yudao-module-tool</module>
+        <module>yudao-module-pay</module>
     </modules>
 
     <name>${artifactId}</name>
@@ -20,12 +26,16 @@
     <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
 
     <properties>
-        <revision>1.3.0-snapshot</revision>
+        <revision>1.4.0-snapshot</revision>
         <!-- Maven 相关 -->
         <java.version>1.8</java.version>
         <maven.compiler.source>${java.version}</maven.compiler.source>
         <maven.compiler.target>${java.version}</maven.compiler.target>
         <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
+        <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
+        <!-- 看看咋放到 bom 里 -->
+        <lombok.version>1.18.20</lombok.version>
+        <mapstruct.version>1.4.1.Final</mapstruct.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
@@ -51,6 +61,26 @@
                     <artifactId>maven-surefire-plugin</artifactId>
                     <version>${maven-surefire-plugin.version}</version>
                 </plugin>
+                <!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${maven-compiler-plugin.version}</version>
+                    <configuration>
+                        <annotationProcessorPaths>
+                            <path>
+                                <groupId>org.projectlombok</groupId>
+                                <artifactId>lombok</artifactId>
+                                <version>${lombok.version}</version>
+                            </path>
+                            <path>
+                                <groupId>org.mapstruct</groupId>
+                                <artifactId>mapstruct-processor</artifactId>
+                                <version>${mapstruct.version}</version>
+                            </path>
+                        </annotationProcessorPaths>
+                    </configuration>
+                </plugin>
             </plugins>
         </pluginManagement>
     </build>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 462 - 44
sql/ruoyi-vue-pro.sql


+ 0 - 168
yudao-admin-server/pom.xml

@@ -1,168 +0,0 @@
-<?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>cn.iocoder.boot</groupId>
-        <artifactId>yudao</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>yudao-admin-server</artifactId>
-    <packaging>jar</packaging>
-
-    <name>yudao-admin-server</name>
-    <description>管理后台 Server,提供其 API 接口</description>
-    <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
-
-    <dependencies>
-        <!-- 业务组件 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-core-service</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-dict</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-sms</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-activiti</artifactId>
-        </dependency>
-
-        <!-- Web 相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-web</artifactId>
-        </dependency>
-        <!-- spring boot 配置所需依赖 -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-configuration-processor</artifactId>
-            <optional>true</optional>
-        </dependency>
-
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-security</artifactId>
-        </dependency>
-
-        <!-- DB 相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-redis</artifactId>
-        </dependency>
-
-        <!-- Config 配置中心相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-config</artifactId>
-        </dependency>
-
-        <!-- Job 定时任务相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-job</artifactId>
-        </dependency>
-
-        <!-- 消息队列相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-mq</artifactId>
-        </dependency>
-
-        <!-- 服务保障相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-protection</artifactId>
-        </dependency>
-
-        <!-- 监控相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-monitor</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>de.codecentric</groupId>
-            <artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
-        </dependency>
-
-        <!-- Test 测试相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- 工具类相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-excel</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity-engine-core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>cn.smallbun.screw</groupId>
-            <artifactId>screw-core</artifactId> <!-- 实现数据库文档 -->
-        </dependency>
-
-        <!-- 三方云服务相关 -->
-
-        <dependency>
-            <groupId>com.xkcoding.justauth</groupId>
-            <artifactId>justauth-spring-boot-starter</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <!-- 设置构建的 jar 包名 -->
-        <finalName>${artifactId}</finalName>
-        <plugins>
-            <!-- 打包 -->
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <configuration>
-                    <fork>true</fork>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

+ 0 - 14
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/AdminServerApplication.java

@@ -1,14 +0,0 @@
-package cn.iocoder.yudao.adminserver;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${yudao.info.base-package} 和 ${yudao.core-service.base-package}
-@SpringBootApplication(scanBasePackages = {"${yudao.info.base-package}", "${yudao.core-service.base-package}"})
-public class AdminServerApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(AdminServerApplication.class, args);
-    }
-
-}

+ 0 - 4
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/monitor/package-info.java

@@ -1,4 +0,0 @@
-/**
- * 使用 Spring Boot Admin 实现简单的监控平台
- */
-package cn.iocoder.yudao.adminserver.framework.monitor;

+ 0 - 6
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/package-info.java

@@ -1,6 +0,0 @@
-/**
- * 属于整个 yudao-admin-server 的 framework 封装
- *
- * @author 芋道源码
- */
-package cn.iocoder.yudao.adminserver.framework;

+ 0 - 41
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/security/SecurityConfiguration.java

@@ -1,41 +0,0 @@
-package cn.iocoder.yudao.adminserver.framework.security;
-
-import cn.iocoder.yudao.framework.web.config.WebProperties;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.Customizer;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
-
-import javax.annotation.Resource;
-
-@Configuration
-public class SecurityConfiguration {
-
-    @Resource
-    private WebProperties webProperties;
-
-    @Value("${spring.boot.admin.context-path:''}")
-    private String adminSeverContextPath;
-
-    @Bean
-    public Customizer<ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry> authorizeRequestsCustomizer() {
-        return registry -> {
-            // 验证码的接口
-            registry.antMatchers(api("/system/captcha/**")).anonymous();
-            // 获得租户编号的接口
-            registry.antMatchers(api("/system/tenant/get-id-by-name")).anonymous();
-            // Spring Boot Admin Server 的安全配置
-            registry.antMatchers(adminSeverContextPath).anonymous()
-                    .antMatchers(adminSeverContextPath + "/**").anonymous();
-            // 短信回调 API
-            registry.antMatchers(api("/system/sms/callback/**")).anonymous();
-        };
-    }
-
-    private String api(String url) {
-        return webProperties.getApiPrefix() + url;
-    }
-
-}

+ 0 - 17
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/form/BpmFormSimpleRespVO.java

@@ -1,17 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@ApiModel("流程表单精简 Response VO")
-@Data
-public class BpmFormSimpleRespVO {
-
-    @ApiModelProperty(value = "表单编号", required = true, example = "1024")
-    private Long id;
-
-    @ApiModelProperty(value = "表单名称", required = true, example = "芋道")
-    private String name;
-
-}

+ 0 - 14
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupCreateReqVO.java

@@ -1,14 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import javax.validation.constraints.*;
-
-@ApiModel("用户组创建 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupCreateReqVO extends BpmUserGroupBaseVO {
-
-}

+ 0 - 31
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupPageReqVO.java

@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("用户组分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "组名", example = "芋道")
-    private String name;
-
-    @ApiModelProperty(value = "状态", example = "1")
-    private Integer status;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始创建时间")
-    private Date beginCreateTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束创建时间")
-    private Date endCreateTime;
-
-}

+ 0 - 18
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/group/BpmUserGroupUpdateReqVO.java

@@ -1,18 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
-import javax.validation.constraints.*;
-
-@ApiModel("用户组更新 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmUserGroupUpdateReqVO extends BpmUserGroupBaseVO {
-
-    @ApiModelProperty(value = "编号", required = true, example = "1024")
-    @NotNull(message = "编号不能为空")
-    private Long id;
-
-}

+ 0 - 22
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/model/BpmModeImportReqVO.java

@@ -1,22 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.model;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotNull;
-
-@ApiModel(value = "流程模型的导入 Request VO", description = "相比流程模型的新建来说,只是多了一个 bpmnFile 文件")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmModeImportReqVO extends BpmModelCreateReqVO {
-
-    @ApiModelProperty(value = "BPMN 文件", required = true)
-    @NotNull(message = "BPMN 文件不能为空")
-    private MultipartFile bpmnFile;
-
-}

+ 0 - 26
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/vo/model/ModelPageReqVO.java

@@ -1,26 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.model;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-
-@ApiModel("流程模型分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class ModelPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "标识", example = "process1641042089407", notes = "精准匹配")
-    private String key;
-
-    @ApiModelProperty(value = "名字", example = "芋道", notes = "模糊匹配")
-    private String name;
-
-    @ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1")
-    private String category;
-
-}

+ 0 - 34
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmFormConvert.java

@@ -1,34 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormSimpleRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmFormDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * 动态表单 Convert
- *
- * @author 芋艿
- */
-@Mapper
-public interface BpmFormConvert {
-
-    BpmFormConvert INSTANCE = Mappers.getMapper(BpmFormConvert.class);
-
-    BpmFormDO convert(BpmFormCreateReqVO bean);
-
-    BpmFormDO convert(BpmFormUpdateReqVO bean);
-
-    BpmFormRespVO convert(BpmFormDO bean);
-
-    List<BpmFormSimpleRespVO> convertList2(List<BpmFormDO> list);
-
-    PageResult<BpmFormRespVO> convertPage(PageResult<BpmFormDO> page);
-
-}

+ 0 - 44
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmTaskAssignRuleConvert.java

@@ -1,44 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import org.activiti.bpmn.model.UserTask;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-
-@Mapper
-public interface BpmTaskAssignRuleConvert {
-
-    BpmTaskAssignRuleConvert INSTANCE = Mappers.getMapper(BpmTaskAssignRuleConvert.class);
-
-    default List<BpmTaskAssignRuleRespVO> convertList(List<UserTask> tasks, List<BpmTaskAssignRuleDO> rules) {
-        Map<String, BpmTaskAssignRuleDO> ruleMap = CollectionUtils.convertMap(rules, BpmTaskAssignRuleDO::getTaskDefinitionKey);
-        // 以 UserTask 为主维度,原因是:流程图编辑后,一些规则实际就没用了。
-        return CollectionUtils.convertList(tasks, task -> {
-            BpmTaskAssignRuleRespVO respVO = convert(ruleMap.get(task.getId()));
-            if (respVO == null) {
-                respVO = new BpmTaskAssignRuleRespVO();
-                respVO.setTaskDefinitionKey(task.getId());
-            }
-            respVO.setTaskDefinitionName(task.getName());
-            return respVO;
-        });
-    }
-
-    BpmTaskAssignRuleRespVO convert(BpmTaskAssignRuleDO bean);
-
-    BpmTaskAssignRuleDO convert(BpmTaskAssignRuleCreateReqVO bean);
-
-    BpmTaskAssignRuleDO convert(BpmTaskAssignRuleUpdateReqVO bean);
-
-    List<BpmTaskAssignRuleDO> convertList2(List<BpmTaskAssignRuleRespVO> list);
-
-}

+ 0 - 37
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmUserGroupConvert.java

@@ -1,37 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
-
-import java.util.*;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
-import org.mapstruct.Mapper;
-import org.mapstruct.Named;
-import org.mapstruct.factory.Mappers;
-
-/**
- * 用户组 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface BpmUserGroupConvert {
-
-    BpmUserGroupConvert INSTANCE = Mappers.getMapper(BpmUserGroupConvert.class);
-
-    BpmUserGroupDO convert(BpmUserGroupCreateReqVO bean);
-
-    BpmUserGroupDO convert(BpmUserGroupUpdateReqVO bean);
-
-    BpmUserGroupRespVO convert(BpmUserGroupDO bean);
-
-    List<BpmUserGroupRespVO> convertList(List<BpmUserGroupDO> list);
-
-    PageResult<BpmUserGroupRespVO> convertPage(PageResult<BpmUserGroupDO> page);
-
-    @Named("convertList2")
-    List<BpmUserGroupRespVO> convertList2(List<BpmUserGroupDO> list);
-}

+ 0 - 57
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/message/BpmMessageConvert.java

@@ -1,57 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.message;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
-import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
-import org.activiti.api.task.model.Task;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.MappingTarget;
-import org.mapstruct.Mappings;
-import org.mapstruct.factory.Mappers;
-
-@Mapper
-public interface BpmMessageConvert {
-
-    BpmMessageConvert INSTANCE = Mappers.getMapper(BpmMessageConvert.class);
-
-    default BpmMessageSendWhenTaskCreatedReqDTO convert(ProcessInstance processInstance, SysUserDO startUser, Task task) {
-        BpmMessageSendWhenTaskCreatedReqDTO reqDTO = new BpmMessageSendWhenTaskCreatedReqDTO();
-        copyTo(processInstance, reqDTO);
-        copyTo(startUser, reqDTO);
-        copyTo(task, reqDTO);
-        return reqDTO;
-    }
-    @Mapping(source = "name", target = "processInstanceName")
-    void copyTo(ProcessInstance from, @MappingTarget BpmMessageSendWhenTaskCreatedReqDTO to);
-    @Mappings({
-            @Mapping(source = "id", target = "startUserId"),
-            @Mapping(source = "nickname", target = "startUserNickname")
-    })
-    void copyTo(SysUserDO from, @MappingTarget BpmMessageSendWhenTaskCreatedReqDTO to);
-    @Mappings({
-            @Mapping(source = "id", target = "taskId"),
-            @Mapping(source = "name", target = "taskName"),
-            @Mapping(source = "assignee", target = "assigneeUserId")
-    })
-    void copyTo(Task task, @MappingTarget BpmMessageSendWhenTaskCreatedReqDTO to);
-
-    default BpmMessageSendWhenProcessInstanceRejectReqDTO convert(ProcessInstance processInstance, String comment) {
-        BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO = new BpmMessageSendWhenProcessInstanceRejectReqDTO();
-        copyTo(processInstance, reqDTO);
-        reqDTO.setComment(comment);
-        return reqDTO;
-    }
-    @Mapping(source = "name", target = "processInstanceName")
-    void copyTo(ProcessInstance from, @MappingTarget BpmMessageSendWhenProcessInstanceRejectReqDTO to);
-
-    @Mappings({
-            @Mapping(source = "id", target = "processInstanceId"),
-            @Mapping(source = "name", target = "processInstanceName"),
-            @Mapping(source = "initiator", target = "startUserId")
-    })
-    BpmMessageSendWhenProcessInstanceApproveReqDTO convert(org.activiti.api.process.model.ProcessInstance processInstance);
-
-}

+ 0 - 30
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/BpmOALeaveConvert.java

@@ -1,30 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.oa;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * 请假申请 Convert
- *
- * @author 芋艿
- */
-@Mapper
-public interface BpmOALeaveConvert {
-
-    BpmOALeaveConvert INSTANCE = Mappers.getMapper(BpmOALeaveConvert.class);
-
-    BpmOALeaveDO convert(BpmOALeaveCreateReqVO bean);
-
-    BpmOALeaveRespVO convert(BpmOALeaveDO bean);
-
-    List<BpmOALeaveRespVO> convertList(List<BpmOALeaveDO> list);
-
-    PageResult<BpmOALeaveRespVO> convertPage(PageResult<BpmOALeaveDO> page);
-
-}

+ 0 - 6
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/package-info.java

@@ -1,6 +0,0 @@
-/**
- * 提供 POJO 类的实体转换
- *
- * 目前使用 MapStruct 框架
- */
-package cn.iocoder.yudao.adminserver.modules.bpm.convert;

+ 0 - 33
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmActivityConvert.java

@@ -1,33 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import org.activiti.engine.history.HistoricActivityInstance;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.Mappings;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * BPM 活动 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface BpmActivityConvert {
-
-    BpmActivityConvert INSTANCE = Mappers.getMapper(BpmActivityConvert.class);
-
-    List<BpmActivityRespVO> convertList(List<HistoricActivityInstance> list);
-
-    @Mappings({
-            @Mapping(source = "activityId", target = "key"),
-            @Mapping(source = "activityType", target = "type")
-    })
-    BpmActivityRespVO convert(HistoricActivityInstance bean);
-
-}

+ 0 - 120
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmProcessInstanceConvert.java

@@ -1,120 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent;
-import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
-import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.activiti.engine.history.HistoricProcessInstance;
-import org.activiti.engine.repository.ProcessDefinition;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.task.Task;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.MappingTarget;
-import org.mapstruct.Mappings;
-import org.mapstruct.factory.Mappers;
-
-import java.sql.SQLXML;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
-/**
- * 流程实例 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface BpmProcessInstanceConvert {
-
-    BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class);
-
-    default BpmProcessInstanceExtDO convert3(ProcessInstance instance, ProcessDefinition definition) {
-        BpmProcessInstanceExtDO ext = new BpmProcessInstanceExtDO();
-        copyTo(instance, ext);
-        copyTo(definition, ext);
-        return ext;
-    }
-
-    @Mappings({
-            @Mapping(source = "from.id", target = "id", ignore = true),
-            @Mapping(source = "from.startTime", target = "createTime"),
-    })
-    void copyTo(ProcessInstance from, @MappingTarget BpmProcessInstanceExtDO to);
-    @Mapping(source = "from.id", target = "id", ignore = true)
-    void copyTo(ProcessDefinition from, @MappingTarget BpmProcessInstanceExtDO to);
-
-    default PageResult<BpmProcessInstancePageItemRespVO> convertPage(PageResult<BpmProcessInstanceExtDO> page,
-                                                                     Map<String, List<Task>> taskMap) {
-        List<BpmProcessInstancePageItemRespVO> list = convertList(page.getList());
-        list.forEach(respVO -> respVO.setTasks(convertList2(taskMap.get(respVO.getId()))));
-        return new PageResult<>(list, page.getTotal());
-    }
-
-    List<BpmProcessInstancePageItemRespVO> convertList(List<BpmProcessInstanceExtDO> list);
-
-    List<BpmProcessInstancePageItemRespVO.Task> convertList2(List<Task> tasks);
-
-    @Mapping(source = "processInstanceId", target = "id")
-    BpmProcessInstancePageItemRespVO convert(BpmProcessInstanceExtDO bean);
-
-    @Mappings({
-            @Mapping(source = "id", target = "processInstanceId"),
-            @Mapping(source = "id", target = "id", ignore = true),
-            @Mapping(source = "startDate", target = "createTime"),
-            @Mapping(source = "initiator", target = "startUserId"),
-            @Mapping(source = "status", target = "status", ignore = true)
-    })
-    BpmProcessInstanceExtDO convert(org.activiti.api.process.model.ProcessInstance bean);
-
-    default BpmProcessInstanceRespVO convert2(HistoricProcessInstance processInstance, BpmProcessInstanceExtDO processInstanceExt,
-                                              ProcessDefinition processDefinition, BpmProcessDefinitionExtDO processDefinitionExt,
-                                              String bpmnXml, SysUserDO startUser, SysDeptDO dept) {
-        BpmProcessInstanceRespVO respVO = convert2(processInstance);
-        copyTo(processInstanceExt, respVO);
-        // definition
-        respVO.setProcessDefinition(convert2(processDefinition));
-        copyTo(processDefinitionExt, respVO.getProcessDefinition());
-        respVO.getProcessDefinition().setBpmnXml(bpmnXml);
-        // user
-        if (startUser != null) {
-            respVO.setStartUser(convert2(startUser));
-            if (dept != null) {
-                respVO.getStartUser().setDeptName(dept.getName());
-            }
-        }
-        return respVO;
-    }
-
-    BpmProcessInstanceRespVO convert2(HistoricProcessInstance bean);
-    @Mapping(source = "from.id", target = "to.id", ignore = true)
-    void copyTo(BpmProcessInstanceExtDO from, @MappingTarget BpmProcessInstanceRespVO to);
-    BpmProcessInstanceRespVO.ProcessDefinition convert2(ProcessDefinition bean);
-    @Mapping(source = "from.id", target = "to.id", ignore = true)
-    void copyTo(BpmProcessDefinitionExtDO from, @MappingTarget BpmProcessInstanceRespVO.ProcessDefinition to);
-    BpmProcessInstanceRespVO.User convert2(SysUserDO bean);
-
-    default BpmProcessInstanceResultEvent convert(Object source, ProcessInstance instance, Integer result) {
-        BpmProcessInstanceResultEvent event = new BpmProcessInstanceResultEvent(source);
-        event.setId(instance.getId());
-        event.setProcessDefinitionKey(instance.getProcessDefinitionKey());
-        event.setBusinessKey(instance.getBusinessKey());
-        event.setResult(result);
-        return event;
-    }
-
-    default BpmProcessInstanceResultEvent convert(Object source, HistoricProcessInstance instance, Integer result) {
-        BpmProcessInstanceResultEvent event = new BpmProcessInstanceResultEvent(source);
-        event.setId(instance.getId());
-        event.setProcessDefinitionKey(instance.getProcessDefinitionKey());
-        event.setBusinessKey(instance.getBusinessKey());
-        event.setResult(result);
-        return event;
-    }
-
-}

+ 0 - 126
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmTaskConvert.java

@@ -1,126 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskDonePageItemRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskTodoPageItemRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
-import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
-import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
-import org.activiti.engine.history.HistoricProcessInstance;
-import org.activiti.engine.history.HistoricTaskInstance;
-import org.activiti.engine.impl.persistence.entity.SuspensionState;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.task.Task;
-import org.mapstruct.*;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Bpm 任务 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface BpmTaskConvert {
-
-    BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
-
-    default List<BpmTaskTodoPageItemRespVO> convertList1(List<Task> tasks, Map<String, ProcessInstance> processInstanceMap,
-                                                         Map<Long, SysUserDO> userMap) {
-        return CollectionUtils.convertList(tasks, task -> {
-            BpmTaskTodoPageItemRespVO respVO = convert1(task);
-            ProcessInstance processInstance = processInstanceMap.get(task.getProcessInstanceId());
-            if (processInstance != null) {
-                SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
-                respVO.setProcessInstance(convert(processInstance, startUser));
-            }
-            return respVO;
-        });
-    }
-
-    @Mapping(source = "suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState")
-    BpmTaskTodoPageItemRespVO convert1(Task bean);
-
-    @Named("convertSuspendedToSuspensionState")
-    default Integer convertSuspendedToSuspensionState(boolean suspended) {
-        return suspended ? SuspensionState.SUSPENDED.getStateCode() :
-                SuspensionState.ACTIVE.getStateCode();
-    }
-
-    default List<BpmTaskDonePageItemRespVO> convertList2(List<HistoricTaskInstance> tasks, Map<String, BpmTaskExtDO> bpmTaskExtDOMap,
-                                                         Map<String, HistoricProcessInstance> historicProcessInstanceMap,
-                                                         Map<Long, SysUserDO> userMap) {
-        return CollectionUtils.convertList(tasks, task -> {
-            BpmTaskDonePageItemRespVO respVO = convert2(task);
-            BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
-            copyTo(taskExtDO, respVO);
-            HistoricProcessInstance processInstance = historicProcessInstanceMap.get(task.getProcessInstanceId());
-            if (processInstance != null) {
-                SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
-                respVO.setProcessInstance(convert(processInstance, startUser));
-            }
-            return respVO;
-        });
-    }
-
-    BpmTaskDonePageItemRespVO convert2(HistoricTaskInstance bean);
-
-    @Mappings({
-            @Mapping(source = "id", target = "taskId"),
-            @Mapping(source = "assignee", target = "assigneeUserId"),
-            @Mapping(source = "createdDate", target = "createTime")
-    })
-    BpmTaskExtDO convert(org.activiti.api.task.model.Task bean);
-
-    default List<BpmTaskRespVO> convertList3(List<HistoricTaskInstance> tasks, Map<String, BpmTaskExtDO> bpmTaskExtDOMap,
-                                             HistoricProcessInstance processInstance, Map<Long, SysUserDO> userMap,
-                                             Map<Long, SysDeptDO> deptMap) {
-        return CollectionUtils.convertList(tasks, task -> {
-            BpmTaskRespVO respVO = convert3(task);
-            BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
-            copyTo(taskExtDO, respVO);
-            if (processInstance != null) {
-                SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
-                respVO.setProcessInstance(convert(processInstance, startUser));
-            }
-            SysUserDO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
-            if (assignUser != null) {
-                respVO.setAssigneeUser(convert3(assignUser));
-                SysDeptDO dept = deptMap.get(assignUser.getDeptId());
-                if (dept != null) {
-                    respVO.getAssigneeUser().setDeptName(dept.getName());
-                }
-            }
-            return respVO;
-        });
-    }
-
-    @Mapping(source = "taskDefinitionKey", target = "definitionKey")
-    BpmTaskRespVO convert3(HistoricTaskInstance bean);
-    BpmTaskRespVO.User convert3(SysUserDO bean);
-
-    void copyTo(BpmTaskExtDO from, @MappingTarget BpmTaskDonePageItemRespVO to);
-
-    @Mappings({
-            @Mapping(source = "processInstance.id", target = "id"),
-            @Mapping(source = "processInstance.name", target = "name"),
-            @Mapping(source = "processInstance.startUserId", target = "startUserId"),
-            @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"),
-            @Mapping(source = "startUser.nickname", target = "startUserNickname")
-    })
-    BpmTaskTodoPageItemRespVO.ProcessInstance convert(ProcessInstance processInstance, SysUserDO startUser);
-
-    @Mappings({
-            @Mapping(source = "processInstance.id", target = "id"),
-            @Mapping(source = "processInstance.name", target = "name"),
-            @Mapping(source = "processInstance.startUserId", target = "startUserId"),
-            @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"),
-            @Mapping(source = "startUser.nickname", target = "startUserNickname")
-    })
-    BpmTaskTodoPageItemRespVO.ProcessInstance convert(HistoricProcessInstance processInstance, SysUserDO startUser);
-
-}

+ 0 - 5
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmTaskMessageRuleDO.java

@@ -1,5 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition;
-
-// TODO 芋艿:先埋个坑。任务消息的配置规则。说白了,就是不同的
-public class BpmTaskMessageRuleDO {
-}

+ 0 - 96
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java

@@ -1,96 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum;
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceStatusEnum;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.activiti.engine.history.HistoricProcessInstance;
-import org.activiti.engine.repository.ProcessDefinition;
-import org.activiti.engine.runtime.ProcessInstance;
-
-import java.util.Date;
-import java.util.Map;
-
-/**
- * Bpm 流程实例的拓展表
- * 主要解决 Activiti {@link ProcessInstance} 和 {@link HistoricProcessInstance} 不支持拓展字段,所以新建拓展表
- *
- * @author 芋道源码
- */
-@TableName(value = "bpm_process_instance_ext", autoResultMap = true)
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-//@Builder
-//@NoArgsConstructor
-//@AllArgsConstructor
-public class BpmProcessInstanceExtDO extends BaseDO {
-
-    /**
-     * 编号,自增
-     */
-    @TableId
-    private Long id;
-    /**
-     * 发起流程的用户编号
-     *
-     * 冗余 {@link HistoricProcessInstance#getStartUserId()}
-     */
-    private Long startUserId;
-    /**
-     * 流程实例的名字
-     *
-     * 冗余 {@link ProcessInstance#getName()} 为了筛选
-     */
-    private String name;
-    /**
-     * 流程实例的编号
-     *
-     * 关联 {@link ProcessInstance#getId()}
-     */
-    private String processInstanceId;
-    /**
-     * 流程定义的编号
-     *
-     * 关联 {@link ProcessDefinition#getId()}
-     */
-    private String processDefinitionId;
-    /**
-     * 流程分类
-     *
-     * 冗余 {@link ProcessDefinition#getCategory()}
-     * 数据字典 bpm_model_category
-     */
-    private String category;
-    /**
-     * 流程实例的状态
-     *
-     * 枚举 {@link BpmProcessInstanceStatusEnum}
-     */
-    private Integer status;
-    /**
-     * 流程实例的结果
-     *
-     * 枚举 {@link BpmProcessInstanceResultEnum}
-     */
-    private Integer result;
-    /**
-     * 结束时间
-     *
-     * 冗余 {@link HistoricProcessInstance#getEndTime()}
-     */
-    private Date endTime;
-
-    /**
-     * 提交的表单值
-     */
-    @TableField(typeHandler = JacksonTypeHandler.class)
-    private Map<String, Object> formVariables;
-
-}

+ 0 - 85
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/task/BpmTaskExtDO.java

@@ -1,85 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.activiti.engine.history.HistoricTaskInstance;
-import org.activiti.engine.repository.ProcessDefinition;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.task.Task;
-
-import java.util.Date;
-
-/**
- * Bpm 流程任务的拓展表
- * 主要解决 Activiti {@link Task} 和 {@link HistoricTaskInstance} 不支持拓展字段,所以新建拓展表
- *
- * @author 芋道源码
- */
-@TableName(value = "bpm_task_ext", autoResultMap = true)
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-//@Builder
-//@NoArgsConstructor
-//@AllArgsConstructor
-public class BpmTaskExtDO extends BaseDO {
-
-    /**
-     * 任务的审批人
-     *
-     * 冗余 {@link Task#getAssignee()}
-     */
-    private Long assigneeUserId;
-    /**
-     * 任务的名字
-     *
-     * 冗余 {@link Task#getName()} 为了筛选
-     */
-    private String name;
-    /**
-     * 任务的编号
-     *
-     * 关联 {@link Task#getId()}
-     */
-    private String taskId;
-//    /**
-//     * 任务的标识
-//     *
-//     * 关联 {@link Task#getTaskDefinitionKey()}
-//     */
-//    private String definitionKey;
-    /**
-     * 任务的结果
-     *
-     * 枚举 {@link BpmProcessInstanceResultEnum}
-     */
-    private Integer result;
-    /**
-     * 审批建议
-     */
-    private String comment;
-    /**
-     * 任务的结束时间
-     *
-     * 冗余 {@link HistoricTaskInstance#getEndTime()}
-     */
-    private Date endTime;
-
-    /**
-     * 流程实例的编号
-     *
-     * 关联 {@link ProcessInstance#getId()}
-     */
-    private String processInstanceId;
-    /**
-     * 流程定义的编号
-     *
-     * 关联 {@link ProcessDefinition#getId()}
-     */
-    private String processDefinitionId;
-
-}

+ 0 - 25
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmFormMapper.java

@@ -1,25 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition;
-
-
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmFormDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 动态表单 Mapper
- *
- * @author 风里雾里
- */
-@Mapper
-public interface BpmFormMapper extends BaseMapperX<BpmFormDO> {
-
-    default PageResult<BpmFormDO> selectPage(BpmFormPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<BpmFormDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .orderByDesc("id"));
-    }
-
-}

+ 0 - 23
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java

@@ -1,23 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.Collection;
-import java.util.List;
-
-@Mapper
-public interface BpmProcessDefinitionExtMapper extends BaseMapperX<BpmProcessDefinitionExtDO> {
-
-    default List<BpmProcessDefinitionExtDO> selectListByProcessDefinitionIds(Collection<String> processDefinitionIds) {
-        return selectList("process_definition_id", processDefinitionIds);
-    }
-
-    default BpmProcessDefinitionExtDO selectByProcessDefinitionId(String processDefinitionId) {
-        return selectOne("process_definition_id", processDefinitionId);
-    }
-
-}

+ 0 - 64
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java

@@ -1,64 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.enums;
-
-import cn.iocoder.yudao.framework.common.exception.ErrorCode;
-
-/**
- * 工作流 错误码枚举类
- *
- * 工作流系统,使用 1-009-000-000 段
- */
-public interface BpmErrorCodeConstants {
-
-    // ==========  通用流程处理 模块 1-009-000-000 ==========
-    ErrorCode HIGHLIGHT_IMG_ERROR = new ErrorCode(1009000002, "获取高亮流程图异常");
-
-    // ========== OA 流程模块 1-009-001-000 ==========
-    ErrorCode OA_LEAVE_NOT_EXISTS = new ErrorCode(1009001001, "请假申请不存在");
-    ErrorCode OA_PM_POST_NOT_EXISTS = new ErrorCode(1009001002, "项目经理岗位未设置");
-    ErrorCode OA_DEPART_PM_POST_NOT_EXISTS = new ErrorCode(1009001009, "部门的项目经理不存在");
-    ErrorCode OA_BM_POST_NOT_EXISTS = new ErrorCode(1009001004, "部门经理岗位未设置");
-    ErrorCode OA_DEPART_BM_POST_NOT_EXISTS = new ErrorCode(1009001005, "部门的部门经理不存在");
-    ErrorCode OA_HR_POST_NOT_EXISTS = new ErrorCode(1009001006, "HR岗位未设置");
-    ErrorCode OA_DAY_LEAVE_ERROR = new ErrorCode(1009001007, "请假天数必须>=1");
-
-    // ========== 流程模型 1-009-002-000 ==========
-    ErrorCode MODEL_KEY_EXISTS = new ErrorCode(1009002000, "已经存在流程标识为【{}】的流程");
-    ErrorCode MODEL_NOT_EXISTS = new ErrorCode(1009002001, "流程模型不存在");
-    ErrorCode MODEL_KEY_VALID = new ErrorCode(1009002002, "流程标识格式不正确,需要以字母或下划线开头,后接任意字母、数字、中划线、下划线、句点!");
-    ErrorCode MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG = new ErrorCode(1009002003, "部署流程失败,原因:流程表单未配置,请点击【修改流程】按钮进行配置");
-    ErrorCode MODEL_DEPLOY_FAIL_TASK_ASSIGN_RULE_NOT_CONFIG = new ErrorCode(1009002004, "部署流程失败," +
-            "原因:用户任务({})未配置分配规则,请点击【修改流程】按钮进行配置");
-    ErrorCode MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS = new ErrorCode(1009003005, "流程定义部署失败,原因:信息未发生变化");
-
-    // ========== 流程定义 1-009-003-000 ==========
-    ErrorCode PROCESS_DEFINITION_KEY_NOT_MATCH = new ErrorCode(1009003000, "流程定义的标识期望是({}),当前是({}),请修改 BPMN 流程图");
-    ErrorCode PROCESS_DEFINITION_NAME_NOT_MATCH = new ErrorCode(1009003001, "流程定义的名字期望是({}),当前是({}),请修改 BPMN 流程图");
-    ErrorCode PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1009003002, "流程定义不存在");
-    ErrorCode PROCESS_DEFINITION_IS_SUSPENDED = new ErrorCode(1009003003, "流程定义处于挂起状态");
-    ErrorCode PROCESS_DEFINITION_BPMN_MODEL_NOT_EXISTS = new ErrorCode(1009003004, "流程定义的模型不存在");
-
-    // ========== 流程实例 1-009-004-000 ==========
-    ErrorCode PROCESS_INSTANCE_NOT_EXISTS = new ErrorCode(1009004000, "流程实例不存在");
-    ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS = new ErrorCode(1009004001, "流程取消失败,流程不处于运行中");
-    ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF = new ErrorCode(1009004002, "流程取消失败,该流程不是你发起的");
-
-    // ========== 流程任务 1-009-005-000 ==========
-    ErrorCode TASK_COMPLETE_FAIL_NOT_EXISTS = new ErrorCode(1009004000, "审批任务失败,原因:该任务不处于未审批");
-    ErrorCode TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1009004001, "审批任务失败,原因:该任务的审批人不是你");
-
-    // ========== 流程任务分配规则 1-009-006-000 ==========
-    ErrorCode TASK_ASSIGN_RULE_EXISTS = new ErrorCode(1009006000, "流程({}) 的任务({}) 已经存在分配规则");
-    ErrorCode TASK_ASSIGN_RULE_NOT_EXISTS = new ErrorCode(1009006001, "流程任务分配规则不存在");
-    ErrorCode TASK_UPDATE_FAIL_NOT_MODEL = new ErrorCode(1009006002, "只有流程模型的任务分配规则,才允许被修改");
-    ErrorCode TASK_CREATE_FAIL_NO_CANDIDATE_USER = new ErrorCode(1009006003, "操作失败,原因:找不到任务的审批人!");
-    ErrorCode TASK_ASSIGN_SCRIPT_NOT_EXISTS = new ErrorCode(1009006004, "操作失败,原因:任务分配脚本({}) 不存在");
-
-    // ========== 动态表单模块 1-009-010-000 ==========
-    ErrorCode FORM_NOT_EXISTS = new ErrorCode(1009010000, "动态表单不存在");
-    ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1009010000, "表单项({}) 和 ({}) 使用了相同的字段名({})");
-
-    // ========== 用户组模块 1-009-011-000 ==========
-    ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1009011000, "用户组不存在");
-    ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1009011001, "名字为【{}】的用户组已被禁用");
-
-}

+ 0 - 28
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/message/BpmMessageEnum.java

@@ -1,28 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.enums.message;
-
-import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * Bpm 消息的枚举
- *
- * @author 芋道源码
- */
-@AllArgsConstructor
-@Getter
-public enum BpmMessageEnum {
-
-    PROCESS_INSTANCE_APPROVE("bpm_process_instance_approve"), // 流程任务被审批通过时,发送给申请人
-    PROCESS_INSTANCE_REJECT("bpm_process_instance_reject"), // 流程任务被审批不通过时,发送给申请人
-    TASK_ASSIGNED("bpm_task_assigned"); // 任务被分配时,发送给审批人
-
-    /**
-     * 短信模板的标识
-     *
-     * 关联 {@link SysSmsTemplateDO#getCode()}
-     */
-    private final String smsCode;
-
-
-}

+ 0 - 81
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java

@@ -1,81 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.config;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.BpmActivityBehaviorFactory;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventPublisher;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity.EmptyUserGroupManager;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
-import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
-import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
-import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
-import org.activiti.api.runtime.shared.identity.UserGroupManager;
-import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.Collections;
-import java.util.List;
-
-import static org.activiti.spring.boot.ProcessEngineAutoConfiguration.BEHAVIOR_FACTORY_MAPPING_CONFIGURER;
-
-/**
- * BPM 模块的 Activiti 配置类
- */
-@Configuration
-public class BpmActivitiConfiguration {
-
-    /**
-     * BPM 模块的 ProcessEngineConfigurationConfigurer 实现类,主要设置各种监听器、用户组管理
-     */
-    @Bean
-    public ProcessEngineConfigurationConfigurer bpmProcessEngineConfigurationConfigurer(
-            BpmTackActivitiEventListener taskActivitiEventListener) {
-        return configuration -> {
-            // 注册监听器,例如说 BpmActivitiEventListener
-            configuration.setEventListeners(Collections.singletonList(taskActivitiEventListener));
-            // 用户组
-            configuration.setUserGroupManager(new EmptyUserGroupManager());
-        };
-    }
-
-    /**
-     * 用于设置自定义的 ActivityBehaviorFactory 实现的 ProcessEngineConfigurationConfigurer 实现类
-     *
-     * 目的:覆盖 {@link org.activiti.spring.boot.ProcessEngineAutoConfiguration} 的
-     *      defaultActivityBehaviorFactoryMappingConfigurer 方法创建的 Bean
-     */
-    @Bean(name = BEHAVIOR_FACTORY_MAPPING_CONFIGURER)
-    public ProcessEngineConfigurationConfigurer defaultActivityBehaviorFactoryMappingConfigurer(
-            BpmActivityBehaviorFactory bpmActivityBehaviorFactory) {
-        return configuration -> {
-            // 设置 ActivityBehaviorFactory 实现类,用于流程任务的审核人的自定义
-            configuration.setActivityBehaviorFactory(bpmActivityBehaviorFactory);
-        };
-    }
-
-    @Bean
-    public BpmActivityBehaviorFactory bpmActivityBehaviorFactory(BpmTaskAssignRuleService taskRuleService,
-                                                                 SysPermissionService permissionService,
-                                                                 SysDeptService deptService,
-                                                                 BpmUserGroupService userGroupService,
-                                                                 SysUserService userService,
-                                                                 List<BpmTaskAssignScript> scripts) {
-        BpmActivityBehaviorFactory bpmActivityBehaviorFactory = new BpmActivityBehaviorFactory();
-        bpmActivityBehaviorFactory.setBpmTaskRuleService(taskRuleService);
-        bpmActivityBehaviorFactory.setPermissionService(permissionService);
-        bpmActivityBehaviorFactory.setDeptService(deptService);
-        bpmActivityBehaviorFactory.setUserGroupService(userGroupService);
-        bpmActivityBehaviorFactory.setUserService(userService);
-        bpmActivityBehaviorFactory.setScripts(scripts);
-        return bpmActivityBehaviorFactory;
-    }
-
-    @Bean
-    public BpmProcessInstanceResultEventPublisher processInstanceResultEventPublisher(ApplicationEventPublisher publisher) {
-        return new BpmProcessInstanceResultEventPublisher(publisher);
-    }
-
-}

+ 0 - 60
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java

@@ -1,60 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
-import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
-import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
-import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.Setter;
-import lombok.ToString;
-import org.activiti.bpmn.model.UserTask;
-import org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior;
-import org.activiti.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * 自定义的 ActivityBehaviorFactory 实现类,目的如下:
- * 1. 自定义 {@link #createUserTaskActivityBehavior(UserTask)}:实现自定义的流程任务的 assignee 负责人的分配
- *
- * @author 芋道源码
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
-
-    @Setter
-    private BpmTaskAssignRuleService bpmTaskRuleService;
-    @Setter
-    private SysPermissionService permissionService;
-    @Setter
-    private SysDeptService deptService;
-    @Setter
-    private BpmUserGroupService userGroupService;
-    @Setter
-    private SysUserService userService;
-    @Setter
-    private List<BpmTaskAssignScript> scripts;
-
-    @Override
-    public UserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask) {
-        BpmUserTaskActivitiBehavior userTaskActivityBehavior = new BpmUserTaskActivitiBehavior(userTask);
-        userTaskActivityBehavior.setBpmTaskRuleService(bpmTaskRuleService);
-        userTaskActivityBehavior.setPermissionService(permissionService);
-        userTaskActivityBehavior.setDeptService(deptService);
-        userTaskActivityBehavior.setUserGroupService(userGroupService);
-        userTaskActivityBehavior.setUserService(userService);
-        userTaskActivityBehavior.setScripts(scripts);
-        return userTaskActivityBehavior;
-    }
-
-    // TODO 芋艿:并行任务 ParallelMultiInstanceBehavior
-
-    // TODO 芋艿:并行任务 SequentialMultiInstanceBehavior
-
-}

+ 0 - 7
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/package-info.java

@@ -1,7 +0,0 @@
-/**
- * 拓展 {@link org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior} 实现,基于 {@link cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO} 实现自定义的任务分配规则。
- * 原因:BPMN 默认的 assign、candidateUsers、candidateGroups 拓展起来有一定的难度,所以选择放弃它们,使用自己定义的规则。
- *
- * @author 芋道源码
- */
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior;

+ 0 - 62
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java

@@ -1,62 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.impl;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
-import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
-import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
-import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
-import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
-import org.activiti.engine.impl.persistence.entity.TaskEntity;
-import org.springframework.util.Assert;
-
-import javax.annotation.Resource;
-import java.util.Set;
-
-import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
-import static java.util.Collections.emptySet;
-
-/**
- * 分配给发起人的 Leader 审批的 Script 实现类
- * 目前 Leader 的定义是,
- *
- * @author 芋道源码
- */
-public abstract class BpmTaskAssignLeaderAbstractScript implements BpmTaskAssignScript {
-
-    @Resource
-    private SysUserService userService;
-    @Resource
-    private SysDeptService deptService;
-
-    protected Set<Long> calculateTaskCandidateUsers(TaskEntity task, int level) {
-        Assert.isTrue(level > 0, "level 必须大于 0");
-        // 获得发起人
-        Long startUserId = Long.parseLong(task.getProcessInstance().getStartUserId());
-        // 获得对应 leve 的部门
-        SysDeptDO dept = null;
-        for (int i = 0; i < level; i++) {
-            // 获得 level 对应的部门
-            if (dept == null) {
-                dept = getStartUserDept(startUserId);
-                if (dept == null) { // 找不到发起人的部门,所以无法使用该规则
-                    return emptySet();
-                }
-            } else {
-                SysDeptDO parentDept = deptService.getDept(dept.getParentId());
-                if (parentDept == null) { // 找不到父级部门,所以只好结束寻找。原因是:例如说,级别比较高的人,所在部门层级比较少
-                    break;
-                }
-                dept = parentDept;
-            }
-        }
-        return dept.getLeaderUserId() != null ? asSet(dept.getLeaderUserId()) : emptySet();
-    }
-
-    private SysDeptDO getStartUserDept(Long startUserId) {
-        SysUserDO startUser = userService.getUser(startUserId);
-        if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
-            return null;
-        }
-        return deptService.getDept(startUser.getDeptId());
-    }
-
-}

+ 0 - 30
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignStartUserScript.java

@@ -1,30 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.impl;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
-import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
-import org.activiti.engine.impl.persistence.entity.TaskEntity;
-import org.springframework.stereotype.Component;
-
-import java.util.Set;
-
-/**
- * 分配给发起人审批的 Script 实现类
- *
- * @author 芋道源码
- */
-@Component
-public class BpmTaskAssignStartUserScript implements BpmTaskAssignScript {
-
-    @Override
-    public Set<Long> calculateTaskCandidateUsers(TaskEntity task) {
-        Long userId = Long.parseLong(task.getProcessInstance().getStartUserId());
-        return SetUtils.asSet(userId);
-    }
-
-    @Override
-    public BpmTaskRuleScriptEnum getEnum() {
-        return BpmTaskRuleScriptEnum.START_USER;
-    }
-
-}

+ 0 - 6
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/event/package-info.java

@@ -1,6 +0,0 @@
-/**
- * 自定义 Event 实现,提供方便业务接入的 Listener!
- *
- * @author 芋道源码
- */
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event;

+ 0 - 7
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/listener/package-info.java

@@ -1,7 +0,0 @@
-/**
- * 自定义各种 Activiti 的监听器,实现流程示例、流程任务的拓展表信息的同步
- * 例如说,{@link org.activiti.api.task.model.Task} 新建时,我们也要新建对应的 {@link cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO} 记录
- *
- * @author 芋道源码
- */
-package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener;

+ 0 - 6
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/package-info.java

@@ -1,6 +0,0 @@
-/**
- * 属于 bpm 模块的 framework 封装
- *
- * @author 芋道源码
- */
-package cn.iocoder.yudao.adminserver.modules.bpm.framework;

+ 0 - 9
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/package-info.java

@@ -1,9 +0,0 @@
-/**
- * bpm 包下,业务流程管理(Business Process Management),我们放工作流的功能,基于 activiti 7 版本实现。
- * 例如说:流程定义、表单配置、审核中心(我的申请、我的待办、我的已办)等等
- *
- * bpm 解释:https://baike.baidu.com/item/BPM/1933
- *
- * 缩写:bpm
- */
-package cn.iocoder.yudao.adminserver.modules.bpm;

+ 0 - 113
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmFormServiceImpl.java

@@ -1,113 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
-
-import cn.hutool.core.lang.Assert;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmFormConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmFormDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmFormMapper;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmFormService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmFormFieldRespDTO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.FORM_FIELD_REPEAT;
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.FORM_NOT_EXISTS;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-
-/**
- * 动态表单 Service 实现类
- *
- * @author 风里雾里
- */
-@Service
-@Validated
-public class BpmFormServiceImpl implements BpmFormService {
-
-    @Resource
-    private BpmFormMapper formMapper;
-
-    @Override
-    public Long createForm(BpmFormCreateReqVO createReqVO) {
-        this.checkFields(createReqVO.getFields());
-        // 插入
-        BpmFormDO form = BpmFormConvert.INSTANCE.convert(createReqVO);
-        formMapper.insert(form);
-        // 返回
-        return form.getId();
-    }
-
-    @Override
-    public void updateForm(BpmFormUpdateReqVO updateReqVO) {
-        this.checkFields(updateReqVO.getFields());
-        // 校验存在
-        this.validateFormExists(updateReqVO.getId());
-        // 更新
-        BpmFormDO updateObj = BpmFormConvert.INSTANCE.convert(updateReqVO);
-        formMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteForm(Long id) {
-        // 校验存在
-        this.validateFormExists(id);
-        // 删除
-        formMapper.deleteById(id);
-    }
-
-    private void validateFormExists(Long id) {
-        if (formMapper.selectById(id) == null) {
-            throw exception(FORM_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public BpmFormDO getForm(Long id) {
-        return formMapper.selectById(id);
-    }
-
-    @Override
-    public List<BpmFormDO> getFormList() {
-        return formMapper.selectList();
-    }
-
-    @Override
-    public List<BpmFormDO> getFormList(Collection<Long> ids) {
-        return formMapper.selectBatchIds(ids);
-    }
-
-    @Override
-    public PageResult<BpmFormDO> getFormPage(BpmFormPageReqVO pageReqVO) {
-        return formMapper.selectPage(pageReqVO);
-    }
-
-    /**
-     * 校验 Field,避免 field 重复
-     *
-     * @param fields field 数组
-     */
-    private void checkFields(List<String> fields) {
-        Map<String, String> fieldMap = new HashMap<>(); // key 是 vModel,value 是 label
-        for (String field : fields) {
-            BpmFormFieldRespDTO fieldDTO = JsonUtils.parseObject(field, BpmFormFieldRespDTO.class);
-            Assert.notNull(fieldDTO);
-            String oldLabel = fieldMap.put(fieldDTO.getVModel(), fieldDTO.getLabel());
-            // 如果不存在,则直接返回
-            if (oldLabel == null) {
-                continue;
-            }
-            // 如果存在,则报错
-            throw exception(FORM_FIELD_REPEAT, oldLabel, fieldDTO.getLabel(), fieldDTO.getVModel());
-        }
-    }
-
-}

+ 0 - 114
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmUserGroupServiceImpl.java

@@ -1,114 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmUserGroupConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmUserGroupService;
-import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_IS_DISABLE;
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.USER_GROUP_NOT_EXISTS;
-import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.USER_IS_DISABLE;
-import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.USER_NOT_EXISTS;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-
-/**
- * 用户组 Service 实现类
- *
- * @author 芋道源码
- */
-@Service
-@Validated
-public class BpmUserGroupServiceImpl implements BpmUserGroupService {
-
-    @Resource
-    private BpmUserGroupMapper userGroupMapper;
-
-    @Override
-    public Long createUserGroup(BpmUserGroupCreateReqVO createReqVO) {
-        // 插入
-        BpmUserGroupDO userGroup = BpmUserGroupConvert.INSTANCE.convert(createReqVO);
-        userGroupMapper.insert(userGroup);
-        // 返回
-        return userGroup.getId();
-    }
-
-    @Override
-    public void updateUserGroup(BpmUserGroupUpdateReqVO updateReqVO) {
-        // 校验存在
-        this.validateUserGroupExists(updateReqVO.getId());
-        // 更新
-        BpmUserGroupDO updateObj = BpmUserGroupConvert.INSTANCE.convert(updateReqVO);
-        userGroupMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteUserGroup(Long id) {
-        // 校验存在
-        this.validateUserGroupExists(id);
-        // 删除
-        userGroupMapper.deleteById(id);
-    }
-
-    private void validateUserGroupExists(Long id) {
-        if (userGroupMapper.selectById(id) == null) {
-            throw exception(USER_GROUP_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public BpmUserGroupDO getUserGroup(Long id) {
-        return userGroupMapper.selectById(id);
-    }
-
-    @Override
-    public List<BpmUserGroupDO> getUserGroupList(Collection<Long> ids) {
-        return userGroupMapper.selectBatchIds(ids);
-    }
-
-    @Override
-    public List<BpmUserGroupDO> getUserGroupListByStatus(Integer status) {
-        return userGroupMapper.selectListByStatus(status);
-    }
-
-    @Override
-    public PageResult<BpmUserGroupDO> getUserGroupPage(BpmUserGroupPageReqVO pageReqVO) {
-        return userGroupMapper.selectPage(pageReqVO);
-    }
-
-    @Override
-    public void validUserGroups(Set<Long> ids) {
-        if (CollUtil.isEmpty(ids)) {
-            return;
-        }
-        // 获得用户组信息
-        List<BpmUserGroupDO> userGroups = userGroupMapper.selectBatchIds(ids);
-        Map<Long, BpmUserGroupDO> userGroupMap = CollectionUtils.convertMap(userGroups, BpmUserGroupDO::getId);
-        // 校验
-        ids.forEach(id -> {
-            BpmUserGroupDO userGroup = userGroupMap.get(id);
-            if (userGroup == null) {
-                throw exception(USER_GROUP_NOT_EXISTS);
-            }
-            if (!CommonStatusEnum.ENABLE.getStatus().equals(userGroup.getStatus())) {
-                throw exception(USER_GROUP_IS_DISABLE, userGroup.getName());
-            }
-        });
-    }
-
-}

+ 0 - 40
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/message/BpmMessageService.java

@@ -1,40 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.message;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
-
-import javax.validation.Valid;
-
-/**
- * BPM 消息 Service 接口
- *
- * TODO 芋艿:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么;
- *
- * @author 芋道源码
- */
-public interface BpmMessageService {
-
-    /**
-     * 发送流程实例被通过的消息
-     *
-     * @param reqDTO 发送信息
-     */
-    void sendMessageWhenProcessInstanceApprove(@Valid BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO);
-
-
-    /**
-     * 发送流程实例被不通过的消息
-     *
-     * @param reqDTO 发送信息
-     */
-    void sendMessageWhenProcessInstanceReject(@Valid BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO);
-
-    /**
-     * 发送任务被分配的消息
-     *
-     * @param reqDTO 发送信息
-     */
-    void sendMessageWhenTaskAssigned(@Valid BpmMessageSendWhenTaskCreatedReqDTO reqDTO);
-
-}

+ 0 - 68
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/message/impl/BpmMessageServiceImpl.java

@@ -1,68 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.message.impl;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.message.BpmMessageEnum;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
-import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * BPM 消息 Service 实现类
- *
- * @author 芋道源码
- */
-@Service
-@Validated
-@Slf4j
-public class BpmMessageServiceImpl implements BpmMessageService {
-
-    @Resource
-    private SysSmsCoreService smsCoreService;
-
-    @Value("${yudao.url.admin-ui}")
-    private String adminUiUrl;
-
-    @Override
-    public void sendMessageWhenProcessInstanceApprove(BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO) {
-        Map<String, Object> templateParams = new HashMap<>();
-        templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
-        templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
-        smsCoreService.sendSingleSmsToAdmin(null, reqDTO.getStartUserId(),
-                BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsCode(), templateParams);
-    }
-
-    @Override
-    public void sendMessageWhenProcessInstanceReject(BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO) {
-        Map<String, Object> templateParams = new HashMap<>();
-        templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
-        templateParams.put("comment", reqDTO.getComment());
-        templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
-        smsCoreService.sendSingleSmsToAdmin(null, reqDTO.getStartUserId(),
-                BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsCode(), templateParams);
-    }
-
-    @Override
-    public void sendMessageWhenTaskAssigned(BpmMessageSendWhenTaskCreatedReqDTO reqDTO) {
-        Map<String, Object> templateParams = new HashMap<>();
-        templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
-        templateParams.put("taskName", reqDTO.getTaskName());
-        templateParams.put("startUserNickname", reqDTO.getStartUserNickname());
-        templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
-        smsCoreService.sendSingleSmsToAdmin(null, reqDTO.getAssigneeUserId(),
-                BpmMessageEnum.TASK_ASSIGNED.getSmsCode(), templateParams);
-    }
-
-    private String getProcessInstanceDetailUrl(String taskId) {
-        return adminUiUrl + "bpm/process-instance/detail?id=" + taskId;
-    }
-
-}

+ 0 - 86
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/BpmOALeaveServiceImpl.java

@@ -1,86 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl;
-
-import cn.hutool.core.date.DateUtil;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa.BpmOALeaveMapper;
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.util.*;
-
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-
-/**
- * OA 请假申请 Service 实现类
- *
- * @author jason
- * @author 芋道源码
- */
-@Service
-@Validated
-public class BpmOALeaveServiceImpl implements BpmOALeaveService {
-
-    /**
-     * OA 请假对应的流程定义 KEY
-     */
-    public static final String PROCESS_KEY = "oa_leave";
-
-    @Resource
-    private BpmOALeaveMapper leaveMapper;
-
-    @Resource
-    private BpmProcessInstanceService processInstanceService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Long createLeave(Long userId, BpmOALeaveCreateReqVO createReqVO) {
-        // 插入 OA 请假单
-        long day = DateUtil.betweenDay(createReqVO.getStartTime(), createReqVO.getEndTime(), false);
-        BpmOALeaveDO leave = BpmOALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day)
-                .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult());
-        leaveMapper.insert(leave);
-
-        // 发起 BPM 流程
-        Map<String, Object> processInstanceVariables = new HashMap<>();
-        processInstanceVariables.put("day", day);
-        String processInstanceId = processInstanceService.createProcessInstance(userId,
-                new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY)
-                        .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(leave.getId())));
-
-        // 将工作流的编号,更新到 OA 请假单中
-        leaveMapper.updateById(new BpmOALeaveDO().setId(leave.getId()).setProcessInstanceId(processInstanceId));
-        return leave.getId();
-    }
-
-    @Override
-    public void updateLeaveResult(Long id, Integer result) {
-        leaveMapper.updateById(new BpmOALeaveDO().setId(id).setResult(result));
-    }
-
-    private void validateLeaveExists(Long id) {
-        if (leaveMapper.selectById(id) == null) {
-            throw exception(OA_LEAVE_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public BpmOALeaveDO getLeave(Long id) {
-        return leaveMapper.selectById(id);
-    }
-
-    @Override
-    public PageResult<BpmOALeaveDO> getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO) {
-        return leaveMapper.selectPage(userId, pageReqVO);
-    }
-
-}

+ 0 - 32
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/listener/BpmOALeaveResultListener.java

@@ -1,32 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.listener;
-
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent;
-import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventListener;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl.BpmOALeaveServiceImpl;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * OA 请假单的结果的监听器实现类
- *
- * @author 芋道源码
- */
-@Component
-public class BpmOALeaveResultListener extends BpmProcessInstanceResultEventListener {
-
-    @Resource
-    private BpmOALeaveService leaveService;
-
-    @Override
-    protected String getProcessDefinitionKey() {
-        return BpmOALeaveServiceImpl.PROCESS_KEY;
-    }
-
-    @Override
-    protected void onEvent(BpmProcessInstanceResultEvent event) {
-        leaveService.updateLeaveResult(Long.parseLong(event.getBusinessKey()), event.getResult());
-    }
-
-}

+ 0 - 93
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmActivityServiceImpl.java

@@ -1,93 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
-
-import cn.hutool.core.io.IoUtil;
-import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmActivityConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert;
-import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmActivityService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
-import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.activiti.bpmn.model.BpmnModel;
-import org.activiti.engine.HistoryService;
-import org.activiti.engine.RepositoryService;
-import org.activiti.engine.RuntimeService;
-import org.activiti.engine.history.HistoricActivityInstance;
-import org.activiti.engine.history.HistoricProcessInstance;
-import org.activiti.engine.task.Task;
-import org.activiti.image.ProcessDiagramGenerator;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
-
-/**
- * BPM 活动实例 Service 实现类
- *
- * @author 芋道源码
- */
-@Service
-@Slf4j
-@Validated
-public class BpmActivityServiceImpl implements BpmActivityService {
-
-    private static final String FONT_NAME = "宋体";
-
-    @Resource
-    private ProcessDiagramGenerator processDiagramGenerator;
-    @Resource
-    private HistoryService historyService;
-
-    @Resource
-    private BpmProcessInstanceService processInstanceService;
-    @Resource
-    private BpmProcessDefinitionService processDefinitionService;
-    @Resource
-    private BpmTaskService taskService;
-
-    @Override
-    public List<BpmActivityRespVO> getActivityListByProcessInstanceId(String processInstanceId) {
-        List<HistoricActivityInstance> activityList = historyService.createHistoricActivityInstanceQuery()
-                .processInstanceId(processInstanceId).list();
-        return BpmActivityConvert.INSTANCE.convertList(activityList);
-    }
-
-    @Override
-    public byte[] generateHighlightDiagram(String processInstanceId) {
-        // 获得流程实例
-        HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(processInstanceId);
-        if (processInstance == null) {
-            throw exception(PROCESS_INSTANCE_NOT_EXISTS);
-        }
-        // 获得流程定义的 BPMN 模型
-        BpmnModel bpmnModel = processDefinitionService.getBpmnModel(processInstance.getProcessDefinitionId());
-        if (bpmnModel == null) {
-            throw exception(PROCESS_DEFINITION_BPMN_MODEL_NOT_EXISTS);
-        }
-
-        // 如果流程已经结束,则无进行中的任务,无法高亮
-        // 如果流程未结束,才需要高亮
-        List<String> highLightedActivities = Collections.emptyList();
-        if (processInstance.getEndTime() == null) {
-            List<Task> tasks = taskService.getTasksByProcessInstanceId(processInstanceId);
-            highLightedActivities = CollectionUtils.convertList(tasks, Task::getTaskDefinitionKey);
-        }
-
-        // 生成高亮流程图
-        InputStream inputStream = processDiagramGenerator.generateDiagram(bpmnModel, highLightedActivities, Collections.emptyList(),
-                FONT_NAME, FONT_NAME, FONT_NAME);
-        return IoUtil.readBytes(inputStream);
-    }
-
-}

+ 0 - 12
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/package-info.java

@@ -1,12 +0,0 @@
-/**
- * task 包下,存放的都是 xxx 实例。例如说:
- * 1. ProcessInstance 是 ProcessDefinition 创建而来的实例;
- * 2. TaskInstance 是 TaskDefinition 创建而来的实例;
- * 3. ActivityInstance 是 BPMN 流程图的每个元素创建的实例;
- *
- * 考虑到 Task 和 Activity 可以比较明确表示名字,所以对应的 Service 就没有使用 Instance 后缀~
- * 嘿嘿,其实也是实现到比较后面的阶段,所以就暂时没去统一和修改了~
- *
- * @author 芋道源码
- */
-package cn.iocoder.yudao.adminserver.modules.bpm.service.task;

+ 0 - 105
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/InfConfigController.java

@@ -1,105 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.*;
-import cn.iocoder.yudao.adminserver.modules.infra.convert.config.InfConfigConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.service.config.InfConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
-import static cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_SENSITIVE;
-
-@Api(tags = "参数配置")
-@RestController
-@RequestMapping("/infra/config")
-@Validated
-public class InfConfigController {
-
-    @Resource
-    private InfConfigService configService;
-
-    @PostMapping("/create")
-    @ApiOperation("创建参数配置")
-    @PreAuthorize("@ss.hasPermission('infra:config:create')")
-    public CommonResult<Long> createConfig(@Valid @RequestBody InfConfigCreateReqVO reqVO) {
-        return success(configService.createConfig(reqVO));
-    }
-
-    @PutMapping("/update")
-    @ApiOperation("修改参数配置")
-    @PreAuthorize("@ss.hasPermission('infra:config:update')")
-    public CommonResult<Boolean> updateConfig(@Valid @RequestBody InfConfigUpdateReqVO reqVO) {
-        configService.updateConfig(reqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @ApiOperation("删除参数配置")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-    @PreAuthorize("@ss.hasPermission('infra:config:delete')")
-    public CommonResult<Boolean> deleteConfig(@RequestParam("id") Long id) {
-        configService.deleteConfig(id);
-        return success(true);
-    }
-
-    @GetMapping(value = "/get")
-    @ApiOperation("获得参数配置")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-    @PreAuthorize("@ss.hasPermission('infra:config:query')")
-    public CommonResult<InfConfigRespVO> getConfig(@RequestParam("id") Long id) {
-        return success(InfConfigConvert.INSTANCE.convert(configService.getConfig(id)));
-    }
-
-    @GetMapping(value = "/get-value-by-key")
-    @ApiOperation(value = "根据参数键名查询参数值", notes = "敏感配置,不允许返回给前端")
-    @ApiImplicitParam(name = "key", value = "参数键", required = true, example = "yunai.biz.username", dataTypeClass = String.class)
-    public CommonResult<String> getConfigKey(@RequestParam("key") String key) {
-        InfConfigDO config = configService.getConfigByKey(key);
-        if (config == null) {
-            return null;
-        }
-        if (config.getSensitive()) {
-            throw exception(CONFIG_GET_VALUE_ERROR_IF_SENSITIVE);
-        }
-        return success(config.getValue());
-    }
-
-    @GetMapping("/page")
-    @ApiOperation("获取参数配置分页")
-    @PreAuthorize("@ss.hasPermission('infra:config:query')")
-    public CommonResult<PageResult<InfConfigRespVO>> getConfigPage(@Valid InfConfigPageReqVO reqVO) {
-        PageResult<InfConfigDO> page = configService.getConfigPage(reqVO);
-        return success(InfConfigConvert.INSTANCE.convertPage(page));
-    }
-
-    @GetMapping("/export")
-    @ApiOperation("导出参数配置")
-    @PreAuthorize("@ss.hasPermission('infra:config:export')")
-    @OperateLog(type = EXPORT)
-    public void exportSysConfig(@Valid InfConfigExportReqVO reqVO,
-                                HttpServletResponse response) throws IOException {
-        List<InfConfigDO> list = configService.getConfigList(reqVO);
-        // 拼接数据
-        List<InfConfigExcelVO> datas = InfConfigConvert.INSTANCE.convertList(list);
-        // 输出
-        ExcelUtils.write(response, "参数配置.xls", "数据", InfConfigExcelVO.class, datas);
-    }
-
-}

+ 0 - 40
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigBaseVO.java

@@ -1,40 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-/**
- * 参数配置 Base VO,提供给添加、修改、详细的子 VO 使用
- * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
- */
-@Data
-public class InfConfigBaseVO {
-
-    @ApiModelProperty(value = "参数分组", required = true, example = "biz")
-    @NotEmpty(message = "参数分组不能为空")
-    @Size(max = 50, message = "参数名称不能超过50个字符")
-    private String group;
-
-    @ApiModelProperty(value = "参数名称", required = true, example = "数据库名")
-    @NotBlank(message = "参数名称不能为空")
-    @Size(max = 100, message = "参数名称不能超过100个字符")
-    private String name;
-
-    @ApiModelProperty(value = "参数键值", required = true, example = "1024")
-    @NotBlank(message = "参数键值不能为空")
-    @Size(max = 500, message = "参数键值长度不能超过500个字符")
-    private String value;
-
-    @ApiModelProperty(value = "是否敏感", required = true, example = "true")
-    @NotNull(message = "是否敏感不能为空")
-    private Boolean sensitive;
-
-    @ApiModelProperty(value = "备注", example = "备注一下很帅气!")
-    private String remark;
-
-}

+ 0 - 21
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigCreateReqVO.java

@@ -1,21 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-
-@ApiModel("参数配置创建 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class InfConfigCreateReqVO extends InfConfigBaseVO {
-
-    @ApiModelProperty(value = "参数键名", required = true, example = "yunai.db.username")
-    @NotBlank(message = "参数键名长度不能为空")
-    @Size(max = 100, message = "参数键名长度不能超过100个字符")
-    private String key;
-
-}

+ 0 - 46
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigExcelVO.java

@@ -1,46 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 参数配置 Excel 导出响应 VO
- */
-@Data
-public class InfConfigExcelVO {
-
-    @ExcelProperty("参数配置序号")
-    private Long id;
-
-    @ExcelProperty("参数键名")
-    private String key;
-
-    @ExcelProperty("参数分组")
-    private String group;
-
-    @ExcelProperty("参数名称")
-    private String name;
-
-    @ExcelProperty("参数键值")
-    private String value;
-
-    @ExcelProperty(value = "参数类型", converter = DictConvert.class)
-    @DictFormat(SysDictTypeConstants.CONFIG_TYPE)
-    private Integer type;
-
-    @ExcelProperty(value = "是否敏感", converter = DictConvert.class)
-    @DictFormat(SysDictTypeConstants.BOOLEAN_STRING)
-    private Boolean sensitive;
-
-    @ExcelProperty("备注")
-    private String remark;
-
-    @ExcelProperty("创建时间")
-    private Date createTime;
-
-}

+ 0 - 33
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigExportReqVO.java

@@ -1,33 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("参数配置导出 Request VO")
-@Data
-public class InfConfigExportReqVO {
-
-    @ApiModelProperty(value = "参数名称", example = "模糊匹配")
-    private String name;
-
-    @ApiModelProperty(value = "参数键名", example = "yunai.db.username", notes = "模糊匹配")
-    private String key;
-
-    @ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
-    private Integer type;
-
-    @ApiModelProperty(value = "开始时间", example = "2020-10-24 00:00:00")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date beginTime;
-
-    @ApiModelProperty(value = "结束时间", example = "2020-10-24 23:59:59")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date endTime;
-
-}

+ 0 - 38
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigPageReqVO.java

@@ -1,38 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("参数配置分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfConfigPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "参数名称", example = "模糊匹配")
-    private String name;
-
-    @ApiModelProperty(value = "参数键名", example = "yunai.db.username", notes = "模糊匹配")
-    private String key;
-
-    @ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
-    private Integer type;
-
-    @ApiModelProperty(value = "开始时间", example = "2020-10-24 00:00:00")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date beginTime;
-
-    @ApiModelProperty(value = "结束时间", example = "2020-10-24 23:59:59")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date endTime;
-
-}

+ 0 - 31
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigRespVO.java

@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-import java.util.Date;
-
-@ApiModel("参数配置信息 Response VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class InfConfigRespVO extends InfConfigBaseVO {
-
-    @ApiModelProperty(value = "参数配置序号", required = true, example = "1024")
-    private Long id;
-
-    @ApiModelProperty(value = "参数键名", required = true, example = "yunai.db.username")
-    @NotBlank(message = "参数键名长度不能为空")
-    @Size(max = 100, message = "参数键名长度不能超过100个字符")
-    private String key;
-
-    @ApiModelProperty(value = "参数类型", required = true, example = "1", notes = "参见 SysConfigTypeEnum 枚举")
-    private Integer type;
-
-    @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
-    private Date createTime;
-
-}

+ 0 - 21
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigUpdateReqVO.java

@@ -1,21 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import javax.validation.constraints.NotNull;
-
-@ApiModel("参数配置创建 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfConfigUpdateReqVO extends InfConfigBaseVO {
-
-    @ApiModelProperty(value = "参数配置序号", required = true, example = "1024")
-    @NotNull(message = "参数配置编号不能为空")
-    private Long id;
-
-}

+ 0 - 155
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/doc/InfDbDocController.java

@@ -1,155 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.doc;
-
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.util.IdUtil;
-import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
-import cn.smallbun.screw.core.Configuration;
-import cn.smallbun.screw.core.engine.EngineConfig;
-import cn.smallbun.screw.core.engine.EngineFileType;
-import cn.smallbun.screw.core.engine.EngineTemplateType;
-import cn.smallbun.screw.core.execute.DocumentationExecute;
-import cn.smallbun.screw.core.process.ProcessConfig;
-import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
-import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;
-import com.zaxxer.hikari.HikariConfig;
-import com.zaxxer.hikari.HikariDataSource;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-
-@Api(tags = "数据库文档")
-@RestController
-@RequestMapping("/infra/db-doc")
-public class InfDbDocController {
-
-    @Resource
-    private DynamicDataSourceProperties dynamicDataSourceProperties;
-
-    private static final String FILE_OUTPUT_DIR = System.getProperty("java.io.tmpdir") + File.separator
-            + "db-doc";
-    private static final String DOC_FILE_NAME = "数据库文档";
-    private static final String DOC_VERSION = "1.0.0";
-    private static final String DOC_DESCRIPTION = "文档描述";
-
-    @GetMapping("/export-html")
-    @ApiOperation("导出 html 格式的数据文档")
-    @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class)
-    public void exportHtml(@RequestParam(defaultValue = "true") Boolean deleteFile,
-                           HttpServletResponse response) throws IOException {
-        doExportFile(EngineFileType.HTML, deleteFile, response);
-    }
-
-    @GetMapping("/export-word")
-    @ApiOperation("导出 word 格式的数据文档")
-    @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class)
-    public void exportWord(@RequestParam(defaultValue = "true") Boolean deleteFile,
-                           HttpServletResponse response) throws IOException {
-        doExportFile(EngineFileType.WORD, deleteFile, response);
-    }
-
-    @GetMapping("/export-markdown")
-    @ApiOperation("导出 markdown 格式的数据文档")
-    @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class)
-    public void exportMarkdown(@RequestParam(defaultValue = "true") Boolean deleteFile,
-                               HttpServletResponse response) throws IOException {
-        doExportFile(EngineFileType.MD, deleteFile, response);
-    }
-
-    private void doExportFile(EngineFileType fileOutputType, Boolean deleteFile,
-                              HttpServletResponse response) throws IOException {
-        String docFileName = DOC_FILE_NAME + "_" + IdUtil.fastSimpleUUID();
-        String filePath = doExportFile(fileOutputType, docFileName);
-        String downloadFileName = DOC_FILE_NAME + fileOutputType.getFileSuffix(); //下载后的文件名
-        try {
-            // 读取,返回
-            ServletUtils.writeAttachment(response, downloadFileName, FileUtil.readBytes(filePath));
-        } finally {
-            handleDeleteFile(deleteFile, filePath);
-        }
-    }
-
-    /**
-     * 输出文件,返回文件路径
-     *
-     * @param fileOutputType 文件类型
-     * @param fileName       文件名, 无需 ".docx" 等文件后缀
-     * @return 生成的文件所在路径
-     */
-    private String doExportFile(EngineFileType fileOutputType, String fileName) {
-        try (HikariDataSource dataSource = buildDataSource()) {
-            // 创建 screw 的配置
-            Configuration config = Configuration.builder()
-                    .version(DOC_VERSION)  // 版本
-                    .description(DOC_DESCRIPTION) // 描述
-                    .dataSource(dataSource) // 数据源
-                    .engineConfig(buildEngineConfig(fileOutputType, fileName)) // 引擎配置
-                    .produceConfig(buildProcessConfig()) // 处理配置
-                    .build();
-
-            // 执行 screw,生成数据库文档
-            new DocumentationExecute(config).execute();
-
-            return FILE_OUTPUT_DIR + File.separator + fileName + fileOutputType.getFileSuffix();
-        }
-    }
-
-    private void handleDeleteFile(Boolean deleteFile, String filePath) {
-        if (!deleteFile) {
-            return;
-        }
-        FileUtil.del(filePath);
-    }
-
-    /**
-     * 创建数据源
-     */
-    // TODO 芋艿:screw 暂时不支持 druid,尴尬
-    private HikariDataSource buildDataSource() {
-        // 获得 DataSource 数据源,目前只支持首个
-        String primary = dynamicDataSourceProperties.getPrimary();
-        DataSourceProperty dataSourceProperty = dynamicDataSourceProperties.getDatasource().get(primary);
-        // 创建 HikariConfig 配置类
-        HikariConfig hikariConfig = new HikariConfig();
-        hikariConfig.setJdbcUrl(dataSourceProperty.getUrl());
-        hikariConfig.setUsername(dataSourceProperty.getUsername());
-        hikariConfig.setPassword(dataSourceProperty.getPassword());
-        hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息
-        // 创建数据源
-        return new HikariDataSource(hikariConfig);
-    }
-
-    /**
-     * 创建 screw 的引擎配置
-     */
-    private static EngineConfig buildEngineConfig(EngineFileType fileOutputType, String docFileName) {
-        return EngineConfig.builder()
-                .fileOutputDir(FILE_OUTPUT_DIR) // 生成文件路径
-                .openOutputDir(false) // 打开目录
-                .fileType(fileOutputType) // 文件类型
-                .produceType(EngineTemplateType.freemarker) // 文件类型
-                .fileName(docFileName) // 自定义文件名称
-                .build();
-    }
-
-    /**
-     * 创建 screw 的处理配置,一般可忽略
-     * 指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
-     */
-    private static ProcessConfig buildProcessConfig() {
-        return ProcessConfig.builder()
-                .ignoreTablePrefix(Collections.singletonList("QRTZ_")) // 忽略表前缀
-                .build();
-    }
-
-}

+ 0 - 86
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/file/InfFileController.java

@@ -1,86 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.file;
-
-import cn.hutool.core.io.IoUtil;
-import cn.iocoder.yudao.adminserver.modules.infra.service.file.InfFileService;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
-import cn.iocoder.yudao.coreservice.modules.infra.controller.file.vo.InfFileRespVO;
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
-import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.adminserver.modules.infra.convert.file.InfFileConvert;
-import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
-import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-@Api(tags = "文件存储")
-@RestController
-@RequestMapping("/infra/file")
-@Validated
-@Slf4j
-public class InfFileController {
-
-    @Resource
-    private InfFileService fileService;
-    @Resource
-    private InfFileCoreService fileCoreService;
-
-    @PostMapping("/upload")
-    @ApiOperation("上传文件")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "file", value = "文件附件", required = true, dataTypeClass = MultipartFile.class),
-            @ApiImplicitParam(name = "path", value = "文件路径", example = "yudaoyuanma.png", dataTypeClass = String.class)
-    })
-    public CommonResult<String> uploadFile(@RequestParam("file") MultipartFile file,
-                                           @RequestParam("path") String path) throws IOException {
-        return success(fileCoreService.createFile(path, IoUtil.readBytes(file.getInputStream())));
-    }
-
-    @DeleteMapping("/delete")
-    @ApiOperation("删除文件")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = String.class)
-    @PreAuthorize("@ss.hasPermission('infra:file:delete')")
-    public CommonResult<Boolean> deleteFile(@RequestParam("id") String id) {
-        fileCoreService.deleteFile(id);
-        return success(true);
-    }
-
-    @GetMapping("/get/{path}")
-    @ApiOperation("下载文件")
-    @ApiImplicitParam(name = "path", value = "文件附件", required = true, dataTypeClass = MultipartFile.class)
-    public void getFile(HttpServletResponse response, @PathVariable("path") String path) throws IOException {
-        TenantContextHolder.setNullTenantId();
-        InfFileDO file = fileCoreService.getFile(path);
-        if (file == null) {
-            log.warn("[getFile][path({}) 文件不存在]", path);
-            response.setStatus(HttpStatus.NOT_FOUND.value());
-            return;
-        }
-        ServletUtils.writeAttachment(response, path, file.getContent());
-    }
-
-    @GetMapping("/page")
-    @ApiOperation("获得文件分页")
-    @PreAuthorize("@ss.hasPermission('infra:file:query')")
-    public CommonResult<PageResult<InfFileRespVO>> getFilePage(@Valid InfFilePageReqVO pageVO) {
-        PageResult<InfFileDO> pageResult = fileService.getFilePage(pageVO);
-        return success(InfFileConvert.INSTANCE.convertPage(pageResult));
-    }
-
-}

+ 0 - 35
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/file/vo/InfFilePageReqVO.java

@@ -1,35 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("文件分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfFilePageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "文件路径", example = "yudao", notes = "模糊匹配")
-    private String id;
-
-    @ApiModelProperty(value = "文件类型", example = "jpg", notes = "模糊匹配")
-    private String type;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始创建时间")
-    private Date beginCreateTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束创建时间")
-    private Date endCreateTime;
-
-}

+ 0 - 145
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/InfJobController.java

@@ -1,145 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job;
-
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.framework.quartz.core.util.CronUtils;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.*;
-import cn.iocoder.yudao.adminserver.modules.infra.convert.job.InfJobConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job.InfJobDO;
-import cn.iocoder.yudao.adminserver.modules.infra.service.job.InfJobService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.quartz.SchedulerException;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
-
-@Api(tags = "定时任务")
-@RestController
-@RequestMapping("/infra/job")
-@Validated
-public class InfJobController {
-
-    @Resource
-    private InfJobService jobService;
-
-    @PostMapping("/create")
-    @ApiOperation("创建定时任务")
-    @PreAuthorize("@ss.hasPermission('infra:job:create')")
-    public CommonResult<Long> createJob(@Valid @RequestBody InfJobCreateReqVO createReqVO)
-            throws SchedulerException {
-        return success(jobService.createJob(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @ApiOperation("更新定时任务")
-    @PreAuthorize("@ss.hasPermission('infra:job:update')")
-    public CommonResult<Boolean> updateJob(@Valid @RequestBody InfJobUpdateReqVO updateReqVO)
-            throws SchedulerException {
-        jobService.updateJob(updateReqVO);
-        return success(true);
-    }
-
-    @PutMapping("/update-status")
-    @ApiOperation("更新定时任务的状态")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class),
-            @ApiImplicitParam(name = "status", value = "状态", required = true, example = "1", dataTypeClass = Integer.class),
-    })
-    @PreAuthorize("@ss.hasPermission('infra:job:update')")
-    public CommonResult<Boolean> updateJobStatus(@RequestParam(value = "id") Long id, @RequestParam("status") Integer status)
-            throws SchedulerException {
-        jobService.updateJobStatus(id, status);
-        return success(true);
-    }
-
-	@DeleteMapping("/delete")
-    @ApiOperation("删除定时任务")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-	@PreAuthorize("@ss.hasPermission('infra:job:delete')")
-    public CommonResult<Boolean> deleteJob(@RequestParam("id") Long id)
-            throws SchedulerException {
-        jobService.deleteJob(id);
-        return success(true);
-    }
-
-    @PutMapping("/trigger")
-    @ApiOperation("触发定时任务")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-    @PreAuthorize("@ss.hasPermission('infra:job:trigger')")
-    public CommonResult<Boolean> triggerJob(@RequestParam("id") Long id) throws SchedulerException {
-        jobService.triggerJob(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @ApiOperation("获得定时任务")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<InfJobRespVO> getJob(@RequestParam("id") Long id) {
-        InfJobDO job = jobService.getJob(id);
-        return success(InfJobConvert.INSTANCE.convert(job));
-    }
-
-    @GetMapping("/list")
-    @ApiOperation("获得定时任务列表")
-    @ApiImplicitParam(name = "ids", value = "编号列表", required = true, dataTypeClass = List.class)
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<List<InfJobRespVO>> getJobList(@RequestParam("ids") Collection<Long> ids) {
-        List<InfJobDO> list = jobService.getJobList(ids);
-        return success(InfJobConvert.INSTANCE.convertList(list));
-    }
-
-    @GetMapping("/page")
-    @ApiOperation("获得定时任务分页")
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<PageResult<InfJobRespVO>> getJobPage(@Valid InfJobPageReqVO pageVO) {
-        PageResult<InfJobDO> pageResult = jobService.getJobPage(pageVO);
-        return success(InfJobConvert.INSTANCE.convertPage(pageResult));
-    }
-
-    @GetMapping("/export-excel")
-    @ApiOperation("导出定时任务 Excel")
-    @PreAuthorize("@ss.hasPermission('infra:job:export')")
-    @OperateLog(type = EXPORT)
-    public void exportJobExcel(@Valid InfJobExportReqVO exportReqVO,
-                               HttpServletResponse response) throws IOException {
-        List<InfJobDO> list = jobService.getJobList(exportReqVO);
-        // 导出 Excel
-        List<InfJobExcelVO> datas = InfJobConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "定时任务.xls", "数据", InfJobExcelVO.class, datas);
-    }
-
-    @GetMapping("/get_next_times")
-    @ApiOperation("获得定时任务的下 n 次执行时间")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class),
-            @ApiImplicitParam(name = "count", value = "数量", example = "5", dataTypeClass = Long.class)
-    })
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<List<Date>> getJobNextTimes(@RequestParam("id") Long id,
-                                                    @RequestParam(value = "count", required = false, defaultValue = "5") Integer count) {
-        InfJobDO job = jobService.getJob(id);
-        if (job == null) {
-            return success(Collections.emptyList());
-        }
-        return success(CronUtils.getNextTimes(job.getCronExpression(), count));
-    }
-
-}

+ 0 - 81
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/InfJobLogController.java

@@ -1,81 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job;
-
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log.InfJobLogExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log.InfJobLogExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log.InfJobLogPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log.InfJobLogRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.convert.job.InfJobLogConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job.InfJobLogDO;
-import cn.iocoder.yudao.adminserver.modules.infra.service.job.InfJobLogService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
-
-@Api(tags = "定时任务日志")
-@RestController
-@RequestMapping("/infra/job-log")
-@Validated
-public class InfJobLogController {
-
-    @Resource
-    private InfJobLogService jobLogService;
-
-    @GetMapping("/get")
-    @ApiOperation("获得定时任务日志")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<InfJobLogRespVO> getJobLog(@RequestParam("id") Long id) {
-        InfJobLogDO jobLog = jobLogService.getJobLog(id);
-        return success(InfJobLogConvert.INSTANCE.convert(jobLog));
-    }
-
-    @GetMapping("/list")
-    @ApiOperation("获得定时任务日志列表")
-    @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<List<InfJobLogRespVO>> getJobLogList(@RequestParam("ids") Collection<Long> ids) {
-        List<InfJobLogDO> list = jobLogService.getJobLogList(ids);
-        return success(InfJobLogConvert.INSTANCE.convertList(list));
-    }
-
-    @GetMapping("/page")
-    @ApiOperation("获得定时任务日志分页")
-    @PreAuthorize("@ss.hasPermission('infra:job:query')")
-    public CommonResult<PageResult<InfJobLogRespVO>> getJobLogPage(@Valid InfJobLogPageReqVO pageVO) {
-        PageResult<InfJobLogDO> pageResult = jobLogService.getJobLogPage(pageVO);
-        return success(InfJobLogConvert.INSTANCE.convertPage(pageResult));
-    }
-
-    @GetMapping("/export-excel")
-    @ApiOperation("导出定时任务日志 Excel")
-    @PreAuthorize("@ss.hasPermission('infra:job:export')")
-    @OperateLog(type = EXPORT)
-    public void exportJobLogExcel(@Valid InfJobLogExportReqVO exportReqVO,
-                                  HttpServletResponse response) throws IOException {
-        List<InfJobLogDO> list = jobLogService.getJobLogList(exportReqVO);
-        // 导出 Excel
-        List<InfJobLogExcelVO> datas = InfJobLogConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "任务日志.xls", "数据", InfJobLogExcelVO.class, datas);
-    }
-
-}

+ 0 - 37
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobBaseVO.java

@@ -1,37 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
-* 定时任务 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class InfJobBaseVO {
-
-    @ApiModelProperty(value = "任务名称", required = true, example = "测试任务")
-    @NotNull(message = "任务名称不能为空")
-    private String name;
-
-    @ApiModelProperty(value = "处理器的参数", example = "yudao")
-    private String handlerParam;
-
-    @ApiModelProperty(value = "CRON 表达式", required = true, example = "0/10 * * * * ? *")
-    @NotNull(message = "CRON 表达式不能为空")
-    private String cronExpression;
-
-    @ApiModelProperty(value = "重试次数", required = true, example = "3")
-    @NotNull(message = "重试次数不能为空")
-    private Integer retryCount;
-
-    @ApiModelProperty(value = "重试间隔", required = true, example = "1000")
-    @NotNull(message = "重试间隔不能为空")
-    private Integer retryInterval;
-
-    @ApiModelProperty(value = "监控超时时间", example = "1000")
-    private Integer monitorTimeout;
-
-}

+ 0 - 21
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobCreateReqVO.java

@@ -1,21 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import javax.validation.constraints.NotNull;
-
-@ApiModel("定时任务创建 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfJobCreateReqVO extends InfJobBaseVO {
-
-    @ApiModelProperty(value = "处理器的名字", required = true, example = "sysUserSessionTimeoutJob")
-    @NotNull(message = "处理器的名字不能为空")
-    private String handlerName;
-
-}

+ 0 - 56
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobExcelVO.java

@@ -1,56 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 定时任务 Excel VO
- *
- * @author 芋道源码
- */
-@Data
-public class InfJobExcelVO {
-
-    @ExcelProperty("任务编号")
-    private Long id;
-
-    @ExcelProperty("任务名称")
-    private String name;
-
-    @ExcelProperty(value = "任务状态", converter = DictConvert.class)
-    @DictFormat(InfDictTypeConstants.JOB_STATUS)
-    private Integer status;
-
-    @ExcelProperty("处理器的名字")
-    private String handlerName;
-
-    @ExcelProperty("处理器的参数")
-    private String handlerParam;
-
-    @ExcelProperty("CRON 表达式")
-    private String cronExpression;
-
-    @ExcelProperty("最后一次执行的开始时间")
-    private Date executeBeginTime;
-
-    @ExcelProperty("最后一次执行的结束时间")
-    private Date executeEndTime;
-
-    @ExcelProperty("上一次触发时间")
-    private Date firePrevTime;
-
-    @ExcelProperty("下一次触发时间")
-    private Date fireNextTime;
-
-    @ExcelProperty("监控超时时间")
-    private Integer monitorTimeout;
-
-    @ExcelProperty("创建时间")
-    private Date createTime;
-
-}

+ 0 - 20
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobExportReqVO.java

@@ -1,20 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@ApiModel(value = "定时任务 Excel 导出 Request VO", description = "参数和 InfJobPageReqVO 是一致的")
-@Data
-public class InfJobExportReqVO {
-
-    @ApiModelProperty(value = "任务名称", example = "测试任务", notes = "模糊匹配")
-    private String name;
-
-    @ApiModelProperty(value = "任务状态", example = "1", notes = "参见 InfJobStatusEnum 枚举")
-    private Integer status;
-
-    @ApiModelProperty(value = "处理器的名字", example = "sysUserSessionTimeoutJob", notes = "模糊匹配")
-    private String handlerName;
-
-}

+ 0 - 25
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobPageReqVO.java

@@ -1,25 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-@ApiModel("定时任务分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfJobPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "任务名称", example = "测试任务", notes = "模糊匹配")
-    private String name;
-
-    @ApiModelProperty(value = "任务状态", example = "1", notes = "参见 InfJobStatusEnum 枚举")
-    private Integer status;
-
-    @ApiModelProperty(value = "处理器的名字", example = "sysUserSessionTimeoutJob", notes = "模糊匹配")
-    private String handlerName;
-
-}

+ 0 - 31
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobRespVO.java

@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import javax.validation.constraints.NotNull;
-import java.util.Date;
-
-@ApiModel("定时任务 Response VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfJobRespVO extends InfJobBaseVO {
-
-    @ApiModelProperty(value = "任务编号", required = true, example = "1024")
-    private Long id;
-
-    @ApiModelProperty(value = "任务状态", required = true, example = "1")
-    private Integer status;
-
-    @ApiModelProperty(value = "处理器的名字", required = true, example = "sysUserSessionTimeoutJob")
-    @NotNull(message = "处理器的名字不能为空")
-    private String handlerName;
-
-    @ApiModelProperty(value = "创建时间", required = true)
-    private Date createTime;
-
-}

+ 0 - 21
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/job/InfJobUpdateReqVO.java

@@ -1,21 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import javax.validation.constraints.NotNull;
-
-@ApiModel("定时任务更新 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfJobUpdateReqVO extends InfJobBaseVO {
-
-    @ApiModelProperty(value = "任务编号", required = true, example = "1024")
-    @NotNull(message = "任务编号不能为空")
-    private Long id;
-
-}

+ 0 - 53
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogBaseVO.java

@@ -1,53 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotNull;
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-/**
-* 定时任务日志 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class InfJobLogBaseVO {
-
-    @ApiModelProperty(value = "任务编号", required = true, example = "1024")
-    @NotNull(message = "任务编号不能为空")
-    private Long jobId;
-
-    @ApiModelProperty(value = "处理器的名字", required = true, example = "sysUserSessionTimeoutJob")
-    @NotNull(message = "处理器的名字不能为空")
-    private String handlerName;
-
-    @ApiModelProperty(value = "处理器的参数", example = "yudao")
-    private String handlerParam;
-
-    @ApiModelProperty(value = "第几次执行", required = true, example = "1")
-    @NotNull(message = "第几次执行不能为空")
-    private Integer executeIndex;
-
-    @ApiModelProperty(value = "开始执行时间", required = true)
-    @NotNull(message = "开始执行时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date beginTime;
-
-    @ApiModelProperty(value = "结束执行时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date endTime;
-
-    @ApiModelProperty(value = "执行时长", example = "123")
-    private Integer duration;
-
-    @ApiModelProperty(value = "任务状态", required = true, example = "1", notes = "参见 InfJobLogStatusEnum 枚举")
-    @NotNull(message = "任务状态不能为空")
-    private Integer status;
-
-    @ApiModelProperty(value = "结果数据", example = "执行成功")
-    private String result;
-
-}

+ 0 - 53
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogExcelVO.java

@@ -1,53 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 定时任务 Excel VO
- *
- * @author 芋艿
- */
-@Data
-public class InfJobLogExcelVO {
-
-    @ExcelProperty("日志编号")
-    private Long id;
-
-    @ExcelProperty("任务编号")
-    private Long jobId;
-
-    @ExcelProperty("处理器的名字")
-    private String handlerName;
-
-    @ExcelProperty("处理器的参数")
-    private String handlerParam;
-
-    @ExcelProperty("第几次执行")
-    private Integer executeIndex;
-
-    @ExcelProperty("开始执行时间")
-    private Date beginTime;
-
-    @ExcelProperty("结束执行时间")
-    private Date endTime;
-
-    @ExcelProperty("执行时长")
-    private Integer duration;
-
-    @ExcelProperty(value = "任务状态", converter = DictConvert.class)
-    @DictFormat(InfDictTypeConstants.JOB_STATUS)
-    private Integer status;
-
-    @ExcelProperty("结果数据")
-    private String result;
-
-    @ExcelProperty("创建时间")
-    private Date createTime;
-
-}

+ 0 - 33
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogExportReqVO.java

@@ -1,33 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel(value = "定时任务 Excel 导出 Request VO", description = "参数和 InfJobLogPageReqVO 是一致的")
-@Data
-public class InfJobLogExportReqVO {
-
-    @ApiModelProperty(value = "任务编号", example = "10")
-    private Long jobId;
-
-    @ApiModelProperty(value = "处理器的名字", notes = "模糊匹配")
-    private String handlerName;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始执行时间")
-    private Date beginTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束执行时间")
-    private Date endTime;
-
-    @ApiModelProperty(value = "任务状态", notes = "参见 InfJobLogStatusEnum 枚举")
-    private Integer status;
-
-}

+ 0 - 38
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogPageReqVO.java

@@ -1,38 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("定时任务日志分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfJobLogPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "任务编号", example = "10")
-    private Long jobId;
-
-    @ApiModelProperty(value = "处理器的名字", notes = "模糊匹配")
-    private String handlerName;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始执行时间")
-    private Date beginTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束执行时间")
-    private Date endTime;
-
-    @ApiModelProperty(value = "任务状态", notes = "参见 InfJobLogStatusEnum 枚举")
-    private Integer status;
-
-}

+ 0 - 23
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/job/vo/log/InfJobLogRespVO.java

@@ -1,23 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import java.util.Date;
-
-@ApiModel("定时任务日志 Response VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfJobLogRespVO extends InfJobLogBaseVO {
-
-    @ApiModelProperty(value = "日志编号", required = true, example = "1024")
-    private Long id;
-
-    @ApiModelProperty(value = "创建时间", required = true)
-    private Date createTime;
-
-}

+ 0 - 60
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/InfApiAccessLogController.java

@@ -1,60 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiAccessLogConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiAccessLogService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
-
-@Api(tags = "API 访问日志")
-@RestController
-@RequestMapping("/infra/api-access-log")
-@Validated
-public class InfApiAccessLogController {
-
-    @Resource
-    private InfApiAccessLogService apiAccessLogService;
-
-    @GetMapping("/page")
-    @ApiOperation("获得API 访问日志分页")
-    @PreAuthorize("@ss.hasPermission('infra:api-access-log:query')")
-    public CommonResult<PageResult<InfApiAccessLogRespVO>> getApiAccessLogPage(@Valid InfApiAccessLogPageReqVO pageVO) {
-        PageResult<InfApiAccessLogDO> pageResult = apiAccessLogService.getApiAccessLogPage(pageVO);
-        return success(InfApiAccessLogConvert.INSTANCE.convertPage(pageResult));
-    }
-
-    @GetMapping("/export-excel")
-    @ApiOperation("导出API 访问日志 Excel")
-    @PreAuthorize("@ss.hasPermission('infra:api-access-log:export')")
-    @OperateLog(type = EXPORT)
-    public void exportApiAccessLogExcel(@Valid InfApiAccessLogExportReqVO exportReqVO,
-                                        HttpServletResponse response) throws IOException {
-        List<InfApiAccessLogDO> list = apiAccessLogService.getApiAccessLogList(exportReqVO);
-        // 导出 Excel
-        List<InfApiAccessLogExcelVO> datas = InfApiAccessLogConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "API 访问日志.xls", "数据", InfApiAccessLogExcelVO.class, datas);
-    }
-
-}

+ 0 - 74
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/InfApiErrorLogController.java

@@ -1,74 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiErrorLogConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiErrorLogService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
-import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
-
-@Api(tags = "API 错误日志")
-@RestController
-@RequestMapping("/infra/api-error-log")
-@Validated
-public class InfApiErrorLogController {
-
-    @Resource
-    private InfApiErrorLogService apiErrorLogService;
-
-    @PutMapping("/update-status")
-    @ApiOperation("更新 API 错误日志的状态")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class),
-            @ApiImplicitParam(name = "processStatus", value = "处理状态", required = true, example = "1", dataTypeClass = Integer.class)
-    })
-    @PreAuthorize("@ss.hasPermission('infra:api-error-log:update-status')")
-    public CommonResult<Boolean> updateApiErrorLogProcess(@RequestParam("id") Long id,
-                                                          @RequestParam("processStatus") Integer processStatus) {
-        apiErrorLogService.updateApiErrorLogProcess(id, processStatus, getLoginUserId());
-        return success(true);
-    }
-
-    @GetMapping("/page")
-    @ApiOperation("获得 API 错误日志分页")
-    @PreAuthorize("@ss.hasPermission('infra:api-error-log:query')")
-    public CommonResult<PageResult<InfApiErrorLogRespVO>> getApiErrorLogPage(@Valid InfApiErrorLogPageReqVO pageVO) {
-        PageResult<InfApiErrorLogDO> pageResult = apiErrorLogService.getApiErrorLogPage(pageVO);
-        return success(InfApiErrorLogConvert.INSTANCE.convertPage(pageResult));
-    }
-
-    @GetMapping("/export-excel")
-    @ApiOperation("导出 API 错误日志 Excel")
-    @PreAuthorize("@ss.hasPermission('infra:api-error-log:export')")
-    @OperateLog(type = EXPORT)
-    public void exportApiErrorLogExcel(@Valid InfApiErrorLogExportReqVO exportReqVO,
-              HttpServletResponse response) throws IOException {
-        List<InfApiErrorLogDO> list = apiErrorLogService.getApiErrorLogList(exportReqVO);
-        // 导出 Excel
-        List<InfApiErrorLogExcelVO> datas = InfApiErrorLogConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "API 错误日志.xls", "数据", InfApiErrorLogExcelVO.class, datas);
-    }
-
-}

+ 0 - 75
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogBaseVO.java

@@ -1,75 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotNull;
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-/**
-* API 访问日志 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class InfApiAccessLogBaseVO {
-
-    @ApiModelProperty(value = "链路追踪编号", required = true, example = "66600cb6-7852-11eb-9439-0242ac130002")
-    @NotNull(message = "链路追踪编号不能为空")
-    private String traceId;
-
-    @ApiModelProperty(value = "用户编号", required = true, example = "666")
-    @NotNull(message = "用户编号不能为空")
-    private Long userId;
-
-    @ApiModelProperty(value = "用户类型", required = true, example = "2", notes = "参见 UserTypeEnum 枚举")
-    @NotNull(message = "用户类型不能为空")
-    private Integer userType;
-
-    @ApiModelProperty(value = "应用名", required = true, example = "dashboard")
-    @NotNull(message = "应用名不能为空")
-    private String applicationName;
-
-    @ApiModelProperty(value = "请求方法名", required = true, example = "GET")
-    @NotNull(message = "请求方法名不能为空")
-    private String requestMethod;
-
-    @ApiModelProperty(value = "请求地址", required = true, example = "/xxx/yyy")
-    @NotNull(message = "请求地址不能为空")
-    private String requestUrl;
-
-    @ApiModelProperty(value = "请求参数")
-    private String requestParams;
-
-    @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1")
-    @NotNull(message = "用户 IP不能为空")
-    private String userIp;
-
-    @ApiModelProperty(value = "浏览器 UA", required = true, example = "Mozilla/5.0")
-    @NotNull(message = "浏览器 UA不能为空")
-    private String userAgent;
-
-    @ApiModelProperty(value = "开始请求时间", required = true)
-    @NotNull(message = "开始请求时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date beginTime;
-
-    @ApiModelProperty(value = "结束请求时间", required = true)
-    @NotNull(message = "结束请求时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date endTime;
-
-    @ApiModelProperty(value = "执行时长", required = true, example = "100")
-    @NotNull(message = "执行时长不能为空")
-    private Integer duration;
-
-    @ApiModelProperty(value = "结果码", required = true, example = "0")
-    @NotNull(message = "结果码不能为空")
-    private Integer resultCode;
-
-    @ApiModelProperty(value = "结果提示", example = "芋道源码,牛逼!")
-    private String resultMsg;
-
-}

+ 0 - 65
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogExcelVO.java

@@ -1,65 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * API 访问日志 Excel VO
- *
- * @author 芋道源码
- */
-@Data
-public class InfApiAccessLogExcelVO {
-
-    @ExcelProperty("日志主键")
-    private Long id;
-
-    @ExcelProperty("链路追踪编号")
-    private String traceId;
-
-    @ExcelProperty("用户编号")
-    private Long userId;
-
-    @ExcelProperty(value = "用户类型", converter = DictConvert.class)
-    @DictFormat(SysDictTypeConstants.USER_TYPE)
-    private Integer userType;
-
-    @ExcelProperty("应用名")
-    private String applicationName;
-
-    @ExcelProperty("请求方法名")
-    private String requestMethod;
-
-    @ExcelProperty("请求地址")
-    private String requestUrl;
-
-    @ExcelProperty("请求参数")
-    private String requestParams;
-
-    @ExcelProperty("用户 IP")
-    private String userIp;
-
-    @ExcelProperty("浏览器 UA")
-    private String userAgent;
-
-    @ExcelProperty("开始请求时间")
-    private Date beginTime;
-
-    @ExcelProperty("结束请求时间")
-    private Date endTime;
-
-    @ExcelProperty("执行时长")
-    private Integer duration;
-
-    @ExcelProperty("结果码")
-    private Integer resultCode;
-
-    @ExcelProperty("结果提示")
-    private String resultMsg;
-
-}

+ 0 - 42
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogExportReqVO.java

@@ -1,42 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel(value = "API 访问日志 Excel 导出 Request VO", description = "参数和 InfApiAccessLogPageReqVO 是一致的")
-@Data
-public class InfApiAccessLogExportReqVO {
-
-    @ApiModelProperty(value = "用户编号", example = "666")
-    private Long userId;
-
-    @ApiModelProperty(value = "用户类型", example = "2")
-    private Integer userType;
-
-    @ApiModelProperty(value = "应用名", example = "dashboard")
-    private String applicationName;
-
-    @ApiModelProperty(value = "请求地址", example = "/xxx/yyy", notes = "模糊匹配")
-    private String requestUrl;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始开始请求时间")
-    private Date beginBeginTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束开始请求时间")
-    private Date endBeginTime;
-
-    @ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒")
-    private Integer duration;
-
-    @ApiModelProperty(value = "结果码", example = "0")
-    private Integer resultCode;
-
-}

+ 0 - 47
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogPageReqVO.java

@@ -1,47 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("API 访问日志分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfApiAccessLogPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "用户编号", example = "666")
-    private Long userId;
-
-    @ApiModelProperty(value = "用户类型", example = "2")
-    private Integer userType;
-
-    @ApiModelProperty(value = "应用名", example = "dashboard")
-    private String applicationName;
-
-    @ApiModelProperty(value = "请求地址", example = "/xxx/yyy", notes = "模糊匹配")
-    private String requestUrl;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始开始请求时间")
-    private Date beginBeginTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束开始请求时间")
-    private Date endBeginTime;
-
-    @ApiModelProperty(value = "执行时长", example = "100", notes = "大于等于,单位:毫秒")
-    private Integer duration;
-
-    @ApiModelProperty(value = "结果码", example = "0")
-    private Integer resultCode;
-
-}

+ 0 - 23
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogRespVO.java

@@ -1,23 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import java.util.Date;
-
-@ApiModel("API 访问日志 Response VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfApiAccessLogRespVO extends InfApiAccessLogBaseVO {
-
-    @ApiModelProperty(value = "日志主键", required = true, example = "1024")
-    private Long id;
-
-    @ApiModelProperty(value = "创建时间", required = true)
-    private Date createTime;
-
-}

+ 0 - 96
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogBaseVO.java

@@ -1,96 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotNull;
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-/**
-* API 错误日志 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class InfApiErrorLogBaseVO {
-
-    @ApiModelProperty(value = "链路追踪编号", required = true, example = "66600cb6-7852-11eb-9439-0242ac130002")
-    @NotNull(message = "链路追踪编号不能为空")
-    private String traceId;
-
-    @ApiModelProperty(value = "用户编号", required = true, example = "666")
-    @NotNull(message = "用户编号不能为空")
-    private Integer userId;
-
-    @ApiModelProperty(value = "用户类型", required = true, example = "1")
-    @NotNull(message = "用户类型不能为空")
-    private Integer userType;
-
-    @ApiModelProperty(value = "应用名", required = true, example = "dashboard")
-    @NotNull(message = "应用名不能为空")
-    private String applicationName;
-
-    @ApiModelProperty(value = "请求方法名", required = true, example = "GET")
-    @NotNull(message = "请求方法名不能为空")
-    private String requestMethod;
-
-    @ApiModelProperty(value = "请求地址", required = true, example = "/xx/yy")
-    @NotNull(message = "请求地址不能为空")
-    private String requestUrl;
-
-    @ApiModelProperty(value = "请求参数", required = true)
-    @NotNull(message = "请求参数不能为空")
-    private String requestParams;
-
-    @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1")
-    @NotNull(message = "用户 IP不能为空")
-    private String userIp;
-
-    @ApiModelProperty(value = "浏览器 UA", required = true, example = "Mozilla/5.0")
-    @NotNull(message = "浏览器 UA不能为空")
-    private String userAgent;
-
-    @ApiModelProperty(value = "异常发生时间", required = true)
-    @NotNull(message = "异常发生时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private Date exceptionTime;
-
-    @ApiModelProperty(value = "异常名", required = true)
-    @NotNull(message = "异常名不能为空")
-    private String exceptionName;
-
-    @ApiModelProperty(value = "异常导致的消息", required = true)
-    @NotNull(message = "异常导致的消息不能为空")
-    private String exceptionMessage;
-
-    @ApiModelProperty(value = "异常导致的根消息", required = true)
-    @NotNull(message = "异常导致的根消息不能为空")
-    private String exceptionRootCauseMessage;
-
-    @ApiModelProperty(value = "异常的栈轨迹", required = true)
-    @NotNull(message = "异常的栈轨迹不能为空")
-    private String exceptionStackTrace;
-
-    @ApiModelProperty(value = "异常发生的类全名", required = true)
-    @NotNull(message = "异常发生的类全名不能为空")
-    private String exceptionClassName;
-
-    @ApiModelProperty(value = "异常发生的类文件", required = true)
-    @NotNull(message = "异常发生的类文件不能为空")
-    private String exceptionFileName;
-
-    @ApiModelProperty(value = "异常发生的方法名", required = true)
-    @NotNull(message = "异常发生的方法名不能为空")
-    private String exceptionMethodName;
-
-    @ApiModelProperty(value = "异常发生的方法所在行", required = true)
-    @NotNull(message = "异常发生的方法所在行不能为空")
-    private Integer exceptionLineNumber;
-
-    @ApiModelProperty(value = "处理状态", required = true, example = "0")
-    @NotNull(message = "处理状态不能为空")
-    private Integer processStatus;
-
-}

+ 0 - 91
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogExcelVO.java

@@ -1,91 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
-import cn.iocoder.yudao.adminserver.modules.system.enums.SysDictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * API 错误日志 Excel VO
- *
- * @author 芋道源码
- */
-@Data
-public class InfApiErrorLogExcelVO {
-
-    @ExcelProperty("编号")
-    private Integer id;
-
-    @ExcelProperty("链路追踪编号")
-    private String traceId;
-
-    @ExcelProperty("用户编号")
-    private Integer userId;
-
-    @ExcelProperty(value = "用户类型", converter = DictConvert.class)
-    @DictFormat(SysDictTypeConstants.USER_TYPE)
-    private Integer userType;
-
-    @ExcelProperty("应用名")
-    private String applicationName;
-
-    @ExcelProperty("请求方法名")
-    private String requestMethod;
-
-    @ExcelProperty("请求地址")
-    private String requestUrl;
-
-    @ExcelProperty("请求参数")
-    private String requestParams;
-
-    @ExcelProperty("用户 IP")
-    private String userIp;
-
-    @ExcelProperty("浏览器 UA")
-    private String userAgent;
-
-    @ExcelProperty("异常发生时间")
-    private Date exceptionTime;
-
-    @ExcelProperty("异常名")
-    private String exceptionName;
-
-    @ExcelProperty("异常导致的消息")
-    private String exceptionMessage;
-
-    @ExcelProperty("异常导致的根消息")
-    private String exceptionRootCauseMessage;
-
-    @ExcelProperty("异常的栈轨迹")
-    private String exceptionStackTrace;
-
-    @ExcelProperty("异常发生的类全名")
-    private String exceptionClassName;
-
-    @ExcelProperty("异常发生的类文件")
-    private String exceptionFileName;
-
-    @ExcelProperty("异常发生的方法名")
-    private String exceptionMethodName;
-
-    @ExcelProperty("异常发生的方法所在行")
-    private Integer exceptionLineNumber;
-
-    @ExcelProperty("创建时间")
-    private Date createTime;
-
-    @ExcelProperty(value = "处理状态", converter = DictConvert.class)
-    @DictFormat(InfDictTypeConstants.API_ERROR_LOG_PROCESS_STATUS)
-    private Integer processStatus;
-
-    @ExcelProperty("处理时间")
-    private Date processTime;
-
-    @ExcelProperty("处理用户编号")
-    private Integer processUserId;
-
-}

+ 0 - 39
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogExportReqVO.java

@@ -1,39 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel(value = "API 错误日志 Excel 导出 Request VO", description = "参数和 InfApiErrorLogPageReqVO 是一致的")
-@Data
-public class InfApiErrorLogExportReqVO {
-
-    @ApiModelProperty(value = "用户编号", example = "666")
-    private Long userId;
-
-    @ApiModelProperty(value = "用户类型", example = "1")
-    private Integer userType;
-
-    @ApiModelProperty(value = "应用名", example = "dashboard")
-    private String applicationName;
-
-    @ApiModelProperty(value = "请求地址", example = "/xx/yy")
-    private String requestUrl;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始异常发生时间")
-    private Date beginExceptionTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束异常发生时间")
-    private Date endExceptionTime;
-
-    @ApiModelProperty(value = "处理状态", example = "0")
-    private Integer processStatus;
-
-}

+ 0 - 44
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogPageReqVO.java

@@ -1,44 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@ApiModel("API 错误日志分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfApiErrorLogPageReqVO extends PageParam {
-
-    @ApiModelProperty(value = "用户编号", example = "666")
-    private Long userId;
-
-    @ApiModelProperty(value = "用户类型", example = "1")
-    private Integer userType;
-
-    @ApiModelProperty(value = "应用名", example = "dashboard")
-    private String applicationName;
-
-    @ApiModelProperty(value = "请求地址", example = "/xx/yy")
-    private String requestUrl;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始异常发生时间")
-    private Date beginExceptionTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束异常发生时间")
-    private Date endExceptionTime;
-
-    @ApiModelProperty(value = "处理状态", example = "0")
-    private Integer processStatus;
-
-}

+ 0 - 29
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogRespVO.java

@@ -1,29 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
-
-import java.util.Date;
-
-@ApiModel("API 错误日志 Response VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class InfApiErrorLogRespVO extends InfApiErrorLogBaseVO {
-
-    @ApiModelProperty(value = "编号", required = true, example = "1024")
-    private Integer id;
-
-    @ApiModelProperty(value = "创建时间", required = true)
-    private Date createTime;
-
-    @ApiModelProperty(value = "处理时间", required = true)
-    private Date processTime;
-
-    @ApiModelProperty(value = "处理用户编号", example = "233")
-    private Integer processUserId;
-
-}

+ 0 - 36
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/redis/vo/InfRedisKeyRespVO.java

@@ -1,36 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.redis.vo;
-
-import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-
-import java.time.Duration;
-
-@ApiModel("Redis Key 信息 Response VO")
-@Data
-@Builder
-@AllArgsConstructor
-public class InfRedisKeyRespVO {
-
-    @ApiModelProperty(value = "login_user:%s", required = true, example = "String")
-    private String keyTemplate;
-
-    @ApiModelProperty(value = "Key 类型的枚举", required = true, example = "String")
-    private RedisKeyDefine.KeyTypeEnum keyType;
-
-    @ApiModelProperty(value = "Value 类型", required = true, example = "java.lang.String")
-    private Class valueType;
-
-    @ApiModelProperty(value = "超时类型", required = true, example = "1")
-    private RedisKeyDefine.TimeoutTypeEnum timeoutType;
-
-    @ApiModelProperty(value = "过期时间,单位:毫秒", required = true, example = "1024")
-    private Duration timeout;
-
-    @ApiModelProperty(value = "备注", required = true, example = "啦啦啦啦~")
-    private String memo;
-
-}

+ 0 - 44
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/redis/vo/InfRedisMonitorRespVO.java

@@ -1,44 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.controller.redis.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-
-import java.util.List;
-import java.util.Properties;
-
-@ApiModel("Redis 监控信息 Response VO")
-@Data
-@Builder
-@AllArgsConstructor
-public class InfRedisMonitorRespVO {
-
-    @ApiModelProperty(value = "Redis info 指令结果", required = true, notes = "具体字段,查看 Redis 文档")
-    private Properties info;
-
-    @ApiModelProperty(value = "Redis key 数量", required = true, example = "1024")
-    private Long dbSize;
-
-    @ApiModelProperty(value = "CommandStat 数组", required = true)
-    private List<CommandStat> commandStats;
-
-    @ApiModel("Redis 命令统计结果")
-    @Data
-    @Builder
-    @AllArgsConstructor
-    public static class CommandStat {
-
-        @ApiModelProperty(value = "Redis 命令", required = true, example = "get")
-        private String command;
-
-        @ApiModelProperty(value = "调用次数", required = true, example = "1024")
-        private Integer calls;
-
-        @ApiModelProperty(value = "消耗 CPU 秒数", required = true, example = "666")
-        private Long usec;
-
-    }
-
-}

+ 0 - 29
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/config/InfConfigConvert.java

@@ -1,29 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.config;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-@Mapper
-public interface InfConfigConvert {
-
-    InfConfigConvert INSTANCE = Mappers.getMapper(InfConfigConvert.class);
-
-    PageResult<InfConfigRespVO> convertPage(PageResult<InfConfigDO> page);
-
-    InfConfigRespVO convert(InfConfigDO bean);
-
-    InfConfigDO convert(InfConfigCreateReqVO bean);
-
-    InfConfigDO convert(InfConfigUpdateReqVO bean);
-
-    List<InfConfigExcelVO> convertList(List<InfConfigDO> list);
-
-}

+ 0 - 18
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/file/InfFileConvert.java

@@ -1,18 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.file;
-
-import cn.iocoder.yudao.coreservice.modules.infra.controller.file.vo.InfFileRespVO;
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-@Mapper
-public interface InfFileConvert {
-
-    InfFileConvert INSTANCE = Mappers.getMapper(InfFileConvert.class);
-
-    InfFileRespVO convert(InfFileDO bean);
-
-    PageResult<InfFileRespVO> convertPage(PageResult<InfFileDO> page);
-
-}

+ 0 - 36
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/job/InfJobConvert.java

@@ -1,36 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.job;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobCreateReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobUpdateReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job.InfJobDO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * 定时任务 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface InfJobConvert {
-
-    InfJobConvert INSTANCE = Mappers.getMapper(InfJobConvert.class);
-
-    InfJobDO convert(InfJobCreateReqVO bean);
-
-    InfJobDO convert(InfJobUpdateReqVO bean);
-
-    InfJobRespVO convert(InfJobDO bean);
-
-    List<InfJobRespVO> convertList(List<InfJobDO> list);
-
-    PageResult<InfJobRespVO> convertPage(PageResult<InfJobDO> page);
-
-    List<InfJobExcelVO> convertList02(List<InfJobDO> list);
-
-}

+ 0 - 30
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/job/InfJobLogConvert.java

@@ -1,30 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.job;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log.InfJobLogExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.log.InfJobLogRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job.InfJobLogDO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * 定时任务日志 Convert
- *
- * @author 芋艿
- */
-@Mapper
-public interface InfJobLogConvert {
-
-    InfJobLogConvert INSTANCE = Mappers.getMapper(InfJobLogConvert.class);
-
-    InfJobLogRespVO convert(InfJobLogDO bean);
-
-    List<InfJobLogRespVO> convertList(List<InfJobLogDO> list);
-
-    PageResult<InfJobLogRespVO> convertPage(PageResult<InfJobLogDO> page);
-
-    List<InfJobLogExcelVO> convertList02(List<InfJobLogDO> list);
-
-}

+ 0 - 30
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/logger/InfApiAccessLogConvert.java

@@ -1,30 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.logger;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogRespVO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * API 访问日志 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface InfApiAccessLogConvert {
-
-    InfApiAccessLogConvert INSTANCE = Mappers.getMapper(InfApiAccessLogConvert.class);
-
-    InfApiAccessLogRespVO convert(InfApiAccessLogDO bean);
-
-    List<InfApiAccessLogRespVO> convertList(List<InfApiAccessLogDO> list);
-
-    PageResult<InfApiAccessLogRespVO> convertPage(PageResult<InfApiAccessLogDO> page);
-
-    List<InfApiAccessLogExcelVO> convertList02(List<InfApiAccessLogDO> list);
-
-}

+ 0 - 28
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/logger/InfApiErrorLogConvert.java

@@ -1,28 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.logger;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExcelVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogRespVO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * API 错误日志 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface InfApiErrorLogConvert {
-
-    InfApiErrorLogConvert INSTANCE = Mappers.getMapper(InfApiErrorLogConvert.class);
-
-    InfApiErrorLogRespVO convert(InfApiErrorLogDO bean);
-
-    PageResult<InfApiErrorLogRespVO> convertPage(PageResult<InfApiErrorLogDO> page);
-
-    List<InfApiErrorLogExcelVO> convertList02(List<InfApiErrorLogDO> list);
-
-}

+ 0 - 6
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/package-info.java

@@ -1,6 +0,0 @@
-/**
- * 提供 POJO 类的实体转换
- *
- * 目前使用 MapStruct 框架
- */
-package cn.iocoder.yudao.adminserver.modules.infra.convert;

+ 0 - 34
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/redis/RedisConvert.java

@@ -1,34 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.convert.redis;
-
-import cn.hutool.core.util.StrUtil;
-import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.redis.vo.InfRedisKeyRespVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.redis.vo.InfRedisMonitorRespVO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-@Mapper
-public interface RedisConvert {
-
-    RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class);
-
-    default InfRedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) {
-        InfRedisMonitorRespVO respVO = InfRedisMonitorRespVO.builder().info(info).dbSize(dbSize)
-                .commandStats(new ArrayList<>(commandStats.size())).build();
-        commandStats.forEach((key, value) -> {
-            respVO.getCommandStats().add(InfRedisMonitorRespVO.CommandStat.builder()
-                    .command(StrUtil.subAfter((String) key, "cmdstat_", false))
-                    .calls(Integer.valueOf(StrUtil.subBetween((String) value, "calls=", ",")))
-                    .usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ",")))
-                    .build());
-        });
-        return respVO;
-    }
-
-    List<InfRedisKeyRespVO> convertList(List<RedisKeyDefine> list);
-
-}

+ 0 - 72
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/job/InfJobDO.java

@@ -1,72 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job;
-
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.adminserver.modules.infra.enums.job.InfJobStatusEnum;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.*;
-
-/**
- * 定时任务 DO
- *
- * @author 芋道源码
- */
-@TableName("inf_job")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class InfJobDO extends BaseDO {
-
-    /**
-     * 任务编号
-     */
-    @TableId
-    private Long id;
-    /**
-     * 任务名称
-     */
-    private String name;
-    /**
-     * 任务状态
-     *
-     * 枚举 {@link InfJobStatusEnum}
-     */
-    private Integer status;
-    /**
-     * 处理器的名字
-     */
-    private String handlerName;
-    /**
-     * 处理器的参数
-     */
-    private String handlerParam;
-    /**
-     * CRON 表达式
-     */
-    private String cronExpression;
-
-    // ========== 重试相关字段 ==========
-    /**
-     * 重试次数
-     * 如果不重试,则设置为 0
-     */
-    private Integer retryCount;
-    /**
-     * 重试间隔,单位:毫秒
-     * 如果没有间隔,则设置为 0
-     */
-    private Integer retryInterval;
-
-    // ========== 监控相关字段 ==========
-    /**
-     * 监控超时时间,单位:毫秒
-     * 为空时,表示不监控
-     *
-     * 注意,这里的超时的目的,不是进行任务的取消,而是告警任务的执行时间过长
-     */
-    private Integer monitorTimeout;
-
-}

+ 0 - 80
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/job/InfJobLogDO.java

@@ -1,80 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job;
-
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
-import cn.iocoder.yudao.adminserver.modules.infra.enums.job.InfJobLogStatusEnum;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.*;
-
-import java.util.Date;
-
-/**
- * 定时任务的执行日志
- *
- * @author 芋道源码
- */
-@TableName("inf_job_log")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class InfJobLogDO extends BaseDO {
-
-    /**
-     * 日志编号
-     */
-    private Long id;
-    /**
-     * 任务编号
-     *
-     * 关联 {@link InfJobDO#getId()}
-     */
-    private Long jobId;
-    /**
-     * 处理器的名字
-     *
-     * 冗余字段 {@link InfJobDO#getHandlerName()}
-     */
-    private String handlerName;
-    /**
-     * 处理器的参数
-     *
-     * 冗余字段 {@link InfJobDO#getHandlerParam()}
-     */
-    private String handlerParam;
-    /**
-     * 第几次执行
-     *
-     * 用于区分是不是重试执行。如果是重试执行,则 index 大于 1
-     */
-    private Integer executeIndex;
-
-    /**
-     * 开始执行时间
-     */
-    private Date beginTime;
-    /**
-     * 结束执行时间
-     */
-    private Date endTime;
-    /**
-     * 执行时长,单位:毫秒
-     */
-    private Integer duration;
-    /**
-     * 状态
-     *
-     * 枚举 {@link InfJobLogStatusEnum}
-     */
-    private Integer status;
-    /**
-     * 结果数据
-     *
-     * 成功时,使用 {@link JobHandler#execute(String)} 的结果
-     * 失败时,使用 {@link JobHandler#execute(String)} 的异常堆栈
-     */
-    private String result;
-
-}

+ 0 - 37
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/config/InfConfigMapper.java

@@ -1,37 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config;
-
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO;
-import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-@Mapper
-public interface InfConfigMapper extends BaseMapperX<InfConfigDO> {
-
-    default InfConfigDO selectByKey(String key) {
-        return selectOne(new QueryWrapper<InfConfigDO>().eq("`key`", key));
-    }
-
-    default PageResult<InfConfigDO> selectPage(InfConfigPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<InfConfigDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("`key`", reqVO.getKey())
-                .eqIfPresent("`type`", reqVO.getType())
-                .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
-    }
-
-    default List<InfConfigDO> selectList(InfConfigExportReqVO reqVO) {
-        return selectList(new QueryWrapperX<InfConfigDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("`key`", reqVO.getKey())
-                .eqIfPresent("`type`", reqVO.getType())
-                .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
-    }
-
-}

+ 0 - 24
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/file/InfFileMapper.java

@@ -1,24 +0,0 @@
-package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file;
-
-import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
-import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * admin 文件操作 Mapper
- *
- * @author 芋道源码
- */
-@Mapper
-public interface InfFileMapper extends BaseMapperX<InfFileDO> {
-    default PageResult<InfFileDO> selectPage(InfFilePageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<InfFileDO>()
-                .likeIfPresent("id", reqVO.getId())
-                .likeIfPresent("type", reqVO.getType())
-                .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-                .orderByDesc("create_time"));
-    }
-}

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно