Commit 907f3a58ba7b63636a10b7c28b107e646bcd0a32
Merge branch 'master-jdk21' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into develop
# Conflicts: # sql/mysql/ruoyi-vue-pro.sql
Showing
238 changed files
with
5222 additions
and
5766 deletions
Too many changes.
To preserve performance only 100 of 238 files are displayed.
.image/common/bpm-feature.png
0 → 100644
15.9 KB
.image/common/infra-feature.png
0 → 100644
16.5 KB
.image/common/system-feature.png
0 → 100644
13.3 KB
README.md
| @@ -162,6 +162,8 @@ | @@ -162,6 +162,8 @@ | ||
| 162 | | 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 | | 162 | | 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 | |
| 163 | | 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 | | 163 | | 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 | |
| 164 | 164 | ||
| 165 | + | ||
| 166 | + | ||
| 165 | ### 工作流程 | 167 | ### 工作流程 |
| 166 | 168 | ||
| 167 | | | 功能 | 描述 | | 169 | | | 功能 | 描述 | |
| @@ -174,6 +176,8 @@ | @@ -174,6 +176,8 @@ | ||
| 174 | | 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 | | 176 | | 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 | |
| 175 | | 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 | | 177 | | 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 | |
| 176 | 178 | ||
| 179 | + | ||
| 180 | + | ||
| 177 | ### 支付系统 | 181 | ### 支付系统 |
| 178 | 182 | ||
| 179 | | | 功能 | 描述 | | 183 | | | 功能 | 描述 | |
| @@ -209,6 +213,8 @@ | @@ -209,6 +213,8 @@ | ||
| 209 | | 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | | 213 | | 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | |
| 210 | | 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | | 214 | | 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | |
| 211 | 215 | ||
| 216 | + | ||
| 217 | + | ||
| 212 | ### 数据报表 | 218 | ### 数据报表 |
| 213 | 219 | ||
| 214 | | | 功能 | 描述 | | 220 | | | 功能 | 描述 | |
sql/mysql/ruoyi-vue-pro.sql
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | Target Server Version : 80200 (8.2.0) | 11 | Target Server Version : 80200 (8.2.0) |
| 12 | File Encoding : 65001 | 12 | File Encoding : 65001 |
| 13 | 13 | ||
| 14 | - Date: 05/03/2024 23:36:35 | 14 | + Date: 24/03/2024 10:40:51 |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | SET NAMES utf8mb4; | 17 | SET NAMES utf8mb4; |
| @@ -385,7 +385,7 @@ CREATE TABLE `infra_api_error_log` ( | @@ -385,7 +385,7 @@ CREATE TABLE `infra_api_error_log` ( | ||
| 385 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 385 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 386 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 386 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 387 | PRIMARY KEY (`id`) USING BTREE | 387 | PRIMARY KEY (`id`) USING BTREE |
| 388 | -) ENGINE = InnoDB AUTO_INCREMENT = 15660 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统异常日志'; | 388 | +) ENGINE = InnoDB AUTO_INCREMENT = 16372 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统异常日志'; |
| 389 | 389 | ||
| 390 | -- ---------------------------- | 390 | -- ---------------------------- |
| 391 | -- Records of infra_api_error_log | 391 | -- Records of infra_api_error_log |
| @@ -423,7 +423,7 @@ CREATE TABLE `infra_codegen_column` ( | @@ -423,7 +423,7 @@ CREATE TABLE `infra_codegen_column` ( | ||
| 423 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 423 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 424 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 424 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 425 | PRIMARY KEY (`id`) USING BTREE | 425 | PRIMARY KEY (`id`) USING BTREE |
| 426 | -) ENGINE = InnoDB AUTO_INCREMENT = 2248 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表字段定义'; | 426 | +) ENGINE = InnoDB AUTO_INCREMENT = 2305 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表字段定义'; |
| 427 | 427 | ||
| 428 | -- ---------------------------- | 428 | -- ---------------------------- |
| 429 | -- Records of infra_codegen_column | 429 | -- Records of infra_codegen_column |
| @@ -461,7 +461,7 @@ CREATE TABLE `infra_codegen_table` ( | @@ -461,7 +461,7 @@ CREATE TABLE `infra_codegen_table` ( | ||
| 461 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 461 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 462 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 462 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 463 | PRIMARY KEY (`id`) USING BTREE | 463 | PRIMARY KEY (`id`) USING BTREE |
| 464 | -) ENGINE = InnoDB AUTO_INCREMENT = 171 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表定义'; | 464 | +) ENGINE = InnoDB AUTO_INCREMENT = 176 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表定义'; |
| 465 | 465 | ||
| 466 | -- ---------------------------- | 466 | -- ---------------------------- |
| 467 | -- Records of infra_codegen_table | 467 | -- Records of infra_codegen_table |
| @@ -690,7 +690,7 @@ CREATE TABLE `infra_file` ( | @@ -690,7 +690,7 @@ CREATE TABLE `infra_file` ( | ||
| 690 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 690 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 691 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 691 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 692 | PRIMARY KEY (`id`) USING BTREE | 692 | PRIMARY KEY (`id`) USING BTREE |
| 693 | -) ENGINE = InnoDB AUTO_INCREMENT = 1281 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表'; | 693 | +) ENGINE = InnoDB AUTO_INCREMENT = 1294 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表'; |
| 694 | 694 | ||
| 695 | -- ---------------------------- | 695 | -- ---------------------------- |
| 696 | -- Records of infra_file | 696 | -- Records of infra_file |
| @@ -879,7 +879,7 @@ CREATE TABLE `system_dict_data` ( | @@ -879,7 +879,7 @@ CREATE TABLE `system_dict_data` ( | ||
| 879 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 879 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 880 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 880 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 881 | PRIMARY KEY (`id`) USING BTREE | 881 | PRIMARY KEY (`id`) USING BTREE |
| 882 | -) ENGINE = InnoDB AUTO_INCREMENT = 1509 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表'; | 882 | +) ENGINE = InnoDB AUTO_INCREMENT = 1529 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表'; |
| 883 | 883 | ||
| 884 | -- ---------------------------- | 884 | -- ---------------------------- |
| 885 | -- Records of system_dict_data | 885 | -- Records of system_dict_data |
| @@ -973,26 +973,21 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st | @@ -973,26 +973,21 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st | ||
| 973 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1118, 0, '等待退款', '0', 'pay_refund_status', 0, 'info', '', '等待退款', '1', '2021-12-10 16:44:59', '1', '2023-07-19 10:14:39', b'0'); | 973 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1118, 0, '等待退款', '0', 'pay_refund_status', 0, 'info', '', '等待退款', '1', '2021-12-10 16:44:59', '1', '2023-07-19 10:14:39', b'0'); |
| 974 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1119, 20, '退款失败', '20', 'pay_refund_status', 0, 'danger', '', '退款失败', '1', '2021-12-10 16:45:10', '1', '2023-07-19 10:15:10', b'0'); | 974 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1119, 20, '退款失败', '20', 'pay_refund_status', 0, 'danger', '', '退款失败', '1', '2021-12-10 16:45:10', '1', '2023-07-19 10:15:10', b'0'); |
| 975 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1124, 10, '退款成功', '10', 'pay_refund_status', 0, 'success', '', '退款成功', '1', '2021-12-10 16:46:26', '1', '2023-07-19 10:15:00', b'0'); | 975 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1124, 10, '退款成功', '10', 'pay_refund_status', 0, 'success', '', '退款成功', '1', '2021-12-10 16:46:26', '1', '2023-07-19 10:15:00', b'0'); |
| 976 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1125, 0, '默认', '1', 'bpm_model_category', 0, 'primary', '', '流程分类 - 默认', '1', '2022-01-02 08:41:11', '1', '2022-02-16 20:01:42', b'0'); | ||
| 977 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1126, 0, 'OA', '2', 'bpm_model_category', 0, 'success', '', '流程分类 - OA', '1', '2022-01-02 08:41:22', '1', '2022-02-16 20:01:50', b'0'); | ||
| 978 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1127, 0, '进行中', '1', 'bpm_process_instance_status', 0, 'primary', '', '流程实例的状态 - 进行中', '1', '2022-01-07 23:47:22', '1', '2022-02-16 20:07:49', b'0'); | ||
| 979 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1128, 2, '已完成', '2', 'bpm_process_instance_status', 0, 'success', '', '流程实例的状态 - 已完成', '1', '2022-01-07 23:47:49', '1', '2022-02-16 20:07:54', b'0'); | ||
| 980 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1129, 1, '处理中', '1', 'bpm_process_instance_result', 0, 'primary', '', '流程实例的结果 - 处理中', '1', '2022-01-07 23:48:32', '1', '2022-02-16 09:53:26', b'0'); | ||
| 981 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1130, 2, '通过', '2', 'bpm_process_instance_result', 0, 'success', '', '流程实例的结果 - 通过', '1', '2022-01-07 23:48:45', '1', '2022-02-16 09:53:31', b'0'); | ||
| 982 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1131, 3, '不通过', '3', 'bpm_process_instance_result', 0, 'danger', '', '流程实例的结果 - 不通过', '1', '2022-01-07 23:48:55', '1', '2022-02-16 09:53:38', b'0'); | ||
| 983 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1132, 4, '已取消', '4', 'bpm_process_instance_result', 0, 'info', '', '流程实例的结果 - 撤销', '1', '2022-01-07 23:49:06', '1', '2022-02-16 09:53:42', b'0'); | 976 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1127, 1, '审批中', '1', 'bpm_process_instance_status', 0, 'default', '', '流程实例的状态 - 进行中', '1', '2022-01-07 23:47:22', '1', '2024-03-16 16:11:45', b'0'); |
| 977 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1128, 2, '审批通过', '2', 'bpm_process_instance_status', 0, 'success', '', '流程实例的状态 - 已完成', '1', '2022-01-07 23:47:49', '1', '2024-03-16 16:11:54', b'0'); | ||
| 978 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1129, 1, '审批中', '1', 'bpm_task_status', 0, 'primary', '', '流程实例的结果 - 处理中', '1', '2022-01-07 23:48:32', '1', '2024-03-08 22:41:37', b'0'); | ||
| 979 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1130, 2, '审批通过', '2', 'bpm_task_status', 0, 'success', '', '流程实例的结果 - 通过', '1', '2022-01-07 23:48:45', '1', '2024-03-08 22:41:38', b'0'); | ||
| 980 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1131, 3, '审批不通过', '3', 'bpm_task_status', 0, 'danger', '', '流程实例的结果 - 不通过', '1', '2022-01-07 23:48:55', '1', '2024-03-08 22:41:38', b'0'); | ||
| 981 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1132, 4, '已取消', '4', 'bpm_task_status', 0, 'info', '', '流程实例的结果 - 撤销', '1', '2022-01-07 23:49:06', '1', '2024-03-08 22:41:39', b'0'); | ||
| 984 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1133, 10, '流程表单', '10', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 流程表单', '103', '2022-01-11 23:51:30', '103', '2022-01-11 23:51:30', b'0'); | 982 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1133, 10, '流程表单', '10', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 流程表单', '103', '2022-01-11 23:51:30', '103', '2022-01-11 23:51:30', b'0'); |
| 985 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1134, 20, '业务表单', '20', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 业务表单', '103', '2022-01-11 23:51:47', '103', '2022-01-11 23:51:47', b'0'); | 983 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1134, 20, '业务表单', '20', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 业务表单', '103', '2022-01-11 23:51:47', '103', '2022-01-11 23:51:47', b'0'); |
| 986 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1135, 10, '角色', '10', 'bpm_task_assign_rule_type', 0, 'info', '', '任务分配规则的类型 - 角色', '103', '2022-01-12 23:21:22', '1', '2022-02-16 20:06:14', b'0'); | ||
| 987 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1136, 20, '部门的成员', '20', 'bpm_task_assign_rule_type', 0, 'primary', '', '任务分配规则的类型 - 部门的成员', '103', '2022-01-12 23:21:47', '1', '2022-02-16 20:05:28', b'0'); | ||
| 988 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1137, 21, '部门的负责人', '21', 'bpm_task_assign_rule_type', 0, 'primary', '', '任务分配规则的类型 - 部门的负责人', '103', '2022-01-12 23:33:36', '1', '2022-02-16 20:05:31', b'0'); | ||
| 989 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1138, 30, '用户', '30', 'bpm_task_assign_rule_type', 0, 'info', '', '任务分配规则的类型 - 用户', '103', '2022-01-12 23:34:02', '1', '2022-02-16 20:05:50', b'0'); | ||
| 990 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1139, 40, '用户组', '40', 'bpm_task_assign_rule_type', 0, 'warning', '', '任务分配规则的类型 - 用户组', '103', '2022-01-12 23:34:21', '1', '2022-02-16 20:05:57', b'0'); | ||
| 991 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1140, 50, '自定义脚本', '50', 'bpm_task_assign_rule_type', 0, 'danger', '', '任务分配规则的类型 - 自定义脚本', '103', '2022-01-12 23:34:43', '1', '2022-02-16 20:06:01', b'0'); | ||
| 992 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1141, 22, '岗位', '22', 'bpm_task_assign_rule_type', 0, 'success', '', '任务分配规则的类型 - 岗位', '103', '2022-01-14 18:41:55', '1', '2022-02-16 20:05:39', b'0'); | ||
| 993 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1142, 10, '流程发起人', '10', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人', '103', '2022-01-15 00:10:57', '103', '2022-01-15 21:24:10', b'0'); | ||
| 994 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1143, 20, '流程发起人的一级领导', '20', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人的一级领导', '103', '2022-01-15 21:24:31', '103', '2022-01-15 21:24:31', b'0'); | ||
| 995 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1144, 21, '流程发起人的二级领导', '21', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人的二级领导', '103', '2022-01-15 21:24:46', '103', '2022-01-15 21:24:57', b'0'); | 984 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1135, 10, '角色', '10', 'bpm_task_candidate_strategy', 0, 'info', '', '任务分配规则的类型 - 角色', '103', '2022-01-12 23:21:22', '1', '2024-03-06 02:53:16', b'0'); |
| 985 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1136, 20, '部门的成员', '20', 'bpm_task_candidate_strategy', 0, 'primary', '', '任务分配规则的类型 - 部门的成员', '103', '2022-01-12 23:21:47', '1', '2024-03-06 02:53:17', b'0'); | ||
| 986 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1137, 21, '部门的负责人', '21', 'bpm_task_candidate_strategy', 0, 'primary', '', '任务分配规则的类型 - 部门的负责人', '103', '2022-01-12 23:33:36', '1', '2024-03-06 02:53:18', b'0'); | ||
| 987 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1138, 30, '用户', '30', 'bpm_task_candidate_strategy', 0, 'info', '', '任务分配规则的类型 - 用户', '103', '2022-01-12 23:34:02', '1', '2024-03-06 02:53:19', b'0'); | ||
| 988 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1139, 40, '用户组', '40', 'bpm_task_candidate_strategy', 0, 'warning', '', '任务分配规则的类型 - 用户组', '103', '2022-01-12 23:34:21', '1', '2024-03-06 02:53:20', b'0'); | ||
| 989 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1140, 60, '流程表达式', '60', 'bpm_task_candidate_strategy', 0, 'danger', '', '任务分配规则的类型 - 流程表达式', '103', '2022-01-12 23:34:43', '1', '2024-03-06 02:53:20', b'0'); | ||
| 990 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1141, 22, '岗位', '22', 'bpm_task_candidate_strategy', 0, 'success', '', '任务分配规则的类型 - 岗位', '103', '2022-01-14 18:41:55', '1', '2024-03-06 02:53:21', b'0'); | ||
| 996 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1145, 1, '管理后台', '1', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 管理后台', '1', '2022-02-02 13:15:06', '1', '2022-03-10 16:32:59', b'0'); | 991 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1145, 1, '管理后台', '1', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 管理后台', '1', '2022-02-02 13:15:06', '1', '2022-03-10 16:32:59', b'0'); |
| 997 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1146, 2, '用户 APP', '2', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 用户 APP', '1', '2022-02-02 13:15:19', '1', '2022-03-10 16:33:03', b'0'); | 992 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1146, 2, '用户 APP', '2', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 用户 APP', '1', '2022-02-02 13:15:19', '1', '2022-03-10 16:33:03', b'0'); |
| 998 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1150, 1, '数据库', '1', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:25:28', '1', '2022-03-15 00:25:28', b'0'); | 993 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1150, 1, '数据库', '1', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:25:28', '1', '2022-03-15 00:25:28', b'0'); |
| @@ -1246,7 +1241,18 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st | @@ -1246,7 +1241,18 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st | ||
| 1246 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1505, 71, '采购入库(作废)', '71', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-16 13:10:10', '1', '2024-02-16 19:40:40', b'0'); | 1241 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1505, 71, '采购入库(作废)', '71', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-16 13:10:10', '1', '2024-02-16 19:40:40', b'0'); |
| 1247 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1506, 80, '采购退货出库', '80', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-16 13:10:17', '1', '2024-02-16 13:10:17', b'0'); | 1242 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1506, 80, '采购退货出库', '80', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-16 13:10:17', '1', '2024-02-16 13:10:17', b'0'); |
| 1248 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1507, 81, '采购退货出库(作废)', '81', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-16 13:10:26', '1', '2024-02-16 19:40:33', b'0'); | 1243 | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1507, 81, '采购退货出库(作废)', '81', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-16 13:10:26', '1', '2024-02-16 19:40:33', b'0'); |
| 1249 | -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1508, 3, 'CRM', '3', 'bpm_model_category', 0, 'success', '', '', '1', '2024-02-24 07:58:38', '1', '2024-02-24 07:58:44', b'0'); | 1244 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1509, 3, '审批不通过', '3', 'bpm_process_instance_status', 0, 'danger', '', '', '1', '2024-03-16 16:12:06', '1', '2024-03-16 16:12:06', b'0'); |
| 1245 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1510, 4, '已取消', '4', 'bpm_process_instance_status', 0, 'warning', '', '', '1', '2024-03-16 16:12:22', '1', '2024-03-16 16:12:22', b'0'); | ||
| 1246 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1511, 5, '已退回', '5', 'bpm_task_status', 0, 'warning', '', '', '1', '2024-03-16 19:10:46', '1', '2024-03-08 22:41:40', b'0'); | ||
| 1247 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1512, 6, '委派中', '6', 'bpm_task_status', 0, 'primary', '', '', '1', '2024-03-17 10:06:22', '1', '2024-03-08 22:41:40', b'0'); | ||
| 1248 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1513, 7, '审批通过中', '7', 'bpm_task_status', 0, 'success', '', '', '1', '2024-03-17 10:06:47', '1', '2024-03-08 22:41:41', b'0'); | ||
| 1249 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1514, 0, '待审批', '0', 'bpm_task_status', 0, 'info', '', '', '1', '2024-03-17 10:07:11', '1', '2024-03-08 22:41:42', b'0'); | ||
| 1250 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1515, 35, '发起人自选', '35', 'bpm_task_candidate_strategy', 0, '', '', '', '1', '2024-03-22 19:45:16', '1', '2024-03-22 19:45:16', b'0'); | ||
| 1251 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1516, 1, '执行监听器', 'execution', 'bpm_process_listener_type', 0, 'primary', '', '', '1', '2024-03-23 12:54:03', '1', '2024-03-23 19:14:19', b'0'); | ||
| 1252 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1517, 1, '任务监听器', 'task', 'bpm_process_listener_type', 0, 'success', '', '', '1', '2024-03-23 12:54:13', '1', '2024-03-23 19:14:24', b'0'); | ||
| 1253 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1526, 1, 'Java 类', 'class', 'bpm_process_listener_value_type', 0, 'primary', '', '', '1', '2024-03-23 15:08:45', '1', '2024-03-23 19:14:32', b'0'); | ||
| 1254 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1527, 2, '表达式', 'expression', 'bpm_process_listener_value_type', 0, 'success', '', '', '1', '2024-03-23 15:09:06', '1', '2024-03-23 19:14:38', b'0'); | ||
| 1255 | +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1528, 3, '代理表达式', 'delegateExpression', 'bpm_process_listener_value_type', 0, 'info', '', '', '1', '2024-03-23 15:11:23', '1', '2024-03-23 19:14:41', b'0'); | ||
| 1250 | COMMIT; | 1256 | COMMIT; |
| 1251 | 1257 | ||
| 1252 | -- ---------------------------- | 1258 | -- ---------------------------- |
| @@ -1267,7 +1273,7 @@ CREATE TABLE `system_dict_type` ( | @@ -1267,7 +1273,7 @@ CREATE TABLE `system_dict_type` ( | ||
| 1267 | `deleted_time` datetime NULL DEFAULT NULL COMMENT '删除时间', | 1273 | `deleted_time` datetime NULL DEFAULT NULL COMMENT '删除时间', |
| 1268 | PRIMARY KEY (`id`) USING BTREE, | 1274 | PRIMARY KEY (`id`) USING BTREE, |
| 1269 | UNIQUE INDEX `dict_type`(`type` ASC) USING BTREE | 1275 | UNIQUE INDEX `dict_type`(`type` ASC) USING BTREE |
| 1270 | -) ENGINE = InnoDB AUTO_INCREMENT = 613 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表'; | 1276 | +) ENGINE = InnoDB AUTO_INCREMENT = 616 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表'; |
| 1271 | 1277 | ||
| 1272 | -- ---------------------------- | 1278 | -- ---------------------------- |
| 1273 | -- Records of system_dict_type | 1279 | -- Records of system_dict_type |
| @@ -1296,12 +1302,10 @@ INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creat | @@ -1296,12 +1302,10 @@ INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creat | ||
| 1296 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (131, '支付回调状态', 'pay_notify_status', 0, '支付回调状态(包括退款回调)', '1', '2021-12-03 10:53:29', '1', '2023-07-19 18:09:43', b'0', NULL); | 1302 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (131, '支付回调状态', 'pay_notify_status', 0, '支付回调状态(包括退款回调)', '1', '2021-12-03 10:53:29', '1', '2023-07-19 18:09:43', b'0', NULL); |
| 1297 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2021-12-03 11:17:50', b'0', NULL); | 1303 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2021-12-03 11:17:50', b'0', NULL); |
| 1298 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (134, '退款订单状态', 'pay_refund_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2023-07-19 10:13:17', b'0', NULL); | 1304 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (134, '退款订单状态', 'pay_refund_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2023-07-19 10:13:17', b'0', NULL); |
| 1299 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (138, '流程分类', 'bpm_model_category', 0, '流程分类', '1', '2022-01-02 08:40:45', '1', '2022-01-02 08:40:45', b'0', NULL); | ||
| 1300 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (139, '流程实例的状态', 'bpm_process_instance_status', 0, '流程实例的状态', '1', '2022-01-07 23:46:42', '1', '2022-01-07 23:46:42', b'0', NULL); | 1305 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (139, '流程实例的状态', 'bpm_process_instance_status', 0, '流程实例的状态', '1', '2022-01-07 23:46:42', '1', '2022-01-07 23:46:42', b'0', NULL); |
| 1301 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (140, '流程实例的结果', 'bpm_process_instance_result', 0, '流程实例的结果', '1', '2022-01-07 23:48:10', '1', '2022-01-07 23:48:10', b'0', NULL); | 1306 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (140, '流程实例的结果', 'bpm_task_status', 0, '流程实例的结果', '1', '2022-01-07 23:48:10', '1', '2024-03-08 22:42:03', b'0', NULL); |
| 1302 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (141, '流程的表单类型', 'bpm_model_form_type', 0, '流程的表单类型', '103', '2022-01-11 23:50:45', '103', '2022-01-11 23:50:45', b'0', NULL); | 1307 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (141, '流程的表单类型', 'bpm_model_form_type', 0, '流程的表单类型', '103', '2022-01-11 23:50:45', '103', '2022-01-11 23:50:45', b'0', NULL); |
| 1303 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (142, '任务分配规则的类型', 'bpm_task_assign_rule_type', 0, '任务分配规则的类型', '103', '2022-01-12 23:21:04', '103', '2022-01-12 15:46:10', b'0', NULL); | ||
| 1304 | -INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (143, '任务分配自定义脚本', 'bpm_task_assign_script', 0, '任务分配自定义脚本', '103', '2022-01-15 00:10:35', '103', '2022-01-15 00:10:35', b'0', NULL); | 1308 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (142, '任务分配规则的类型', 'bpm_task_candidate_strategy', 0, 'BPM 任务的候选人的策略', '103', '2022-01-12 23:21:04', '103', '2024-03-06 02:53:59', b'0', NULL); |
| 1305 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (144, '代码生成的场景枚举', 'infra_codegen_scene', 0, '代码生成的场景枚举', '1', '2022-02-02 13:14:45', '1', '2022-03-10 16:33:46', b'0', NULL); | 1309 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (144, '代码生成的场景枚举', 'infra_codegen_scene', 0, '代码生成的场景枚举', '1', '2022-02-02 13:14:45', '1', '2022-03-10 16:33:46', b'0', NULL); |
| 1306 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (145, '角色类型', 'system_role_type', 0, '角色类型', '1', '2022-02-16 13:01:46', '1', '2022-02-16 13:01:46', b'0', NULL); | 1310 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (145, '角色类型', 'system_role_type', 0, '角色类型', '1', '2022-02-16 13:01:46', '1', '2022-02-16 13:01:46', b'0', NULL); |
| 1307 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (146, '文件存储器', 'infra_file_storage', 0, '文件存储器', '1', '2022-03-15 00:24:38', '1', '2022-03-15 00:24:38', b'0', NULL); | 1311 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (146, '文件存储器', 'infra_file_storage', 0, '文件存储器', '1', '2022-03-15 00:24:38', '1', '2022-03-15 00:24:38', b'0', NULL); |
| @@ -1356,6 +1360,8 @@ INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creat | @@ -1356,6 +1360,8 @@ INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creat | ||
| 1356 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (610, '转账订单状态', 'pay_transfer_status', 0, '', '1', '2023-10-28 16:18:32', '1', '2023-10-28 16:18:32', b'0', '1970-01-01 00:00:00'); | 1360 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (610, '转账订单状态', 'pay_transfer_status', 0, '', '1', '2023-10-28 16:18:32', '1', '2023-10-28 16:18:32', b'0', '1970-01-01 00:00:00'); |
| 1357 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (611, 'ERP 库存明细的业务类型', 'erp_stock_record_biz_type', 0, 'ERP 库存明细的业务类型', '1', '2024-02-05 18:07:02', '1', '2024-02-05 18:07:02', b'0', '1970-01-01 00:00:00'); | 1361 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (611, 'ERP 库存明细的业务类型', 'erp_stock_record_biz_type', 0, 'ERP 库存明细的业务类型', '1', '2024-02-05 18:07:02', '1', '2024-02-05 18:07:02', b'0', '1970-01-01 00:00:00'); |
| 1358 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (612, 'ERP 审批状态', 'erp_audit_status', 0, '', '1', '2024-02-06 00:00:07', '1', '2024-02-06 00:00:07', b'0', '1970-01-01 00:00:00'); | 1362 | INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (612, 'ERP 审批状态', 'erp_audit_status', 0, '', '1', '2024-02-06 00:00:07', '1', '2024-02-06 00:00:07', b'0', '1970-01-01 00:00:00'); |
| 1363 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (613, 'BPM 监听器类型', 'bpm_process_listener_type', 0, '', '1', '2024-03-23 12:52:24', '1', '2024-03-09 15:54:28', b'0', '1970-01-01 00:00:00'); | ||
| 1364 | +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (615, 'BPM 监听器值类型', 'bpm_process_listener_value_type', 0, '', '1', '2024-03-23 13:00:31', '1', '2024-03-23 13:00:31', b'0', '1970-01-01 00:00:00'); | ||
| 1359 | COMMIT; | 1365 | COMMIT; |
| 1360 | 1366 | ||
| 1361 | -- ---------------------------- | 1367 | -- ---------------------------- |
| @@ -1404,7 +1410,7 @@ CREATE TABLE `system_login_log` ( | @@ -1404,7 +1410,7 @@ CREATE TABLE `system_login_log` ( | ||
| 1404 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1410 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1405 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 1411 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 1406 | PRIMARY KEY (`id`) USING BTREE | 1412 | PRIMARY KEY (`id`) USING BTREE |
| 1407 | -) ENGINE = InnoDB AUTO_INCREMENT = 3023 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录'; | 1413 | +) ENGINE = InnoDB AUTO_INCREMENT = 3031 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录'; |
| 1408 | 1414 | ||
| 1409 | -- ---------------------------- | 1415 | -- ---------------------------- |
| 1410 | -- Records of system_login_log | 1416 | -- Records of system_login_log |
| @@ -1534,7 +1540,7 @@ CREATE TABLE `system_menu` ( | @@ -1534,7 +1540,7 @@ CREATE TABLE `system_menu` ( | ||
| 1534 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1540 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1535 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1541 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1536 | PRIMARY KEY (`id`) USING BTREE | 1542 | PRIMARY KEY (`id`) USING BTREE |
| 1537 | -) ENGINE = InnoDB AUTO_INCREMENT = 2712 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表'; | 1543 | +) ENGINE = InnoDB AUTO_INCREMENT = 2736 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表'; |
| 1538 | 1544 | ||
| 1539 | -- ---------------------------- | 1545 | -- ---------------------------- |
| 1540 | -- Records of system_menu | 1546 | -- Records of system_menu |
| @@ -1696,25 +1702,25 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | @@ -1696,25 +1702,25 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | ||
| 1696 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1178, '支付订单导出', 'pay:order:export', 3, 5, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); | 1702 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1178, '支付订单导出', 'pay:order:export', 3, 5, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); |
| 1697 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'fa:medium', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:26:36', '1', '2024-02-29 12:43:43', b'0'); | 1703 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'fa:medium', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:26:36', '1', '2024-02-29 12:43:43', b'0'); |
| 1698 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'fa:dedent', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:28:30', '1', '2024-02-29 12:36:02', b'0'); | 1704 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'fa:dedent', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:28:30', '1', '2024-02-29 12:36:02', b'0'); |
| 1699 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1187, '流程表单', '', 2, 0, 1186, 'form', 'fa:hdd-o', 'bpm/form/index', 'BpmForm', 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2024-02-29 12:36:34', b'0'); | 1705 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1187, '流程表单', '', 2, 2, 1186, 'form', 'fa:hdd-o', 'bpm/form/index', 'BpmForm', 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2024-03-19 12:25:25', b'0'); |
| 1700 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1188, '表单查询', 'bpm:form:query', 3, 1, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); | 1706 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1188, '表单查询', 'bpm:form:query', 3, 1, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); |
| 1701 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1189, '表单创建', 'bpm:form:create', 3, 2, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); | 1707 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1189, '表单创建', 'bpm:form:create', 3, 2, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); |
| 1702 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1190, '表单更新', 'bpm:form:update', 3, 3, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); | 1708 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1190, '表单更新', 'bpm:form:update', 3, 3, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); |
| 1703 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1191, '表单删除', 'bpm:form:delete', 3, 4, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); | 1709 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1191, '表单删除', 'bpm:form:delete', 3, 4, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); |
| 1704 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1192, '表单导出', 'bpm:form:export', 3, 5, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); | 1710 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1192, '表单导出', 'bpm:form:export', 3, 5, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); |
| 1705 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1193, '流程模型', '', 2, 5, 1186, 'model', 'fa-solid:project-diagram', 'bpm/model/index', 'BpmModel', 0, b'1', b'1', b'1', '1', '2021-12-31 23:24:58', '1', '2024-02-29 12:36:53', b'0'); | 1711 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1193, '流程模型', '', 2, 1, 1186, 'model', 'fa-solid:project-diagram', 'bpm/model/index', 'BpmModel', 0, b'1', b'1', b'1', '1', '2021-12-31 23:24:58', '1', '2024-03-19 12:25:19', b'0'); |
| 1706 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:10', '1', '2022-04-20 17:03:10', b'0'); | 1712 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:10', '1', '2022-04-20 17:03:10', b'0'); |
| 1707 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:24', '1', '2022-04-20 17:03:10', b'0'); | 1713 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:24', '1', '2022-04-20 17:03:10', b'0'); |
| 1708 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:35', '1', '2022-04-20 17:03:10', b'0'); | 1714 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:35', '1', '2022-04-20 17:03:10', b'0'); |
| 1709 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:28', '1', '2022-04-20 17:03:10', b'0'); | 1715 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:28', '1', '2022-04-20 17:03:10', b'0'); |
| 1710 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:43', '1', '2022-04-20 17:03:10', b'0'); | 1716 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:43', '1', '2022-04-20 17:03:10', b'0'); |
| 1711 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:03:24', '1', '2022-04-20 17:03:10', b'0'); | 1717 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:03:24', '1', '2022-04-20 17:03:10', b'0'); |
| 1712 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1200, '任务管理', '', 2, 20, 1185, 'task', 'fa:tasks', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-01-07 23:51:48', '1', '2024-02-29 12:37:07', b'0'); | ||
| 1713 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1201, '我的流程', '', 2, 0, 1200, 'my', 'fa-solid:book', 'bpm/processInstance/index', 'BpmProcessInstance', 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2024-02-29 12:37:24', b'0'); | 1718 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1200, '审批中心', '', 2, 20, 1185, 'task', 'fa:tasks', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-01-07 23:51:48', '1', '2024-03-21 00:33:15', b'0'); |
| 1719 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1201, '我的流程', '', 2, 1, 1200, 'my', 'fa-solid:book', 'bpm/processInstance/index', 'BpmProcessInstanceMy', 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2024-03-21 23:52:12', b'0'); | ||
| 1714 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0'); | 1720 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0'); |
| 1715 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'fa:slack', 'bpm/task/todo/index', 'BpmTodoTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:33:37', '1', '2024-02-29 12:37:39', b'0'); | 1721 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'fa:slack', 'bpm/task/todo/index', 'BpmTodoTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:33:37', '1', '2024-02-29 12:37:39', b'0'); |
| 1716 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'fa:delicious', 'bpm/task/done/index', 'BpmDoneTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:34:13', '1', '2024-02-29 12:37:54', b'0'); | 1722 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'fa:delicious', 'bpm/task/done/index', 'BpmDoneTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:34:13', '1', '2024-02-29 12:37:54', b'0'); |
| 1717 | -INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1209, '用户分组', '', 2, 2, 1186, 'user-group', 'fa:user-secret', 'bpm/group/index', 'BpmUserGroup', 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '1', '2024-02-29 12:36:45', b'0'); | 1723 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1209, '用户分组', '', 2, 4, 1186, 'user-group', 'fa:user-secret', 'bpm/group/index', 'BpmUserGroup', 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '1', '2024-03-21 23:55:29', b'0'); |
| 1718 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); | 1724 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); |
| 1719 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); | 1725 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); |
| 1720 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); | 1726 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); |
| @@ -2304,6 +2310,29 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | @@ -2304,6 +2310,29 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | ||
| 2304 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2709, '客户公海配置查询', 'crm:customer-pool-config:query', 3, 2, 2516, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-02-24 16:45:19', '1', '2024-02-24 16:45:28', b'0'); | 2310 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2709, '客户公海配置查询', 'crm:customer-pool-config:query', 3, 2, 2516, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-02-24 16:45:19', '1', '2024-02-24 16:45:28', b'0'); |
| 2305 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2710, '合同配置更新', 'crm:contract-config:update', 3, 1, 2708, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-02-24 16:45:56', '1', '2024-02-24 16:45:56', b'0'); | 2311 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2710, '合同配置更新', 'crm:contract-config:update', 3, 1, 2708, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-02-24 16:45:56', '1', '2024-02-24 16:45:56', b'0'); |
| 2306 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2711, '合同配置查询', 'crm:contract-config:query', 3, 2, 2708, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-02-24 16:46:16', '1', '2024-02-24 16:46:16', b'0'); | 2312 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2711, '合同配置查询', 'crm:contract-config:query', 3, 2, 2708, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-02-24 16:46:16', '1', '2024-02-24 16:46:16', b'0'); |
| 2313 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2712, '客户分析', '', 2, 0, 2560, 'customer', 'ep:avatar', 'views/crm/statistics/customer/index.vue', 'CrmStatisticsCustomer', 0, b'1', b'1', b'1', '1', '2024-03-09 16:43:56', '1', '2024-03-09 16:43:56', b'0'); | ||
| 2314 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2713, '抄送我的', '', 2, 30, 1200, 'copy', 'ep:copy-document', 'bpm/task/copy/index', 'BpmProcessInstanceCopy', 0, b'1', b'1', b'1', '1', '2024-03-17 21:50:23', '1', '2024-03-17 22:12:23', b'0'); | ||
| 2315 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2714, '流程分类', '', 2, 3, 1186, 'category', 'fa:object-ungroup', 'bpm/category/index', 'BpmCategory', 0, b'1', b'1', b'1', '', '2024-03-08 02:00:51', '1', '2024-03-21 23:51:18', b'0'); | ||
| 2316 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2715, '分类查询', 'bpm:category:query', 3, 1, 2714, '', '', '', '', 0, b'1', b'1', b'1', '', '2024-03-08 02:00:51', '1', '2024-03-19 14:36:25', b'0'); | ||
| 2317 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2716, '分类创建', 'bpm:category:create', 3, 2, 2714, '', '', '', '', 0, b'1', b'1', b'1', '', '2024-03-08 02:00:51', '1', '2024-03-19 14:36:31', b'0'); | ||
| 2318 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2717, '分类更新', 'bpm:category:update', 3, 3, 2714, '', '', '', '', 0, b'1', b'1', b'1', '', '2024-03-08 02:00:51', '1', '2024-03-19 14:36:35', b'0'); | ||
| 2319 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2718, '分类删除', 'bpm:category:delete', 3, 4, 2714, '', '', '', '', 0, b'1', b'1', b'1', '', '2024-03-08 02:00:51', '1', '2024-03-19 14:36:41', b'0'); | ||
| 2320 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2720, '发起流程', '', 2, 0, 1200, 'create', 'fa-solid:grin-stars', 'bpm/processInstance/create/index', 'BpmProcessInstanceCreate', 0, b'1', b'0', b'1', '1', '2024-03-19 19:46:05', '1', '2024-03-23 19:03:42', b'0'); | ||
| 2321 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2721, '流程实例', '', 2, 10, 1186, 'process-instance/manager', 'fa:square', 'bpm/processInstance/manager/index', 'BpmProcessInstanceManager', 0, b'1', b'1', b'1', '1', '2024-03-21 23:57:30', '1', '2024-03-21 23:57:30', b'0'); | ||
| 2322 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2722, '流程实例的查询(管理员)', 'bpm:process-instance:manager-query', 3, 1, 2721, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-03-22 08:18:27', '1', '2024-03-22 08:19:05', b'0'); | ||
| 2323 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2723, '流程实例的取消(管理员)', 'bpm:process-instance:cancel-by-admin', 3, 2, 2721, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-03-22 08:19:25', '1', '2024-03-22 08:19:25', b'0'); | ||
| 2324 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2724, '流程任务', '', 2, 11, 1186, 'process-tasnk', 'ep:collection-tag', 'bpm/task/manager/index', 'BpmManagerTask', 0, b'1', b'1', b'1', '1', '2024-03-22 08:43:22', '1', '2024-03-22 08:43:27', b'0'); | ||
| 2325 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2725, '流程任务的查询(管理员)', 'bpm:task:mananger-query', 3, 1, 2724, '', '', '', '', 0, b'1', b'1', b'1', '1', '2024-03-22 08:43:49', '1', '2024-03-22 08:43:49', b'0'); | ||
| 2326 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2726, '流程监听器', '', 2, 5, 1186, 'process-listener', 'fa:assistive-listening-systems', 'bpm/processListener/index', 'BpmProcessListener', 0, b'1', b'1', b'1', '', '2024-03-09 16:05:34', '1', '2024-03-23 13:13:38', b'0'); | ||
| 2327 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2727, '流程监听器查询', 'bpm:process-listener:query', 3, 1, 2726, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 16:05:34', '', '2024-03-09 16:05:34', b'0'); | ||
| 2328 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2728, '流程监听器创建', 'bpm:process-listener:create', 3, 2, 2726, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 16:05:34', '', '2024-03-09 16:05:34', b'0'); | ||
| 2329 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2729, '流程监听器更新', 'bpm:process-listener:update', 3, 3, 2726, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 16:05:34', '', '2024-03-09 16:05:34', b'0'); | ||
| 2330 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2730, '流程监听器删除', 'bpm:process-listener:delete', 3, 4, 2726, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 16:05:34', '', '2024-03-09 16:05:34', b'0'); | ||
| 2331 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2731, '流程表达式', '', 2, 6, 1186, 'process-expression', 'fa:wpexplorer', 'bpm/processExpression/index', 'BpmProcessExpression', 0, b'1', b'1', b'1', '', '2024-03-09 22:35:08', '1', '2024-03-23 19:43:05', b'0'); | ||
| 2332 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2732, '流程表达式查询', 'bpm:process-expression:query', 3, 1, 2731, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 22:35:08', '', '2024-03-09 22:35:08', b'0'); | ||
| 2333 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2733, '流程表达式创建', 'bpm:process-expression:create', 3, 2, 2731, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 22:35:08', '', '2024-03-09 22:35:08', b'0'); | ||
| 2334 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2734, '流程表达式更新', 'bpm:process-expression:update', 3, 3, 2731, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 22:35:08', '', '2024-03-09 22:35:08', b'0'); | ||
| 2335 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2735, '流程表达式删除', 'bpm:process-expression:delete', 3, 4, 2731, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2024-03-09 22:35:08', '', '2024-03-09 22:35:08', b'0'); | ||
| 2307 | COMMIT; | 2336 | COMMIT; |
| 2308 | 2337 | ||
| 2309 | -- ---------------------------- | 2338 | -- ---------------------------- |
| @@ -2424,7 +2453,7 @@ CREATE TABLE `system_oauth2_access_token` ( | @@ -2424,7 +2453,7 @@ CREATE TABLE `system_oauth2_access_token` ( | ||
| 2424 | PRIMARY KEY (`id`) USING BTREE, | 2453 | PRIMARY KEY (`id`) USING BTREE, |
| 2425 | INDEX `idx_access_token`(`access_token` ASC) USING BTREE, | 2454 | INDEX `idx_access_token`(`access_token` ASC) USING BTREE, |
| 2426 | INDEX `idx_refresh_token`(`refresh_token` ASC) USING BTREE | 2455 | INDEX `idx_refresh_token`(`refresh_token` ASC) USING BTREE |
| 2427 | -) ENGINE = InnoDB AUTO_INCREMENT = 5237 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌'; | 2456 | +) ENGINE = InnoDB AUTO_INCREMENT = 6042 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌'; |
| 2428 | 2457 | ||
| 2429 | -- ---------------------------- | 2458 | -- ---------------------------- |
| 2430 | -- Records of system_oauth2_access_token | 2459 | -- Records of system_oauth2_access_token |
| @@ -2546,7 +2575,7 @@ CREATE TABLE `system_oauth2_refresh_token` ( | @@ -2546,7 +2575,7 @@ CREATE TABLE `system_oauth2_refresh_token` ( | ||
| 2546 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2575 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2547 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2576 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2548 | PRIMARY KEY (`id`) USING BTREE | 2577 | PRIMARY KEY (`id`) USING BTREE |
| 2549 | -) ENGINE = InnoDB AUTO_INCREMENT = 1410 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 刷新令牌'; | 2578 | +) ENGINE = InnoDB AUTO_INCREMENT = 1415 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 刷新令牌'; |
| 2550 | 2579 | ||
| 2551 | -- ---------------------------- | 2580 | -- ---------------------------- |
| 2552 | -- Records of system_oauth2_refresh_token | 2581 | -- Records of system_oauth2_refresh_token |
| @@ -2586,7 +2615,7 @@ CREATE TABLE `system_operate_log` ( | @@ -2586,7 +2615,7 @@ CREATE TABLE `system_operate_log` ( | ||
| 2586 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 2615 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 2587 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 2616 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 2588 | PRIMARY KEY (`id`) USING BTREE | 2617 | PRIMARY KEY (`id`) USING BTREE |
| 2589 | -) ENGINE = InnoDB AUTO_INCREMENT = 10705 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录'; | 2618 | +) ENGINE = InnoDB AUTO_INCREMENT = 11782 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录'; |
| 2590 | 2619 | ||
| 2591 | -- ---------------------------- | 2620 | -- ---------------------------- |
| 2592 | -- Records of system_operate_log | 2621 | -- Records of system_operate_log |
| @@ -4805,7 +4834,7 @@ CREATE TABLE `system_sms_log` ( | @@ -4805,7 +4834,7 @@ CREATE TABLE `system_sms_log` ( | ||
| 4805 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 4834 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 4806 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 4835 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 4807 | PRIMARY KEY (`id`) USING BTREE | 4836 | PRIMARY KEY (`id`) USING BTREE |
| 4808 | -) ENGINE = InnoDB AUTO_INCREMENT = 610 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信日志'; | 4837 | +) ENGINE = InnoDB AUTO_INCREMENT = 911 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信日志'; |
| 4809 | 4838 | ||
| 4810 | -- ---------------------------- | 4839 | -- ---------------------------- |
| 4811 | -- Records of system_sms_log | 4840 | -- Records of system_sms_log |
| @@ -4986,7 +5015,7 @@ CREATE TABLE `system_tenant_package` ( | @@ -4986,7 +5015,7 @@ CREATE TABLE `system_tenant_package` ( | ||
| 4986 | `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '套餐名', | 5015 | `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '套餐名', |
| 4987 | `status` tinyint NOT NULL DEFAULT 0 COMMENT '租户状态(0正常 1停用)', | 5016 | `status` tinyint NOT NULL DEFAULT 0 COMMENT '租户状态(0正常 1停用)', |
| 4988 | `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '备注', | 5017 | `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '备注', |
| 4989 | - `menu_ids` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的菜单编号', | 5018 | + `menu_ids` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的菜单编号', |
| 4990 | `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', | 5019 | `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', |
| 4991 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 5020 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 4992 | `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | 5021 | `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', |
| @@ -5017,7 +5046,7 @@ CREATE TABLE `system_user_post` ( | @@ -5017,7 +5046,7 @@ CREATE TABLE `system_user_post` ( | ||
| 5017 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 5046 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 5018 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 5047 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 5019 | PRIMARY KEY (`id`) USING BTREE | 5048 | PRIMARY KEY (`id`) USING BTREE |
| 5020 | -) ENGINE = InnoDB AUTO_INCREMENT = 118 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户岗位表'; | 5049 | +) ENGINE = InnoDB AUTO_INCREMENT = 119 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户岗位表'; |
| 5021 | 5050 | ||
| 5022 | -- ---------------------------- | 5051 | -- ---------------------------- |
| 5023 | -- Records of system_user_post | 5052 | -- Records of system_user_post |
| @@ -5025,10 +5054,10 @@ CREATE TABLE `system_user_post` ( | @@ -5025,10 +5054,10 @@ CREATE TABLE `system_user_post` ( | ||
| 5025 | BEGIN; | 5054 | BEGIN; |
| 5026 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); | 5055 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); |
| 5027 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 100, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); | 5056 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 100, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); |
| 5028 | -INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, 114, 3, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); | ||
| 5029 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 104, 1, '1', '2022-05-16 19:36:28', '1', '2022-05-16 19:36:28', b'0', 1); | 5057 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 104, 1, '1', '2022-05-16 19:36:28', '1', '2022-05-16 19:36:28', b'0', 1); |
| 5030 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, 117, 2, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); | 5058 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, 117, 2, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); |
| 5031 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 118, 1, '1', '2022-07-09 17:44:44', '1', '2022-07-09 17:44:44', b'0', 1); | 5059 | INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 118, 1, '1', '2022-07-09 17:44:44', '1', '2022-07-09 17:44:44', b'0', 1); |
| 5060 | +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, 114, 1, '1', '2024-03-15 19:48:11', '1', '2024-03-15 19:48:11', b'0', 1); | ||
| 5032 | COMMIT; | 5061 | COMMIT; |
| 5033 | 5062 | ||
| 5034 | -- ---------------------------- | 5063 | -- ---------------------------- |
| @@ -5046,7 +5075,7 @@ CREATE TABLE `system_user_role` ( | @@ -5046,7 +5075,7 @@ CREATE TABLE `system_user_role` ( | ||
| 5046 | `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', | 5075 | `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', |
| 5047 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | 5076 | `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', |
| 5048 | PRIMARY KEY (`id`) USING BTREE | 5077 | PRIMARY KEY (`id`) USING BTREE |
| 5049 | -) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户和角色关联表'; | 5078 | +) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户和角色关联表'; |
| 5050 | 5079 | ||
| 5051 | -- ---------------------------- | 5080 | -- ---------------------------- |
| 5052 | -- Records of system_user_role | 5081 | -- Records of system_user_role |
| @@ -5073,7 +5102,6 @@ INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_t | @@ -5073,7 +5102,6 @@ INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_t | ||
| 5073 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (24, 120, 115, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); | 5102 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (24, 120, 115, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); |
| 5074 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (25, 121, 116, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); | 5103 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (25, 121, 116, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); |
| 5075 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (26, 122, 118, '1', '2022-12-30 11:47:53', '1', '2022-12-30 11:47:53', b'0', 129); | 5104 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (26, 122, 118, '1', '2022-12-30 11:47:53', '1', '2022-12-30 11:47:53', b'0', 129); |
| 5076 | -INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (27, 112, 101, '1', '2023-02-09 23:18:51', '1', '2023-02-09 23:18:51', b'0', 1); | ||
| 5077 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (28, 123, 136, '1', '2023-03-05 21:23:35', '1', '2023-03-05 21:23:35', b'0', 147); | 5105 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (28, 123, 136, '1', '2023-03-05 21:23:35', '1', '2023-03-05 21:23:35', b'0', 147); |
| 5078 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (29, 124, 137, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); | 5106 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (29, 124, 137, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); |
| 5079 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (30, 125, 138, '1', '2023-03-05 21:59:03', '1', '2023-03-05 21:59:03', b'0', 149); | 5107 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (30, 125, 138, '1', '2023-03-05 21:59:03', '1', '2023-03-05 21:59:03', b'0', 149); |
| @@ -5081,6 +5109,8 @@ INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_t | @@ -5081,6 +5109,8 @@ INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_t | ||
| 5081 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (32, 126, 140, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', b'0', 151); | 5109 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (32, 126, 140, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', b'0', 151); |
| 5082 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (33, 127, 141, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', b'0', 152); | 5110 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (33, 127, 141, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', b'0', 152); |
| 5083 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (34, 128, 143, '1', '2024-02-27 21:58:25', '1', '2024-02-27 21:58:25', b'0', 153); | 5111 | INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (34, 128, 143, '1', '2024-02-27 21:58:25', '1', '2024-02-27 21:58:25', b'0', 153); |
| 5112 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (35, 112, 1, '1', '2024-03-15 20:00:24', '1', '2024-03-15 20:00:24', b'0', 1); | ||
| 5113 | +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (36, 118, 1, '1', '2024-03-17 09:12:08', '1', '2024-03-17 09:12:08', b'0', 1); | ||
| 5084 | COMMIT; | 5114 | COMMIT; |
| 5085 | 5115 | ||
| 5086 | -- ---------------------------- | 5116 | -- ---------------------------- |
| @@ -5116,22 +5146,22 @@ CREATE TABLE `system_users` ( | @@ -5116,22 +5146,22 @@ CREATE TABLE `system_users` ( | ||
| 5116 | -- Records of system_users | 5146 | -- Records of system_users |
| 5117 | -- ---------------------------- | 5147 | -- ---------------------------- |
| 5118 | BEGIN; | 5148 | BEGIN; |
| 5119 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '18818260277', 2, 'http://test.yudao.iocoder.cn/96c787a2ce88bf6d0ce3cd8b6cf5314e80e7703cd41bf4af8cd2e2909dbd6b6d.png', 0, '0:0:0:0:0:0:0:1', '2024-03-01 09:37:59', 'admin', '2021-01-05 17:03:47', NULL, '2024-03-01 09:37:59', b'0', 1); | 5149 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '18818260277', 2, 'http://test.yudao.iocoder.cn/96c787a2ce88bf6d0ce3cd8b6cf5314e80e7703cd41bf4af8cd2e2909dbd6b6d.png', 0, '0:0:0:0:0:0:0:1', '2024-03-15 19:32:26', 'admin', '2021-01-05 17:03:47', NULL, '2024-03-15 19:32:26', b'0', 1); |
| 5120 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1); | 5150 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1); |
| 5121 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-07-08 01:26:27', '', '2021-01-13 23:50:35', NULL, '2022-07-08 01:26:27', b'0', 1); | 5151 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '0:0:0:0:0:0:0:1', '2024-03-18 21:09:04', '', '2021-01-13 23:50:35', NULL, '2024-03-18 21:09:04', b'0', 1); |
| 5122 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$04$osUERr6VErPvY3mGUh40Teb06H2pJiFuGaWFLRku82pdU713WTGFS', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '0:0:0:0:0:0:0:1', '2024-02-29 22:40:00', '', '2021-01-21 02:13:53', NULL, '2024-02-29 22:40:00', b'0', 1); | 5152 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$04$osUERr6VErPvY3mGUh40Teb06H2pJiFuGaWFLRku82pdU713WTGFS', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '0:0:0:0:0:0:0:1', '2024-02-29 22:40:00', '', '2021-01-21 02:13:53', NULL, '2024-02-29 22:40:00', b'0', 1); |
| 5123 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, 'admin107', '$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 22:59:33', '1', '2022-02-27 08:26:51', b'0', 118); | 5153 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, 'admin107', '$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 22:59:33', '1', '2022-02-27 08:26:51', b'0', 118); |
| 5124 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, 'admin108', '$2a$10$y6mfvKoNYL1GXWak8nYwVOH.kCWqjactkzdoIDgiKl93WN3Ejg.Lu', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:00:50', '1', '2022-02-27 08:26:53', b'0', 119); | 5154 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, 'admin108', '$2a$10$y6mfvKoNYL1GXWak8nYwVOH.kCWqjactkzdoIDgiKl93WN3Ejg.Lu', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:00:50', '1', '2022-02-27 08:26:53', b'0', 119); |
| 5125 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, 'admin109', '$2a$10$JAqvH0tEc0I7dfDVBI7zyuB4E3j.uH6daIjV53.vUS6PknFkDJkuK', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:11:50', '1', '2022-02-27 08:26:56', b'0', 120); | 5155 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, 'admin109', '$2a$10$JAqvH0tEc0I7dfDVBI7zyuB4E3j.uH6daIjV53.vUS6PknFkDJkuK', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:11:50', '1', '2022-02-27 08:26:56', b'0', 120); |
| 5126 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, 'admin110', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '小王', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-09-25 22:47:33', '1', '2022-02-22 00:56:14', NULL, '2022-09-25 22:47:33', b'0', 121); | 5156 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, 'admin110', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '小王', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-09-25 22:47:33', '1', '2022-02-22 00:56:14', NULL, '2022-09-25 22:47:33', b'0', 121); |
| 5127 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, 'test', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '测试用户', NULL, NULL, '[]', '', '', 0, '', 0, '0:0:0:0:0:0:0:1', '2023-12-30 11:42:17', '110', '2022-02-23 13:14:33', NULL, '2023-12-30 11:42:17', b'0', 121); | 5157 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, 'test', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '测试用户', NULL, NULL, '[]', '', '', 0, '', 0, '0:0:0:0:0:0:0:1', '2023-12-30 11:42:17', '110', '2022-02-23 13:14:33', NULL, '2023-12-30 11:42:17', b'0', 121); |
| 5128 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 'newobject', '$2a$10$3alwklxqfq8/hKoW6oUV0OJp0IdQpBDauLy4633SpUjrRsStl6kMa', '新对象', NULL, 100, '[]', '', '', 1, '', 0, '0:0:0:0:0:0:0:1', '2023-02-10 13:48:13', '1', '2022-02-23 19:08:03', NULL, '2023-02-10 13:48:13', b'0', 1); | 5158 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 'newobject', '$2a$04$dB0z8Q819fJWz0hbaLe6B.VfHCjYgWx6LFfET5lyz3JwcqlyCkQ4C', '新对象', NULL, 100, '[]', '', '15601691235', 1, '', 0, '0:0:0:0:0:0:0:1', '2024-03-16 23:11:38', '1', '2022-02-23 19:08:03', NULL, '2024-03-16 23:11:38', b'0', 1); |
| 5129 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 'aoteman', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-03-19 18:38:51', '1', '2022-03-07 21:37:58', NULL, '2022-03-19 18:38:51', b'0', 122); | 5159 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 'aoteman', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-03-19 18:38:51', '1', '2022-03-07 21:37:58', NULL, '2022-03-19 18:38:51', b'0', 122); |
| 5130 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, 'hrmgr', '$2a$10$TR4eybBioGRhBmDBWkqWLO6NIh3mzYa8KBKDDB5woiGYFVlRAi.fu', 'hr 小姐姐', NULL, NULL, '[3]', '', '', 0, '', 0, '127.0.0.1', '2022-03-19 22:15:43', '1', '2022-03-19 21:50:58', NULL, '2022-03-19 22:15:43', b'0', 1); | ||
| 5131 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 'aotemane', '$2a$10$/WCwGHu1eq0wOVDd/u8HweJ0gJCHyLS6T7ndCqI8UXZAQom1etk2e', '1', '11', 101, '[]', '', '', 1, '', 0, '', NULL, '1', '2022-04-30 02:55:43', '1', '2022-06-22 13:34:58', b'0', 1); | 5160 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, 'hrmgr', '$2a$10$TR4eybBioGRhBmDBWkqWLO6NIh3mzYa8KBKDDB5woiGYFVlRAi.fu', 'hr 小姐姐', NULL, NULL, '[1]', '', '15601691236', 1, '', 0, '127.0.0.1', '2022-03-19 22:15:43', '1', '2022-03-19 21:50:58', '1', '2024-03-15 19:48:11', b'0', 1); |
| 5161 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 'aotemane', '$2a$10$/WCwGHu1eq0wOVDd/u8HweJ0gJCHyLS6T7ndCqI8UXZAQom1etk2e', '1', '11', 101, '[]', '', '15601691238', 1, '', 0, '', NULL, '1', '2022-04-30 02:55:43', '1', '2024-03-15 19:48:22', b'0', 1); | ||
| 5132 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '15601691302', '$2a$10$L5C4S0U6adBWMvFv1Wwl4.DI/NwYS3WIfLj5Q.Naqr5II8CmqsDZ6', '小豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); | 5162 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '15601691302', '$2a$10$L5C4S0U6adBWMvFv1Wwl4.DI/NwYS3WIfLj5Q.Naqr5II8CmqsDZ6', '小豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); |
| 5133 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 'admin123', '$2a$10$WI8Gg/lpZQIrOEZMHqka7OdFaD4Nx.B/qY8ZGTTUKrOJwaHFqibaC', '测试号', '1111', 100, '[2]', '', '15601691234', 1, '', 0, '', NULL, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); | 5163 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 'admin123', '$2a$10$WI8Gg/lpZQIrOEZMHqka7OdFaD4Nx.B/qY8ZGTTUKrOJwaHFqibaC', '测试号', '1111', 100, '[2]', '', '15601691234', 1, '', 0, '', NULL, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); |
| 5134 | -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, 'goudan', '$2a$04$OB1SuphCdiLVRpiYRKeqH.8NYS7UIp5vmIv1W7U4w6toiFeOAATVK', '狗蛋', NULL, 103, '[1]', '', '', 2, '', 0, '', NULL, '1', '2022-07-09 17:44:43', '1', '2023-12-05 19:33:20', b'0', 1); | 5164 | +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, 'goudan', '$2a$04$OB1SuphCdiLVRpiYRKeqH.8NYS7UIp5vmIv1W7U4w6toiFeOAATVK', '狗蛋', NULL, 103, '[1]', '', '15601691239', 2, '', 0, '0:0:0:0:0:0:0:1', '2024-03-17 09:10:27', '1', '2022-07-09 17:44:43', NULL, '2024-03-17 09:10:27', b'0', 1); |
| 5135 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (126, 'tudou123', '$2a$04$lecJZ/CqgknEp7mDV2d4ou0beyj1GbM3.nVEZe//8WgQpR.JBgnAu', '土豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', b'0', 151); | 5165 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (126, 'tudou123', '$2a$04$lecJZ/CqgknEp7mDV2d4ou0beyj1GbM3.nVEZe//8WgQpR.JBgnAu', '土豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', b'0', 151); |
| 5136 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (127, 'admin2024', '$2a$04$cHdZ7N6AUKysa2XTUG/J/egYtAzdwtpnNpcMVHDrupt1dyn4teOku', '土豆', NULL, NULL, NULL, '', '', 0, '', 0, '0:0:0:0:0:0:0:1', '2023-12-30 11:43:28', '1', '2023-12-30 11:43:17', NULL, '2023-12-30 11:43:28', b'0', 152); | 5166 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (127, 'admin2024', '$2a$04$cHdZ7N6AUKysa2XTUG/J/egYtAzdwtpnNpcMVHDrupt1dyn4teOku', '土豆', NULL, NULL, NULL, '', '', 0, '', 0, '0:0:0:0:0:0:0:1', '2023-12-30 11:43:28', '1', '2023-12-30 11:43:17', NULL, '2023-12-30 11:43:28', b'0', 152); |
| 5137 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (128, 'xiaoming', '$2a$04$BRinw4an9PBGvx6K7GLNre6rWU0.1HMYHkQCN6Oir74zNFKkNKRzm', 'xiaoming', NULL, NULL, NULL, '', '15601691301', 0, '', 0, '0:0:0:0:0:0:0:1', '2024-02-29 23:48:33', '1', '2024-02-27 21:58:25', NULL, '2024-02-29 23:48:33', b'0', 153); | 5167 | INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (128, 'xiaoming', '$2a$04$BRinw4an9PBGvx6K7GLNre6rWU0.1HMYHkQCN6Oir74zNFKkNKRzm', 'xiaoming', NULL, NULL, NULL, '', '15601691301', 0, '', 0, '0:0:0:0:0:0:0:1', '2024-02-29 23:48:33', '1', '2024-02-27 21:58:25', NULL, '2024-02-29 23:48:33', b'0', 153); |
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java
| @@ -16,6 +16,10 @@ public class NumberUtils { | @@ -16,6 +16,10 @@ public class NumberUtils { | ||
| 16 | return StrUtil.isNotEmpty(str) ? Long.valueOf(str) : null; | 16 | return StrUtil.isNotEmpty(str) ? Long.valueOf(str) : null; |
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | + public static Integer parseInt(String str) { | ||
| 20 | + return StrUtil.isNotEmpty(str) ? Integer.valueOf(str) : null; | ||
| 21 | + } | ||
| 22 | + | ||
| 19 | /** | 23 | /** |
| 20 | * 通过经纬度获取地球上两点之间的距离 | 24 | * 通过经纬度获取地球上两点之间的距离 |
| 21 | * | 25 | * |
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/string/StrUtils.java
| 1 | package cn.iocoder.yudao.framework.common.util.string; | 1 | package cn.iocoder.yudao.framework.common.util.string; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.text.StrPool; | ||
| 3 | import cn.hutool.core.util.ArrayUtil; | 4 | import cn.hutool.core.util.ArrayUtil; |
| 4 | import cn.hutool.core.util.StrUtil; | 5 | import cn.hutool.core.util.StrUtil; |
| 5 | 6 | ||
| 6 | import java.util.Arrays; | 7 | import java.util.Arrays; |
| 7 | import java.util.Collection; | 8 | import java.util.Collection; |
| 8 | import java.util.List; | 9 | import java.util.List; |
| 10 | +import java.util.Set; | ||
| 9 | import java.util.stream.Collectors; | 11 | import java.util.stream.Collectors; |
| 10 | 12 | ||
| 11 | /** | 13 | /** |
| @@ -45,6 +47,15 @@ public class StrUtils { | @@ -45,6 +47,15 @@ public class StrUtils { | ||
| 45 | return Arrays.stream(longs).boxed().collect(Collectors.toList()); | 47 | return Arrays.stream(longs).boxed().collect(Collectors.toList()); |
| 46 | } | 48 | } |
| 47 | 49 | ||
| 50 | + public static Set<Long> splitToLongSet(String value) { | ||
| 51 | + return splitToLongSet(value, StrPool.COMMA); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + public static Set<Long> splitToLongSet(String value, CharSequence separator) { | ||
| 55 | + long[] longs = StrUtil.splitToLong(value, separator); | ||
| 56 | + return Arrays.stream(longs).boxed().collect(Collectors.toSet()); | ||
| 57 | + } | ||
| 58 | + | ||
| 48 | public static List<Integer> splitToInteger(String value, CharSequence separator) { | 59 | public static List<Integer> splitToInteger(String value, CharSequence separator) { |
| 49 | int[] integers = StrUtil.splitToInt(value, separator); | 60 | int[] integers = StrUtil.splitToInt(value, separator); |
| 50 | return Arrays.stream(integers).boxed().collect(Collectors.toList()); | 61 | return Arrays.stream(integers).boxed().collect(Collectors.toList()); |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java
| @@ -35,7 +35,7 @@ public class BannerApplicationRunner implements ApplicationRunner { | @@ -35,7 +35,7 @@ public class BannerApplicationRunner implements ApplicationRunner { | ||
| 35 | System.out.println("[报表模块 yudao-module-report - 已禁用][参考 https://doc.iocoder.cn/report/ 开启]"); | 35 | System.out.println("[报表模块 yudao-module-report - 已禁用][参考 https://doc.iocoder.cn/report/ 开启]"); |
| 36 | } | 36 | } |
| 37 | // 工作流 | 37 | // 工作流 |
| 38 | - if (isNotPresent("cn.iocoder.yudao.framework.flowable.config.YudaoFlowableConfiguration")) { | 38 | + if (isNotPresent("cn.iocoder.yudao.module.bpm.framework.flowable.config.BpmFlowableConfiguration")) { |
| 39 | System.out.println("[工作流模块 yudao-module-bpm - 已禁用][参考 https://doc.iocoder.cn/bpm/ 开启]"); | 39 | System.out.println("[工作流模块 yudao-module-bpm - 已禁用][参考 https://doc.iocoder.cn/bpm/ 开启]"); |
| 40 | } | 40 | } |
| 41 | // 商城系统 | 41 | // 商城系统 |
yudao-module-bpm/pom.xml
| @@ -11,7 +11,6 @@ | @@ -11,7 +11,6 @@ | ||
| 11 | <modules> | 11 | <modules> |
| 12 | <module>yudao-module-bpm-api</module> | 12 | <module>yudao-module-bpm-api</module> |
| 13 | <module>yudao-module-bpm-biz</module> | 13 | <module>yudao-module-bpm-biz</module> |
| 14 | - <module>yudao-spring-boot-starter-flowable</module> | ||
| 15 | </modules> | 14 | </modules> |
| 16 | <artifactId>yudao-module-bpm</artifactId> | 15 | <artifactId>yudao-module-bpm</artifactId> |
| 17 | <packaging>pom</packaging> | 16 | <packaging>pom</packaging> |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java
| @@ -20,7 +20,7 @@ public class BpmProcessInstanceCreateReqDTO { | @@ -20,7 +20,7 @@ public class BpmProcessInstanceCreateReqDTO { | ||
| 20 | @NotEmpty(message = "流程定义的标识不能为空") | 20 | @NotEmpty(message = "流程定义的标识不能为空") |
| 21 | private String processDefinitionKey; | 21 | private String processDefinitionKey; |
| 22 | /** | 22 | /** |
| 23 | - * 变量实例 | 23 | + * 变量实例(动态表单) |
| 24 | */ | 24 | */ |
| 25 | private Map<String, Object> variables; | 25 | private Map<String, Object> variables; |
| 26 | 26 | ||
| @@ -32,14 +32,13 @@ public class BpmProcessInstanceCreateReqDTO { | @@ -32,14 +32,13 @@ public class BpmProcessInstanceCreateReqDTO { | ||
| 32 | @NotEmpty(message = "业务的唯一标识") | 32 | @NotEmpty(message = "业务的唯一标识") |
| 33 | private String businessKey; | 33 | private String businessKey; |
| 34 | 34 | ||
| 35 | - // TODO @hai:assignees 复数 | ||
| 36 | /** | 35 | /** |
| 37 | - * 提前指派的审批人 | 36 | + * 发起人自选审批人 Map |
| 38 | * | 37 | * |
| 39 | * key:taskKey 任务编码 | 38 | * key:taskKey 任务编码 |
| 40 | * value:审批人的数组 | 39 | * value:审批人的数组 |
| 41 | - * 例如: { taskKey1 :[1, 2] },则表示 taskKey1 这个任务,提前设定了,由 userId 为 1,2 的用户进行审批 | 40 | + * 例如:{ taskKey1 :[1, 2] },则表示 taskKey1 这个任务,提前设定了,由 userId 为 1,2 的用户进行审批 |
| 42 | */ | 41 | */ |
| 43 | - private Map<String, List<Long>> assignee; | 42 | + private Map<String, List<Long>> startUserSelectAssignees; |
| 44 | 43 | ||
| 45 | } | 44 | } |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
| @@ -10,37 +10,32 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; | @@ -10,37 +10,32 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; | ||
| 10 | public interface ErrorCodeConstants { | 10 | public interface ErrorCodeConstants { |
| 11 | 11 | ||
| 12 | // ========== 通用流程处理 模块 1-009-000-000 ========== | 12 | // ========== 通用流程处理 模块 1-009-000-000 ========== |
| 13 | - ErrorCode HIGHLIGHT_IMG_ERROR = new ErrorCode(1_009_000_002, "获取高亮流程图异常"); | ||
| 14 | 13 | ||
| 15 | // ========== OA 流程模块 1-009-001-000 ========== | 14 | // ========== OA 流程模块 1-009-001-000 ========== |
| 16 | ErrorCode OA_LEAVE_NOT_EXISTS = new ErrorCode(1_009_001_001, "请假申请不存在"); | 15 | ErrorCode OA_LEAVE_NOT_EXISTS = new ErrorCode(1_009_001_001, "请假申请不存在"); |
| 17 | - ErrorCode OA_PM_POST_NOT_EXISTS = new ErrorCode(1_009_001_002, "项目经理岗位未设置"); | ||
| 18 | - ErrorCode OA_DEPART_PM_POST_NOT_EXISTS = new ErrorCode(1_009_001_009, "部门的项目经理不存在"); | ||
| 19 | - ErrorCode OA_BM_POST_NOT_EXISTS = new ErrorCode(1_009_001_004, "部门经理岗位未设置"); | ||
| 20 | - ErrorCode OA_DEPART_BM_POST_NOT_EXISTS = new ErrorCode(1_009_001_005, "部门的部门经理不存在"); | ||
| 21 | - ErrorCode OA_HR_POST_NOT_EXISTS = new ErrorCode(1_009_001_006, "HR岗位未设置"); | ||
| 22 | - ErrorCode OA_DAY_LEAVE_ERROR = new ErrorCode(1_009_001_007, "请假天数必须>=1"); | ||
| 23 | 16 | ||
| 24 | // ========== 流程模型 1-009-002-000 ========== | 17 | // ========== 流程模型 1-009-002-000 ========== |
| 25 | ErrorCode MODEL_KEY_EXISTS = new ErrorCode(1_009_002_000, "已经存在流程标识为【{}】的流程"); | 18 | ErrorCode MODEL_KEY_EXISTS = new ErrorCode(1_009_002_000, "已经存在流程标识为【{}】的流程"); |
| 26 | ErrorCode MODEL_NOT_EXISTS = new ErrorCode(1_009_002_001, "流程模型不存在"); | 19 | ErrorCode MODEL_NOT_EXISTS = new ErrorCode(1_009_002_001, "流程模型不存在"); |
| 27 | ErrorCode MODEL_KEY_VALID = new ErrorCode(1_009_002_002, "流程标识格式不正确,需要以字母或下划线开头,后接任意字母、数字、中划线、下划线、句点!"); | 20 | ErrorCode MODEL_KEY_VALID = new ErrorCode(1_009_002_002, "流程标识格式不正确,需要以字母或下划线开头,后接任意字母、数字、中划线、下划线、句点!"); |
| 28 | ErrorCode MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG = new ErrorCode(1_009_002_003, "部署流程失败,原因:流程表单未配置,请点击【修改流程】按钮进行配置"); | 21 | ErrorCode MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG = new ErrorCode(1_009_002_003, "部署流程失败,原因:流程表单未配置,请点击【修改流程】按钮进行配置"); |
| 29 | - ErrorCode MODEL_DEPLOY_FAIL_TASK_ASSIGN_RULE_NOT_CONFIG = new ErrorCode(1_009_002_004, "部署流程失败," + | ||
| 30 | - "原因:用户任务({})未配置分配规则,请点击【修改流程】按钮进行配置"); | ||
| 31 | - ErrorCode MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS = new ErrorCode(1_009_003_005, "流程定义部署失败,原因:信息未发生变化"); | 22 | + ErrorCode MODEL_DEPLOY_FAIL_TASK_CANDIDATE_NOT_CONFIG = new ErrorCode(1_009_002_004, "部署流程失败," + |
| 23 | + "原因:用户任务({})未配置审批人,请点击【流程设计】按钮,选择该它的【任务(审批人)】进行配置"); | ||
| 24 | + ErrorCode MODEL_DEPLOY_FAIL_BPMN_START_EVENT_NOT_EXISTS = new ErrorCode(1_009_002_005, "部署流程失败,原因:BPMN 流程图中,没有开始事件"); | ||
| 25 | + ErrorCode MODEL_DEPLOY_FAIL_BPMN_USER_TASK_NAME_NOT_EXISTS = new ErrorCode(1_009_002_006, "部署流程失败,原因:BPMN 流程图中,用户任务({})的名字不存在"); | ||
| 32 | 26 | ||
| 33 | // ========== 流程定义 1-009-003-000 ========== | 27 | // ========== 流程定义 1-009-003-000 ========== |
| 34 | ErrorCode PROCESS_DEFINITION_KEY_NOT_MATCH = new ErrorCode(1_009_003_000, "流程定义的标识期望是({}),当前是({}),请修改 BPMN 流程图"); | 28 | ErrorCode PROCESS_DEFINITION_KEY_NOT_MATCH = new ErrorCode(1_009_003_000, "流程定义的标识期望是({}),当前是({}),请修改 BPMN 流程图"); |
| 35 | ErrorCode PROCESS_DEFINITION_NAME_NOT_MATCH = new ErrorCode(1_009_003_001, "流程定义的名字期望是({}),当前是({}),请修改 BPMN 流程图"); | 29 | ErrorCode PROCESS_DEFINITION_NAME_NOT_MATCH = new ErrorCode(1_009_003_001, "流程定义的名字期望是({}),当前是({}),请修改 BPMN 流程图"); |
| 36 | ErrorCode PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_009_003_002, "流程定义不存在"); | 30 | ErrorCode PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_009_003_002, "流程定义不存在"); |
| 37 | ErrorCode PROCESS_DEFINITION_IS_SUSPENDED = new ErrorCode(1_009_003_003, "流程定义处于挂起状态"); | 31 | ErrorCode PROCESS_DEFINITION_IS_SUSPENDED = new ErrorCode(1_009_003_003, "流程定义处于挂起状态"); |
| 38 | - ErrorCode PROCESS_DEFINITION_BPMN_MODEL_NOT_EXISTS = new ErrorCode(1_009_003_004, "流程定义的模型不存在"); | ||
| 39 | 32 | ||
| 40 | // ========== 流程实例 1-009-004-000 ========== | 33 | // ========== 流程实例 1-009-004-000 ========== |
| 41 | ErrorCode PROCESS_INSTANCE_NOT_EXISTS = new ErrorCode(1_009_004_000, "流程实例不存在"); | 34 | ErrorCode PROCESS_INSTANCE_NOT_EXISTS = new ErrorCode(1_009_004_000, "流程实例不存在"); |
| 42 | ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS = new ErrorCode(1_009_004_001, "流程取消失败,流程不处于运行中"); | 35 | ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS = new ErrorCode(1_009_004_001, "流程取消失败,流程不处于运行中"); |
| 43 | ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF = new ErrorCode(1_009_004_002, "流程取消失败,该流程不是你发起的"); | 36 | ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF = new ErrorCode(1_009_004_002, "流程取消失败,该流程不是你发起的"); |
| 37 | + ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_CONFIG = new ErrorCode(1_009_004_003, "审批任务({})的审批人未配置"); | ||
| 38 | + ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_EXISTS = new ErrorCode(1_009_004_004, "审批任务({})的审批人({})不存在"); | ||
| 44 | 39 | ||
| 45 | // ========== 流程任务 1-009-005-000 ========== | 40 | // ========== 流程任务 1-009-005-000 ========== |
| 46 | ErrorCode TASK_OPERATE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "操作失败,原因:该任务的审批人不是你"); | 41 | ErrorCode TASK_OPERATE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "操作失败,原因:该任务的审批人不是你"); |
| @@ -50,24 +45,34 @@ public interface ErrorCodeConstants { | @@ -50,24 +45,34 @@ public interface ErrorCodeConstants { | ||
| 50 | ErrorCode TASK_RETURN_FAIL_SOURCE_TARGET_ERROR = new ErrorCode(1_009_005_006, "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转"); | 45 | ErrorCode TASK_RETURN_FAIL_SOURCE_TARGET_ERROR = new ErrorCode(1_009_005_006, "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转"); |
| 51 | ErrorCode TASK_DELEGATE_FAIL_USER_REPEAT = new ErrorCode(1_009_005_007, "任务委派失败,委派人和当前审批人为同一人"); | 46 | ErrorCode TASK_DELEGATE_FAIL_USER_REPEAT = new ErrorCode(1_009_005_007, "任务委派失败,委派人和当前审批人为同一人"); |
| 52 | ErrorCode TASK_DELEGATE_FAIL_USER_NOT_EXISTS = new ErrorCode(1_009_005_008, "任务委派失败,被委派人不存在"); | 47 | ErrorCode TASK_DELEGATE_FAIL_USER_NOT_EXISTS = new ErrorCode(1_009_005_008, "任务委派失败,被委派人不存在"); |
| 53 | - ErrorCode TASK_ADD_SIGN_USER_NOT_EXIST = new ErrorCode(1_009_005_009, "任务加签:选择的用户不存在"); | ||
| 54 | - ErrorCode TASK_ADD_SIGN_TYPE_ERROR = new ErrorCode(1_009_005_010, "任务加签:当前任务已经{},不能{}"); | ||
| 55 | - ErrorCode TASK_ADD_SIGN_USER_REPEAT = new ErrorCode(1_009_005_011, "任务加签失败,加签人与现有审批人[{}]重复"); | ||
| 56 | - ErrorCode TASK_SUB_SIGN_NO_PARENT = new ErrorCode(1_009_005_011, "任务减签失败,被减签的任务必须是通过加签生成的任务"); | ||
| 57 | - | ||
| 58 | - // ========== 流程任务分配规则 1-009-006-000 ========== | ||
| 59 | - ErrorCode TASK_ASSIGN_RULE_EXISTS = new ErrorCode(1_009_006_000, "流程({}) 的任务({}) 已经存在分配规则"); | ||
| 60 | - ErrorCode TASK_ASSIGN_RULE_NOT_EXISTS = new ErrorCode(1_009_006_001, "流程任务分配规则不存在"); | ||
| 61 | - ErrorCode TASK_UPDATE_FAIL_NOT_MODEL = new ErrorCode(1_009_006_002, "只有流程模型的任务分配规则,才允许被修改"); | 48 | + ErrorCode TASK_SIGN_CREATE_USER_NOT_EXIST = new ErrorCode(1_009_005_009, "任务加签:选择的用户不存在"); |
| 49 | + ErrorCode TASK_SIGN_CREATE_TYPE_ERROR = new ErrorCode(1_009_005_010, "任务加签:当前任务已经{},不能{}"); | ||
| 50 | + ErrorCode TASK_SIGN_CREATE_USER_REPEAT = new ErrorCode(1_009_005_011, "任务加签失败,加签人与现有审批人[{}]重复"); | ||
| 51 | + ErrorCode TASK_SIGN_DELETE_NO_PARENT = new ErrorCode(1_009_005_012, "任务减签失败,被减签的任务必须是通过加签生成的任务"); | ||
| 52 | + ErrorCode TASK_TRANSFER_FAIL_USER_REPEAT = new ErrorCode(1_009_005_013, "任务转办失败,转办人和当前审批人为同一人"); | ||
| 53 | + ErrorCode TASK_TRANSFER_FAIL_USER_NOT_EXISTS = new ErrorCode(1_009_005_014, "任务转办失败,转办人不存在"); | ||
| 62 | ErrorCode TASK_CREATE_FAIL_NO_CANDIDATE_USER = new ErrorCode(1_009_006_003, "操作失败,原因:找不到任务的审批人!"); | 54 | ErrorCode TASK_CREATE_FAIL_NO_CANDIDATE_USER = new ErrorCode(1_009_006_003, "操作失败,原因:找不到任务的审批人!"); |
| 63 | - ErrorCode TASK_ASSIGN_SCRIPT_NOT_EXISTS = new ErrorCode(1_009_006_004, "操作失败,原因:任务分配脚本({}) 不存在"); | ||
| 64 | 55 | ||
| 65 | // ========== 动态表单模块 1-009-010-000 ========== | 56 | // ========== 动态表单模块 1-009-010-000 ========== |
| 66 | ErrorCode FORM_NOT_EXISTS = new ErrorCode(1_009_010_000, "动态表单不存在"); | 57 | ErrorCode FORM_NOT_EXISTS = new ErrorCode(1_009_010_000, "动态表单不存在"); |
| 67 | ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1_009_010_001, "表单项({}) 和 ({}) 使用了相同的字段名({})"); | 58 | ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1_009_010_001, "表单项({}) 和 ({}) 使用了相同的字段名({})"); |
| 68 | 59 | ||
| 69 | // ========== 用户组模块 1-009-011-000 ========== | 60 | // ========== 用户组模块 1-009-011-000 ========== |
| 70 | - ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1_009_011_000, "用户组不存在"); | ||
| 71 | - ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1_009_011_001, "名字为【{}】的用户组已被禁用"); | 61 | + ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1_009_011_000, "用户分组不存在"); |
| 62 | + ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1_009_011_001, "名字为【{}】的用户分组已被禁用"); | ||
| 63 | + | ||
| 64 | + // ========== 用户组模块 1-009-012-000 ========== | ||
| 65 | + ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(1_009_012_000, "流程分类不存在"); | ||
| 66 | + ErrorCode CATEGORY_NAME_DUPLICATE = new ErrorCode(1_009_012_001, "流程分类名字【{}】重复"); | ||
| 67 | + ErrorCode CATEGORY_CODE_DUPLICATE = new ErrorCode(1_009_012_002, "流程分类编码【{}】重复"); | ||
| 68 | + | ||
| 69 | + // ========== BPM 流程监听器 1-009-013-000 ========== | ||
| 70 | + ErrorCode PROCESS_LISTENER_NOT_EXISTS = new ErrorCode(1_009_013_000, "流程监听器不存在"); | ||
| 71 | + ErrorCode PROCESS_LISTENER_CLASS_NOT_FOUND = new ErrorCode(1_009_013_001, "流程监听器类({})不存在"); | ||
| 72 | + ErrorCode PROCESS_LISTENER_CLASS_IMPLEMENTS_ERROR = new ErrorCode(1_009_013_002, "流程监听器类({})没有实现接口({})"); | ||
| 73 | + ErrorCode PROCESS_LISTENER_EXPRESSION_INVALID = new ErrorCode(1_009_013_003, "流程监听器表达式({})不合法"); | ||
| 74 | + | ||
| 75 | + // ========== BPM 流程表达式 1-009-014-000 ========== | ||
| 76 | + ErrorCode PROCESS_EXPRESSION_NOT_EXISTS = new ErrorCode(1_009_014_000, "流程表达式不存在"); | ||
| 72 | 77 | ||
| 73 | } | 78 | } |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmModelFormTypeEnum.java
| 1 | package cn.iocoder.yudao.module.bpm.enums.definition; | 1 | package cn.iocoder.yudao.module.bpm.enums.definition; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | ||
| 3 | import lombok.AllArgsConstructor; | 4 | import lombok.AllArgsConstructor; |
| 4 | import lombok.Getter; | 5 | import lombok.Getter; |
| 5 | 6 | ||
| 7 | +import java.util.Arrays; | ||
| 8 | + | ||
| 6 | /** | 9 | /** |
| 7 | * BPM 模型的表单类型的枚举 | 10 | * BPM 模型的表单类型的枚举 |
| 8 | * | 11 | * |
| @@ -10,12 +13,20 @@ import lombok.Getter; | @@ -10,12 +13,20 @@ import lombok.Getter; | ||
| 10 | */ | 13 | */ |
| 11 | @Getter | 14 | @Getter |
| 12 | @AllArgsConstructor | 15 | @AllArgsConstructor |
| 13 | -public enum BpmModelFormTypeEnum { | 16 | +public enum BpmModelFormTypeEnum implements IntArrayValuable { |
| 14 | 17 | ||
| 15 | NORMAL(10, "流程表单"), // 对应 BpmFormDO | 18 | NORMAL(10, "流程表单"), // 对应 BpmFormDO |
| 16 | CUSTOM(20, "业务表单") // 业务自己定义的表单,自己进行数据的存储 | 19 | CUSTOM(20, "业务表单") // 业务自己定义的表单,自己进行数据的存储 |
| 17 | ; | 20 | ; |
| 18 | 21 | ||
| 22 | + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BpmModelFormTypeEnum::getType).toArray(); | ||
| 23 | + | ||
| 19 | private final Integer type; | 24 | private final Integer type; |
| 20 | - private final String desc; | 25 | + private final String name; |
| 26 | + | ||
| 27 | + @Override | ||
| 28 | + public int[] array() { | ||
| 29 | + return ARRAYS; | ||
| 30 | + } | ||
| 31 | + | ||
| 21 | } | 32 | } |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmProcessListenerType.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.enums.definition; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Getter; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * BPM 流程监听器的类型 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +@Getter | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public enum BpmProcessListenerType { | ||
| 14 | + | ||
| 15 | + EXECUTION("execution", "执行监听器"), | ||
| 16 | + TASK("task", "任务执行器"); | ||
| 17 | + | ||
| 18 | + private final String type; | ||
| 19 | + private final String name; | ||
| 20 | + | ||
| 21 | +} |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmProcessListenerValueType.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.enums.definition; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Getter; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * BPM 流程监听器的值类型 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +@Getter | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public enum BpmProcessListenerValueType { | ||
| 14 | + | ||
| 15 | + CLASS("class", "Java 类"), | ||
| 16 | + DELEGATE_EXPRESSION("delegateExpression", "代理表达式"), | ||
| 17 | + EXPRESSION("expression", "表达式"); | ||
| 18 | + | ||
| 19 | + private final String type; | ||
| 20 | + private final String name; | ||
| 21 | + | ||
| 22 | +} |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskRuleScriptEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.enums.definition; | ||
| 2 | - | ||
| 3 | -import lombok.AllArgsConstructor; | ||
| 4 | -import lombok.Getter; | ||
| 5 | - | ||
| 6 | -/** | ||
| 7 | - * BPM 任务规则的脚本枚举 | ||
| 8 | - * 目前暂时通过 TODO 芋艿:硬编码,未来可以考虑 Groovy 动态脚本的方式 | ||
| 9 | - * | ||
| 10 | - * @author 芋道源码 | ||
| 11 | - */ | ||
| 12 | -@Getter | ||
| 13 | -@AllArgsConstructor | ||
| 14 | -public enum BpmTaskRuleScriptEnum { | ||
| 15 | - | ||
| 16 | - START_USER(10L, "流程发起人"), | ||
| 17 | - | ||
| 18 | - LEADER_X1(20L, "流程发起人的一级领导"), | ||
| 19 | - LEADER_X2(21L, "流程发起人的二级领导"); | ||
| 20 | - | ||
| 21 | - /** | ||
| 22 | - * 脚本编号 | ||
| 23 | - */ | ||
| 24 | - private final Long id; | ||
| 25 | - /** | ||
| 26 | - * 脚本描述 | ||
| 27 | - */ | ||
| 28 | - private final String desc; | ||
| 29 | - | ||
| 30 | -} |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java
| 1 | package cn.iocoder.yudao.module.bpm.enums.task; | 1 | package cn.iocoder.yudao.module.bpm.enums.task; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.util.StrUtil; | ||
| 3 | import lombok.AllArgsConstructor; | 4 | import lombok.AllArgsConstructor; |
| 4 | import lombok.Getter; | 5 | import lombok.Getter; |
| 5 | 6 | ||
| 6 | /** | 7 | /** |
| 7 | - * 流程任务 -- comment类型枚举 | 8 | + * 流程任务的 Comment 评论类型枚举 |
| 9 | + * | ||
| 10 | + * @author kehaiyou | ||
| 8 | */ | 11 | */ |
| 9 | @Getter | 12 | @Getter |
| 10 | @AllArgsConstructor | 13 | @AllArgsConstructor |
| 11 | public enum BpmCommentTypeEnum { | 14 | public enum BpmCommentTypeEnum { |
| 12 | 15 | ||
| 13 | - APPROVE(1, "通过", ""), | ||
| 14 | - REJECT(2, "不通过", ""), | ||
| 15 | - CANCEL(3, "已取消", ""), | ||
| 16 | - BACK(4, "退回", ""), | ||
| 17 | - DELEGATE(5, "委派", ""), | ||
| 18 | - ADD_SIGN(6, "加签", "[{}]{}给了[{}],理由为:{}"), | ||
| 19 | - SUB_SIGN(7, "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"), | 16 | + APPROVE("1", "审批通过", "审批通过,原因是:{}"), |
| 17 | + REJECT("2", "不通过", "审批不通过:原因是:{}"), | ||
| 18 | + CANCEL("3", "已取消", "系统自动取消,原因是:{}"), | ||
| 19 | + RETURN("4", "退回", "任务被退回,原因是:{}"), | ||
| 20 | + DELEGATE_START("5", "委派发起", "[{}]将任务委派给[{}],委派理由为:{}"), | ||
| 21 | + DELEGATE_END("6", "委派完成", "[{}]完成委派任务,任务重新回到[{}]手中,审批建议为:{}"), | ||
| 22 | + TRANSFER("7", "转派", "[{}]将任务转派给[{}],转派理由为:{}"), | ||
| 23 | + ADD_SIGN("8", "加签", "[{}]{}给了[{}],理由为:{}"), | ||
| 24 | + SUB_SIGN("9", "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"), | ||
| 20 | ; | 25 | ; |
| 21 | 26 | ||
| 22 | /** | 27 | /** |
| 23 | * 操作类型 | 28 | * 操作类型 |
| 29 | + * | ||
| 30 | + * 由于 BPM Comment 类型为 String,所以这里就不使用 Integer | ||
| 24 | */ | 31 | */ |
| 25 | - private final Integer type; | 32 | + private final String type; |
| 26 | /** | 33 | /** |
| 27 | * 操作名字 | 34 | * 操作名字 |
| 28 | */ | 35 | */ |
| @@ -32,4 +39,8 @@ public enum BpmCommentTypeEnum { | @@ -32,4 +39,8 @@ public enum BpmCommentTypeEnum { | ||
| 32 | */ | 39 | */ |
| 33 | private final String comment; | 40 | private final String comment; |
| 34 | 41 | ||
| 42 | + public String formatComment(Object... params) { | ||
| 43 | + return StrUtil.format(comment, params); | ||
| 44 | + } | ||
| 45 | + | ||
| 35 | } | 46 | } |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceDeleteReasonEnum.java renamed to yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmDeleteReasonEnum.java
| @@ -5,20 +5,23 @@ import lombok.AllArgsConstructor; | @@ -5,20 +5,23 @@ import lombok.AllArgsConstructor; | ||
| 5 | import lombok.Getter; | 5 | import lombok.Getter; |
| 6 | 6 | ||
| 7 | /** | 7 | /** |
| 8 | - * 流程实例的删除原因 | 8 | + * 流程实例/任务的删除原因枚举 |
| 9 | * | 9 | * |
| 10 | * @author 芋道源码 | 10 | * @author 芋道源码 |
| 11 | */ | 11 | */ |
| 12 | @Getter | 12 | @Getter |
| 13 | @AllArgsConstructor | 13 | @AllArgsConstructor |
| 14 | -public enum BpmProcessInstanceDeleteReasonEnum { | 14 | +public enum BpmDeleteReasonEnum { |
| 15 | 15 | ||
| 16 | - REJECT_TASK("不通过任务,原因:{}"), // 修改文案时,需要注意 isRejectReason 方法 | ||
| 17 | - CANCEL_TASK("主动取消任务,原因:{}"), | 16 | + // ========== 流程实例的独有原因 ========== |
| 17 | + | ||
| 18 | + REJECT_TASK("审批不通过任务,原因:{}"), // 场景:用户审批不通过任务。修改文案时,需要注意 isRejectReason 方法 | ||
| 19 | + CANCEL_PROCESS_INSTANCE_BY_START_USER("用户主动取消流程,原因:{}"), // 场景:用户主动取消流程 | ||
| 20 | + CANCEL_PROCESS_INSTANCE_BY_ADMIN("管理员【{}】取消流程,原因:{}"), // 场景:管理员取消流程 | ||
| 18 | 21 | ||
| 19 | // ========== 流程任务的独有原因 ========== | 22 | // ========== 流程任务的独有原因 ========== |
| 20 | - MULTI_TASK_END("系统自动取消,原因:多任务审批已经满足条件,无需审批该任务"), // 多实例满足 condition 而结束时,其它任务实例任务会被取消,对应的删除原因是 MI_END | ||
| 21 | 23 | ||
| 24 | + CANCEL_BY_SYSTEM("系统自动取消"), // 场景:非常多,比如说:1)多任务审批已经满足条件,无需审批该任务;2)流程实例被取消,无需审批该任务;等等 | ||
| 22 | ; | 25 | ; |
| 23 | 26 | ||
| 24 | private final String reason; | 27 | private final String reason; |
| @@ -36,23 +39,7 @@ public enum BpmProcessInstanceDeleteReasonEnum { | @@ -36,23 +39,7 @@ public enum BpmProcessInstanceDeleteReasonEnum { | ||
| 36 | // ========== 逻辑 ========== | 39 | // ========== 逻辑 ========== |
| 37 | 40 | ||
| 38 | public static boolean isRejectReason(String reason) { | 41 | public static boolean isRejectReason(String reason) { |
| 39 | - return StrUtil.startWith(reason, "不通过任务,原因:"); | ||
| 40 | - } | ||
| 41 | - | ||
| 42 | - /** | ||
| 43 | - * 将 Flowable 的删除原因,翻译成对应的中文原因 | ||
| 44 | - * | ||
| 45 | - * @param reason 原始原因 | ||
| 46 | - * @return 原因 | ||
| 47 | - */ | ||
| 48 | - public static String translateReason(String reason) { | ||
| 49 | - if (StrUtil.isEmpty(reason)) { | ||
| 50 | - return reason; | ||
| 51 | - } | ||
| 52 | - switch (reason) { | ||
| 53 | - case "MI_END": return MULTI_TASK_END.getReason(); | ||
| 54 | - default: return reason; | ||
| 55 | - } | 42 | + return StrUtil.startWith(reason, "审批不通过任务,原因:"); |
| 56 | } | 43 | } |
| 57 | 44 | ||
| 58 | } | 45 | } |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceResultEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.enums.task; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||
| 4 | -import lombok.AllArgsConstructor; | ||
| 5 | -import lombok.Getter; | ||
| 6 | - | ||
| 7 | -import java.util.Arrays; | ||
| 8 | -import java.util.List; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | - * 流程实例的结果 | ||
| 12 | - * | ||
| 13 | - * @author jason | ||
| 14 | - */ | ||
| 15 | -@Getter | ||
| 16 | -@AllArgsConstructor | ||
| 17 | -public enum BpmProcessInstanceResultEnum { | ||
| 18 | - | ||
| 19 | - PROCESS(1, "处理中"), | ||
| 20 | - APPROVE(2, "通过"), | ||
| 21 | - REJECT(3, "不通过"), | ||
| 22 | - CANCEL(4, "已取消"), | ||
| 23 | - | ||
| 24 | - // ========== 流程任务独有的状态 ========== | ||
| 25 | - | ||
| 26 | - BACK(5, "驳回"), // 退回 | ||
| 27 | - DELEGATE(6, "委派"), | ||
| 28 | - /** | ||
| 29 | - * 【加签】源任务已经审批完成,但是它使用了后加签,后加签的任务未完成,源任务就会是这个状态 | ||
| 30 | - * 相当于是 通过 APPROVE 的特殊状态 | ||
| 31 | - * 例如:A审批, A 后加签了 B,并且审批通过了任务,但是 B 还未审批,则当前任务状态为“待后加签任务完成” | ||
| 32 | - */ | ||
| 33 | - SIGN_AFTER(7, "待后加签任务完成"), | ||
| 34 | - /** | ||
| 35 | - * 【加签】源任务未审批,但是向前加签了,所以源任务状态变为“待前加签任务完成” | ||
| 36 | - * 相当于是 处理中 PROCESS 的特殊状态 | ||
| 37 | - * 例如:A 审批, A 前加签了 B,B 还未审核 | ||
| 38 | - */ | ||
| 39 | - SIGN_BEFORE(8, "待前加签任务完成"), | ||
| 40 | - /** | ||
| 41 | - * 【加签】后加签任务被创建时的初始状态 | ||
| 42 | - * 相当于是 处理中 PROCESS 的特殊状态 | ||
| 43 | - * 因为需要源任务先完成,才能到后加签的人来审批,所以加了一个状态区分 | ||
| 44 | - */ | ||
| 45 | - WAIT_BEFORE_TASK(9, "待前置任务完成"); | ||
| 46 | - | ||
| 47 | - /** | ||
| 48 | - * 能被减签的状态 | ||
| 49 | - */ | ||
| 50 | - public static final List<Integer> CAN_SUB_SIGN_STATUS_LIST = Arrays.asList(PROCESS.result, WAIT_BEFORE_TASK.result); | ||
| 51 | - | ||
| 52 | - /** | ||
| 53 | - * 结果 | ||
| 54 | - * <p> | ||
| 55 | - * 如果新增时,注意 {@link #isEndResult(Integer)} 是否需要变更 | ||
| 56 | - */ | ||
| 57 | - private final Integer result; | ||
| 58 | - /** | ||
| 59 | - * 描述 | ||
| 60 | - */ | ||
| 61 | - private final String desc; | ||
| 62 | - | ||
| 63 | - /** | ||
| 64 | - * 判断该结果是否已经处于 End 最终结果 | ||
| 65 | - * <p> | ||
| 66 | - * 主要用于一些结果更新的逻辑,如果已经是最终结果,就不再进行更新 | ||
| 67 | - * | ||
| 68 | - * @param result 结果 | ||
| 69 | - * @return 是否 | ||
| 70 | - */ | ||
| 71 | - public static boolean isEndResult(Integer result) { | ||
| 72 | - return ObjectUtils.equalsAny(result, APPROVE.getResult(), REJECT.getResult(), | ||
| 73 | - CANCEL.getResult(), BACK.getResult(), | ||
| 74 | - SIGN_AFTER.getResult()); | ||
| 75 | - } | ||
| 76 | - | ||
| 77 | -} |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceStatusEnum.java
| 1 | package cn.iocoder.yudao.module.bpm.enums.task; | 1 | package cn.iocoder.yudao.module.bpm.enums.task; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | ||
| 3 | import lombok.AllArgsConstructor; | 4 | import lombok.AllArgsConstructor; |
| 4 | import lombok.Getter; | 5 | import lombok.Getter; |
| 5 | 6 | ||
| 7 | +import java.util.Arrays; | ||
| 8 | + | ||
| 6 | /** | 9 | /** |
| 7 | - * 流程实例的状态 | 10 | + * 流程实例 ProcessInstance 的状态 |
| 8 | * | 11 | * |
| 9 | * @author 芋道源码 | 12 | * @author 芋道源码 |
| 10 | */ | 13 | */ |
| 11 | @Getter | 14 | @Getter |
| 12 | @AllArgsConstructor | 15 | @AllArgsConstructor |
| 13 | -public enum BpmProcessInstanceStatusEnum { | 16 | +public enum BpmProcessInstanceStatusEnum implements IntArrayValuable { |
| 17 | + | ||
| 18 | + RUNNING(1, "审批中"), | ||
| 19 | + APPROVE(2, "审批通过"), | ||
| 20 | + REJECT(3, "审批不通过"), | ||
| 21 | + CANCEL(4, "已取消"); | ||
| 14 | 22 | ||
| 15 | - RUNNING(1, "进行中"), | ||
| 16 | - FINISH(2, "已完成"); | 23 | + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BpmProcessInstanceStatusEnum::getStatus).toArray(); |
| 17 | 24 | ||
| 18 | /** | 25 | /** |
| 19 | * 状态 | 26 | * 状态 |
| @@ -24,4 +31,9 @@ public enum BpmProcessInstanceStatusEnum { | @@ -24,4 +31,9 @@ public enum BpmProcessInstanceStatusEnum { | ||
| 24 | */ | 31 | */ |
| 25 | private final String desc; | 32 | private final String desc; |
| 26 | 33 | ||
| 34 | + @Override | ||
| 35 | + public int[] array() { | ||
| 36 | + return new int[0]; | ||
| 37 | + } | ||
| 38 | + | ||
| 27 | } | 39 | } |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskAddSignTypeEnum.java renamed to yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskSignTypeEnum.java
| 1 | package cn.iocoder.yudao.module.bpm.enums.task; | 1 | package cn.iocoder.yudao.module.bpm.enums.task; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.util.ArrayUtil; | ||
| 3 | import lombok.AllArgsConstructor; | 4 | import lombok.AllArgsConstructor; |
| 4 | import lombok.Getter; | 5 | import lombok.Getter; |
| 5 | 6 | ||
| 6 | /** | 7 | /** |
| 7 | - * 流程任务 -- 加签类型枚举类型 | 8 | + * 流程任务的加签类型枚举 |
| 9 | + * | ||
| 10 | + * @author kehaiyou | ||
| 8 | */ | 11 | */ |
| 9 | @Getter | 12 | @Getter |
| 10 | @AllArgsConstructor | 13 | @AllArgsConstructor |
| 11 | -public enum BpmTaskAddSignTypeEnum { | 14 | +public enum BpmTaskSignTypeEnum { |
| 12 | 15 | ||
| 13 | /** | 16 | /** |
| 14 | * 向前加签,需要前置任务审批完成,才回到原审批人 | 17 | * 向前加签,需要前置任务审批完成,才回到原审批人 |
| @@ -17,24 +20,28 @@ public enum BpmTaskAddSignTypeEnum { | @@ -17,24 +20,28 @@ public enum BpmTaskAddSignTypeEnum { | ||
| 17 | /** | 20 | /** |
| 18 | * 向后加签,需要后置任务全部审批完,才会通过原审批人节点 | 21 | * 向后加签,需要后置任务全部审批完,才会通过原审批人节点 |
| 19 | */ | 22 | */ |
| 20 | - AFTER("after", "向后加签"), | 23 | + AFTER("after", "向后加签"); |
| 24 | + | ||
| 21 | /** | 25 | /** |
| 22 | - * 创建后置加签时的过度状态,用于控制向后加签生成的任务状态 | 26 | + * 类型 |
| 23 | */ | 27 | */ |
| 24 | - AFTER_CHILDREN_TASK("afterChildrenTask", "向后加签生成的子任务"); | ||
| 25 | - | ||
| 26 | private final String type; | 28 | private final String type; |
| 29 | + /** | ||
| 30 | + * 名字 | ||
| 31 | + */ | ||
| 32 | + private final String name; | ||
| 27 | 33 | ||
| 28 | - private final String desc; | ||
| 29 | - | ||
| 30 | - public static String formatDesc(String type) { | ||
| 31 | - for (BpmTaskAddSignTypeEnum value : values()) { | 34 | + public static String nameOfType(String type) { |
| 35 | + for (BpmTaskSignTypeEnum value : values()) { | ||
| 32 | if (value.type.equals(type)) { | 36 | if (value.type.equals(type)) { |
| 33 | - return value.desc; | 37 | + return value.name; |
| 34 | } | 38 | } |
| 35 | } | 39 | } |
| 36 | return null; | 40 | return null; |
| 37 | } | 41 | } |
| 38 | 42 | ||
| 43 | + public static BpmTaskSignTypeEnum of(String type) { | ||
| 44 | + return ArrayUtil.firstMatch(value -> value.getType().equals(type), values()); | ||
| 45 | + } | ||
| 46 | + | ||
| 39 | } | 47 | } |
| 40 | - | ||
| 41 | \ No newline at end of file | 48 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskStatusEnum.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.enums.task; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||
| 4 | +import lombok.AllArgsConstructor; | ||
| 5 | +import lombok.Getter; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 流程任务 Task 的状态枚举 | ||
| 9 | + * | ||
| 10 | + * @author jason | ||
| 11 | + */ | ||
| 12 | +@Getter | ||
| 13 | +@AllArgsConstructor | ||
| 14 | +public enum BpmTaskStatusEnum { | ||
| 15 | + | ||
| 16 | + RUNNING(1, "审批中"), | ||
| 17 | + APPROVE(2, "审批通过"), | ||
| 18 | + REJECT(3, "审批不通过"), | ||
| 19 | + CANCEL(4, "已取消"), | ||
| 20 | + | ||
| 21 | + RETURN(5, "已退回"), | ||
| 22 | + DELEGATE(6, "委派中"), | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * 使用场景: | ||
| 26 | + * 1. 任务被向后【加签】时,它在审批通过后,会变成 APPROVING 这个状态,然后等到【加签】出来的任务都被审批后,才会变成 APPROVE 审批通过 | ||
| 27 | + */ | ||
| 28 | + APPROVING(7, "审批通过中"), | ||
| 29 | + /** | ||
| 30 | + * 使用场景: | ||
| 31 | + * 1. 任务被向前【加签】时,它会变成 WAIT 状态,需要等待【加签】出来的任务被审批后,它才能继续变为 RUNNING 继续审批 | ||
| 32 | + * 2. 任务被向后【加签】时,【加签】出来的任务处于 WAIT 状态,它们需要等待该任务被审批后,它们才能继续变为 RUNNING 继续审批 | ||
| 33 | + */ | ||
| 34 | + WAIT(0, "待审批"); | ||
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * 状态 | ||
| 38 | + * <p> | ||
| 39 | + * 如果新增时,注意 {@link #isEndStatus(Integer)} 是否需要变更 | ||
| 40 | + */ | ||
| 41 | + private final Integer status; | ||
| 42 | + /** | ||
| 43 | + * 名字 | ||
| 44 | + */ | ||
| 45 | + private final String name; | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * 判断该状态是否已经处于 End 最终状态 | ||
| 49 | + * <p> | ||
| 50 | + * 主要用于一些状态更新的逻辑,如果已经是最终状态,就不再进行更新 | ||
| 51 | + * | ||
| 52 | + * @param status 状态 | ||
| 53 | + * @return 是否 | ||
| 54 | + */ | ||
| 55 | + public static boolean isEndStatus(Integer status) { | ||
| 56 | + return ObjectUtils.equalsAny(status, | ||
| 57 | + APPROVE.getStatus(), REJECT.getStatus(), CANCEL.getStatus(), | ||
| 58 | + RETURN.getStatus(), APPROVING.getStatus()); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | +} |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/event/BpmProcessInstanceResultEvent.java renamed to yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/event/BpmProcessInstanceStatusEvent.java
| @@ -5,14 +5,13 @@ import lombok.Data; | @@ -5,14 +5,13 @@ import lombok.Data; | ||
| 5 | import org.springframework.context.ApplicationEvent; | 5 | import org.springframework.context.ApplicationEvent; |
| 6 | 6 | ||
| 7 | /** | 7 | /** |
| 8 | - * 流程实例的结果发生变化的 Event | ||
| 9 | - * 定位:由于额外增加了 {@link BpmProcessInstanceExtDO#getResult()} 结果,所以增加该事件 | 8 | + * 流程实例的状态(结果)发生变化的 Event |
| 10 | * | 9 | * |
| 11 | * @author 芋道源码 | 10 | * @author 芋道源码 |
| 12 | */ | 11 | */ |
| 13 | @SuppressWarnings("ALL") | 12 | @SuppressWarnings("ALL") |
| 14 | @Data | 13 | @Data |
| 15 | -public class BpmProcessInstanceResultEvent extends ApplicationEvent { | 14 | +public class BpmProcessInstanceStatusEvent extends ApplicationEvent { |
| 16 | 15 | ||
| 17 | /** | 16 | /** |
| 18 | * 流程实例的编号 | 17 | * 流程实例的编号 |
| @@ -27,15 +26,15 @@ public class BpmProcessInstanceResultEvent extends ApplicationEvent { | @@ -27,15 +26,15 @@ public class BpmProcessInstanceResultEvent extends ApplicationEvent { | ||
| 27 | /** | 26 | /** |
| 28 | * 流程实例的结果 | 27 | * 流程实例的结果 |
| 29 | */ | 28 | */ |
| 30 | - @NotNull(message = "流程实例的结果不能为空") | ||
| 31 | - private Integer result; | 29 | + @NotNull(message = "流程实例的状态不能为空") |
| 30 | + private Integer status; | ||
| 32 | /** | 31 | /** |
| 33 | * 流程实例对应的业务标识 | 32 | * 流程实例对应的业务标识 |
| 34 | * 例如说,请假 | 33 | * 例如说,请假 |
| 35 | */ | 34 | */ |
| 36 | private String businessKey; | 35 | private String businessKey; |
| 37 | 36 | ||
| 38 | - public BpmProcessInstanceResultEvent(Object source) { | 37 | + public BpmProcessInstanceStatusEvent(Object source) { |
| 39 | super(source); | 38 | super(source); |
| 40 | } | 39 | } |
| 41 | 40 |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/event/BpmProcessInstanceResultEventListener.java renamed to yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/event/BpmProcessInstanceStatusEventListener.java
| @@ -4,15 +4,15 @@ import cn.hutool.core.util.StrUtil; | @@ -4,15 +4,15 @@ import cn.hutool.core.util.StrUtil; | ||
| 4 | import org.springframework.context.ApplicationListener; | 4 | import org.springframework.context.ApplicationListener; |
| 5 | 5 | ||
| 6 | /** | 6 | /** |
| 7 | - * {@link BpmProcessInstanceResultEvent} 的监听器 | 7 | + * {@link BpmProcessInstanceStatusEvent} 的监听器 |
| 8 | * | 8 | * |
| 9 | * @author 芋道源码 | 9 | * @author 芋道源码 |
| 10 | */ | 10 | */ |
| 11 | -public abstract class BpmProcessInstanceResultEventListener | ||
| 12 | - implements ApplicationListener<BpmProcessInstanceResultEvent> { | 11 | +public abstract class BpmProcessInstanceStatusEventListener |
| 12 | + implements ApplicationListener<BpmProcessInstanceStatusEvent> { | ||
| 13 | 13 | ||
| 14 | @Override | 14 | @Override |
| 15 | - public final void onApplicationEvent(BpmProcessInstanceResultEvent event) { | 15 | + public final void onApplicationEvent(BpmProcessInstanceStatusEvent event) { |
| 16 | if (!StrUtil.equals(event.getProcessDefinitionKey(), getProcessDefinitionKey())) { | 16 | if (!StrUtil.equals(event.getProcessDefinitionKey(), getProcessDefinitionKey())) { |
| 17 | return; | 17 | return; |
| 18 | } | 18 | } |
| @@ -29,6 +29,6 @@ public abstract class BpmProcessInstanceResultEventListener | @@ -29,6 +29,6 @@ public abstract class BpmProcessInstanceResultEventListener | ||
| 29 | * | 29 | * |
| 30 | * @param event 事件 | 30 | * @param event 事件 |
| 31 | */ | 31 | */ |
| 32 | - protected abstract void onEvent(BpmProcessInstanceResultEvent event); | 32 | + protected abstract void onEvent(BpmProcessInstanceStatusEvent event); |
| 33 | 33 | ||
| 34 | } | 34 | } |
yudao-module-bpm/yudao-module-bpm-biz/pom.xml
| @@ -64,11 +64,20 @@ | @@ -64,11 +64,20 @@ | ||
| 64 | <artifactId>yudao-spring-boot-starter-test</artifactId> | 64 | <artifactId>yudao-spring-boot-starter-test</artifactId> |
| 65 | </dependency> | 65 | </dependency> |
| 66 | 66 | ||
| 67 | - <!-- 工作流相关 --> | 67 | + <!-- 工具类相关 --> |
| 68 | <dependency> | 68 | <dependency> |
| 69 | <groupId>cn.iocoder.boot</groupId> | 69 | <groupId>cn.iocoder.boot</groupId> |
| 70 | - <artifactId>yudao-spring-boot-starter-flowable</artifactId> | ||
| 71 | - <version>${revision}</version> | 70 | + <artifactId>yudao-spring-boot-starter-excel</artifactId> |
| 71 | + </dependency> | ||
| 72 | + | ||
| 73 | + <!-- Flowable 工作流相关 --> | ||
| 74 | + <dependency> | ||
| 75 | + <groupId>org.flowable</groupId> | ||
| 76 | + <artifactId>flowable-spring-boot-starter-process</artifactId> | ||
| 77 | + </dependency> | ||
| 78 | + <dependency> | ||
| 79 | + <groupId>org.flowable</groupId> | ||
| 80 | + <artifactId>flowable-spring-boot-starter-actuator</artifactId> | ||
| 72 | </dependency> | 81 | </dependency> |
| 73 | </dependencies> | 82 | </dependencies> |
| 74 | </project> | 83 | </project> |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/candidate/vo/BpmTaskCandidateRuleVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleBaseVO; | ||
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | -import jakarta.validation.constraints.NotNull; | ||
| 6 | -import lombok.Data; | ||
| 7 | - | ||
| 8 | -import java.util.Set; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | - * 流程任务分配规则 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 12 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 13 | - * | ||
| 14 | - * @see BpmTaskAssignRuleBaseVO | ||
| 15 | - */ | ||
| 16 | -@Data | ||
| 17 | -public class BpmTaskCandidateRuleVO { | ||
| 18 | - | ||
| 19 | - @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bpm_task_assign_rule_type") | ||
| 20 | - @NotNull(message = "规则类型不能为空") | ||
| 21 | - private Integer type; | ||
| 22 | - | ||
| 23 | - @Schema(description = "规则值数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") | ||
| 24 | - @NotNull(message = "规则值数组不能为空") | ||
| 25 | - private Set<Long> options; | ||
| 26 | - | ||
| 27 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmCategoryController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 7 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category.BpmCategoryPageReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category.BpmCategoryRespVO; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category.BpmCategorySaveReqVO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO; | ||
| 11 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService; | ||
| 12 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 13 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 14 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 15 | +import jakarta.annotation.Resource; | ||
| 16 | +import jakarta.validation.Valid; | ||
| 17 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 18 | +import org.springframework.validation.annotation.Validated; | ||
| 19 | +import org.springframework.web.bind.annotation.*; | ||
| 20 | + | ||
| 21 | +import java.util.Comparator; | ||
| 22 | +import java.util.List; | ||
| 23 | + | ||
| 24 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 25 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | ||
| 26 | + | ||
| 27 | +@Tag(name = "管理后台 - BPM 流程分类") | ||
| 28 | +@RestController | ||
| 29 | +@RequestMapping("/bpm/category") | ||
| 30 | +@Validated | ||
| 31 | +public class BpmCategoryController { | ||
| 32 | + | ||
| 33 | + @Resource | ||
| 34 | + private BpmCategoryService categoryService; | ||
| 35 | + | ||
| 36 | + @PostMapping("/create") | ||
| 37 | + @Operation(summary = "创建流程分类") | ||
| 38 | + @PreAuthorize("@ss.hasPermission('bpm:category:create')") | ||
| 39 | + public CommonResult<Long> createCategory(@Valid @RequestBody BpmCategorySaveReqVO createReqVO) { | ||
| 40 | + return success(categoryService.createCategory(createReqVO)); | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + @PutMapping("/update") | ||
| 44 | + @Operation(summary = "更新流程分类") | ||
| 45 | + @PreAuthorize("@ss.hasPermission('bpm:category:update')") | ||
| 46 | + public CommonResult<Boolean> updateCategory(@Valid @RequestBody BpmCategorySaveReqVO updateReqVO) { | ||
| 47 | + categoryService.updateCategory(updateReqVO); | ||
| 48 | + return success(true); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + @DeleteMapping("/delete") | ||
| 52 | + @Operation(summary = "删除流程分类") | ||
| 53 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 54 | + @PreAuthorize("@ss.hasPermission('bpm:category:delete')") | ||
| 55 | + public CommonResult<Boolean> deleteCategory(@RequestParam("id") Long id) { | ||
| 56 | + categoryService.deleteCategory(id); | ||
| 57 | + return success(true); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + @GetMapping("/get") | ||
| 61 | + @Operation(summary = "获得流程分类") | ||
| 62 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 63 | + @PreAuthorize("@ss.hasPermission('bpm:category:query')") | ||
| 64 | + public CommonResult<BpmCategoryRespVO> getCategory(@RequestParam("id") Long id) { | ||
| 65 | + BpmCategoryDO category = categoryService.getCategory(id); | ||
| 66 | + return success(BeanUtils.toBean(category, BpmCategoryRespVO.class)); | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + @GetMapping("/page") | ||
| 70 | + @Operation(summary = "获得流程分类分页") | ||
| 71 | + @PreAuthorize("@ss.hasPermission('bpm:category:query')") | ||
| 72 | + public CommonResult<PageResult<BpmCategoryRespVO>> getCategoryPage(@Valid BpmCategoryPageReqVO pageReqVO) { | ||
| 73 | + PageResult<BpmCategoryDO> pageResult = categoryService.getCategoryPage(pageReqVO); | ||
| 74 | + return success(BeanUtils.toBean(pageResult, BpmCategoryRespVO.class)); | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + @GetMapping("/simple-list") | ||
| 78 | + @Operation(summary = "获取流程分类的精简信息列表", description = "只包含被开启的分类,主要用于前端的下拉选项") | ||
| 79 | + public CommonResult<List<BpmCategoryRespVO>> getCategorySimpleList() { | ||
| 80 | + List<BpmCategoryDO> list = categoryService.getCategoryListByStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 81 | + list.sort(Comparator.comparingInt(BpmCategoryDO::getSort)); | ||
| 82 | + return success(convertList(list, category -> new BpmCategoryRespVO().setId(category.getId()) | ||
| 83 | + .setName(category.getName()).setCode(category.getCode()))); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | +} | ||
| 0 | \ No newline at end of file | 87 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmFormController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.*; | ||
| 4 | -import cn.iocoder.yudao.module.bpm.convert.definition.BpmFormConvert; | ||
| 5 | -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | ||
| 6 | -import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; | ||
| 7 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 8 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 9 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 10 | -import io.swagger.v3.oas.annotations.Parameter; | 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 6 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormRespVO; | ||
| 8 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormSaveReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; | ||
| 11 | import io.swagger.v3.oas.annotations.Operation; | 11 | import io.swagger.v3.oas.annotations.Operation; |
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 14 | +import jakarta.annotation.Resource; | ||
| 15 | +import jakarta.validation.Valid; | ||
| 12 | import org.springframework.security.access.prepost.PreAuthorize; | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 13 | import org.springframework.validation.annotation.Validated; | 17 | import org.springframework.validation.annotation.Validated; |
| 14 | import org.springframework.web.bind.annotation.*; | 18 | import org.springframework.web.bind.annotation.*; |
| 15 | 19 | ||
| 16 | -import jakarta.annotation.Resource; | ||
| 17 | -import jakarta.validation.Valid; | ||
| 18 | import java.util.List; | 20 | import java.util.List; |
| 19 | 21 | ||
| 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 22 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 23 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | ||
| 21 | 24 | ||
| 22 | @Tag(name = "管理后台 - 动态表单") | 25 | @Tag(name = "管理后台 - 动态表单") |
| 23 | @RestController | 26 | @RestController |
| @@ -31,14 +34,14 @@ public class BpmFormController { | @@ -31,14 +34,14 @@ public class BpmFormController { | ||
| 31 | @PostMapping("/create") | 34 | @PostMapping("/create") |
| 32 | @Operation(summary = "创建动态表单") | 35 | @Operation(summary = "创建动态表单") |
| 33 | @PreAuthorize("@ss.hasPermission('bpm:form:create')") | 36 | @PreAuthorize("@ss.hasPermission('bpm:form:create')") |
| 34 | - public CommonResult<Long> createForm(@Valid @RequestBody BpmFormCreateReqVO createReqVO) { | 37 | + public CommonResult<Long> createForm(@Valid @RequestBody BpmFormSaveReqVO createReqVO) { |
| 35 | return success(formService.createForm(createReqVO)); | 38 | return success(formService.createForm(createReqVO)); |
| 36 | } | 39 | } |
| 37 | 40 | ||
| 38 | @PutMapping("/update") | 41 | @PutMapping("/update") |
| 39 | @Operation(summary = "更新动态表单") | 42 | @Operation(summary = "更新动态表单") |
| 40 | @PreAuthorize("@ss.hasPermission('bpm:form:update')") | 43 | @PreAuthorize("@ss.hasPermission('bpm:form:update')") |
| 41 | - public CommonResult<Boolean> updateForm(@Valid @RequestBody BpmFormUpdateReqVO updateReqVO) { | 44 | + public CommonResult<Boolean> updateForm(@Valid @RequestBody BpmFormSaveReqVO updateReqVO) { |
| 42 | formService.updateForm(updateReqVO); | 45 | formService.updateForm(updateReqVO); |
| 43 | return success(true); | 46 | return success(true); |
| 44 | } | 47 | } |
| @@ -58,14 +61,15 @@ public class BpmFormController { | @@ -58,14 +61,15 @@ public class BpmFormController { | ||
| 58 | @PreAuthorize("@ss.hasPermission('bpm:form:query')") | 61 | @PreAuthorize("@ss.hasPermission('bpm:form:query')") |
| 59 | public CommonResult<BpmFormRespVO> getForm(@RequestParam("id") Long id) { | 62 | public CommonResult<BpmFormRespVO> getForm(@RequestParam("id") Long id) { |
| 60 | BpmFormDO form = formService.getForm(id); | 63 | BpmFormDO form = formService.getForm(id); |
| 61 | - return success(BpmFormConvert.INSTANCE.convert(form)); | 64 | + return success(BeanUtils.toBean(form, BpmFormRespVO.class)); |
| 62 | } | 65 | } |
| 63 | 66 | ||
| 64 | - @GetMapping("/list-all-simple") | 67 | + @GetMapping({"/list-all-simple", "/simple-list"}) |
| 65 | @Operation(summary = "获得动态表单的精简列表", description = "用于表单下拉框") | 68 | @Operation(summary = "获得动态表单的精简列表", description = "用于表单下拉框") |
| 66 | - public CommonResult<List<BpmFormSimpleRespVO>> getSimpleForms() { | 69 | + public CommonResult<List<BpmFormRespVO>> getFormSimpleList() { |
| 67 | List<BpmFormDO> list = formService.getFormList(); | 70 | List<BpmFormDO> list = formService.getFormList(); |
| 68 | - return success(BpmFormConvert.INSTANCE.convertList2(list)); | 71 | + return success(convertList(list, formDO -> // 只返回 id、name 字段 |
| 72 | + new BpmFormRespVO().setId(formDO.getId()).setName(formDO.getName()))); | ||
| 69 | } | 73 | } |
| 70 | 74 | ||
| 71 | @GetMapping("/page") | 75 | @GetMapping("/page") |
| @@ -73,7 +77,7 @@ public class BpmFormController { | @@ -73,7 +77,7 @@ public class BpmFormController { | ||
| 73 | @PreAuthorize("@ss.hasPermission('bpm:form:query')") | 77 | @PreAuthorize("@ss.hasPermission('bpm:form:query')") |
| 74 | public CommonResult<PageResult<BpmFormRespVO>> getFormPage(@Valid BpmFormPageReqVO pageVO) { | 78 | public CommonResult<PageResult<BpmFormRespVO>> getFormPage(@Valid BpmFormPageReqVO pageVO) { |
| 75 | PageResult<BpmFormDO> pageResult = formService.getFormPage(pageVO); | 79 | PageResult<BpmFormDO> pageResult = formService.getFormPage(pageVO); |
| 76 | - return success(BpmFormConvert.INSTANCE.convertPage(pageResult)); | 80 | + return success(BeanUtils.toBean(pageResult, BpmFormRespVO.class)); |
| 77 | } | 81 | } |
| 78 | 82 | ||
| 79 | } | 83 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmModelController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 5 | import cn.iocoder.yudao.framework.common.util.io.IoUtils; | 7 | import cn.iocoder.yudao.framework.common.util.io.IoUtils; |
| 8 | +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||
| 9 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 6 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; | 10 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; |
| 7 | import cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert; | 11 | import cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert; |
| 12 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO; | ||
| 13 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | ||
| 14 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService; | ||
| 15 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; | ||
| 8 | import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService; | 16 | import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService; |
| 17 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; | ||
| 18 | +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO; | ||
| 9 | import io.swagger.v3.oas.annotations.Operation; | 19 | import io.swagger.v3.oas.annotations.Operation; |
| 10 | import io.swagger.v3.oas.annotations.Parameter; | 20 | import io.swagger.v3.oas.annotations.Parameter; |
| 11 | import io.swagger.v3.oas.annotations.tags.Tag; | 21 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 12 | import jakarta.annotation.Resource; | 22 | import jakarta.annotation.Resource; |
| 13 | import jakarta.validation.Valid; | 23 | import jakarta.validation.Valid; |
| 24 | +import org.flowable.engine.repository.Deployment; | ||
| 25 | +import org.flowable.engine.repository.Model; | ||
| 26 | +import org.flowable.engine.repository.ProcessDefinition; | ||
| 14 | import org.springframework.security.access.prepost.PreAuthorize; | 27 | import org.springframework.security.access.prepost.PreAuthorize; |
| 15 | import org.springframework.validation.annotation.Validated; | 28 | import org.springframework.validation.annotation.Validated; |
| 16 | import org.springframework.web.bind.annotation.*; | 29 | import org.springframework.web.bind.annotation.*; |
| 17 | 30 | ||
| 18 | import java.io.IOException; | 31 | import java.io.IOException; |
| 32 | +import java.util.HashSet; | ||
| 33 | +import java.util.List; | ||
| 34 | +import java.util.Map; | ||
| 35 | +import java.util.Set; | ||
| 19 | 36 | ||
| 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 37 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 38 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | ||
| 39 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||
| 21 | 40 | ||
| 22 | @Tag(name = "管理后台 - 流程模型") | 41 | @Tag(name = "管理后台 - 流程模型") |
| 23 | @RestController | 42 | @RestController |
| @@ -27,11 +46,39 @@ public class BpmModelController { | @@ -27,11 +46,39 @@ public class BpmModelController { | ||
| 27 | 46 | ||
| 28 | @Resource | 47 | @Resource |
| 29 | private BpmModelService modelService; | 48 | private BpmModelService modelService; |
| 49 | + @Resource | ||
| 50 | + private BpmFormService formService; | ||
| 51 | + @Resource | ||
| 52 | + private BpmCategoryService categoryService; | ||
| 53 | + @Resource | ||
| 54 | + private BpmProcessDefinitionService processDefinitionService; | ||
| 30 | 55 | ||
| 31 | @GetMapping("/page") | 56 | @GetMapping("/page") |
| 32 | @Operation(summary = "获得模型分页") | 57 | @Operation(summary = "获得模型分页") |
| 33 | - public CommonResult<PageResult<BpmModelPageItemRespVO>> getModelPage(BpmModelPageReqVO pageVO) { | ||
| 34 | - return success(modelService.getModelPage(pageVO)); | 58 | + public CommonResult<PageResult<BpmModelRespVO>> getModelPage(BpmModelPageReqVO pageVO) { |
| 59 | + PageResult<Model> pageResult = modelService.getModelPage(pageVO); | ||
| 60 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 61 | + return success(PageResult.empty(pageResult.getTotal())); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + // 拼接数据 | ||
| 65 | + // 获得 Form 表单 | ||
| 66 | + Set<Long> formIds = convertSet(pageResult.getList(), model -> { | ||
| 67 | + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class); | ||
| 68 | + return metaInfo != null ? metaInfo.getFormId() : null; | ||
| 69 | + }); | ||
| 70 | + Map<Long, BpmFormDO> formMap = formService.getFormMap(formIds); | ||
| 71 | + // 获得 Category Map | ||
| 72 | + Map<String, BpmCategoryDO> categoryMap = categoryService.getCategoryMap( | ||
| 73 | + convertSet(pageResult.getList(), Model::getCategory)); | ||
| 74 | + // 获得 Deployment Map | ||
| 75 | + Set<String> deploymentIds = new HashSet<>(); | ||
| 76 | + pageResult.getList().forEach(model -> CollectionUtils.addIfNotNull(deploymentIds, model.getDeploymentId())); | ||
| 77 | + Map<String, Deployment> deploymentMap = processDefinitionService.getDeploymentMap(deploymentIds); | ||
| 78 | + // 获得 ProcessDefinition Map | ||
| 79 | + List<ProcessDefinition> processDefinitions = processDefinitionService.getProcessDefinitionListByDeploymentIds(deploymentIds); | ||
| 80 | + Map<String, ProcessDefinition> processDefinitionMap = convertMap(processDefinitions, ProcessDefinition::getDeploymentId); | ||
| 81 | + return success(BpmModelConvert.INSTANCE.buildModelPage(pageResult, formMap, categoryMap, deploymentMap, processDefinitionMap)); | ||
| 35 | } | 82 | } |
| 36 | 83 | ||
| 37 | @GetMapping("/get") | 84 | @GetMapping("/get") |
| @@ -39,8 +86,12 @@ public class BpmModelController { | @@ -39,8 +86,12 @@ public class BpmModelController { | ||
| 39 | @Parameter(name = "id", description = "编号", required = true, example = "1024") | 86 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 40 | @PreAuthorize("@ss.hasPermission('bpm:model:query')") | 87 | @PreAuthorize("@ss.hasPermission('bpm:model:query')") |
| 41 | public CommonResult<BpmModelRespVO> getModel(@RequestParam("id") String id) { | 88 | public CommonResult<BpmModelRespVO> getModel(@RequestParam("id") String id) { |
| 42 | - BpmModelRespVO model = modelService.getModel(id); | ||
| 43 | - return success(model); | 89 | + Model model = modelService.getModel(id); |
| 90 | + if (model == null) { | ||
| 91 | + return null; | ||
| 92 | + } | ||
| 93 | + byte[] bpmnBytes = modelService.getModelBpmnXML(id); | ||
| 94 | + return success(BpmModelConvert.INSTANCE.buildModel(model, bpmnBytes)); | ||
| 44 | } | 95 | } |
| 45 | 96 | ||
| 46 | @PostMapping("/create") | 97 | @PostMapping("/create") |
| @@ -62,7 +113,7 @@ public class BpmModelController { | @@ -62,7 +113,7 @@ public class BpmModelController { | ||
| 62 | @Operation(summary = "导入模型") | 113 | @Operation(summary = "导入模型") |
| 63 | @PreAuthorize("@ss.hasPermission('bpm:model:import')") | 114 | @PreAuthorize("@ss.hasPermission('bpm:model:import')") |
| 64 | public CommonResult<String> importModel(@Valid BpmModeImportReqVO importReqVO) throws IOException { | 115 | public CommonResult<String> importModel(@Valid BpmModeImportReqVO importReqVO) throws IOException { |
| 65 | - BpmModelCreateReqVO createReqVO = BpmModelConvert.INSTANCE.convert(importReqVO); | 116 | + BpmModelCreateReqVO createReqVO = BeanUtils.toBean(importReqVO, BpmModelCreateReqVO.class); |
| 66 | // 读取文件 | 117 | // 读取文件 |
| 67 | String bpmnXml = IoUtils.readUtf8(importReqVO.getBpmnFile().getInputStream(), false); | 118 | String bpmnXml = IoUtils.readUtf8(importReqVO.getBpmnFile().getInputStream(), false); |
| 68 | return success(modelService.createModel(createReqVO, bpmnXml)); | 119 | return success(modelService.createModel(createReqVO, bpmnXml)); |
| @@ -93,4 +144,5 @@ public class BpmModelController { | @@ -93,4 +144,5 @@ public class BpmModelController { | ||
| 93 | modelService.deleteModel(id); | 144 | modelService.deleteModel(id); |
| 94 | return success(true); | 145 | return success(true); |
| 95 | } | 146 | } |
| 147 | + | ||
| 96 | } | 148 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionListReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageItemRespVO; | ||
| 7 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageReqVO; | 6 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageReqVO; |
| 8 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; |
| 8 | +import cn.iocoder.yudao.module.bpm.convert.definition.BpmProcessDefinitionConvert; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | ||
| 11 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; | ||
| 12 | +import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.strategy.BpmTaskCandidateStartUserSelectStrategy; | ||
| 13 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService; | ||
| 14 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; | ||
| 9 | import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; | 15 | import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; |
| 10 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 11 | -import io.swagger.v3.oas.annotations.Parameter; | ||
| 12 | import io.swagger.v3.oas.annotations.Operation; | 16 | import io.swagger.v3.oas.annotations.Operation; |
| 17 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 18 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 19 | +import jakarta.annotation.Resource; | ||
| 20 | +import org.flowable.bpmn.model.BpmnModel; | ||
| 21 | +import org.flowable.bpmn.model.UserTask; | ||
| 22 | +import org.flowable.engine.repository.Deployment; | ||
| 23 | +import org.flowable.engine.repository.ProcessDefinition; | ||
| 13 | import org.springframework.security.access.prepost.PreAuthorize; | 24 | import org.springframework.security.access.prepost.PreAuthorize; |
| 14 | import org.springframework.validation.annotation.Validated; | 25 | import org.springframework.validation.annotation.Validated; |
| 15 | import org.springframework.web.bind.annotation.GetMapping; | 26 | import org.springframework.web.bind.annotation.GetMapping; |
| @@ -17,11 +28,12 @@ import org.springframework.web.bind.annotation.RequestMapping; | @@ -17,11 +28,12 @@ import org.springframework.web.bind.annotation.RequestMapping; | ||
| 17 | import org.springframework.web.bind.annotation.RequestParam; | 28 | import org.springframework.web.bind.annotation.RequestParam; |
| 18 | import org.springframework.web.bind.annotation.RestController; | 29 | import org.springframework.web.bind.annotation.RestController; |
| 19 | 30 | ||
| 20 | -import jakarta.annotation.Resource; | ||
| 21 | - | 31 | +import java.util.Collections; |
| 22 | import java.util.List; | 32 | import java.util.List; |
| 33 | +import java.util.Map; | ||
| 23 | 34 | ||
| 24 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 35 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 36 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||
| 25 | 37 | ||
| 26 | @Tag(name = "管理后台 - 流程定义") | 38 | @Tag(name = "管理后台 - 流程定义") |
| 27 | @RestController | 39 | @RestController |
| @@ -30,30 +42,73 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | @@ -30,30 +42,73 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 30 | public class BpmProcessDefinitionController { | 42 | public class BpmProcessDefinitionController { |
| 31 | 43 | ||
| 32 | @Resource | 44 | @Resource |
| 33 | - private BpmProcessDefinitionService bpmDefinitionService; | 45 | + private BpmProcessDefinitionService processDefinitionService; |
| 46 | + @Resource | ||
| 47 | + private BpmFormService formService; | ||
| 48 | + @Resource | ||
| 49 | + private BpmCategoryService categoryService; | ||
| 34 | 50 | ||
| 35 | @GetMapping("/page") | 51 | @GetMapping("/page") |
| 36 | @Operation(summary = "获得流程定义分页") | 52 | @Operation(summary = "获得流程定义分页") |
| 37 | @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") | 53 | @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") |
| 38 | - public CommonResult<PageResult<BpmProcessDefinitionPageItemRespVO>> getProcessDefinitionPage( | 54 | + public CommonResult<PageResult<BpmProcessDefinitionRespVO>> getProcessDefinitionPage( |
| 39 | BpmProcessDefinitionPageReqVO pageReqVO) { | 55 | BpmProcessDefinitionPageReqVO pageReqVO) { |
| 40 | - return success(bpmDefinitionService.getProcessDefinitionPage(pageReqVO)); | 56 | + PageResult<ProcessDefinition> pageResult = processDefinitionService.getProcessDefinitionPage(pageReqVO); |
| 57 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 58 | + return success(PageResult.empty(pageResult.getTotal())); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + // 获得 Category Map | ||
| 62 | + Map<String, BpmCategoryDO> categoryMap = categoryService.getCategoryMap( | ||
| 63 | + convertSet(pageResult.getList(), ProcessDefinition::getCategory)); | ||
| 64 | + // 获得 Deployment Map | ||
| 65 | + Map<String, Deployment> deploymentMap = processDefinitionService.getDeploymentMap( | ||
| 66 | + convertSet(pageResult.getList(), ProcessDefinition::getDeploymentId)); | ||
| 67 | + // 获得 BpmProcessDefinitionInfoDO Map | ||
| 68 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionMap = processDefinitionService.getProcessDefinitionInfoMap( | ||
| 69 | + convertSet(pageResult.getList(), ProcessDefinition::getId)); | ||
| 70 | + // 获得 Form Map | ||
| 71 | + Map<Long, BpmFormDO> formMap = formService.getFormMap( | ||
| 72 | + convertSet(processDefinitionMap.values(), BpmProcessDefinitionInfoDO::getFormId)); | ||
| 73 | + return success(BpmProcessDefinitionConvert.INSTANCE.buildProcessDefinitionPage( | ||
| 74 | + pageResult, deploymentMap, processDefinitionMap, formMap, categoryMap)); | ||
| 41 | } | 75 | } |
| 42 | 76 | ||
| 43 | @GetMapping ("/list") | 77 | @GetMapping ("/list") |
| 44 | @Operation(summary = "获得流程定义列表") | 78 | @Operation(summary = "获得流程定义列表") |
| 79 | + @Parameter(name = "suspensionState", description = "挂起状态", required = true, example = "1") // 参见 Flowable SuspensionState 枚举 | ||
| 45 | @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") | 80 | @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") |
| 46 | public CommonResult<List<BpmProcessDefinitionRespVO>> getProcessDefinitionList( | 81 | public CommonResult<List<BpmProcessDefinitionRespVO>> getProcessDefinitionList( |
| 47 | - BpmProcessDefinitionListReqVO listReqVO) { | ||
| 48 | - return success(bpmDefinitionService.getProcessDefinitionList(listReqVO)); | 82 | + @RequestParam("suspensionState") Integer suspensionState) { |
| 83 | + List<ProcessDefinition> list = processDefinitionService.getProcessDefinitionListBySuspensionState(suspensionState); | ||
| 84 | + if (CollUtil.isEmpty(list)) { | ||
| 85 | + return success(Collections.emptyList()); | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + // 获得 BpmProcessDefinitionInfoDO Map | ||
| 89 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionMap = processDefinitionService.getProcessDefinitionInfoMap( | ||
| 90 | + convertSet(list, ProcessDefinition::getId)); | ||
| 91 | + return success(BpmProcessDefinitionConvert.INSTANCE.buildProcessDefinitionList( | ||
| 92 | + list, null, processDefinitionMap, null, null)); | ||
| 49 | } | 93 | } |
| 50 | 94 | ||
| 51 | - @GetMapping ("/get-bpmn-xml") | ||
| 52 | - @Operation(summary = "获得流程定义的 BPMN XML") | ||
| 53 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | 95 | + @GetMapping ("/get") |
| 96 | + @Operation(summary = "获得流程定义") | ||
| 97 | + @Parameter(name = "id", description = "流程编号", required = true, example = "1024") | ||
| 98 | + @Parameter(name = "key", description = "流程定义标识", required = true, example = "1024") | ||
| 54 | @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") | 99 | @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") |
| 55 | - public CommonResult<String> getProcessDefinitionBpmnXML(@RequestParam("id") String id) { | ||
| 56 | - String bpmnXML = bpmDefinitionService.getProcessDefinitionBpmnXML(id); | ||
| 57 | - return success(bpmnXML); | 100 | + public CommonResult<BpmProcessDefinitionRespVO> getProcessDefinition( |
| 101 | + @RequestParam(value = "id", required = false) String id, | ||
| 102 | + @RequestParam(value = "key", required = false) String key) { | ||
| 103 | + ProcessDefinition processDefinition = id != null ? processDefinitionService.getProcessDefinition(id) | ||
| 104 | + : processDefinitionService.getActiveProcessDefinition(key); | ||
| 105 | + if (processDefinition == null) { | ||
| 106 | + return success(null); | ||
| 107 | + } | ||
| 108 | + BpmnModel bpmnModel = processDefinitionService.getProcessDefinitionBpmnModel(processDefinition.getId()); | ||
| 109 | + List<UserTask> userTaskList = BpmTaskCandidateStartUserSelectStrategy.getStartUserSelectUserTaskList(bpmnModel); | ||
| 110 | + return success(BpmProcessDefinitionConvert.INSTANCE.buildProcessDefinition( | ||
| 111 | + processDefinition, null, null, null, null, bpmnModel, userTaskList)); | ||
| 58 | } | 112 | } |
| 113 | + | ||
| 59 | } | 114 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessExpressionController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 6 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionRespVO; | ||
| 8 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression.BpmProcessExpressionSaveReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessExpressionDO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessExpressionService; | ||
| 11 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 14 | +import jakarta.annotation.Resource; | ||
| 15 | +import jakarta.validation.Valid; | ||
| 16 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 17 | +import org.springframework.validation.annotation.Validated; | ||
| 18 | +import org.springframework.web.bind.annotation.*; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Tag(name = "管理后台 - BPM 流程表达式") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/bpm/process-expression") | ||
| 25 | +@Validated | ||
| 26 | +public class BpmProcessExpressionController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private BpmProcessExpressionService processExpressionService; | ||
| 30 | + | ||
| 31 | + @PostMapping("/create") | ||
| 32 | + @Operation(summary = "创建流程表达式") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:create')") | ||
| 34 | + public CommonResult<Long> createProcessExpression(@Valid @RequestBody BpmProcessExpressionSaveReqVO createReqVO) { | ||
| 35 | + return success(processExpressionService.createProcessExpression(createReqVO)); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @PutMapping("/update") | ||
| 39 | + @Operation(summary = "更新流程表达式") | ||
| 40 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:update')") | ||
| 41 | + public CommonResult<Boolean> updateProcessExpression(@Valid @RequestBody BpmProcessExpressionSaveReqVO updateReqVO) { | ||
| 42 | + processExpressionService.updateProcessExpression(updateReqVO); | ||
| 43 | + return success(true); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @DeleteMapping("/delete") | ||
| 47 | + @Operation(summary = "删除流程表达式") | ||
| 48 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 49 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:delete')") | ||
| 50 | + public CommonResult<Boolean> deleteProcessExpression(@RequestParam("id") Long id) { | ||
| 51 | + processExpressionService.deleteProcessExpression(id); | ||
| 52 | + return success(true); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @GetMapping("/get") | ||
| 56 | + @Operation(summary = "获得流程表达式") | ||
| 57 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 58 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:query')") | ||
| 59 | + public CommonResult<BpmProcessExpressionRespVO> getProcessExpression(@RequestParam("id") Long id) { | ||
| 60 | + BpmProcessExpressionDO processExpression = processExpressionService.getProcessExpression(id); | ||
| 61 | + return success(BeanUtils.toBean(processExpression, BpmProcessExpressionRespVO.class)); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + @GetMapping("/page") | ||
| 65 | + @Operation(summary = "获得流程表达式分页") | ||
| 66 | + @PreAuthorize("@ss.hasPermission('bpm:process-expression:query')") | ||
| 67 | + public CommonResult<PageResult<BpmProcessExpressionRespVO>> getProcessExpressionPage( | ||
| 68 | + @Valid BpmProcessExpressionPageReqVO pageReqVO) { | ||
| 69 | + PageResult<BpmProcessExpressionDO> pageResult = processExpressionService.getProcessExpressionPage(pageReqVO); | ||
| 70 | + return success(BeanUtils.toBean(pageResult, BpmProcessExpressionRespVO.class)); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | +} | ||
| 0 | \ No newline at end of file | 74 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessListenerController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 6 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.listener.BpmProcessListenerPageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.listener.BpmProcessListenerRespVO; | ||
| 8 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.listener.BpmProcessListenerSaveReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessListenerDO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessListenerService; | ||
| 11 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 14 | +import jakarta.annotation.Resource; | ||
| 15 | +import jakarta.validation.Valid; | ||
| 16 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
| 17 | +import org.springframework.validation.annotation.Validated; | ||
| 18 | +import org.springframework.web.bind.annotation.*; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | + | ||
| 22 | +@Tag(name = "管理后台 - BPM 流程监听器") | ||
| 23 | +@RestController | ||
| 24 | +@RequestMapping("/bpm/process-listener") | ||
| 25 | +@Validated | ||
| 26 | +public class BpmProcessListenerController { | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private BpmProcessListenerService processListenerService; | ||
| 30 | + | ||
| 31 | + @PostMapping("/create") | ||
| 32 | + @Operation(summary = "创建流程监听器") | ||
| 33 | + @PreAuthorize("@ss.hasPermission('bpm:process-listener:create')") | ||
| 34 | + public CommonResult<Long> createProcessListener(@Valid @RequestBody BpmProcessListenerSaveReqVO createReqVO) { | ||
| 35 | + return success(processListenerService.createProcessListener(createReqVO)); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @PutMapping("/update") | ||
| 39 | + @Operation(summary = "更新流程监听器") | ||
| 40 | + @PreAuthorize("@ss.hasPermission('bpm:process-listener:update')") | ||
| 41 | + public CommonResult<Boolean> updateProcessListener(@Valid @RequestBody BpmProcessListenerSaveReqVO updateReqVO) { | ||
| 42 | + processListenerService.updateProcessListener(updateReqVO); | ||
| 43 | + return success(true); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @DeleteMapping("/delete") | ||
| 47 | + @Operation(summary = "删除流程监听器") | ||
| 48 | + @Parameter(name = "id", description = "编号", required = true) | ||
| 49 | + @PreAuthorize("@ss.hasPermission('bpm:process-listener:delete')") | ||
| 50 | + public CommonResult<Boolean> deleteProcessListener(@RequestParam("id") Long id) { | ||
| 51 | + processListenerService.deleteProcessListener(id); | ||
| 52 | + return success(true); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @GetMapping("/get") | ||
| 56 | + @Operation(summary = "获得流程监听器") | ||
| 57 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 58 | + @PreAuthorize("@ss.hasPermission('bpm:process-listener:query')") | ||
| 59 | + public CommonResult<BpmProcessListenerRespVO> getProcessListener(@RequestParam("id") Long id) { | ||
| 60 | + BpmProcessListenerDO processListener = processListenerService.getProcessListener(id); | ||
| 61 | + return success(BeanUtils.toBean(processListener, BpmProcessListenerRespVO.class)); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + @GetMapping("/page") | ||
| 65 | + @Operation(summary = "获得流程监听器分页") | ||
| 66 | + @PreAuthorize("@ss.hasPermission('bpm:process-listener:query')") | ||
| 67 | + public CommonResult<PageResult<BpmProcessListenerRespVO>> getProcessListenerPage( | ||
| 68 | + @Valid BpmProcessListenerPageReqVO pageReqVO) { | ||
| 69 | + PageResult<BpmProcessListenerDO> pageResult = processListenerService.getProcessListenerPage(pageReqVO); | ||
| 70 | + return success(BeanUtils.toBean(pageResult, BpmProcessListenerRespVO.class)); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | +} | ||
| 0 | \ No newline at end of file | 74 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmTaskAssignRuleController.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; | ||
| 5 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO; | ||
| 6 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleService; | ||
| 8 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 9 | -import io.swagger.v3.oas.annotations.Parameter; | ||
| 10 | -import io.swagger.v3.oas.annotations.Parameters; | ||
| 11 | -import io.swagger.v3.oas.annotations.Operation; | ||
| 12 | -import org.springframework.security.access.prepost.PreAuthorize; | ||
| 13 | -import org.springframework.validation.annotation.Validated; | ||
| 14 | -import org.springframework.web.bind.annotation.*; | ||
| 15 | - | ||
| 16 | -import jakarta.annotation.Resource; | ||
| 17 | -import jakarta.validation.Valid; | ||
| 18 | -import java.util.List; | ||
| 19 | - | ||
| 20 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 21 | - | ||
| 22 | -@Tag(name = "管理后台 - 任务分配规则") | ||
| 23 | -@RestController | ||
| 24 | -@RequestMapping("/bpm/task-assign-rule") | ||
| 25 | -@Validated | ||
| 26 | -public class BpmTaskAssignRuleController { | ||
| 27 | - | ||
| 28 | - @Resource | ||
| 29 | - private BpmTaskAssignRuleService taskAssignRuleService; | ||
| 30 | - | ||
| 31 | - @GetMapping("/list") | ||
| 32 | - @Operation(summary = "获得任务分配规则列表") | ||
| 33 | - @Parameters({ | ||
| 34 | - @Parameter(name = "modelId", description = "模型编号", example = "1024"), | ||
| 35 | - @Parameter(name = "processDefinitionId", description = "流程定义的编号", example = "2048") | ||
| 36 | - }) | ||
| 37 | - @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:query')") | ||
| 38 | - public CommonResult<List<BpmTaskAssignRuleRespVO>> getTaskAssignRuleList( | ||
| 39 | - @RequestParam(value = "modelId", required = false) String modelId, | ||
| 40 | - @RequestParam(value = "processDefinitionId", required = false) String processDefinitionId) { | ||
| 41 | - return success(taskAssignRuleService.getTaskAssignRuleList(modelId, processDefinitionId)); | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - @PostMapping("/create") | ||
| 45 | - @Operation(summary = "创建任务分配规则") | ||
| 46 | - @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:create')") | ||
| 47 | - public CommonResult<Long> createTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleCreateReqVO reqVO) { | ||
| 48 | - return success(taskAssignRuleService.createTaskAssignRule(reqVO)); | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - @PutMapping("/update") | ||
| 52 | - @Operation(summary = "更新任务分配规则") | ||
| 53 | - @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:update')") | ||
| 54 | - public CommonResult<Boolean> updateTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleUpdateReqVO reqVO) { | ||
| 55 | - taskAssignRuleService.updateTaskAssignRule(reqVO); | ||
| 56 | - return success(true); | ||
| 57 | - } | ||
| 58 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmUserGroupController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; | 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 4 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; |
| 5 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO; | 8 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO; |
| 6 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.bpm.convert.definition.BpmUserGroupConvert; | 9 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupSaveReqVO; |
| 8 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; | 10 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; |
| 9 | import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService; | 11 | import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService; |
| 10 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 11 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 12 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 13 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 14 | -import io.swagger.v3.oas.annotations.Parameter; | ||
| 15 | import io.swagger.v3.oas.annotations.Operation; | 12 | import io.swagger.v3.oas.annotations.Operation; |
| 13 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 14 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 15 | +import jakarta.annotation.Resource; | ||
| 16 | +import jakarta.validation.Valid; | ||
| 16 | import org.springframework.security.access.prepost.PreAuthorize; | 17 | import org.springframework.security.access.prepost.PreAuthorize; |
| 17 | import org.springframework.validation.annotation.Validated; | 18 | import org.springframework.validation.annotation.Validated; |
| 18 | import org.springframework.web.bind.annotation.*; | 19 | import org.springframework.web.bind.annotation.*; |
| 19 | 20 | ||
| 20 | -import jakarta.annotation.Resource; | ||
| 21 | -import jakarta.validation.Valid; | ||
| 22 | import java.util.List; | 21 | import java.util.List; |
| 23 | 22 | ||
| 24 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 23 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 24 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | ||
| 25 | 25 | ||
| 26 | @Tag(name = "管理后台 - 用户组") | 26 | @Tag(name = "管理后台 - 用户组") |
| 27 | @RestController | 27 | @RestController |
| @@ -35,14 +35,14 @@ public class BpmUserGroupController { | @@ -35,14 +35,14 @@ public class BpmUserGroupController { | ||
| 35 | @PostMapping("/create") | 35 | @PostMapping("/create") |
| 36 | @Operation(summary = "创建用户组") | 36 | @Operation(summary = "创建用户组") |
| 37 | @PreAuthorize("@ss.hasPermission('bpm:user-group:create')") | 37 | @PreAuthorize("@ss.hasPermission('bpm:user-group:create')") |
| 38 | - public CommonResult<Long> createUserGroup(@Valid @RequestBody BpmUserGroupCreateReqVO createReqVO) { | 38 | + public CommonResult<Long> createUserGroup(@Valid @RequestBody BpmUserGroupSaveReqVO createReqVO) { |
| 39 | return success(userGroupService.createUserGroup(createReqVO)); | 39 | return success(userGroupService.createUserGroup(createReqVO)); |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | @PutMapping("/update") | 42 | @PutMapping("/update") |
| 43 | @Operation(summary = "更新用户组") | 43 | @Operation(summary = "更新用户组") |
| 44 | @PreAuthorize("@ss.hasPermission('bpm:user-group:update')") | 44 | @PreAuthorize("@ss.hasPermission('bpm:user-group:update')") |
| 45 | - public CommonResult<Boolean> updateUserGroup(@Valid @RequestBody BpmUserGroupUpdateReqVO updateReqVO) { | 45 | + public CommonResult<Boolean> updateUserGroup(@Valid @RequestBody BpmUserGroupSaveReqVO updateReqVO) { |
| 46 | userGroupService.updateUserGroup(updateReqVO); | 46 | userGroupService.updateUserGroup(updateReqVO); |
| 47 | return success(true); | 47 | return success(true); |
| 48 | } | 48 | } |
| @@ -62,7 +62,7 @@ public class BpmUserGroupController { | @@ -62,7 +62,7 @@ public class BpmUserGroupController { | ||
| 62 | @PreAuthorize("@ss.hasPermission('bpm:user-group:query')") | 62 | @PreAuthorize("@ss.hasPermission('bpm:user-group:query')") |
| 63 | public CommonResult<BpmUserGroupRespVO> getUserGroup(@RequestParam("id") Long id) { | 63 | public CommonResult<BpmUserGroupRespVO> getUserGroup(@RequestParam("id") Long id) { |
| 64 | BpmUserGroupDO userGroup = userGroupService.getUserGroup(id); | 64 | BpmUserGroupDO userGroup = userGroupService.getUserGroup(id); |
| 65 | - return success(BpmUserGroupConvert.INSTANCE.convert(userGroup)); | 65 | + return success(BeanUtils.toBean(userGroup, BpmUserGroupRespVO.class)); |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | @GetMapping("/page") | 68 | @GetMapping("/page") |
| @@ -70,16 +70,14 @@ public class BpmUserGroupController { | @@ -70,16 +70,14 @@ public class BpmUserGroupController { | ||
| 70 | @PreAuthorize("@ss.hasPermission('bpm:user-group:query')") | 70 | @PreAuthorize("@ss.hasPermission('bpm:user-group:query')") |
| 71 | public CommonResult<PageResult<BpmUserGroupRespVO>> getUserGroupPage(@Valid BpmUserGroupPageReqVO pageVO) { | 71 | public CommonResult<PageResult<BpmUserGroupRespVO>> getUserGroupPage(@Valid BpmUserGroupPageReqVO pageVO) { |
| 72 | PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(pageVO); | 72 | PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(pageVO); |
| 73 | - return success(BpmUserGroupConvert.INSTANCE.convertPage(pageResult)); | 73 | + return success(BeanUtils.toBean(pageResult, BpmUserGroupRespVO.class)); |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | - @GetMapping("/list-all-simple") | 76 | + @GetMapping("/simple-list") |
| 77 | @Operation(summary = "获取用户组精简信息列表", description = "只包含被开启的用户组,主要用于前端的下拉选项") | 77 | @Operation(summary = "获取用户组精简信息列表", description = "只包含被开启的用户组,主要用于前端的下拉选项") |
| 78 | - public CommonResult<List<BpmUserGroupRespVO>> getSimpleUserGroups() { | ||
| 79 | - // 获用户门列表,只要开启状态的 | 78 | + public CommonResult<List<BpmUserGroupRespVO>> getUserGroupSimpleList() { |
| 80 | List<BpmUserGroupDO> list = userGroupService.getUserGroupListByStatus(CommonStatusEnum.ENABLE.getStatus()); | 79 | List<BpmUserGroupDO> list = userGroupService.getUserGroupListByStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 81 | - // 排序后,返回给前端 | ||
| 82 | - return success(BpmUserGroupConvert.INSTANCE.convertList2(list)); | 80 | + return success(convertList(list, group -> new BpmUserGroupRespVO().setId(group.getId()).setName(group.getName()))); |
| 83 | } | 81 | } |
| 84 | 82 | ||
| 85 | } | 83 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/category/BpmCategoryPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 5 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 6 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.EqualsAndHashCode; | ||
| 9 | +import lombok.ToString; | ||
| 10 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 11 | + | ||
| 12 | +import java.time.LocalDateTime; | ||
| 13 | + | ||
| 14 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 15 | + | ||
| 16 | +@Schema(description = "管理后台 - BPM 流程分类分页 Request VO") | ||
| 17 | +@Data | ||
| 18 | +public class BpmCategoryPageReqVO extends PageParam { | ||
| 19 | + | ||
| 20 | + @Schema(description = "分类名", example = "王五") | ||
| 21 | + private String name; | ||
| 22 | + | ||
| 23 | + @Schema(description = "分类标志", example = "OA") | ||
| 24 | + private String code; | ||
| 25 | + | ||
| 26 | + @Schema(description = "分类状态", example = "1") | ||
| 27 | + @InEnum(CommonStatusEnum.class) | ||
| 28 | + private Integer status; | ||
| 29 | + | ||
| 30 | + @Schema(description = "创建时间") | ||
| 31 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 32 | + private LocalDateTime[] createTime; | ||
| 33 | + | ||
| 34 | +} | ||
| 0 | \ No newline at end of file | 35 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/category/BpmCategoryRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - BPM 流程分类 Response VO") | ||
| 9 | +@Data | ||
| 10 | +public class BpmCategoryRespVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3167") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "分类名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 16 | + private String name; | ||
| 17 | + | ||
| 18 | + @Schema(description = "分类标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "OA") | ||
| 19 | + private String code; | ||
| 20 | + | ||
| 21 | + @Schema(description = "分类描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") | ||
| 22 | + private String description; | ||
| 23 | + | ||
| 24 | + @Schema(description = "分类状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 25 | + private Integer status; | ||
| 26 | + | ||
| 27 | + @Schema(description = "分类排序", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 28 | + private Integer sort; | ||
| 29 | + | ||
| 30 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 31 | + private LocalDateTime createTime; | ||
| 32 | + | ||
| 33 | +} | ||
| 0 | \ No newline at end of file | 34 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/category/BpmCategorySaveReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 6 | +import jakarta.validation.constraints.NotEmpty; | ||
| 7 | +import jakarta.validation.constraints.NotNull; | ||
| 8 | +import lombok.Data; | ||
| 9 | + | ||
| 10 | +@Schema(description = "管理后台 - BPM 流程分类新增/修改 Request VO") | ||
| 11 | +@Data | ||
| 12 | +public class BpmCategorySaveReqVO { | ||
| 13 | + | ||
| 14 | + @Schema(description = "分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3167") | ||
| 15 | + private Long id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "分类名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 18 | + @NotEmpty(message = "分类名不能为空") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 21 | + @Schema(description = "分类描述", example = "你猜") | ||
| 22 | + private String description; | ||
| 23 | + | ||
| 24 | + @Schema(description = "分类标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "OA") | ||
| 25 | + @NotEmpty(message = "分类标志不能为空") | ||
| 26 | + private String code; | ||
| 27 | + | ||
| 28 | + @Schema(description = "分类状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 29 | + @NotNull(message = "分类状态不能为空") | ||
| 30 | + @InEnum(CommonStatusEnum.class) | ||
| 31 | + private Integer status; | ||
| 32 | + | ||
| 33 | + @Schema(description = "分类排序", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 34 | + @NotNull(message = "分类排序不能为空") | ||
| 35 | + private Integer sort; | ||
| 36 | + | ||
| 37 | +} | ||
| 0 | \ No newline at end of file | 38 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/expression/BpmProcessExpressionPageReqVO.java
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 5 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 6 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | import lombok.Data; | 7 | import lombok.Data; |
| 6 | import lombok.EqualsAndHashCode; | 8 | import lombok.EqualsAndHashCode; |
| @@ -11,21 +13,21 @@ import java.time.LocalDateTime; | @@ -11,21 +13,21 @@ import java.time.LocalDateTime; | ||
| 11 | 13 | ||
| 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | 14 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 15 | ||
| 14 | -@Schema(description = "管理后台 - 流程任务的 Done 已办的分页 Request VO") | 16 | +@Schema(description = "管理后台 - BPM 流程表达式分页 Request VO") |
| 15 | @Data | 17 | @Data |
| 16 | @EqualsAndHashCode(callSuper = true) | 18 | @EqualsAndHashCode(callSuper = true) |
| 17 | @ToString(callSuper = true) | 19 | @ToString(callSuper = true) |
| 18 | -public class BpmTaskDonePageReqVO extends PageParam { | 20 | +public class BpmProcessExpressionPageReqVO extends PageParam { |
| 19 | 21 | ||
| 20 | - @Schema(description = "流程任务名", example = "芋道") | 22 | + @Schema(description = "表达式名字", example = "李四") |
| 21 | private String name; | 23 | private String name; |
| 22 | 24 | ||
| 23 | - @Schema(description = "开始的创建收间") | ||
| 24 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 25 | - private LocalDateTime beginCreateTime; | 25 | + @Schema(description = "表达式状态", example = "1") |
| 26 | + @InEnum(CommonStatusEnum.class) | ||
| 27 | + private Integer status; | ||
| 26 | 28 | ||
| 27 | - @Schema(description = "结束的创建时间") | 29 | + @Schema(description = "创建时间") |
| 28 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 30 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 29 | - private LocalDateTime endCreateTime; | 31 | + private LocalDateTime[] createTime; |
| 30 | 32 | ||
| 31 | -} | 33 | -} |
| 34 | +} | ||
| 32 | \ No newline at end of file | 35 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/expression/BpmProcessExpressionRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression; | ||
| 2 | + | ||
| 3 | +import com.alibaba.excel.annotation.ExcelProperty; | ||
| 4 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | + | ||
| 9 | +@Schema(description = "管理后台 - BPM 流程表达式 Response VO") | ||
| 10 | +@Data | ||
| 11 | +public class BpmProcessExpressionRespVO { | ||
| 12 | + | ||
| 13 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3870") | ||
| 14 | + @ExcelProperty("编号") | ||
| 15 | + private Long id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "表达式名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 18 | + @ExcelProperty("表达式名字") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 21 | + @Schema(description = "表达式状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 22 | + private Integer status; | ||
| 23 | + | ||
| 24 | + @Schema(description = "表达式", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 25 | + private String expression; | ||
| 26 | + | ||
| 27 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 28 | + private LocalDateTime createTime; | ||
| 29 | + | ||
| 30 | +} | ||
| 0 | \ No newline at end of file | 31 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/expression/BpmProcessExpressionSaveReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.expression; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import jakarta.validation.constraints.NotEmpty; | ||
| 5 | +import jakarta.validation.constraints.NotNull; | ||
| 6 | +import lombok.Data; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - BPM 流程表达式新增/修改 Request VO") | ||
| 9 | +@Data | ||
| 10 | +public class BpmProcessExpressionSaveReqVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3870") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "表达式名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") | ||
| 16 | + @NotEmpty(message = "表达式名字不能为空") | ||
| 17 | + private String name; | ||
| 18 | + | ||
| 19 | + @Schema(description = "表达式状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 20 | + @NotNull(message = "表达式状态不能为空") | ||
| 21 | + private Integer status; | ||
| 22 | + | ||
| 23 | + @Schema(description = "表达式", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 24 | + @NotEmpty(message = "表达式不能为空") | ||
| 25 | + private String expression; | ||
| 26 | + | ||
| 27 | +} | ||
| 0 | \ No newline at end of file | 28 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; | ||
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 3 | -import lombok.*; | ||
| 4 | -import jakarta.validation.constraints.*; | ||
| 5 | - | ||
| 6 | -/** | ||
| 7 | -* 动态表单 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 8 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 9 | -*/ | ||
| 10 | -@Data | ||
| 11 | -public class BpmFormBaseVO { | ||
| 12 | - | ||
| 13 | - @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 14 | - @NotNull(message = "表单名称不能为空") | ||
| 15 | - private String name; | ||
| 16 | - | ||
| 17 | - @Schema(description = "表单状态-参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 18 | - @NotNull(message = "表单状态不能为空") | ||
| 19 | - private Integer status; | ||
| 20 | - | ||
| 21 | - @Schema(description = "备注", example = "我是备注") | ||
| 22 | - private String remark; | ||
| 23 | - | ||
| 24 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormPageReqVO.java
| @@ -8,8 +8,6 @@ import lombok.ToString; | @@ -8,8 +8,6 @@ import lombok.ToString; | ||
| 8 | 8 | ||
| 9 | @Schema(description = "管理后台 - 动态表单分页 Request VO") | 9 | @Schema(description = "管理后台 - 动态表单分页 Request VO") |
| 10 | @Data | 10 | @Data |
| 11 | -@EqualsAndHashCode(callSuper = true) | ||
| 12 | -@ToString(callSuper = true) | ||
| 13 | public class BpmFormPageReqVO extends PageParam { | 11 | public class BpmFormPageReqVO extends PageParam { |
| 14 | 12 | ||
| 15 | @Schema(description = "表单名称", example = "芋道") | 13 | @Schema(description = "表单名称", example = "芋道") |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; |
| 2 | + | ||
| 2 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | +import jakarta.validation.constraints.NotNull; | ||
| 3 | import lombok.Data; | 5 | import lombok.Data; |
| 4 | -import lombok.EqualsAndHashCode; | ||
| 5 | -import lombok.ToString; | ||
| 6 | 6 | ||
| 7 | -import jakarta.validation.constraints.NotNull; | ||
| 8 | import java.time.LocalDateTime; | 7 | import java.time.LocalDateTime; |
| 9 | import java.util.List; | 8 | import java.util.List; |
| 10 | 9 | ||
| 11 | @Schema(description = "管理后台 - 动态表单 Response VO") | 10 | @Schema(description = "管理后台 - 动态表单 Response VO") |
| 12 | @Data | 11 | @Data |
| 13 | -@EqualsAndHashCode(callSuper = true) | ||
| 14 | -@ToString(callSuper = true) | ||
| 15 | -public class BpmFormRespVO extends BpmFormBaseVO { | 12 | +public class BpmFormRespVO { |
| 16 | 13 | ||
| 17 | @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | 14 | @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 18 | private Long id; | 15 | private Long id; |
| 19 | 16 | ||
| 17 | + @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 18 | + @NotNull(message = "表单名称不能为空") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 20 | @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) | 21 | @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) |
| 21 | @NotNull(message = "表单的配置不能为空") | 22 | @NotNull(message = "表单的配置不能为空") |
| 22 | private String conf; | 23 | private String conf; |
| @@ -25,6 +26,13 @@ public class BpmFormRespVO extends BpmFormBaseVO { | @@ -25,6 +26,13 @@ public class BpmFormRespVO extends BpmFormBaseVO { | ||
| 25 | @NotNull(message = "表单项的数组不能为空") | 26 | @NotNull(message = "表单项的数组不能为空") |
| 26 | private List<String> fields; | 27 | private List<String> fields; |
| 27 | 28 | ||
| 29 | + @Schema(description = "表单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 30 | + @NotNull(message = "表单状态不能为空") | ||
| 31 | + private Integer status; // 参见 CommonStatusEnum 枚举 | ||
| 32 | + | ||
| 33 | + @Schema(description = "备注", example = "我是备注") | ||
| 34 | + private String remark; | ||
| 35 | + | ||
| 28 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | 36 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 29 | private LocalDateTime createTime; | 37 | private LocalDateTime createTime; |
| 30 | 38 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSaveReqVO.java
| @@ -5,11 +5,16 @@ import lombok.*; | @@ -5,11 +5,16 @@ import lombok.*; | ||
| 5 | import jakarta.validation.constraints.NotNull; | 5 | import jakarta.validation.constraints.NotNull; |
| 6 | import java.util.List; | 6 | import java.util.List; |
| 7 | 7 | ||
| 8 | -@Schema(description = "管理后台 - 动态表单创建 Request VO") | 8 | +@Schema(description = "管理后台 - 动态表单创建/更新 Request VO") |
| 9 | @Data | 9 | @Data |
| 10 | -@EqualsAndHashCode(callSuper = true) | ||
| 11 | -@ToString(callSuper = true) | ||
| 12 | -public class BpmFormCreateReqVO extends BpmFormBaseVO { | 10 | +public class BpmFormSaveReqVO { |
| 11 | + | ||
| 12 | + @Schema(description = "表单编号", example = "1024") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 16 | + @NotNull(message = "表单名称不能为空") | ||
| 17 | + private String name; | ||
| 13 | 18 | ||
| 14 | @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) | 19 | @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) |
| 15 | @NotNull(message = "表单的配置不能为空") | 20 | @NotNull(message = "表单的配置不能为空") |
| @@ -19,4 +24,11 @@ public class BpmFormCreateReqVO extends BpmFormBaseVO { | @@ -19,4 +24,11 @@ public class BpmFormCreateReqVO extends BpmFormBaseVO { | ||
| 19 | @NotNull(message = "表单项的数组不能为空") | 24 | @NotNull(message = "表单项的数组不能为空") |
| 20 | private List<String> fields; | 25 | private List<String> fields; |
| 21 | 26 | ||
| 27 | + @Schema(description = "表单状态-参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 28 | + @NotNull(message = "表单状态不能为空") | ||
| 29 | + private Integer status; | ||
| 30 | + | ||
| 31 | + @Schema(description = "备注", example = "我是备注") | ||
| 32 | + private String remark; | ||
| 33 | + | ||
| 22 | } | 34 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -@Schema(description = "管理后台 - 流程表单精简 Response VO") | ||
| 7 | -@Data | ||
| 8 | -public class BpmFormSimpleRespVO { | ||
| 9 | - | ||
| 10 | - @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 11 | - private Long id; | ||
| 12 | - | ||
| 13 | - @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 14 | - private String name; | ||
| 15 | - | ||
| 16 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; | ||
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 3 | -import lombok.*; | ||
| 4 | -import jakarta.validation.constraints.*; | ||
| 5 | -import java.util.List; | ||
| 6 | - | ||
| 7 | -@Schema(description = "管理后台 - 动态表单更新 Request VO") | ||
| 8 | -@Data | ||
| 9 | -@EqualsAndHashCode(callSuper = true) | ||
| 10 | -@ToString(callSuper = true) | ||
| 11 | -public class BpmFormUpdateReqVO extends BpmFormBaseVO { | ||
| 12 | - | ||
| 13 | - @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 14 | - @NotNull(message = "表单编号不能为空") | ||
| 15 | - private Long id; | ||
| 16 | - | ||
| 17 | - @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 18 | - @NotNull(message = "表单的配置不能为空") | ||
| 19 | - private String conf; | ||
| 20 | - | ||
| 21 | - @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 22 | - @NotNull(message = "表单项的数组不能为空") | ||
| 23 | - private List<String> fields; | ||
| 24 | - | ||
| 25 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; | ||
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 3 | -import lombok.*; | ||
| 4 | - | ||
| 5 | -@Schema(description = "管理后台 - 用户组创建 Request VO") | ||
| 6 | -@Data | ||
| 7 | -@EqualsAndHashCode(callSuper = true) | ||
| 8 | -@ToString(callSuper = true) | ||
| 9 | -public class BpmUserGroupCreateReqVO extends BpmUserGroupBaseVO { | ||
| 10 | - | ||
| 11 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupPageReqVO.java
| @@ -12,10 +12,11 @@ import java.time.LocalDateTime; | @@ -12,10 +12,11 @@ import java.time.LocalDateTime; | ||
| 12 | 12 | ||
| 13 | @Schema(description = "管理后台 - 用户组分页 Request VO") | 13 | @Schema(description = "管理后台 - 用户组分页 Request VO") |
| 14 | @Data | 14 | @Data |
| 15 | -@EqualsAndHashCode(callSuper = true) | ||
| 16 | -@ToString(callSuper = true) | ||
| 17 | public class BpmUserGroupPageReqVO extends PageParam { | 15 | public class BpmUserGroupPageReqVO extends PageParam { |
| 18 | 16 | ||
| 17 | + @Schema(description = "编号", example = "1024") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 19 | @Schema(description = "组名", example = "芋道") | 20 | @Schema(description = "组名", example = "芋道") |
| 20 | private String name; | 21 | private String name; |
| 21 | 22 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.*; | 4 | +import lombok.Data; |
| 5 | 5 | ||
| 6 | import java.time.LocalDateTime; | 6 | import java.time.LocalDateTime; |
| 7 | +import java.util.Set; | ||
| 7 | 8 | ||
| 8 | @Schema(description = "管理后台 - 用户组 Response VO") | 9 | @Schema(description = "管理后台 - 用户组 Response VO") |
| 9 | @Data | 10 | @Data |
| 10 | -@EqualsAndHashCode(callSuper = true) | ||
| 11 | -@ToString(callSuper = true) | ||
| 12 | -public class BpmUserGroupRespVO extends BpmUserGroupBaseVO { | 11 | +public class BpmUserGroupRespVO { |
| 13 | 12 | ||
| 14 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | 13 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 15 | private Long id; | 14 | private Long id; |
| 16 | 15 | ||
| 16 | + @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 17 | + private String name; | ||
| 18 | + | ||
| 19 | + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") | ||
| 20 | + private String description; | ||
| 21 | + | ||
| 22 | + @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") | ||
| 23 | + private Set<Long> userIds; | ||
| 24 | + | ||
| 25 | + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 26 | + private Integer status; | ||
| 27 | + | ||
| 17 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | 28 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 18 | private LocalDateTime createTime; | 29 | private LocalDateTime createTime; |
| 19 | 30 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSaveReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; |
| 2 | - | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 2 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | import jakarta.validation.constraints.NotNull; | 3 | import jakarta.validation.constraints.NotNull; |
| 4 | +import lombok.*; | ||
| 5 | + | ||
| 7 | import java.util.Set; | 6 | import java.util.Set; |
| 8 | 7 | ||
| 9 | -/** | ||
| 10 | -* 用户组 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 11 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 12 | -*/ | 8 | +@Schema(description = "管理后台 - 用户组创建/修改 Request VO") |
| 13 | @Data | 9 | @Data |
| 14 | -public class BpmUserGroupBaseVO { | 10 | +public class BpmUserGroupSaveReqVO { |
| 11 | + | ||
| 12 | + @Schema(description = "编号", example = "1024") | ||
| 13 | + private Long id; | ||
| 15 | 14 | ||
| 16 | @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | 15 | @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") |
| 17 | @NotNull(message = "组名不能为空") | 16 | @NotNull(message = "组名不能为空") |
| 18 | private String name; | 17 | private String name; |
| 19 | 18 | ||
| 20 | - @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") | ||
| 21 | - @NotNull(message = "描述不能为空") | 19 | + @Schema(description = "描述", example = "芋道源码") |
| 22 | private String description; | 20 | private String description; |
| 23 | 21 | ||
| 24 | @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") | 22 | @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") |
| 25 | @NotNull(message = "成员编号数组不能为空") | 23 | @NotNull(message = "成员编号数组不能为空") |
| 26 | - private Set<Long> memberUserIds; | 24 | + private Set<Long> userIds; |
| 27 | 25 | ||
| 28 | @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 26 | @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 29 | @NotNull(message = "状态不能为空") | 27 | @NotNull(message = "状态不能为空") |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.AllArgsConstructor; | ||
| 5 | -import lombok.Data; | ||
| 6 | -import lombok.NoArgsConstructor; | ||
| 7 | - | ||
| 8 | -@Schema(description = "管理后台 - 用户组精简信息 Response VO") | ||
| 9 | -@Data | ||
| 10 | -@NoArgsConstructor | ||
| 11 | -@AllArgsConstructor | ||
| 12 | -public class BpmUserGroupSimpleRespVO { | ||
| 13 | - | ||
| 14 | - @Schema(description = "用户组编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 15 | - private Long id; | ||
| 16 | - | ||
| 17 | - @Schema(description = "用户组名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 18 | - private String name; | ||
| 19 | - | ||
| 20 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.*; | ||
| 5 | -import jakarta.validation.constraints.*; | ||
| 6 | - | ||
| 7 | -@Schema(description = "管理后台 - 用户组更新 Request VO") | ||
| 8 | -@Data | ||
| 9 | -@EqualsAndHashCode(callSuper = true) | ||
| 10 | -@ToString(callSuper = true) | ||
| 11 | -public class BpmUserGroupUpdateReqVO extends BpmUserGroupBaseVO { | ||
| 12 | - | ||
| 13 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 14 | - @NotNull(message = "编号不能为空") | ||
| 15 | - private Long id; | ||
| 16 | - | ||
| 17 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/listener/BpmProcessListenerPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.listener; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 5 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 6 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.EqualsAndHashCode; | ||
| 9 | +import lombok.ToString; | ||
| 10 | + | ||
| 11 | +@Schema(description = "管理后台 - BPM 流程监听器分页 Request VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class BpmProcessListenerPageReqVO extends PageParam { | ||
| 16 | + | ||
| 17 | + @Schema(description = "监听器名字", example = "赵六") | ||
| 18 | + private String name; | ||
| 19 | + | ||
| 20 | + @Schema(description = "监听器类型", example = "execution") | ||
| 21 | + private String type; | ||
| 22 | + | ||
| 23 | + @Schema(description = "监听事件", example = "start") | ||
| 24 | + private String event; | ||
| 25 | + | ||
| 26 | + @Schema(description = "状态", example = "1") | ||
| 27 | + @InEnum(CommonStatusEnum.class) | ||
| 28 | + private Integer status; | ||
| 29 | + | ||
| 30 | +} | ||
| 0 | \ No newline at end of file | 31 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/listener/BpmProcessListenerRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.listener; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import java.time.LocalDateTime; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - BPM 流程监听器 Response VO") | ||
| 9 | +@Data | ||
| 10 | +public class BpmProcessListenerRespVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13089") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "监听器名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | ||
| 16 | + private String name; | ||
| 17 | + | ||
| 18 | + @Schema(description = "监听器类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "execution") | ||
| 19 | + private String type; | ||
| 20 | + | ||
| 21 | + @Schema(description = "监听器状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 22 | + private Integer status; | ||
| 23 | + | ||
| 24 | + @Schema(description = "监听事件", requiredMode = Schema.RequiredMode.REQUIRED, example = "start") | ||
| 25 | + private String event; | ||
| 26 | + | ||
| 27 | + @Schema(description = "监听器值类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "class") | ||
| 28 | + private String valueType; | ||
| 29 | + | ||
| 30 | + @Schema(description = "监听器值", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 31 | + private String value; | ||
| 32 | + | ||
| 33 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 34 | + private LocalDateTime createTime; | ||
| 35 | + | ||
| 36 | +} | ||
| 0 | \ No newline at end of file | 37 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/listener/BpmProcessListenerSaveReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.listener; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import jakarta.validation.constraints.NotEmpty; | ||
| 5 | +import jakarta.validation.constraints.NotNull; | ||
| 6 | +import lombok.Data; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - BPM 流程监听器新增/修改 Request VO") | ||
| 9 | +@Data | ||
| 10 | +public class BpmProcessListenerSaveReqVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13089") | ||
| 13 | + private Long id; | ||
| 14 | + | ||
| 15 | + @Schema(description = "监听器名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | ||
| 16 | + @NotEmpty(message = "监听器名字不能为空") | ||
| 17 | + private String name; | ||
| 18 | + | ||
| 19 | + @Schema(description = "监听器类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "execution") | ||
| 20 | + @NotEmpty(message = "监听器类型不能为空") | ||
| 21 | + private String type; | ||
| 22 | + | ||
| 23 | + @Schema(description = "监听器状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 24 | + @NotNull(message = "监听器状态不能为空") | ||
| 25 | + private Integer status; | ||
| 26 | + | ||
| 27 | + @Schema(description = "监听事件", requiredMode = Schema.RequiredMode.REQUIRED, example = "start") | ||
| 28 | + @NotEmpty(message = "监听事件不能为空") | ||
| 29 | + private String event; | ||
| 30 | + | ||
| 31 | + @Schema(description = "监听器值类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "class") | ||
| 32 | + @NotEmpty(message = "监听器值类型不能为空") | ||
| 33 | + private String valueType; | ||
| 34 | + | ||
| 35 | + @Schema(description = "监听器值", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 36 | + @NotEmpty(message = "监听器值不能为空") | ||
| 37 | + private String value; | ||
| 38 | + | ||
| 39 | +} | ||
| 0 | \ No newline at end of file | 40 | \ No newline at end of file |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java
| @@ -10,8 +10,6 @@ import jakarta.validation.constraints.NotNull; | @@ -10,8 +10,6 @@ import jakarta.validation.constraints.NotNull; | ||
| 10 | 10 | ||
| 11 | @Schema(description = "管理后台 - 流程模型的导入 Request VO 相比流程模型的新建来说,只是多了一个 bpmnFile 文件") | 11 | @Schema(description = "管理后台 - 流程模型的导入 Request VO 相比流程模型的新建来说,只是多了一个 bpmnFile 文件") |
| 12 | @Data | 12 | @Data |
| 13 | -@EqualsAndHashCode(callSuper = true) | ||
| 14 | -@ToString(callSuper = true) | ||
| 15 | public class BpmModeImportReqVO extends BpmModelCreateReqVO { | 13 | public class BpmModeImportReqVO extends BpmModelCreateReqVO { |
| 16 | 14 | ||
| 17 | @Schema(description = "BPMN 文件", requiredMode = Schema.RequiredMode.REQUIRED) | 15 | @Schema(description = "BPMN 文件", requiredMode = Schema.RequiredMode.REQUIRED) |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; | ||
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 3 | -import lombok.Data; | ||
| 4 | - | ||
| 5 | -import jakarta.validation.constraints.NotEmpty; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | -* 流程模型 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 9 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 10 | -*/ | ||
| 11 | -@Data | ||
| 12 | -public class BpmModelBaseVO { | ||
| 13 | - | ||
| 14 | - @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao") | ||
| 15 | - @NotEmpty(message = "流程标识不能为空") | ||
| 16 | - private String key; | ||
| 17 | - | ||
| 18 | - @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 19 | - @NotEmpty(message = "流程名称不能为空") | ||
| 20 | - private String name; | ||
| 21 | - | ||
| 22 | - @Schema(description = "流程描述", example = "我是描述") | ||
| 23 | - private String description; | ||
| 24 | - | ||
| 25 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") | ||
| 26 | - @NotEmpty(message = "流程分类不能为空") | ||
| 27 | - private String category; | ||
| 28 | - | ||
| 29 | - @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") | ||
| 30 | - private Integer formType; | ||
| 31 | - @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") | ||
| 32 | - private Long formId; | ||
| 33 | - @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", | ||
| 34 | - example = "/bpm/oa/leave/create") | ||
| 35 | - private String formCustomCreatePath; | ||
| 36 | - @Schema(description = "自定义表单的查看路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", | ||
| 37 | - example = "/bpm/oa/leave/view") | ||
| 38 | - private String formCustomViewPath; | ||
| 39 | - | ||
| 40 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | - | ||
| 8 | -import java.time.LocalDateTime; | ||
| 9 | - | ||
| 10 | -@Schema(description = "管理后台 - 流程模型的分页的每一项 Response VO") | ||
| 11 | -@Data | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmModelPageItemRespVO extends BpmModelBaseVO { | ||
| 15 | - | ||
| 16 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 17 | - private String id; | ||
| 18 | - | ||
| 19 | - @Schema(description = "表单名字", example = "请假表单") | ||
| 20 | - private String formName; | ||
| 21 | - | ||
| 22 | - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 23 | - private LocalDateTime createTime; | ||
| 24 | - | ||
| 25 | - /** | ||
| 26 | - * 最新部署的流程定义 | ||
| 27 | - */ | ||
| 28 | - private ProcessDefinition processDefinition; | ||
| 29 | - | ||
| 30 | - @Schema(description = "流程定义") | ||
| 31 | - @Data | ||
| 32 | - public static class ProcessDefinition { | ||
| 33 | - | ||
| 34 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 35 | - private String id; | ||
| 36 | - | ||
| 37 | - @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 38 | - private Integer version; | ||
| 39 | - | ||
| 40 | - @Schema(description = "部署时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 41 | - private LocalDateTime deploymentTime; | ||
| 42 | - | ||
| 43 | - @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 44 | - private Integer suspensionState; | ||
| 45 | - | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageReqVO.java
| @@ -9,17 +9,15 @@ import lombok.ToString; | @@ -9,17 +9,15 @@ import lombok.ToString; | ||
| 9 | 9 | ||
| 10 | @Schema(description = "管理后台 - 流程模型分页 Request VO") | 10 | @Schema(description = "管理后台 - 流程模型分页 Request VO") |
| 11 | @Data | 11 | @Data |
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | public class BpmModelPageReqVO extends PageParam { | 12 | public class BpmModelPageReqVO extends PageParam { |
| 15 | 13 | ||
| 16 | - @Schema(description = "标识-精准匹配", example = "process1641042089407") | 14 | + @Schema(description = "标识,精准匹配", example = "process1641042089407") |
| 17 | private String key; | 15 | private String key; |
| 18 | 16 | ||
| 19 | - @Schema(description = "名字-模糊匹配", example = "芋道") | 17 | + @Schema(description = "名字,模糊匹配", example = "芋道") |
| 20 | private String name; | 18 | private String name; |
| 21 | 19 | ||
| 22 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") | 20 | + @Schema(description = "流程分类", example = "1") |
| 23 | private String category; | 21 | private String category; |
| 24 | 22 | ||
| 25 | } | 23 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 5 | import lombok.Data; |
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | 6 | ||
| 8 | import java.time.LocalDateTime; | 7 | import java.time.LocalDateTime; |
| 9 | 8 | ||
| 10 | -@Schema(description = "管理后台 - 流程模型的创建 Request VO") | 9 | +@Schema(description = "管理后台 - 流程模型 Response VO") |
| 11 | @Data | 10 | @Data |
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmModelRespVO extends BpmModelBaseVO { | 11 | +public class BpmModelRespVO { |
| 15 | 12 | ||
| 16 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | 13 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 17 | private String id; | 14 | private String id; |
| 18 | 15 | ||
| 19 | - @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 20 | - private String bpmnXml; | 16 | + @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao") |
| 17 | + private String key; | ||
| 18 | + | ||
| 19 | + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 20 | + private String name; | ||
| 21 | + | ||
| 22 | + @Schema(description = "流程图标", example = "https://www.iocoder.cn/yudao.jpg") | ||
| 23 | + private String icon; | ||
| 24 | + | ||
| 25 | + @Schema(description = "流程描述", example = "我是描述") | ||
| 26 | + private String description; | ||
| 27 | + | ||
| 28 | + @Schema(description = "流程分类编码", example = "1") | ||
| 29 | + private String category; | ||
| 30 | + @Schema(description = "流程分类名字", example = "请假") | ||
| 31 | + private String categoryName; | ||
| 32 | + | ||
| 33 | + @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") | ||
| 34 | + private Integer formType; | ||
| 35 | + | ||
| 36 | + @Schema(description = "表单编号", example = "1024") | ||
| 37 | + private Long formId; // 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空 | ||
| 38 | + @Schema(description = "表单名字", example = "请假表单") | ||
| 39 | + private String formName; | ||
| 40 | + | ||
| 41 | + @Schema(description = "自定义表单的提交路径", example = "/bpm/oa/leave/create") | ||
| 42 | + private String formCustomCreatePath; // 使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空 | ||
| 43 | + @Schema(description = "自定义表单的查看路径", example = "/bpm/oa/leave/view") | ||
| 44 | + private String formCustomViewPath; // ,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空 | ||
| 21 | 45 | ||
| 22 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | 46 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 23 | private LocalDateTime createTime; | 47 | private LocalDateTime createTime; |
| 24 | 48 | ||
| 49 | + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 50 | + private String bpmnXml; | ||
| 51 | + | ||
| 52 | + /** | ||
| 53 | + * 最新部署的流程定义 | ||
| 54 | + */ | ||
| 55 | + private BpmProcessDefinitionRespVO processDefinition; | ||
| 56 | + | ||
| 25 | } | 57 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 4 | +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 5 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | import jakarta.validation.constraints.NotEmpty; | 6 | import jakarta.validation.constraints.NotEmpty; |
| 7 | +import lombok.Data; | ||
| 8 | +import org.hibernate.validator.constraints.URL; | ||
| 7 | 9 | ||
| 8 | @Schema(description = "管理后台 - 流程模型的更新 Request VO") | 10 | @Schema(description = "管理后台 - 流程模型的更新 Request VO") |
| 9 | @Data | 11 | @Data |
| @@ -16,16 +18,21 @@ public class BpmModelUpdateReqVO { | @@ -16,16 +18,21 @@ public class BpmModelUpdateReqVO { | ||
| 16 | @Schema(description = "流程名称", example = "芋道") | 18 | @Schema(description = "流程名称", example = "芋道") |
| 17 | private String name; | 19 | private String name; |
| 18 | 20 | ||
| 21 | + @Schema(description = "流程图标", example = "https://www.iocoder.cn/yudao.jpg") | ||
| 22 | + @URL(message = "流程图标格式不正确") | ||
| 23 | + private String icon; | ||
| 24 | + | ||
| 19 | @Schema(description = "流程描述", example = "我是描述") | 25 | @Schema(description = "流程描述", example = "我是描述") |
| 20 | private String description; | 26 | private String description; |
| 21 | 27 | ||
| 22 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") | 28 | + @Schema(description = "流程分类", example = "1") |
| 23 | private String category; | 29 | private String category; |
| 24 | 30 | ||
| 25 | @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) | 31 | @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) |
| 26 | private String bpmnXml; | 32 | private String bpmnXml; |
| 27 | 33 | ||
| 28 | @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") | 34 | @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") |
| 35 | + @InEnum(BpmModelFormTypeEnum.class) | ||
| 29 | private Integer formType; | 36 | private Integer formType; |
| 30 | @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") | 37 | @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") |
| 31 | private Long formId; | 38 | private Long formId; |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java
| @@ -13,8 +13,8 @@ public class BpmModelUpdateStateReqVO { | @@ -13,8 +13,8 @@ public class BpmModelUpdateStateReqVO { | ||
| 13 | @NotNull(message = "编号不能为空") | 13 | @NotNull(message = "编号不能为空") |
| 14 | private String id; | 14 | private String id; |
| 15 | 15 | ||
| 16 | - @Schema(description = "状态-见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 16 | + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 17 | @NotNull(message = "状态不能为空") | 17 | @NotNull(message = "状态不能为空") |
| 18 | - private Integer state; | 18 | + private Integer state; // 参见 Flowable SuspensionState 枚举 |
| 19 | 19 | ||
| 20 | } | 20 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionListReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | -import lombok.Data; | ||
| 6 | -import lombok.EqualsAndHashCode; | ||
| 7 | -import lombok.ToString; | ||
| 8 | - | ||
| 9 | -@Schema(description = "管理后台 - 流程定义列表 Request VO") | ||
| 10 | -@Data | ||
| 11 | -@ToString(callSuper = true) | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -public class BpmProcessDefinitionListReqVO extends PageParam { | ||
| 14 | - | ||
| 15 | - @Schema(description = "中断状态-参见 SuspensionState 枚举", example = "1") | ||
| 16 | - private Integer suspensionState; | ||
| 17 | - | ||
| 18 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | - | ||
| 8 | -import java.time.LocalDateTime; | ||
| 9 | - | ||
| 10 | -@Schema(description = "管理后台 - 流程定义的分页的每一项 Response VO") | ||
| 11 | -@Data | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmProcessDefinitionPageItemRespVO extends BpmProcessDefinitionRespVO { | ||
| 15 | - | ||
| 16 | - @Schema(description = "表单名字", example = "请假表单") | ||
| 17 | - private String formName; | ||
| 18 | - | ||
| 19 | - @Schema(description = "部署时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 20 | - private LocalDateTime deploymentTime; | ||
| 21 | - | ||
| 22 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageReqVO.java
| @@ -8,8 +8,6 @@ import lombok.ToString; | @@ -8,8 +8,6 @@ import lombok.ToString; | ||
| 8 | 8 | ||
| 9 | @Schema(description = "管理后台 - 流程定义分页 Request VO") | 9 | @Schema(description = "管理后台 - 流程定义分页 Request VO") |
| 10 | @Data | 10 | @Data |
| 11 | -@ToString(callSuper = true) | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | public class BpmProcessDefinitionPageReqVO extends PageParam { | 11 | public class BpmProcessDefinitionPageReqVO extends PageParam { |
| 14 | 12 | ||
| 15 | @Schema(description = "标识-精准匹配", example = "process1641042089407") | 13 | @Schema(description = "标识-精准匹配", example = "process1641042089407") |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
| 5 | 5 | ||
| 6 | -import jakarta.validation.constraints.NotEmpty; | 6 | +import java.time.LocalDateTime; |
| 7 | import java.util.List; | 7 | import java.util.List; |
| 8 | 8 | ||
| 9 | @Schema(description = "管理后台 - 流程定义 Response VO") | 9 | @Schema(description = "管理后台 - 流程定义 Response VO") |
| @@ -17,20 +17,28 @@ public class BpmProcessDefinitionRespVO { | @@ -17,20 +17,28 @@ public class BpmProcessDefinitionRespVO { | ||
| 17 | private Integer version; | 17 | private Integer version; |
| 18 | 18 | ||
| 19 | @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | 19 | @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") |
| 20 | - @NotEmpty(message = "流程名称不能为空") | ||
| 21 | private String name; | 20 | private String name; |
| 22 | 21 | ||
| 22 | + @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") | ||
| 23 | + private String key; | ||
| 24 | + | ||
| 25 | + @Schema(description = "流程图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/yudao.jpg") | ||
| 26 | + private String icon; | ||
| 27 | + | ||
| 23 | @Schema(description = "流程描述", example = "我是描述") | 28 | @Schema(description = "流程描述", example = "我是描述") |
| 24 | private String description; | 29 | private String description; |
| 25 | 30 | ||
| 26 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") | ||
| 27 | - @NotEmpty(message = "流程分类不能为空") | 31 | + @Schema(description = "流程分类", example = "1") |
| 28 | private String category; | 32 | private String category; |
| 33 | + @Schema(description = "流程分类名字", example = "请假") | ||
| 34 | + private String categoryName; | ||
| 29 | 35 | ||
| 30 | @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") | 36 | @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") |
| 31 | private Integer formType; | 37 | private Integer formType; |
| 32 | @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") | 38 | @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") |
| 33 | private Long formId; | 39 | private Long formId; |
| 40 | + @Schema(description = "表单名字", example = "请假表单") | ||
| 41 | + private String formName; | ||
| 34 | @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) | 42 | @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) |
| 35 | private String formConf; | 43 | private String formConf; |
| 36 | @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) | 44 | @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) |
| @@ -43,6 +51,27 @@ public class BpmProcessDefinitionRespVO { | @@ -43,6 +51,27 @@ public class BpmProcessDefinitionRespVO { | ||
| 43 | private String formCustomViewPath; | 51 | private String formCustomViewPath; |
| 44 | 52 | ||
| 45 | @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 53 | @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 46 | - private Integer suspensionState; | 54 | + private Integer suspensionState; // 参见 SuspensionState 枚举 |
| 55 | + | ||
| 56 | + @Schema(description = "部署时间") | ||
| 57 | + private LocalDateTime deploymentTime; // 需要从对应的 Deployment 读取,非必须返回 | ||
| 58 | + | ||
| 59 | + @Schema(description = "BPMN XML") | ||
| 60 | + private String bpmnXml; // 需要从对应的 BpmnModel 读取,非必须返回 | ||
| 61 | + | ||
| 62 | + @Schema(description = "发起用户需要选择审批人的任务数组") | ||
| 63 | + private List<UserTask> startUserSelectTasks; // 需要从对应的 BpmnModel 读取,非必须返回 | ||
| 64 | + | ||
| 65 | + @Schema(description = "BPMN UserTask 用户任务") | ||
| 66 | + @Data | ||
| 67 | + public static class UserTask { | ||
| 68 | + | ||
| 69 | + @Schema(description = "任务标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "sudo") | ||
| 70 | + private String id; | ||
| 71 | + | ||
| 72 | + @Schema(description = "任务名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") | ||
| 73 | + private String name; | ||
| 74 | + | ||
| 75 | + } | ||
| 47 | 76 | ||
| 48 | } | 77 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -import jakarta.validation.constraints.NotNull; | ||
| 7 | -import java.util.Set; | ||
| 8 | - | ||
| 9 | -/** | ||
| 10 | - * 流程任务分配规则 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 11 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 12 | - */ | ||
| 13 | -@Data | ||
| 14 | -public class BpmTaskAssignRuleBaseVO { | ||
| 15 | - | ||
| 16 | - @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bpm_task_assign_rule_type") | ||
| 17 | - @NotNull(message = "规则类型不能为空") | ||
| 18 | - private Integer type; | ||
| 19 | - | ||
| 20 | - @Schema(description = "规则值数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") | ||
| 21 | - @NotNull(message = "规则值数组不能为空") | ||
| 22 | - private Set<Long> options; | ||
| 23 | - | ||
| 24 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | - | ||
| 8 | -import jakarta.validation.constraints.NotEmpty; | ||
| 9 | - | ||
| 10 | -@Schema(description = "管理后台 - 流程任务分配规则的创建 Request VO") | ||
| 11 | -@Data | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmTaskAssignRuleCreateReqVO extends BpmTaskAssignRuleBaseVO { | ||
| 15 | - | ||
| 16 | - @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 17 | - @NotEmpty(message = "流程模型的编号不能为空") | ||
| 18 | - private String modelId; | ||
| 19 | - | ||
| 20 | - @Schema(description = "流程任务定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 21 | - @NotEmpty(message = "流程任务定义的编号不能为空") | ||
| 22 | - private String taskDefinitionKey; | ||
| 23 | - | ||
| 24 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | - | ||
| 8 | -@Schema(description = "管理后台 - 流程任务分配规则的 Response VO") | ||
| 9 | -@Data | ||
| 10 | -@EqualsAndHashCode(callSuper = true) | ||
| 11 | -@ToString(callSuper = true) | ||
| 12 | -public class BpmTaskAssignRuleRespVO extends BpmTaskAssignRuleBaseVO { | ||
| 13 | - | ||
| 14 | - @Schema(description = "任务分配规则的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 15 | - private Long id; | ||
| 16 | - | ||
| 17 | - @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 18 | - private String modelId; | ||
| 19 | - | ||
| 20 | - @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") | ||
| 21 | - private String processDefinitionId; | ||
| 22 | - | ||
| 23 | - @Schema(description = "流程任务定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 24 | - private String taskDefinitionKey; | ||
| 25 | - @Schema(description = "流程任务定义的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "关注芋道") | ||
| 26 | - private String taskDefinitionName; | ||
| 27 | - | ||
| 28 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | - | ||
| 8 | -import jakarta.validation.constraints.NotNull; | ||
| 9 | - | ||
| 10 | -@Schema(description = "管理后台 - 流程任务分配规则的更新 Request VO") | ||
| 11 | -@Data | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmTaskAssignRuleUpdateReqVO extends BpmTaskAssignRuleBaseVO { | ||
| 15 | - | ||
| 16 | - @Schema(description = "任务分配规则的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 17 | - @NotNull(message = "任务分配规则的编号不能为空") | ||
| 18 | - private Long id; | ||
| 19 | - | ||
| 20 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 3 | import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; | 6 | import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; |
| 4 | import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; |
| 5 | import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveRespVO; | 8 | import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveRespVO; |
| 6 | -import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert; | ||
| 7 | import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; | 9 | import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; |
| 8 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 9 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 10 | import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService; | 10 | import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService; |
| 11 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 12 | -import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | import io.swagger.v3.oas.annotations.Operation; | 11 | import io.swagger.v3.oas.annotations.Operation; |
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 14 | +import jakarta.annotation.Resource; | ||
| 15 | +import jakarta.validation.Valid; | ||
| 14 | import org.springframework.security.access.prepost.PreAuthorize; | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 15 | import org.springframework.validation.annotation.Validated; | 17 | import org.springframework.validation.annotation.Validated; |
| 16 | import org.springframework.web.bind.annotation.*; | 18 | import org.springframework.web.bind.annotation.*; |
| 17 | 19 | ||
| 18 | -import jakarta.annotation.Resource; | ||
| 19 | -import jakarta.validation.Valid; | ||
| 20 | - | ||
| 21 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 22 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | 21 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| 23 | 22 | ||
| @@ -49,7 +48,7 @@ public class BpmOALeaveController { | @@ -49,7 +48,7 @@ public class BpmOALeaveController { | ||
| 49 | @Parameter(name = "id", description = "编号", required = true, example = "1024") | 48 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 50 | public CommonResult<BpmOALeaveRespVO> getLeave(@RequestParam("id") Long id) { | 49 | public CommonResult<BpmOALeaveRespVO> getLeave(@RequestParam("id") Long id) { |
| 51 | BpmOALeaveDO leave = leaveService.getLeave(id); | 50 | BpmOALeaveDO leave = leaveService.getLeave(id); |
| 52 | - return success(BpmOALeaveConvert.INSTANCE.convert(leave)); | 51 | + return success(BeanUtils.toBean(leave, BpmOALeaveRespVO.class)); |
| 53 | } | 52 | } |
| 54 | 53 | ||
| 55 | @GetMapping("/page") | 54 | @GetMapping("/page") |
| @@ -57,7 +56,7 @@ public class BpmOALeaveController { | @@ -57,7 +56,7 @@ public class BpmOALeaveController { | ||
| 57 | @Operation(summary = "获得请假申请分页") | 56 | @Operation(summary = "获得请假申请分页") |
| 58 | public CommonResult<PageResult<BpmOALeaveRespVO>> getLeavePage(@Valid BpmOALeavePageReqVO pageVO) { | 57 | public CommonResult<PageResult<BpmOALeaveRespVO>> getLeavePage(@Valid BpmOALeavePageReqVO pageVO) { |
| 59 | PageResult<BpmOALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO); | 58 | PageResult<BpmOALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO); |
| 60 | - return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult)); | 59 | + return success(BeanUtils.toBean(pageResult, BpmOALeaveRespVO.class)); |
| 61 | } | 60 | } |
| 62 | 61 | ||
| 63 | } | 62 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.*; | ||
| 5 | -import java.time.LocalDateTime; | ||
| 6 | -import jakarta.validation.constraints.*; | ||
| 7 | -import org.springframework.format.annotation.DateTimeFormat; | ||
| 8 | - | ||
| 9 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 10 | - | ||
| 11 | -/** | ||
| 12 | -* 请假申请 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 13 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 14 | -*/ | ||
| 15 | -@Data | ||
| 16 | -public class BpmOALeaveBaseVO { | ||
| 17 | - | ||
| 18 | - @Schema(description = "请假的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 19 | - @NotNull(message = "开始时间不能为空") | ||
| 20 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 21 | - private LocalDateTime startTime; | ||
| 22 | - @Schema(description = "请假的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 23 | - @NotNull(message = "结束时间不能为空") | ||
| 24 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 25 | - private LocalDateTime endTime; | ||
| 26 | - | ||
| 27 | - @Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 28 | - private Integer type; | ||
| 29 | - | ||
| 30 | - @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") | ||
| 31 | - private String reason; | ||
| 32 | - | ||
| 33 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveCreateReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; |
| 2 | + | ||
| 2 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | +import jakarta.validation.constraints.AssertTrue; | ||
| 5 | +import jakarta.validation.constraints.NotNull; | ||
| 3 | import lombok.Data; | 6 | import lombok.Data; |
| 4 | -import lombok.EqualsAndHashCode; | ||
| 5 | -import lombok.ToString; | 7 | +import org.springframework.format.annotation.DateTimeFormat; |
| 6 | 8 | ||
| 7 | -import jakarta.validation.constraints.AssertTrue; | 9 | +import java.time.LocalDateTime; |
| 10 | +import java.util.List; | ||
| 11 | +import java.util.Map; | ||
| 12 | + | ||
| 13 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 8 | 14 | ||
| 9 | @Schema(description = "管理后台 - 请假申请创建 Request VO") | 15 | @Schema(description = "管理后台 - 请假申请创建 Request VO") |
| 10 | @Data | 16 | @Data |
| 11 | -@EqualsAndHashCode(callSuper = true) | ||
| 12 | -@ToString(callSuper = true) | ||
| 13 | -public class BpmOALeaveCreateReqVO extends BpmOALeaveBaseVO { | 17 | +public class BpmOALeaveCreateReqVO { |
| 18 | + | ||
| 19 | + @Schema(description = "请假的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 20 | + @NotNull(message = "开始时间不能为空") | ||
| 21 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 22 | + private LocalDateTime startTime; | ||
| 23 | + | ||
| 24 | + @Schema(description = "请假的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 25 | + @NotNull(message = "结束时间不能为空") | ||
| 26 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 27 | + private LocalDateTime endTime; | ||
| 28 | + | ||
| 29 | + @Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 30 | + private Integer type; | ||
| 31 | + | ||
| 32 | + @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") | ||
| 33 | + private String reason; | ||
| 34 | + | ||
| 35 | + @Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}") | ||
| 36 | + private Map<String, List<Long>> startUserSelectAssignees; | ||
| 14 | 37 | ||
| 15 | @AssertTrue(message = "结束时间,需要在开始时间之后") | 38 | @AssertTrue(message = "结束时间,需要在开始时间之后") |
| 16 | public boolean isEndTimeValid() { | 39 | public boolean isEndTimeValid() { |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeavePageReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 3 | -import lombok.*; | ||
| 4 | -import java.time.LocalDateTime; | 2 | + |
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 6 | import org.springframework.format.annotation.DateTimeFormat; | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 7 | 9 | ||
| 10 | +import java.time.LocalDateTime; | ||
| 11 | + | ||
| 8 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 9 | 13 | ||
| 10 | @Schema(description = "管理后台 - 请假申请分页 Request VO") | 14 | @Schema(description = "管理后台 - 请假申请分页 Request VO") |
| 11 | @Data | 15 | @Data |
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | public class BpmOALeavePageReqVO extends PageParam { | 16 | public class BpmOALeavePageReqVO extends PageParam { |
| 15 | 17 | ||
| 16 | - @Schema(description = "状态-参见 bpm_process_instance_result 枚举", example = "1") | ||
| 17 | - private Integer result; | 18 | + @Schema(description = "状态", example = "1") |
| 19 | + private Integer status; // 参见 BpmProcessInstanceResultEnum 枚举 | ||
| 18 | 20 | ||
| 19 | - @Schema(description = "请假类型-参见 bpm_oa_type", example = "1") | 21 | + @Schema(description = "请假类型,参见 bpm_oa_type", example = "1") |
| 20 | private Integer type; | 22 | private Integer type; |
| 21 | 23 | ||
| 22 | - @Schema(description = "原因-模糊匹配", example = "阅读芋道源码") | 24 | + @Schema(description = "原因,模糊匹配", example = "阅读芋道源码") |
| 23 | private String reason; | 25 | private String reason; |
| 24 | 26 | ||
| 25 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.*; | ||
| 5 | -import org.springframework.format.annotation.DateTimeFormat; | 4 | +import lombok.Data; |
| 6 | 5 | ||
| 7 | -import jakarta.validation.constraints.NotNull; | ||
| 8 | import java.time.LocalDateTime; | 6 | import java.time.LocalDateTime; |
| 9 | 7 | ||
| 10 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | - | ||
| 12 | @Schema(description = "管理后台 - 请假申请 Response VO") | 8 | @Schema(description = "管理后台 - 请假申请 Response VO") |
| 13 | @Data | 9 | @Data |
| 14 | -@EqualsAndHashCode(callSuper = true) | ||
| 15 | -@ToString(callSuper = true) | ||
| 16 | -public class BpmOALeaveRespVO extends BpmOALeaveBaseVO { | 10 | +public class BpmOALeaveRespVO { |
| 17 | 11 | ||
| 18 | @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | 12 | @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 19 | private Long id; | 13 | private Long id; |
| 20 | 14 | ||
| 21 | - @Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 22 | - private Integer result; | 15 | + @Schema(description = "请假类型,参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 16 | + private Integer type; | ||
| 17 | + | ||
| 18 | + @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") | ||
| 19 | + private String reason; | ||
| 23 | 20 | ||
| 24 | @Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED) | 21 | @Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 25 | - @NotNull(message = "申请时间不能为空") | ||
| 26 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 27 | private LocalDateTime createTime; | 22 | private LocalDateTime createTime; |
| 28 | 23 | ||
| 29 | - @Schema(description = "流程id") | 24 | + @Schema(description = "请假的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 25 | + private LocalDateTime startTime; | ||
| 26 | + | ||
| 27 | + @Schema(description = "请假的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 28 | + private LocalDateTime endTime; | ||
| 29 | + | ||
| 30 | + @Schema(description = "流程编号") | ||
| 30 | private String processInstanceId; | 31 | private String processInstanceId; |
| 31 | 32 | ||
| 33 | + @Schema(description = "审批结果", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 34 | + private Integer status; // 参见 BpmProcessInstanceStatusEnum 枚举 | ||
| 35 | + | ||
| 32 | } | 36 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | -import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; | 6 | +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| 7 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCancelReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCreateReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstancePageReqVO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; | ||
| 11 | +import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert; | ||
| 12 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO; | ||
| 13 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; | ||
| 14 | +import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils; | ||
| 15 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService; | ||
| 16 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; | ||
| 6 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; | 17 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; |
| 18 | +import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; | ||
| 19 | +import cn.iocoder.yudao.module.system.api.dept.DeptApi; | ||
| 20 | +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; | ||
| 21 | +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||
| 22 | +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | ||
| 7 | import io.swagger.v3.oas.annotations.Operation; | 23 | import io.swagger.v3.oas.annotations.Operation; |
| 8 | import io.swagger.v3.oas.annotations.Parameter; | 24 | import io.swagger.v3.oas.annotations.Parameter; |
| 9 | import io.swagger.v3.oas.annotations.tags.Tag; | 25 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 10 | import jakarta.annotation.Resource; | 26 | import jakarta.annotation.Resource; |
| 11 | import jakarta.validation.Valid; | 27 | import jakarta.validation.Valid; |
| 28 | +import org.flowable.engine.history.HistoricProcessInstance; | ||
| 29 | +import org.flowable.engine.repository.ProcessDefinition; | ||
| 30 | +import org.flowable.task.api.Task; | ||
| 12 | import org.springframework.security.access.prepost.PreAuthorize; | 31 | import org.springframework.security.access.prepost.PreAuthorize; |
| 13 | import org.springframework.validation.annotation.Validated; | 32 | import org.springframework.validation.annotation.Validated; |
| 14 | import org.springframework.web.bind.annotation.*; | 33 | import org.springframework.web.bind.annotation.*; |
| 15 | 34 | ||
| 35 | +import java.util.List; | ||
| 36 | +import java.util.Map; | ||
| 37 | + | ||
| 16 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 38 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 39 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | ||
| 40 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||
| 17 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | 41 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| 18 | 42 | ||
| 19 | @Tag(name = "管理后台 - 流程实例") // 流程实例,通过流程定义创建的一次“申请” | 43 | @Tag(name = "管理后台 - 流程实例") // 流程实例,通过流程定义创建的一次“申请” |
| @@ -24,13 +48,65 @@ public class BpmProcessInstanceController { | @@ -24,13 +48,65 @@ public class BpmProcessInstanceController { | ||
| 24 | 48 | ||
| 25 | @Resource | 49 | @Resource |
| 26 | private BpmProcessInstanceService processInstanceService; | 50 | private BpmProcessInstanceService processInstanceService; |
| 51 | + @Resource | ||
| 52 | + private BpmTaskService taskService; | ||
| 53 | + @Resource | ||
| 54 | + private BpmProcessDefinitionService processDefinitionService; | ||
| 55 | + @Resource | ||
| 56 | + private BpmCategoryService categoryService; | ||
| 57 | + | ||
| 58 | + @Resource | ||
| 59 | + private AdminUserApi adminUserApi; | ||
| 60 | + @Resource | ||
| 61 | + private DeptApi deptApi; | ||
| 27 | 62 | ||
| 28 | @GetMapping("/my-page") | 63 | @GetMapping("/my-page") |
| 29 | @Operation(summary = "获得我的实例分页列表", description = "在【我的流程】菜单中,进行调用") | 64 | @Operation(summary = "获得我的实例分页列表", description = "在【我的流程】菜单中,进行调用") |
| 30 | @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") | 65 | @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") |
| 31 | - public CommonResult<PageResult<BpmProcessInstancePageItemRespVO>> getMyProcessInstancePage( | ||
| 32 | - @Valid BpmProcessInstanceMyPageReqVO pageReqVO) { | ||
| 33 | - return success(processInstanceService.getMyProcessInstancePage(getLoginUserId(), pageReqVO)); | 66 | + public CommonResult<PageResult<BpmProcessInstanceRespVO>> getProcessInstanceMyPage( |
| 67 | + @Valid BpmProcessInstancePageReqVO pageReqVO) { | ||
| 68 | + PageResult<HistoricProcessInstance> pageResult = processInstanceService.getProcessInstancePage( | ||
| 69 | + getLoginUserId(), pageReqVO); | ||
| 70 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 71 | + return success(PageResult.empty(pageResult.getTotal())); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + // 拼接返回 | ||
| 75 | + Map<String, List<Task>> taskMap = taskService.getTaskMapByProcessInstanceIds( | ||
| 76 | + convertList(pageResult.getList(), HistoricProcessInstance::getId)); | ||
| 77 | + Map<String, ProcessDefinition> processDefinitionMap = processDefinitionService.getProcessDefinitionMap( | ||
| 78 | + convertSet(pageResult.getList(), HistoricProcessInstance::getProcessDefinitionId)); | ||
| 79 | + Map<String, BpmCategoryDO> categoryMap = categoryService.getCategoryMap( | ||
| 80 | + convertSet(processDefinitionMap.values(), ProcessDefinition::getCategory)); | ||
| 81 | + return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePage(pageResult, | ||
| 82 | + processDefinitionMap, categoryMap, taskMap, null, null)); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + @GetMapping("/manager-page") | ||
| 86 | + @Operation(summary = "获得管理流程实例的分页列表", description = "在【流程实例】菜单中,进行调用") | ||
| 87 | + @PreAuthorize("@ss.hasPermission('bpm:process-instance:manager-query')") | ||
| 88 | + public CommonResult<PageResult<BpmProcessInstanceRespVO>> getProcessInstanceManagerPage( | ||
| 89 | + @Valid BpmProcessInstancePageReqVO pageReqVO) { | ||
| 90 | + PageResult<HistoricProcessInstance> pageResult = processInstanceService.getProcessInstancePage( | ||
| 91 | + null, pageReqVO); | ||
| 92 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 93 | + return success(PageResult.empty(pageResult.getTotal())); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + // 拼接返回 | ||
| 97 | + Map<String, List<Task>> taskMap = taskService.getTaskMapByProcessInstanceIds( | ||
| 98 | + convertList(pageResult.getList(), HistoricProcessInstance::getId)); | ||
| 99 | + Map<String, ProcessDefinition> processDefinitionMap = processDefinitionService.getProcessDefinitionMap( | ||
| 100 | + convertSet(pageResult.getList(), HistoricProcessInstance::getProcessDefinitionId)); | ||
| 101 | + Map<String, BpmCategoryDO> categoryMap = categoryService.getCategoryMap( | ||
| 102 | + convertSet(processDefinitionMap.values(), ProcessDefinition::getCategory)); | ||
| 103 | + // 发起人信息 | ||
| 104 | + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( | ||
| 105 | + convertSet(pageResult.getList(), processInstance -> NumberUtils.parseLong(processInstance.getStartUserId()))); | ||
| 106 | + Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap( | ||
| 107 | + convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); | ||
| 108 | + return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePage(pageResult, | ||
| 109 | + processDefinitionMap, categoryMap, taskMap, userMap, deptMap)); | ||
| 34 | } | 110 | } |
| 35 | 111 | ||
| 36 | @PostMapping("/create") | 112 | @PostMapping("/create") |
| @@ -45,14 +121,42 @@ public class BpmProcessInstanceController { | @@ -45,14 +121,42 @@ public class BpmProcessInstanceController { | ||
| 45 | @Parameter(name = "id", description = "流程实例的编号", required = true) | 121 | @Parameter(name = "id", description = "流程实例的编号", required = true) |
| 46 | @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") | 122 | @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") |
| 47 | public CommonResult<BpmProcessInstanceRespVO> getProcessInstance(@RequestParam("id") String id) { | 123 | public CommonResult<BpmProcessInstanceRespVO> getProcessInstance(@RequestParam("id") String id) { |
| 48 | - return success(processInstanceService.getProcessInstanceVO(id)); | 124 | + HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(id); |
| 125 | + if (processInstance == null) { | ||
| 126 | + return success(null); | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + // 拼接返回 | ||
| 130 | + ProcessDefinition processDefinition = processDefinitionService.getProcessDefinition( | ||
| 131 | + processInstance.getProcessDefinitionId()); | ||
| 132 | + BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo( | ||
| 133 | + processInstance.getProcessDefinitionId()); | ||
| 134 | + String bpmnXml = BpmnModelUtils.getBpmnXml( | ||
| 135 | + processDefinitionService.getProcessDefinitionBpmnModel(processInstance.getProcessDefinitionId())); | ||
| 136 | + AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId())); | ||
| 137 | + DeptRespDTO dept = null; | ||
| 138 | + if (startUser != null) { | ||
| 139 | + dept = deptApi.getDept(startUser.getDeptId()); | ||
| 140 | + } | ||
| 141 | + return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstance(processInstance, | ||
| 142 | + processDefinition, processDefinitionInfo, bpmnXml, startUser, dept)); | ||
| 49 | } | 143 | } |
| 50 | 144 | ||
| 51 | - @DeleteMapping("/cancel") | ||
| 52 | - @Operation(summary = "取消流程实例", description = "撤回发起的流程") | 145 | + @DeleteMapping("/cancel-by-start-user") |
| 146 | + @Operation(summary = "用户取消流程实例", description = "取消发起的流程") | ||
| 53 | @PreAuthorize("@ss.hasPermission('bpm:process-instance:cancel')") | 147 | @PreAuthorize("@ss.hasPermission('bpm:process-instance:cancel')") |
| 54 | - public CommonResult<Boolean> cancelProcessInstance(@Valid @RequestBody BpmProcessInstanceCancelReqVO cancelReqVO) { | ||
| 55 | - processInstanceService.cancelProcessInstance(getLoginUserId(), cancelReqVO); | 148 | + public CommonResult<Boolean> cancelProcessInstanceByStartUser( |
| 149 | + @Valid @RequestBody BpmProcessInstanceCancelReqVO cancelReqVO) { | ||
| 150 | + processInstanceService.cancelProcessInstanceByStartUser(getLoginUserId(), cancelReqVO); | ||
| 151 | + return success(true); | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + @DeleteMapping("/cancel-by-admin") | ||
| 155 | + @Operation(summary = "管理员取消流程实例", description = "管理员撤回流程") | ||
| 156 | + @PreAuthorize("@ss.hasPermission('bpm:process-instance:cancel-by-admin')") | ||
| 157 | + public CommonResult<Boolean> cancelProcessInstanceByManager( | ||
| 158 | + @Valid @RequestBody BpmProcessInstanceCancelReqVO cancelReqVO) { | ||
| 159 | + processInstanceService.cancelProcessInstanceByAdmin(getLoginUserId(), cancelReqVO); | ||
| 56 | return success(true); | 160 | return success(true); |
| 57 | } | 161 | } |
| 58 | 162 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceCopyController.java
| @@ -3,23 +3,27 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task; | @@ -3,23 +3,27 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task; | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | -import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyCreateReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyMyPageReqVO; | ||
| 8 | -import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageItemRespVO; | ||
| 9 | -import cn.iocoder.yudao.module.bpm.convert.cc.BpmProcessInstanceCopyConvert; | ||
| 10 | -import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; | 6 | +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 7 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | ||
| 8 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc.BpmProcessInstanceCopyRespVO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageReqVO; | ||
| 11 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceCopyDO; | ||
| 12 | +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceCopyService; | ||
| 11 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; | 13 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; |
| 12 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; | 14 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; |
| 13 | -import cn.iocoder.yudao.module.bpm.service.task.cc.BpmProcessInstanceCopyService; | ||
| 14 | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | 15 | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| 15 | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | 16 | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| 16 | import io.swagger.v3.oas.annotations.Operation; | 17 | import io.swagger.v3.oas.annotations.Operation; |
| 17 | import io.swagger.v3.oas.annotations.tags.Tag; | 18 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 18 | import jakarta.annotation.Resource; | 19 | import jakarta.annotation.Resource; |
| 19 | import jakarta.validation.Valid; | 20 | import jakarta.validation.Valid; |
| 21 | +import org.flowable.engine.history.HistoricProcessInstance; | ||
| 20 | import org.springframework.security.access.prepost.PreAuthorize; | 22 | import org.springframework.security.access.prepost.PreAuthorize; |
| 21 | import org.springframework.validation.annotation.Validated; | 23 | import org.springframework.validation.annotation.Validated; |
| 22 | -import org.springframework.web.bind.annotation.*; | 24 | +import org.springframework.web.bind.annotation.GetMapping; |
| 25 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 26 | +import org.springframework.web.bind.annotation.RestController; | ||
| 23 | 27 | ||
| 24 | import java.util.Map; | 28 | import java.util.Map; |
| 25 | import java.util.stream.Stream; | 29 | import java.util.stream.Stream; |
| @@ -31,47 +35,45 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti | @@ -31,47 +35,45 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti | ||
| 31 | 35 | ||
| 32 | @Tag(name = "管理后台 - 流程实例抄送") | 36 | @Tag(name = "管理后台 - 流程实例抄送") |
| 33 | @RestController | 37 | @RestController |
| 34 | -@RequestMapping("/bpm/process-instance/cc") | 38 | +@RequestMapping("/bpm/process-instance/copy") |
| 35 | @Validated | 39 | @Validated |
| 36 | public class BpmProcessInstanceCopyController { | 40 | public class BpmProcessInstanceCopyController { |
| 37 | 41 | ||
| 38 | @Resource | 42 | @Resource |
| 39 | private BpmProcessInstanceCopyService processInstanceCopyService; | 43 | private BpmProcessInstanceCopyService processInstanceCopyService; |
| 40 | @Resource | 44 | @Resource |
| 41 | - private BpmProcessInstanceService bpmProcessInstanceService; | ||
| 42 | - | 45 | + private BpmProcessInstanceService processInstanceService; |
| 43 | @Resource | 46 | @Resource |
| 44 | - private AdminUserApi adminUserApi; | 47 | + private BpmTaskService taskService; |
| 45 | 48 | ||
| 46 | @Resource | 49 | @Resource |
| 47 | - private BpmTaskService bpmTaskService; | ||
| 48 | - | ||
| 49 | - @PostMapping("/create") | ||
| 50 | - @Operation(summary = "抄送流程") | ||
| 51 | - @PreAuthorize("@ss.hasPermission('bpm:process-instance-cc:create')") | ||
| 52 | - public CommonResult<Boolean> createProcessInstanceCopy(@Valid @RequestBody BpmProcessInstanceCopyCreateReqVO createReqVO) { | ||
| 53 | - processInstanceCopyService.createProcessInstanceCopy(getLoginUserId(), createReqVO); | ||
| 54 | - return success(true); | ||
| 55 | - } | 50 | + private AdminUserApi adminUserApi; |
| 56 | 51 | ||
| 57 | - @GetMapping("/my-page") | 52 | + @GetMapping("/page") |
| 58 | @Operation(summary = "获得抄送流程分页列表") | 53 | @Operation(summary = "获得抄送流程分页列表") |
| 59 | @PreAuthorize("@ss.hasPermission('bpm:process-instance-cc:query')") | 54 | @PreAuthorize("@ss.hasPermission('bpm:process-instance-cc:query')") |
| 60 | - public CommonResult<PageResult<BpmProcessInstanceCopyPageItemRespVO>> getProcessInstanceCopyPage( | ||
| 61 | - @Valid BpmProcessInstanceCopyMyPageReqVO pageReqVO) { | ||
| 62 | - PageResult<BpmProcessInstanceCopyDO> pageResult = processInstanceCopyService.getMyProcessInstanceCopyPage(getLoginUserId(), pageReqVO); | 55 | + public CommonResult<PageResult<BpmProcessInstanceCopyRespVO>> getProcessInstanceCopyPage( |
| 56 | + @Valid BpmProcessInstanceCopyPageReqVO pageReqVO) { | ||
| 57 | + PageResult<BpmProcessInstanceCopyDO> pageResult = processInstanceCopyService.getProcessInstanceCopyPage( | ||
| 58 | + getLoginUserId(), pageReqVO); | ||
| 63 | if (CollUtil.isEmpty(pageResult.getList())) { | 59 | if (CollUtil.isEmpty(pageResult.getList())) { |
| 64 | return success(new PageResult<>(pageResult.getTotal())); | 60 | return success(new PageResult<>(pageResult.getTotal())); |
| 65 | } | 61 | } |
| 66 | 62 | ||
| 67 | // 拼接返回 | 63 | // 拼接返回 |
| 68 | - Map<String, String> taskNameMap = bpmTaskService.getTaskNameByTaskIds( | 64 | + Map<String, String> taskNameMap = taskService.getTaskNameByTaskIds( |
| 69 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getTaskId)); | 65 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getTaskId)); |
| 70 | - Map<String, String> processNameMap = bpmProcessInstanceService.getProcessInstanceNameMap( | 66 | + Map<String, HistoricProcessInstance> processInstanceMap = processInstanceService.getHistoricProcessInstanceMap( |
| 71 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId)); | 67 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId)); |
| 72 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(), | 68 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(), |
| 73 | copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator())))); | 69 | copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator())))); |
| 74 | - return success(BpmProcessInstanceCopyConvert.INSTANCE.convertPage(pageResult, taskNameMap, processNameMap, userMap)); | 70 | + return success(BeanUtils.toBean(pageResult, BpmProcessInstanceCopyRespVO.class, copyVO -> { |
| 71 | + MapUtils.findAndThen(userMap, Long.valueOf(copyVO.getCreator()), user -> copyVO.setCreatorName(user.getNickname())); | ||
| 72 | + MapUtils.findAndThen(userMap, copyVO.getStartUserId(), user -> copyVO.setStartUserName(user.getNickname())); | ||
| 73 | + MapUtils.findAndThen(taskNameMap, copyVO.getTaskId(), copyVO::setTaskName); | ||
| 74 | + MapUtils.findAndThen(processInstanceMap, copyVO.getProcessInstanceId(), | ||
| 75 | + processInstance -> copyVO.setProcessInstanceStartTime(DateUtils.of(processInstance.getStartTime()))); | ||
| 76 | + })); | ||
| 75 | } | 77 | } |
| 76 | 78 | ||
| 77 | } | 79 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; | ||
| 5 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; | 7 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; |
| 8 | +import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert; | ||
| 9 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | ||
| 10 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; | ||
| 11 | +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; | ||
| 6 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; | 12 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; |
| 13 | +import cn.iocoder.yudao.module.system.api.dept.DeptApi; | ||
| 14 | +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; | ||
| 15 | +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||
| 16 | +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | ||
| 7 | import io.swagger.v3.oas.annotations.Operation; | 17 | import io.swagger.v3.oas.annotations.Operation; |
| 8 | import io.swagger.v3.oas.annotations.Parameter; | 18 | import io.swagger.v3.oas.annotations.Parameter; |
| 9 | import io.swagger.v3.oas.annotations.tags.Tag; | 19 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 20 | +import jakarta.annotation.Resource; | ||
| 21 | +import jakarta.validation.Valid; | ||
| 22 | +import org.flowable.bpmn.model.UserTask; | ||
| 23 | +import org.flowable.engine.history.HistoricProcessInstance; | ||
| 24 | +import org.flowable.engine.runtime.ProcessInstance; | ||
| 25 | +import org.flowable.task.api.Task; | ||
| 26 | +import org.flowable.task.api.history.HistoricTaskInstance; | ||
| 10 | import org.springframework.security.access.prepost.PreAuthorize; | 27 | import org.springframework.security.access.prepost.PreAuthorize; |
| 11 | import org.springframework.validation.annotation.Validated; | 28 | import org.springframework.validation.annotation.Validated; |
| 12 | import org.springframework.web.bind.annotation.*; | 29 | import org.springframework.web.bind.annotation.*; |
| 13 | 30 | ||
| 14 | -import jakarta.annotation.Resource; | ||
| 15 | -import jakarta.validation.Valid; | 31 | +import java.util.Collections; |
| 16 | import java.util.List; | 32 | import java.util.List; |
| 33 | +import java.util.Map; | ||
| 34 | +import java.util.Set; | ||
| 35 | +import java.util.stream.Stream; | ||
| 17 | 36 | ||
| 18 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 37 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 38 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; | ||
| 19 | import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId; | 39 | import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId; |
| 20 | 40 | ||
| 21 | @Tag(name = "管理后台 - 流程任务实例") | 41 | @Tag(name = "管理后台 - 流程任务实例") |
| @@ -26,19 +46,69 @@ public class BpmTaskController { | @@ -26,19 +46,69 @@ public class BpmTaskController { | ||
| 26 | 46 | ||
| 27 | @Resource | 47 | @Resource |
| 28 | private BpmTaskService taskService; | 48 | private BpmTaskService taskService; |
| 49 | + @Resource | ||
| 50 | + private BpmProcessInstanceService processInstanceService; | ||
| 51 | + @Resource | ||
| 52 | + private BpmFormService formService; | ||
| 53 | + | ||
| 54 | + @Resource | ||
| 55 | + private AdminUserApi adminUserApi; | ||
| 56 | + @Resource | ||
| 57 | + private DeptApi deptApi; | ||
| 29 | 58 | ||
| 30 | @GetMapping("todo-page") | 59 | @GetMapping("todo-page") |
| 31 | @Operation(summary = "获取 Todo 待办任务分页") | 60 | @Operation(summary = "获取 Todo 待办任务分页") |
| 32 | @PreAuthorize("@ss.hasPermission('bpm:task:query')") | 61 | @PreAuthorize("@ss.hasPermission('bpm:task:query')") |
| 33 | - public CommonResult<PageResult<BpmTaskTodoPageItemRespVO>> getTodoTaskPage(@Valid BpmTaskTodoPageReqVO pageVO) { | ||
| 34 | - return success(taskService.getTodoTaskPage(getLoginUserId(), pageVO)); | 62 | + public CommonResult<PageResult<BpmTaskRespVO>> getTaskTodoPage(@Valid BpmTaskPageReqVO pageVO) { |
| 63 | + PageResult<Task> pageResult = taskService.getTaskTodoPage(getLoginUserId(), pageVO); | ||
| 64 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 65 | + return success(PageResult.empty()); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + // 拼接数据 | ||
| 69 | + Map<String, ProcessInstance> processInstanceMap = processInstanceService.getProcessInstanceMap( | ||
| 70 | + convertSet(pageResult.getList(), Task::getProcessInstanceId)); | ||
| 71 | + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( | ||
| 72 | + convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); | ||
| 73 | + return success(BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap)); | ||
| 35 | } | 74 | } |
| 36 | 75 | ||
| 37 | @GetMapping("done-page") | 76 | @GetMapping("done-page") |
| 38 | @Operation(summary = "获取 Done 已办任务分页") | 77 | @Operation(summary = "获取 Done 已办任务分页") |
| 39 | @PreAuthorize("@ss.hasPermission('bpm:task:query')") | 78 | @PreAuthorize("@ss.hasPermission('bpm:task:query')") |
| 40 | - public CommonResult<PageResult<BpmTaskDonePageItemRespVO>> getDoneTaskPage(@Valid BpmTaskDonePageReqVO pageVO) { | ||
| 41 | - return success(taskService.getDoneTaskPage(getLoginUserId(), pageVO)); | 79 | + public CommonResult<PageResult<BpmTaskRespVO>> getTaskDonePage(@Valid BpmTaskPageReqVO pageVO) { |
| 80 | + PageResult<HistoricTaskInstance> pageResult = taskService.getTaskDonePage(getLoginUserId(), pageVO); | ||
| 81 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 82 | + return success(PageResult.empty()); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + // 拼接数据 | ||
| 86 | + Map<String, HistoricProcessInstance> processInstanceMap = processInstanceService.getHistoricProcessInstanceMap( | ||
| 87 | + convertSet(pageResult.getList(), HistoricTaskInstance::getProcessInstanceId)); | ||
| 88 | + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( | ||
| 89 | + convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); | ||
| 90 | + return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, null)); | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + @GetMapping("manager-page") | ||
| 94 | + @Operation(summary = "获取全部任务的分页", description = "用于【流程任务】菜单") | ||
| 95 | + @PreAuthorize("@ss.hasPermission('bpm:task:mananger-query')") | ||
| 96 | + public CommonResult<PageResult<BpmTaskRespVO>> getTaskManagerPage(@Valid BpmTaskPageReqVO pageVO) { | ||
| 97 | + PageResult<HistoricTaskInstance> pageResult = taskService.getTaskPage(getLoginUserId(), pageVO); | ||
| 98 | + if (CollUtil.isEmpty(pageResult.getList())) { | ||
| 99 | + return success(PageResult.empty()); | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + // 拼接数据 | ||
| 103 | + Map<String, HistoricProcessInstance> processInstanceMap = processInstanceService.getHistoricProcessInstanceMap( | ||
| 104 | + convertSet(pageResult.getList(), HistoricTaskInstance::getProcessInstanceId)); | ||
| 105 | + // 获得 User 和 Dept Map | ||
| 106 | + Set<Long> userIds = convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())); | ||
| 107 | + userIds.addAll(convertSet(pageResult.getList(), task -> NumberUtils.parseLong(task.getAssignee()))); | ||
| 108 | + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds); | ||
| 109 | + Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap( | ||
| 110 | + convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); | ||
| 111 | + return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, deptMap)); | ||
| 42 | } | 112 | } |
| 43 | 113 | ||
| 44 | @GetMapping("/list-by-process-instance-id") | 114 | @GetMapping("/list-by-process-instance-id") |
| @@ -47,7 +117,25 @@ public class BpmTaskController { | @@ -47,7 +117,25 @@ public class BpmTaskController { | ||
| 47 | @PreAuthorize("@ss.hasPermission('bpm:task:query')") | 117 | @PreAuthorize("@ss.hasPermission('bpm:task:query')") |
| 48 | public CommonResult<List<BpmTaskRespVO>> getTaskListByProcessInstanceId( | 118 | public CommonResult<List<BpmTaskRespVO>> getTaskListByProcessInstanceId( |
| 49 | @RequestParam("processInstanceId") String processInstanceId) { | 119 | @RequestParam("processInstanceId") String processInstanceId) { |
| 50 | - return success(taskService.getTaskListByProcessInstanceId(processInstanceId)); | 120 | + List<HistoricTaskInstance> taskList = taskService.getTaskListByProcessInstanceId(processInstanceId); |
| 121 | + if (CollUtil.isEmpty(taskList)) { | ||
| 122 | + return success(Collections.emptyList()); | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + // 拼接数据 | ||
| 126 | + HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(processInstanceId); | ||
| 127 | + // 获得 User 和 Dept Map | ||
| 128 | + Set<Long> userIds = convertSetByFlatMap(taskList, task -> | ||
| 129 | + Stream.of(NumberUtils.parseLong(task.getAssignee()), NumberUtils.parseLong(task.getOwner()))); | ||
| 130 | + userIds.add(NumberUtils.parseLong(processInstance.getStartUserId())); | ||
| 131 | + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds); | ||
| 132 | + Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap( | ||
| 133 | + convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); | ||
| 134 | + // 获得 Form Map | ||
| 135 | + Map<Long, BpmFormDO> formMap = formService.getFormMap( | ||
| 136 | + convertSet(taskList, task -> NumberUtils.parseLong(task.getFormKey()))); | ||
| 137 | + return success(BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, processInstance, | ||
| 138 | + formMap, userMap, deptMap)); | ||
| 51 | } | 139 | } |
| 52 | 140 | ||
| 53 | @PutMapping("/approve") | 141 | @PutMapping("/approve") |
| @@ -66,20 +154,14 @@ public class BpmTaskController { | @@ -66,20 +154,14 @@ public class BpmTaskController { | ||
| 66 | return success(true); | 154 | return success(true); |
| 67 | } | 155 | } |
| 68 | 156 | ||
| 69 | - @PutMapping("/update-assignee") | ||
| 70 | - @Operation(summary = "更新任务的负责人", description = "用于【流程详情】的【转派】按钮") | ||
| 71 | - @PreAuthorize("@ss.hasPermission('bpm:task:update')") | ||
| 72 | - public CommonResult<Boolean> updateTaskAssignee(@Valid @RequestBody BpmTaskUpdateAssigneeReqVO reqVO) { | ||
| 73 | - taskService.updateTaskAssignee(getLoginUserId(), reqVO); | ||
| 74 | - return success(true); | ||
| 75 | - } | ||
| 76 | - | ||
| 77 | - @GetMapping("/return-list") | 157 | + @GetMapping("/list-by-return") |
| 78 | @Operation(summary = "获取所有可回退的节点", description = "用于【流程详情】的【回退】按钮") | 158 | @Operation(summary = "获取所有可回退的节点", description = "用于【流程详情】的【回退】按钮") |
| 79 | @Parameter(name = "taskId", description = "当前任务ID", required = true) | 159 | @Parameter(name = "taskId", description = "当前任务ID", required = true) |
| 80 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") | 160 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") |
| 81 | - public CommonResult<List<BpmTaskSimpleRespVO>> getReturnList(@RequestParam("taskId") String taskId) { | ||
| 82 | - return success(taskService.getReturnTaskList(taskId)); | 161 | + public CommonResult<List<BpmTaskRespVO>> getTaskListByReturn(@RequestParam("id") String id) { |
| 162 | + List<UserTask> userTaskList = taskService.getUserTaskListByReturn(id); | ||
| 163 | + return success(convertList(userTaskList, userTask -> // 只返回 id 和 name | ||
| 164 | + new BpmTaskRespVO().setName(userTask.getName()).setTaskDefinitionKey(userTask.getId()))); | ||
| 83 | } | 165 | } |
| 84 | 166 | ||
| 85 | @PutMapping("/return") | 167 | @PutMapping("/return") |
| @@ -91,17 +173,25 @@ public class BpmTaskController { | @@ -91,17 +173,25 @@ public class BpmTaskController { | ||
| 91 | } | 173 | } |
| 92 | 174 | ||
| 93 | @PutMapping("/delegate") | 175 | @PutMapping("/delegate") |
| 94 | - @Operation(summary = "委派任务", description = "用于【流程详情】的【委派】按钮。和向前【加签】有点像,唯一区别是【委托】没有单独创立任务") | 176 | + @Operation(summary = "委派任务", description = "用于【流程详情】的【委派】按钮") |
| 95 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") | 177 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") |
| 96 | public CommonResult<Boolean> delegateTask(@Valid @RequestBody BpmTaskDelegateReqVO reqVO) { | 178 | public CommonResult<Boolean> delegateTask(@Valid @RequestBody BpmTaskDelegateReqVO reqVO) { |
| 97 | taskService.delegateTask(getLoginUserId(), reqVO); | 179 | taskService.delegateTask(getLoginUserId(), reqVO); |
| 98 | return success(true); | 180 | return success(true); |
| 99 | } | 181 | } |
| 100 | 182 | ||
| 183 | + @PutMapping("/transfer") | ||
| 184 | + @Operation(summary = "转派任务", description = "用于【流程详情】的【转派】按钮") | ||
| 185 | + @PreAuthorize("@ss.hasPermission('bpm:task:update')") | ||
| 186 | + public CommonResult<Boolean> transferTask(@Valid @RequestBody BpmTaskTransferReqVO reqVO) { | ||
| 187 | + taskService.transferTask(getLoginUserId(), reqVO); | ||
| 188 | + return success(true); | ||
| 189 | + } | ||
| 190 | + | ||
| 101 | @PutMapping("/create-sign") | 191 | @PutMapping("/create-sign") |
| 102 | @Operation(summary = "加签", description = "before 前加签,after 后加签") | 192 | @Operation(summary = "加签", description = "before 前加签,after 后加签") |
| 103 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") | 193 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") |
| 104 | - public CommonResult<Boolean> createSignTask(@Valid @RequestBody BpmTaskAddSignReqVO reqVO) { | 194 | + public CommonResult<Boolean> createSignTask(@Valid @RequestBody BpmTaskSignCreateReqVO reqVO) { |
| 105 | taskService.createSignTask(getLoginUserId(), reqVO); | 195 | taskService.createSignTask(getLoginUserId(), reqVO); |
| 106 | return success(true); | 196 | return success(true); |
| 107 | } | 197 | } |
| @@ -109,17 +199,26 @@ public class BpmTaskController { | @@ -109,17 +199,26 @@ public class BpmTaskController { | ||
| 109 | @DeleteMapping("/delete-sign") | 199 | @DeleteMapping("/delete-sign") |
| 110 | @Operation(summary = "减签") | 200 | @Operation(summary = "减签") |
| 111 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") | 201 | @PreAuthorize("@ss.hasPermission('bpm:task:update')") |
| 112 | - public CommonResult<Boolean> deleteSignTask(@Valid @RequestBody BpmTaskSubSignReqVO reqVO) { | 202 | + public CommonResult<Boolean> deleteSignTask(@Valid @RequestBody BpmTaskSignDeleteReqVO reqVO) { |
| 113 | taskService.deleteSignTask(getLoginUserId(), reqVO); | 203 | taskService.deleteSignTask(getLoginUserId(), reqVO); |
| 114 | return success(true); | 204 | return success(true); |
| 115 | } | 205 | } |
| 116 | 206 | ||
| 117 | - @GetMapping("children-list") | ||
| 118 | - @Operation(summary = "获取能被减签的任务") | ||
| 119 | - @Parameter(name = "parentId", description = "父级任务 ID", required = true) | ||
| 120 | - @PreAuthorize("@ss.hasPermission('bpm:task:update')") | ||
| 121 | - public CommonResult<List<BpmTaskSubSignRespVO>> getChildrenTaskList(@RequestParam("parentId") String parentId) { | ||
| 122 | - return success(taskService.getChildrenTaskList(parentId)); | 207 | + @GetMapping("/list-by-parent-task-id") |
| 208 | + @Operation(summary = "获得指定父级任务的子任务列表") // 目前用于,减签的时候,获得子任务列表 | ||
| 209 | + @Parameter(name = "parentTaskId", description = "父级任务编号", required = true) | ||
| 210 | + @PreAuthorize("@ss.hasPermission('bpm:task:query')") | ||
| 211 | + public CommonResult<List<BpmTaskRespVO>> getTaskListByParentTaskId(@RequestParam("parentTaskId") String parentTaskId) { | ||
| 212 | + List<Task> taskList = taskService.getTaskListByParentTaskId(parentTaskId); | ||
| 213 | + if (CollUtil.isEmpty(taskList)) { | ||
| 214 | + return success(Collections.emptyList()); | ||
| 215 | + } | ||
| 216 | + // 拼接数据 | ||
| 217 | + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSetByFlatMap(taskList, | ||
| 218 | + user -> Stream.of(NumberUtils.parseLong(user.getAssignee()), NumberUtils.parseLong(user.getOwner())))); | ||
| 219 | + Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap( | ||
| 220 | + convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); | ||
| 221 | + return success(BpmTaskConvert.INSTANCE.buildTaskListByParentTaskId(taskList, userMap, deptMap)); | ||
| 123 | } | 222 | } |
| 124 | 223 | ||
| 125 | } | 224 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java
| @@ -19,7 +19,7 @@ public class BpmActivityRespVO { | @@ -19,7 +19,7 @@ public class BpmActivityRespVO { | ||
| 19 | @Schema(description = "流程活动的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | 19 | @Schema(description = "流程活动的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 20 | private LocalDateTime endTime; | 20 | private LocalDateTime endTime; |
| 21 | 21 | ||
| 22 | - @Schema(description = "关联的流程任务的编号-关联的流程任务,只有 UserTask 等类型才有", example = "2048") | ||
| 23 | - private String taskId; | 22 | + @Schema(description = "关联的流程任务的编号", example = "2048") |
| 23 | + private String taskId; // 关联的流程任务,只有 UserTask 等类型才有 | ||
| 24 | 24 | ||
| 25 | } | 25 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyPageItemRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/cc/BpmProcessInstanceCopyRespVO.java
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
| @@ -7,37 +7,32 @@ import java.time.LocalDateTime; | @@ -7,37 +7,32 @@ import java.time.LocalDateTime; | ||
| 7 | 7 | ||
| 8 | @Schema(description = "管理后台 - 流程实例抄送的分页 Item Response VO") | 8 | @Schema(description = "管理后台 - 流程实例抄送的分页 Item Response VO") |
| 9 | @Data | 9 | @Data |
| 10 | -public class BpmProcessInstanceCopyPageItemRespVO { | 10 | +public class BpmProcessInstanceCopyRespVO { |
| 11 | 11 | ||
| 12 | - @Schema(description = "抄送主键") | 12 | + @Schema(description = "抄送主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 13 | private Long id; | 13 | private Long id; |
| 14 | 14 | ||
| 15 | - @Schema(description = "发起人 ID") | 15 | + @Schema(description = "发起人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "888") |
| 16 | private Long startUserId; | 16 | private Long startUserId; |
| 17 | + @Schema(description = "发起人昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 18 | + private String startUserName; | ||
| 17 | 19 | ||
| 18 | - @Schema(description = "发起人别名") | ||
| 19 | - private String startUserNickname; | ||
| 20 | - | ||
| 21 | - @Schema(description = "流程实例的主键") | 20 | + @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "A233") |
| 22 | private String processInstanceId; | 21 | private String processInstanceId; |
| 23 | - | ||
| 24 | @Schema(description = "流程实例的名称") | 22 | @Schema(description = "流程实例的名称") |
| 25 | private String processInstanceName; | 23 | private String processInstanceName; |
| 24 | + @Schema(description = "流程实例的发起时间") | ||
| 25 | + private LocalDateTime processInstanceStartTime; | ||
| 26 | 26 | ||
| 27 | @Schema(description = "发起抄送的任务编号") | 27 | @Schema(description = "发起抄送的任务编号") |
| 28 | private String taskId; | 28 | private String taskId; |
| 29 | - | ||
| 30 | @Schema(description = "发起抄送的任务名称") | 29 | @Schema(description = "发起抄送的任务名称") |
| 31 | private String taskName; | 30 | private String taskName; |
| 32 | 31 | ||
| 33 | - @Schema(description = "抄送原因") | ||
| 34 | - private String reason; | ||
| 35 | - | ||
| 36 | @Schema(description = "抄送人") | 32 | @Schema(description = "抄送人") |
| 37 | private String creator; | 33 | private String creator; |
| 38 | - | ||
| 39 | - @Schema(description = "抄送人别名") | ||
| 40 | - private String creatorNickname; | 34 | + @Schema(description = "抄送人昵称") |
| 35 | + private String creatorName; | ||
| 41 | 36 | ||
| 42 | @Schema(description = "抄送时间") | 37 | @Schema(description = "抄送时间") |
| 43 | private LocalDateTime createTime; | 38 | private LocalDateTime createTime; |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import jakarta.validation.constraints.NotBlank; | ||
| 5 | -import jakarta.validation.constraints.NotEmpty; | ||
| 6 | -import lombok.Data; | ||
| 7 | - | ||
| 8 | -@Schema(description = "管理后台 - 流程实例抄送的创建 Request VO") | ||
| 9 | -@Data | ||
| 10 | -public class BpmProcessInstanceCopyCreateReqVO { | ||
| 11 | - | ||
| 12 | - @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 13 | - @NotEmpty(message = "任务编号不能为空") | ||
| 14 | - private String taskId; | ||
| 15 | - | ||
| 16 | - @Schema(description = "抄送原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "请帮忙审查下!") | ||
| 17 | - @NotBlank(message = "抄送原因不能为空") | ||
| 18 | - private String reason; | ||
| 19 | - | ||
| 20 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyMyPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyPageReqVO.java
| @@ -3,8 +3,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | @@ -3,8 +3,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | import lombok.Data; | 5 | import lombok.Data; |
| 6 | -import lombok.EqualsAndHashCode; | ||
| 7 | -import lombok.ToString; | ||
| 8 | import org.springframework.format.annotation.DateTimeFormat; | 6 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 7 | ||
| 10 | import java.time.LocalDateTime; | 8 | import java.time.LocalDateTime; |
| @@ -13,16 +11,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | @@ -13,16 +11,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | ||
| 13 | 11 | ||
| 14 | @Schema(description = "管理后台 - 流程实例抄送的分页 Request VO") | 12 | @Schema(description = "管理后台 - 流程实例抄送的分页 Request VO") |
| 15 | @Data | 13 | @Data |
| 16 | -@EqualsAndHashCode(callSuper = true) | ||
| 17 | -@ToString(callSuper = true) | ||
| 18 | -public class BpmProcessInstanceCopyMyPageReqVO extends PageParam { | 14 | +public class BpmProcessInstanceCopyPageReqVO extends PageParam { |
| 19 | 15 | ||
| 20 | @Schema(description = "流程名称", example = "芋道") | 16 | @Schema(description = "流程名称", example = "芋道") |
| 21 | private String processInstanceName; | 17 | private String processInstanceName; |
| 22 | 18 | ||
| 23 | - @Schema(description = "流程编号", example = "123456768") | ||
| 24 | - private String processInstanceId; | ||
| 25 | - | ||
| 26 | @Schema(description = "创建时间") | 19 | @Schema(description = "创建时间") |
| 27 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 20 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 28 | private LocalDateTime[] createTime; | 21 | private LocalDateTime[] createTime; |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java
| @@ -15,11 +15,10 @@ public class BpmProcessInstanceCreateReqVO { | @@ -15,11 +15,10 @@ public class BpmProcessInstanceCreateReqVO { | ||
| 15 | @NotEmpty(message = "流程定义编号不能为空") | 15 | @NotEmpty(message = "流程定义编号不能为空") |
| 16 | private String processDefinitionId; | 16 | private String processDefinitionId; |
| 17 | 17 | ||
| 18 | - @Schema(description = "变量实例") | 18 | + @Schema(description = "变量实例(动态表单)") |
| 19 | private Map<String, Object> variables; | 19 | private Map<String, Object> variables; |
| 20 | 20 | ||
| 21 | - // TODO @hai:assignees 复数 | ||
| 22 | - @Schema(description = "提前指派的审批人", requiredMode = Schema.RequiredMode.REQUIRED, example = "{taskKey1: [1, 2]}") | ||
| 23 | - private Map<String, List<Long>> assignee; | 21 | + @Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}") |
| 22 | + private Map<String, List<Long>> startUserSelectAssignees; | ||
| 24 | 23 | ||
| 25 | } | 24 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -import java.time.LocalDateTime; | ||
| 7 | -import java.util.List; | ||
| 8 | - | ||
| 9 | -@Schema(description = "管理后台 - 流程实例的分页 Item Response VO") | ||
| 10 | -@Data | ||
| 11 | -public class BpmProcessInstancePageItemRespVO { | ||
| 12 | - | ||
| 13 | - @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 14 | - private String id; | ||
| 15 | - | ||
| 16 | - @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 17 | - private String name; | ||
| 18 | - | ||
| 19 | - @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 20 | - private String processDefinitionId; | ||
| 21 | - | ||
| 22 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 23 | - private String category; | ||
| 24 | - | ||
| 25 | - @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 26 | - private Integer status; | ||
| 27 | - | ||
| 28 | - @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 29 | - private Integer result; | ||
| 30 | - | ||
| 31 | - @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 32 | - private LocalDateTime createTime; | ||
| 33 | - | ||
| 34 | - @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 35 | - private LocalDateTime endTime; | ||
| 36 | - | ||
| 37 | - /** | ||
| 38 | - * 当前任务 | ||
| 39 | - */ | ||
| 40 | - private List<Task> tasks; | ||
| 41 | - | ||
| 42 | - @Schema(description = "流程任务") | ||
| 43 | - @Data | ||
| 44 | - public static class Task { | ||
| 45 | - | ||
| 46 | - @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 47 | - private String id; | ||
| 48 | - | ||
| 49 | - @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 50 | - private String name; | ||
| 51 | - | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceMyPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 5 | +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum; | ||
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 6 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | import lombok.Data; | 7 | import lombok.Data; |
| 6 | -import lombok.EqualsAndHashCode; | ||
| 7 | -import lombok.ToString; | ||
| 8 | import org.springframework.format.annotation.DateTimeFormat; | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | ||
| 10 | import java.time.LocalDateTime; | 10 | import java.time.LocalDateTime; |
| 11 | 11 | ||
| 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 13 | ||
| 14 | -@Schema(description = "管理后台 - 流程实例的分页 Item Response VO") | 14 | +@Schema(description = "管理后台 - 流程实例分页 Request VO") |
| 15 | @Data | 15 | @Data |
| 16 | -@EqualsAndHashCode(callSuper = true) | ||
| 17 | -@ToString(callSuper = true) | ||
| 18 | -public class BpmProcessInstanceMyPageReqVO extends PageParam { | 16 | +public class BpmProcessInstancePageReqVO extends PageParam { |
| 19 | 17 | ||
| 20 | @Schema(description = "流程名称", example = "芋道") | 18 | @Schema(description = "流程名称", example = "芋道") |
| 21 | private String name; | 19 | private String name; |
| @@ -23,17 +21,18 @@ public class BpmProcessInstanceMyPageReqVO extends PageParam { | @@ -23,17 +21,18 @@ public class BpmProcessInstanceMyPageReqVO extends PageParam { | ||
| 23 | @Schema(description = "流程定义的编号", example = "2048") | 21 | @Schema(description = "流程定义的编号", example = "2048") |
| 24 | private String processDefinitionId; | 22 | private String processDefinitionId; |
| 25 | 23 | ||
| 26 | - @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", example = "1") | 24 | + @Schema(description = "流程实例的状态", example = "1") |
| 25 | + @InEnum(BpmProcessInstanceStatusEnum.class) | ||
| 27 | private Integer status; | 26 | private Integer status; |
| 28 | 27 | ||
| 29 | - @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", example = "2") | ||
| 30 | - private Integer result; | ||
| 31 | - | ||
| 32 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") | 28 | + @Schema(description = "流程分类", example = "1") |
| 33 | private String category; | 29 | private String category; |
| 34 | 30 | ||
| 35 | @Schema(description = "创建时间") | 31 | @Schema(description = "创建时间") |
| 36 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 32 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 37 | private LocalDateTime[] createTime; | 33 | private LocalDateTime[] createTime; |
| 38 | 34 | ||
| 35 | + @Schema(description = "发起用户编号", example = "1024") | ||
| 36 | + private Long startUserId; // 注意,只有在【流程实例】菜单,才使用该参数 | ||
| 37 | + | ||
| 39 | } | 38 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 5 | import lombok.Data; |
| 5 | 6 | ||
| @@ -17,21 +18,23 @@ public class BpmProcessInstanceRespVO { | @@ -17,21 +18,23 @@ public class BpmProcessInstanceRespVO { | ||
| 17 | @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | 18 | @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") |
| 18 | private String name; | 19 | private String name; |
| 19 | 20 | ||
| 20 | - @Schema(description = "流程分类-参见 bpm_model_category 数据字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 21 | + @Schema(description = "流程分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 21 | private String category; | 22 | private String category; |
| 23 | + @Schema(description = "流程分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "请假") | ||
| 24 | + private String categoryName; | ||
| 22 | 25 | ||
| 23 | - @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 24 | - private Integer status; | 26 | + @Schema(description = "流程实例的状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 27 | + private Integer status; // 参见 BpmProcessInstanceStatusEnum 枚举 | ||
| 25 | 28 | ||
| 26 | - @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 27 | - private Integer result; | ||
| 28 | - | ||
| 29 | - @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 30 | - private LocalDateTime createTime; | 29 | + @Schema(description = "发起时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 30 | + private LocalDateTime startTime; | ||
| 31 | 31 | ||
| 32 | @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | 32 | @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 33 | private LocalDateTime endTime; | 33 | private LocalDateTime endTime; |
| 34 | 34 | ||
| 35 | + @Schema(description = "持续时间", example = "1000") | ||
| 36 | + private Long durationInMillis; | ||
| 37 | + | ||
| 35 | @Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED) | 38 | @Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED) |
| 36 | private Map<String, Object> formVariables; | 39 | private Map<String, Object> formVariables; |
| 37 | 40 | ||
| @@ -43,10 +46,17 @@ public class BpmProcessInstanceRespVO { | @@ -43,10 +46,17 @@ public class BpmProcessInstanceRespVO { | ||
| 43 | */ | 46 | */ |
| 44 | private User startUser; | 47 | private User startUser; |
| 45 | 48 | ||
| 49 | + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 50 | + private String processDefinitionId; | ||
| 46 | /** | 51 | /** |
| 47 | * 流程定义 | 52 | * 流程定义 |
| 48 | */ | 53 | */ |
| 49 | - private ProcessDefinition processDefinition; | 54 | + private BpmProcessDefinitionRespVO processDefinition; |
| 55 | + | ||
| 56 | + /** | ||
| 57 | + * 当前审批中的任务 | ||
| 58 | + */ | ||
| 59 | + private List<Task> tasks; // 仅在流程实例分页才返回 | ||
| 50 | 60 | ||
| 51 | @Schema(description = "用户信息") | 61 | @Schema(description = "用户信息") |
| 52 | @Data | 62 | @Data |
| @@ -64,30 +74,15 @@ public class BpmProcessInstanceRespVO { | @@ -64,30 +74,15 @@ public class BpmProcessInstanceRespVO { | ||
| 64 | 74 | ||
| 65 | } | 75 | } |
| 66 | 76 | ||
| 67 | - @Schema(description = "流程定义信息") | 77 | + @Schema(description = "流程任务") |
| 68 | @Data | 78 | @Data |
| 69 | - public static class ProcessDefinition { | 79 | + public static class Task { |
| 70 | 80 | ||
| 71 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | 81 | + @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 72 | private String id; | 82 | private String id; |
| 73 | 83 | ||
| 74 | - @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") | ||
| 75 | - private Integer formType; | ||
| 76 | - @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") | ||
| 77 | - private Long formId; | ||
| 78 | - @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 79 | - private String formConf; | ||
| 80 | - @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 81 | - private List<String> formFields; | ||
| 82 | - @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", | ||
| 83 | - example = "/bpm/oa/leave/create") | ||
| 84 | - private String formCustomCreatePath; | ||
| 85 | - @Schema(description = "自定义表单的查看路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", | ||
| 86 | - example = "/bpm/oa/leave/view") | ||
| 87 | - private String formCustomViewPath; | ||
| 88 | - | ||
| 89 | - @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 90 | - private String bpmnXml; | 84 | + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") |
| 85 | + private String name; | ||
| 91 | 86 | ||
| 92 | } | 87 | } |
| 93 | 88 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskAddSignReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -import jakarta.validation.constraints.NotEmpty; | ||
| 7 | -import java.util.Set; | ||
| 8 | - | ||
| 9 | -// TODO @海洋:类名,应该是 create 哈 | ||
| 10 | -@Schema(description = "管理后台 - 加签流程任务的 Request VO") | ||
| 11 | -@Data | ||
| 12 | -public class BpmTaskAddSignReqVO { | ||
| 13 | - | ||
| 14 | - @Schema(description = "需要加签的任务 ID") | ||
| 15 | - @NotEmpty(message = "任务编号不能为空") | ||
| 16 | - private String id; | ||
| 17 | - | ||
| 18 | - @Schema(description = "加签的用户 ID") | ||
| 19 | - @NotEmpty(message = "加签用户 ID 不能为空") | ||
| 20 | - private Set<Long> userIdList; | ||
| 21 | - | ||
| 22 | - @Schema(description = "加签类型,before 向前加签,after 向后加签") | ||
| 23 | - @NotEmpty(message = "加签类型不能为空") | ||
| 24 | - private String type; | ||
| 25 | - | ||
| 26 | - @Schema(description = "加签原因") | ||
| 27 | - @NotEmpty(message = "加签原因不能为空") | ||
| 28 | - private String reason; | ||
| 29 | - | ||
| 30 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; | ||
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | +import jakarta.validation.constraints.NotEmpty; | ||
| 5 | import lombok.Data; | 5 | import lombok.Data; |
| 6 | 6 | ||
| 7 | -import jakarta.validation.constraints.NotEmpty; | 7 | +import java.util.Collection; |
| 8 | +import java.util.Map; | ||
| 8 | 9 | ||
| 9 | @Schema(description = "管理后台 - 通过流程任务的 Request VO") | 10 | @Schema(description = "管理后台 - 通过流程任务的 Request VO") |
| 10 | @Data | 11 | @Data |
| @@ -18,4 +19,10 @@ public class BpmTaskApproveReqVO { | @@ -18,4 +19,10 @@ public class BpmTaskApproveReqVO { | ||
| 18 | @NotEmpty(message = "审批意见不能为空") | 19 | @NotEmpty(message = "审批意见不能为空") |
| 19 | private String reason; | 20 | private String reason; |
| 20 | 21 | ||
| 22 | + @Schema(description = "抄送的用户编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2") | ||
| 23 | + private Collection<Long> copyUserIds; | ||
| 24 | + | ||
| 25 | + @Schema(description = "变量实例(动态表单)", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 26 | + private Map<String, Object> variables; | ||
| 27 | + | ||
| 21 | } | 28 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDelegateReqVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | import jakarta.validation.constraints.NotEmpty; | 4 | import jakarta.validation.constraints.NotEmpty; |
| 7 | import jakarta.validation.constraints.NotNull; | 5 | import jakarta.validation.constraints.NotNull; |
| 6 | +import lombok.Data; | ||
| 8 | 7 | ||
| 9 | @Schema(description = "管理后台 - 委派流程任务的 Request VO") | 8 | @Schema(description = "管理后台 - 委派流程任务的 Request VO") |
| 10 | @Data | 9 | @Data |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | - | ||
| 8 | -import java.time.LocalDateTime; | ||
| 9 | - | ||
| 10 | -@Schema(description = "管理后台 - 流程任务的 Done 已完成的分页项 Response VO") | ||
| 11 | -@Data | ||
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmTaskDonePageItemRespVO extends BpmTaskTodoPageItemRespVO { | ||
| 15 | - | ||
| 16 | - @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 17 | - private LocalDateTime endTime; | ||
| 18 | - @Schema(description = "持续时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") | ||
| 19 | - private Long durationInMillis; | ||
| 20 | - | ||
| 21 | - @Schema(description = "任务结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 22 | - private Integer result; | ||
| 23 | - @Schema(description = "审批建议", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!") | ||
| 24 | - private String reason; | ||
| 25 | - | ||
| 26 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskPageReqVO.java
| @@ -10,13 +10,9 @@ import org.springframework.format.annotation.DateTimeFormat; | @@ -10,13 +10,9 @@ import org.springframework.format.annotation.DateTimeFormat; | ||
| 10 | 10 | ||
| 11 | import java.time.LocalDateTime; | 11 | import java.time.LocalDateTime; |
| 12 | 12 | ||
| 13 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 14 | - | ||
| 15 | -@Schema(description = "管理后台 - 流程任务的 TODO 待办的分页 Request VO") | 13 | +@Schema(description = "管理后台 - 流程任务的的分页 Request VO") // 待办、已办,都使用该分页 |
| 16 | @Data | 14 | @Data |
| 17 | -@EqualsAndHashCode(callSuper = true) | ||
| 18 | -@ToString(callSuper = true) | ||
| 19 | -public class BpmTaskTodoPageReqVO extends PageParam { | 15 | +public class BpmTaskPageReqVO extends PageParam { |
| 20 | 16 | ||
| 21 | @Schema(description = "流程任务名", example = "芋道") | 17 | @Schema(description = "流程任务名", example = "芋道") |
| 22 | private String name; | 18 | private String name; |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
| 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 5 | import lombok.Data; |
| 5 | -import lombok.EqualsAndHashCode; | ||
| 6 | -import lombok.ToString; | ||
| 7 | 6 | ||
| 7 | +import java.time.LocalDateTime; | ||
| 8 | import java.util.List; | 8 | import java.util.List; |
| 9 | +import java.util.Map; | ||
| 9 | 10 | ||
| 10 | -@Schema(description = "管理后台 - 流程任务的 Response VO") | 11 | +@Schema(description = "管理后台 - 流程任务 Response VO") |
| 11 | @Data | 12 | @Data |
| 12 | -@EqualsAndHashCode(callSuper = true) | ||
| 13 | -@ToString(callSuper = true) | ||
| 14 | -public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO { | 13 | +public class BpmTaskRespVO { |
| 15 | 14 | ||
| 16 | - @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "user-001") | ||
| 17 | - private String definitionKey; | 15 | + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 16 | + private String id; | ||
| 18 | 17 | ||
| 18 | + @Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 19 | + private String name; | ||
| 20 | + | ||
| 21 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 22 | + private LocalDateTime createTime; | ||
| 23 | + | ||
| 24 | + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 25 | + private LocalDateTime endTime; | ||
| 26 | + | ||
| 27 | + @Schema(description = "持续时间", example = "1000") | ||
| 28 | + private Long durationInMillis; | ||
| 29 | + | ||
| 30 | + @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 31 | + private Integer status; // 参见 BpmTaskStatusEnum 枚举 | ||
| 32 | + | ||
| 33 | + @Schema(description = "审批理由", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 34 | + private String reason; | ||
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * 负责人的用户信息 | ||
| 38 | + */ | ||
| 39 | + private BpmProcessInstanceRespVO.User ownerUser; | ||
| 19 | /** | 40 | /** |
| 20 | * 审核的用户信息 | 41 | * 审核的用户信息 |
| 21 | */ | 42 | */ |
| 22 | - private User assigneeUser; | 43 | + private BpmProcessInstanceRespVO.User assigneeUser; |
| 23 | 44 | ||
| 45 | + @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "Activity_one") | ||
| 46 | + private String taskDefinitionKey; | ||
| 47 | + | ||
| 48 | + @Schema(description = "所属流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8888") | ||
| 49 | + private String processInstanceId; | ||
| 24 | /** | 50 | /** |
| 25 | - * 父任务ID | 51 | + * 所属流程实例 |
| 26 | */ | 52 | */ |
| 27 | - private String parentTaskId; | 53 | + private ProcessInstance processInstance; |
| 28 | 54 | ||
| 29 | - @Schema(description = "子任务(由加签生成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "childrenTask") | 55 | + @Schema(description = "父任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 56 | + private String parentTaskId; | ||
| 57 | + @Schema(description = "子任务列表(由加签生成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "childrenTask") | ||
| 30 | private List<BpmTaskRespVO> children; | 58 | private List<BpmTaskRespVO> children; |
| 31 | 59 | ||
| 32 | - @Schema(description = "用户信息") | 60 | + @Schema(description = "表单编号", example = "1024") |
| 61 | + private Long formId; | ||
| 62 | + @Schema(description = "表单名字", example = "请假表单") | ||
| 63 | + private String formName; | ||
| 64 | + @Schema(description = "表单的配置-JSON 字符串") | ||
| 65 | + private String formConf; | ||
| 66 | + @Schema(description = "表单项的数组") | ||
| 67 | + private List<String> formFields; | ||
| 68 | + @Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 69 | + private Map<String, Object> formVariables; | ||
| 70 | + | ||
| 33 | @Data | 71 | @Data |
| 34 | - public static class User { | 72 | + @Schema(description = "流程实例") |
| 73 | + public static class ProcessInstance { | ||
| 35 | 74 | ||
| 36 | - @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 37 | - private Long id; | ||
| 38 | - @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | ||
| 39 | - private String nickname; | 75 | + @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 76 | + private String id; | ||
| 40 | 77 | ||
| 41 | - @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 42 | - private Long deptId; | ||
| 43 | - @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") | ||
| 44 | - private String deptName; | 78 | + @Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") |
| 79 | + private String name; | ||
| 80 | + | ||
| 81 | + @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 82 | + private LocalDateTime createTime; | ||
| 83 | + | ||
| 84 | + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 85 | + private String processDefinitionId; | ||
| 86 | + | ||
| 87 | + /** | ||
| 88 | + * 发起人的用户信息 | ||
| 89 | + */ | ||
| 90 | + private BpmProcessInstanceRespVO.User startUser; | ||
| 45 | 91 | ||
| 46 | } | 92 | } |
| 93 | + | ||
| 47 | } | 94 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskReturnReqVO.java
| @@ -15,7 +15,7 @@ public class BpmTaskReturnReqVO { | @@ -15,7 +15,7 @@ public class BpmTaskReturnReqVO { | ||
| 15 | 15 | ||
| 16 | @Schema(description = "回退到的任务 Key", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | 16 | @Schema(description = "回退到的任务 Key", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 17 | @NotEmpty(message = "回退到的任务 Key 不能为空") | 17 | @NotEmpty(message = "回退到的任务 Key 不能为空") |
| 18 | - private String targetDefinitionKey; | 18 | + private String targetTaskDefinitionKey; |
| 19 | 19 | ||
| 20 | @Schema(description = "回退意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "我就是想驳回") | 20 | @Schema(description = "回退意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "我就是想驳回") |
| 21 | @NotEmpty(message = "回退意见不能为空") | 21 | @NotEmpty(message = "回退意见不能为空") |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSignCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import jakarta.validation.constraints.NotEmpty; | ||
| 7 | +import java.util.Set; | ||
| 8 | + | ||
| 9 | +@Schema(description = "管理后台 - 加签任务的创建(加签) Request VO") | ||
| 10 | +@Data | ||
| 11 | +public class BpmTaskSignCreateReqVO { | ||
| 12 | + | ||
| 13 | + @Schema(description = "需要加签的任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 14 | + @NotEmpty(message = "任务编号不能为空") | ||
| 15 | + private String id; | ||
| 16 | + | ||
| 17 | + @Schema(description = "加签的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "888") | ||
| 18 | + @NotEmpty(message = "加签用户不能为空") | ||
| 19 | + private Set<Long> userIds; | ||
| 20 | + | ||
| 21 | + @Schema(description = "加签类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "before") | ||
| 22 | + @NotEmpty(message = "加签类型不能为空") | ||
| 23 | + private String type; // 参见 BpmTaskSignTypeEnum 枚举 | ||
| 24 | + | ||
| 25 | + @Schema(description = "加签原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "需要加签") | ||
| 26 | + @NotEmpty(message = "加签原因不能为空") | ||
| 27 | + private String reason; | ||
| 28 | + | ||
| 29 | +} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSignDeleteReqVO.java
| @@ -5,16 +5,16 @@ import lombok.Data; | @@ -5,16 +5,16 @@ import lombok.Data; | ||
| 5 | 5 | ||
| 6 | import jakarta.validation.constraints.NotEmpty; | 6 | import jakarta.validation.constraints.NotEmpty; |
| 7 | 7 | ||
| 8 | -// TODO @海洋:类名,应该是 delete 哈 | ||
| 9 | -@Schema(description = "管理后台 - 减签流程任务的 Request VO") | 8 | +@Schema(description = "管理后台 - 加签任务的删除(减签) Request VO") |
| 10 | @Data | 9 | @Data |
| 11 | -public class BpmTaskSubSignReqVO { | 10 | +public class BpmTaskSignDeleteReqVO { |
| 12 | 11 | ||
| 13 | - @Schema(description = "被减签的任务 ID") | 12 | + @Schema(description = "被减签的任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 14 | @NotEmpty(message = "任务编号不能为空") | 13 | @NotEmpty(message = "任务编号不能为空") |
| 15 | private String id; | 14 | private String id; |
| 16 | 15 | ||
| 17 | - @Schema(description = "加签原因") | 16 | + @Schema(description = "加签原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "需要减签") |
| 18 | @NotEmpty(message = "加签原因不能为空") | 17 | @NotEmpty(message = "加签原因不能为空") |
| 19 | private String reason; | 18 | private String reason; |
| 19 | + | ||
| 20 | } | 20 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSimpleRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -@Schema(description = "管理后台 - 流程任务的精简 Response VO") | ||
| 7 | -@Data | ||
| 8 | -public class BpmTaskSimpleRespVO { | ||
| 9 | - | ||
| 10 | - @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "Activity_one") | ||
| 11 | - private String definitionKey; | ||
| 12 | - | ||
| 13 | - @Schema(description = "任务名词", requiredMode = Schema.RequiredMode.REQUIRED, example = "经理审批") | ||
| 14 | - private String name; | ||
| 15 | - | ||
| 16 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -@Schema(description = "管理后台 - 减签流程任务的 Response VO") | ||
| 7 | -@Data | ||
| 8 | -public class BpmTaskSubSignRespVO { | ||
| 9 | - @Schema(description = "审核的用户信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "小李") | ||
| 10 | - private BpmTaskRespVO.User assigneeUser; | ||
| 11 | - @Schema(description = "任务 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12312") | ||
| 12 | - private String id; | ||
| 13 | - @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "经理审批") | ||
| 14 | - private String name; | ||
| 15 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -import java.time.LocalDateTime; | ||
| 7 | - | ||
| 8 | -@Schema(description = "管理后台 - 流程任务的 Running 进行中的分页项 Response VO") | ||
| 9 | -@Data | ||
| 10 | -public class BpmTaskTodoPageItemRespVO { | ||
| 11 | - | ||
| 12 | - @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 13 | - private String id; | ||
| 14 | - | ||
| 15 | - @Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 16 | - private String name; | ||
| 17 | - | ||
| 18 | - @Schema(description = "接收时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 19 | - private LocalDateTime claimTime; | ||
| 20 | - | ||
| 21 | - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 22 | - private LocalDateTime createTime; | ||
| 23 | - | ||
| 24 | - @Schema(description = "激活状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 25 | - private Integer suspensionState; | ||
| 26 | - | ||
| 27 | - /** | ||
| 28 | - * 所属流程实例 | ||
| 29 | - */ | ||
| 30 | - private ProcessInstance processInstance; | ||
| 31 | - | ||
| 32 | - @Data | ||
| 33 | - @Schema(description = "流程实例") | ||
| 34 | - public static class ProcessInstance { | ||
| 35 | - | ||
| 36 | - @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 37 | - private String id; | ||
| 38 | - | ||
| 39 | - @Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") | ||
| 40 | - private String name; | ||
| 41 | - | ||
| 42 | - @Schema(description = "发起人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 43 | - private Long startUserId; | ||
| 44 | - | ||
| 45 | - @Schema(description = "发起人的用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | ||
| 46 | - private String startUserNickname; | ||
| 47 | - | ||
| 48 | - @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | ||
| 49 | - private String processDefinitionId; | ||
| 50 | - | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTransferReqVO.java
| @@ -6,9 +6,9 @@ import lombok.Data; | @@ -6,9 +6,9 @@ import lombok.Data; | ||
| 6 | import jakarta.validation.constraints.NotEmpty; | 6 | import jakarta.validation.constraints.NotEmpty; |
| 7 | import jakarta.validation.constraints.NotNull; | 7 | import jakarta.validation.constraints.NotNull; |
| 8 | 8 | ||
| 9 | -@Schema(description = "管理后台 - 流程任务的更新负责人的 Request VO") | 9 | +@Schema(description = "管理后台 - 流程任务的转办 Request VO") |
| 10 | @Data | 10 | @Data |
| 11 | -public class BpmTaskUpdateAssigneeReqVO { | 11 | +public class BpmTaskTransferReqVO { |
| 12 | 12 | ||
| 13 | @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | 13 | @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 14 | @NotEmpty(message = "任务编号不能为空") | 14 | @NotEmpty(message = "任务编号不能为空") |
| @@ -18,4 +18,8 @@ public class BpmTaskUpdateAssigneeReqVO { | @@ -18,4 +18,8 @@ public class BpmTaskUpdateAssigneeReqVO { | ||
| 18 | @NotNull(message = "新审批人的用户编号不能为空") | 18 | @NotNull(message = "新审批人的用户编号不能为空") |
| 19 | private Long assigneeUserId; | 19 | private Long assigneeUserId; |
| 20 | 20 | ||
| 21 | + @Schema(description = "转办原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "做不了决定,需要你先帮忙瞅瞅") | ||
| 22 | + @NotEmpty(message = "转办原因不能为空") | ||
| 23 | + private String reason; | ||
| 24 | + | ||
| 21 | } | 25 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/cc/BpmProcessInstanceCopyConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.convert.cc; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | -import cn.iocoder.yudao.framework.common.util.collection.MapUtils; | ||
| 5 | -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 6 | -import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageItemRespVO; | ||
| 7 | -import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; | ||
| 8 | -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | ||
| 9 | -import org.mapstruct.Mapper; | ||
| 10 | -import org.mapstruct.factory.Mappers; | ||
| 11 | - | ||
| 12 | -import java.util.List; | ||
| 13 | -import java.util.Map; | ||
| 14 | - | ||
| 15 | -/** | ||
| 16 | - * 流程抄送 Convert | ||
| 17 | - * | ||
| 18 | - * @author 芋艿 | ||
| 19 | - */ | ||
| 20 | -@Mapper | ||
| 21 | -public interface BpmProcessInstanceCopyConvert { | ||
| 22 | - | ||
| 23 | - BpmProcessInstanceCopyConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceCopyConvert.class); | ||
| 24 | - | ||
| 25 | - default PageResult<BpmProcessInstanceCopyPageItemRespVO> convertPage(PageResult<BpmProcessInstanceCopyDO> page, | ||
| 26 | - Map<String, String> taskNameMap, | ||
| 27 | - Map<String, String> processInstaneNameMap, | ||
| 28 | - Map<Long, AdminUserRespDTO> userMap) { | ||
| 29 | - List<BpmProcessInstanceCopyPageItemRespVO> list = BeanUtils.toBean(page.getList(), | ||
| 30 | - BpmProcessInstanceCopyPageItemRespVO.class, | ||
| 31 | - copy -> { | ||
| 32 | - MapUtils.findAndThen(userMap, Long.valueOf(copy.getCreator()), user -> user.setNickname(user.getNickname())); | ||
| 33 | - MapUtils.findAndThen(userMap, copy.getStartUserId(), user -> copy.setStartUserNickname(user.getNickname())); | ||
| 34 | - MapUtils.findAndThen(taskNameMap, copy.getTaskId(), copy::setTaskName); | ||
| 35 | - MapUtils.findAndThen(processInstaneNameMap, copy.getProcessInstanceId(), copy::setProcessInstanceName); | ||
| 36 | - }); | ||
| 37 | - return new PageResult<>(list, page.getTotal()); | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | -} |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmFormConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.bpm.convert.definition; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO; | ||
| 4 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormRespVO; | ||
| 5 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormSimpleRespVO; | ||
| 6 | -import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormUpdateReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | ||
| 8 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 9 | -import org.mapstruct.Mapper; | ||
| 10 | -import org.mapstruct.factory.Mappers; | ||
| 11 | - | ||
| 12 | -import java.util.List; | ||
| 13 | - | ||
| 14 | -/** | ||
| 15 | - * 动态表单 Convert | ||
| 16 | - * | ||
| 17 | - * @author 芋艿 | ||
| 18 | - */ | ||
| 19 | -@Mapper | ||
| 20 | -public interface BpmFormConvert { | ||
| 21 | - | ||
| 22 | - BpmFormConvert INSTANCE = Mappers.getMapper(BpmFormConvert.class); | ||
| 23 | - | ||
| 24 | - BpmFormDO convert(BpmFormCreateReqVO bean); | ||
| 25 | - | ||
| 26 | - BpmFormDO convert(BpmFormUpdateReqVO bean); | ||
| 27 | - | ||
| 28 | - BpmFormRespVO convert(BpmFormDO bean); | ||
| 29 | - | ||
| 30 | - List<BpmFormSimpleRespVO> convertList2(List<BpmFormDO> list); | ||
| 31 | - | ||
| 32 | - PageResult<BpmFormRespVO> convertPage(PageResult<BpmFormDO> page); | ||
| 33 | - | ||
| 34 | -} |