Commit f39bfdab896f1ce0803c8ddc9e6782a9e843c183

Authored by YunaiV
1 parent fe1271a6

多模块重构 8:bom 模块,尝试公用部分逻辑

Showing 102 changed files with 945 additions and 424 deletions
yudao-admin-server/pom.xml
... ... @@ -42,28 +42,13 @@
42 42 <artifactId>yudao-module-pay-impl</artifactId>
43 43 <version>${revision}</version>
44 44 </dependency>
45   -
46   -<!-- 默认引入bpm-activiti. 可以替换为bpm-flowable -->
  45 + <!-- 默认引入 bpm-activiti 实现,可以替换为 bpm-flowable 实现-->
47 46 <dependency>
48 47 <groupId>cn.iocoder.boot</groupId>
49   - <artifactId>yudao-module-bpm-activiti</artifactId>
  48 + <artifactId>yudao-module-bpm-impl-activiti</artifactId>
50 49 <version>${revision}</version>
51 50 </dependency>
52 51  
53   - <!-- 业务组件 -->
54   -
55   - <dependency>
56   - <groupId>cn.iocoder.boot</groupId>
57   - <artifactId>yudao-spring-boot-starter-biz-dict</artifactId>
58   - </dependency>
59   -
60   - <dependency>
61   - <groupId>cn.iocoder.boot</groupId>
62   - <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
63   - </dependency>
64   -
65   -
66   -
67 52 <!-- spring boot 配置所需依赖 -->
68 53 <dependency>
69 54 <groupId>org.springframework.boot</groupId>
... ... @@ -88,12 +73,6 @@
88 73 <artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
89 74 </dependency>
90 75  
91   - <!-- 三方云服务相关 -->
92   -
93   - <dependency>
94   - <groupId>com.xkcoding.justauth</groupId>
95   - <artifactId>justauth-spring-boot-starter</artifactId>
96   - </dependency>
97 76 </dependencies>
98 77  
99 78 <build>
... ...
yudao-admin-server/src/main/resources/application.yaml
... ... @@ -58,7 +58,8 @@ yudao:
58 58 app-api:
59 59 prefix: /app-api
60 60 controller: '**.controller.app.**'
61   -
  61 + admin-ui:
  62 + url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址
62 63 swagger:
63 64 title: 管理后台
64 65 description: 提供管理员管理的所有功能
... ... @@ -78,8 +79,6 @@ yudao:
78 79 - cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants
79 80 tenant: # 多租户相关配置项
80 81 tables: # 配置需要开启多租户的表;如果实体已经继承 TenantBaseDO 类,则无需重复配置
81   - url: ## TODO 芋艿:迁移到 web 配置项下,
82   - admin-ui: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址
83 82 sms-code: # 短信验证码相关的配置项
84 83 expire-times: 10m
85 84 send-frequency: 1m
... ...
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/WebProperties.java
... ... @@ -19,6 +19,9 @@ public class WebProperties {
19 19 @NotNull(message = "Admin API 不能为空")
20 20 private Api adminApi;
21 21  
  22 + @NotNull(message = "Admin UI 不能为空")
  23 + private Ui adminUi;
  24 +
22 25 @Data
23 26 @Valid
24 27 public static class Api {
... ... @@ -45,4 +48,15 @@ public class WebProperties {
45 48  
46 49 }
47 50  
  51 + @Data
  52 + @Valid
  53 + public static class Ui {
  54 +
  55 + /**
  56 + * 访问地址
  57 + */
  58 + private String url;
  59 +
  60 + }
  61 +
48 62 }
... ...
yudao-module-bpm/TODO.md
1 1 1. 类名可以去掉 Bpm 前缀哈
  2 +
2 3 2. 后续接口我们分成 admin 管理后天,app 用户前端;所以 controller 包下,需要有 admin 和 app 两个子包。可见 https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/feature/multi-module/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller
3   -3. yudao-module-xxx-api 是暴露接口给外部模块,所以可以把 yudao-module-bpm-core-service-api 改成 yudao-module-bpm-api。大概率用不了暴露 BpmUserGroupServiceApi 哈。
4   -4. yudao-module-bpm-core-service-impl 模块,要不改成 yudao-module-bpm-base,本质上是提供给 yudao-module-bpm-flowable-impl 和 yudao-module-bpm-activiti-impl 继承的。这样的话,我们在 yudao-module-bpm-base:
  4 +
  5 +3. yudao-module-bpm-core-service-impl 模块,要不改成 yudao-module-bpm-base,本质上是提供给 yudao-module-bpm-flowable-impl 和 yudao-module-bpm-activiti-impl 继承的。这样的话,我们在 yudao-module-bpm-base:
5 6 * 定义一些可被继承的类,例如说 ModelAbstractService;
6 7 * 定义一些无需被继承的类,例如说 UserGroupService、UserGroupController 等等;
... ...
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
... ... @@ -55,5 +55,10 @@ public interface ErrorCodeConstants {
55 55  
56 56 // ========== 动态表单模块 1-009-010-000 ==========
57 57 ErrorCode FORM_NOT_EXISTS = new ErrorCode(1009010000, "动态表单不存在");
  58 + ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1009010000, "表单项({}) 和 ({}) 使用了相同的字段名({})");
  59 +
  60 + // ========== 用户组模块 1-009-011-000 ==========
  61 + ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1009011000, "用户组不存在");
  62 + ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1009011001, "名字为【{}】的用户组已被禁用");
58 63  
59 64 }
... ...
yudao-module-bpm/yudao-module-bpm-base/pom.xml
... ... @@ -21,6 +21,17 @@
21 21 <artifactId>yudao-module-bpm-api</artifactId>
22 22 <version>${revision}</version>
23 23 </dependency>
  24 + <dependency>
  25 + <groupId>cn.iocoder.boot</groupId>
  26 + <artifactId>yudao-module-system-api</artifactId>
  27 + <version>${revision}</version>
  28 + </dependency>
  29 +
  30 + <!-- 业务组件 -->
  31 + <dependency>
  32 + <groupId>cn.iocoder.boot</groupId>
  33 + <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
  34 + </dependency>
24 35  
25 36 <!-- Web 相关 -->
26 37 <dependency>
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/definition/vo/form/BpmFormBaseVO.java
1 1 package cn.iocoder.yudao.module.bpm.controller.definition.vo.form;
2 2  
3   -import com.sun.istack.internal.NotNull;
4 3 import lombok.*;
5 4 import io.swagger.annotations.*;
6 5 import javax.validation.constraints.*;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeaveBaseVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/oa/vo/BpmOALeaveBaseVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo;
  1 +package cn.iocoder.yudao.module.bpm.controller.oa.vo;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeaveCreateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/oa/vo/BpmOALeaveCreateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo;
  1 +package cn.iocoder.yudao.module.bpm.controller.oa.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import lombok.Data;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeavePageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/oa/vo/BpmOALeavePageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo;
  1 +package cn.iocoder.yudao.module.bpm.controller.oa.vo;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeaveRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/oa/vo/BpmOALeaveRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo;
  1 +package cn.iocoder.yudao.module.bpm.controller.oa.vo;
2 2  
3 3 import lombok.*;
4 4 import io.swagger.annotations.*;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/activity/BpmActivityRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/activity/BpmActivityRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.activity;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstanceCancelReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/instance/BpmProcessInstanceCancelReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.instance;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstanceCreateReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/instance/BpmProcessInstanceCreateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.instance;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstanceMyPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/instance/BpmProcessInstanceMyPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.instance;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import io.swagger.annotations.ApiModel;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstancePageItemRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/instance/BpmProcessInstancePageItemRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.instance;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstanceRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/instance/BpmProcessInstanceRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.instance;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskApproveReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskApproveReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskDonePageItemRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskDonePageItemRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskDonePageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskDonePageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import io.swagger.annotations.ApiModel;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskRejectReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskRejectReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -6,8 +6,6 @@ import lombok.Data;
6 6 import lombok.EqualsAndHashCode;
7 7 import lombok.ToString;
8 8  
9   -import java.util.List;
10   -
11 9 @ApiModel("流程任务的 Response VO")
12 10 @Data
13 11 @EqualsAndHashCode(callSuper = true)
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskTodoPageItemRespVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskTodoPageItemRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskTodoPageReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskTodoPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import io.swagger.annotations.ApiModel;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/task/BpmTaskUpdateAssigneeReqVO.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/controller/task/vo/task/BpmTaskUpdateAssigneeReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task;
  1 +package cn.iocoder.yudao.module.bpm.controller.task.vo.task;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmFormConvert.java
... ... @@ -5,7 +5,6 @@ import cn.iocoder.yudao.module.bpm.controller.definition.vo.form.BpmFormRespVO;
5 5 import cn.iocoder.yudao.module.bpm.controller.definition.vo.form.BpmFormSimpleRespVO;
6 6 import cn.iocoder.yudao.module.bpm.controller.definition.vo.form.BpmFormUpdateReqVO;
7 7 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
8   -import cn.iocoder.yudao.module.bpm.api.form.dto.BpmFormDTO;
9 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
10 9 import org.mapstruct.Mapper;
11 10 import org.mapstruct.factory.Mappers;
... ... @@ -28,10 +27,6 @@ public interface BpmFormConvert {
28 27  
29 28 BpmFormRespVO convert(BpmFormDO bean);
30 29  
31   - BpmFormDTO convert1(BpmFormDO bean);
32   -
33   - List<BpmFormDTO> convertList(List<BpmFormDO> list);
34   -
35 30 List<BpmFormSimpleRespVO> convertList2(List<BpmFormDO> list);
36 31  
37 32 PageResult<BpmFormRespVO> convertPage(PageResult<BpmFormDO> page);
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmUserGroupConvert.java
... ... @@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.bpm.controller.definition.vo.group.BpmUserGroupCr
6 6 import cn.iocoder.yudao.module.bpm.controller.definition.vo.group.BpmUserGroupRespVO;
7 7 import cn.iocoder.yudao.module.bpm.controller.definition.vo.group.BpmUserGroupUpdateReqVO;
8 8 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO;
9   -import cn.iocoder.yudao.module.bpm.api.group.dto.BpmUserGroupDTO;
10 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 10  
12 11 import org.mapstruct.Mapper;
... ... @@ -36,5 +35,4 @@ public interface BpmUserGroupConvert {
36 35 @Named("convertList2")
37 36 List<BpmUserGroupRespVO> convertList2(List<BpmUserGroupDO> list);
38 37  
39   - List<BpmUserGroupDTO> convertList3(List<BpmUserGroupDO> list);
40 38 }
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/convert/message/BpmMessageConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.bpm.convert.message;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO;
  4 +import org.mapstruct.Mapper;
  5 +import org.mapstruct.factory.Mappers;
  6 +
  7 +import java.util.Map;
  8 +
  9 +@Mapper
  10 +public interface BpmMessageConvert {
  11 +
  12 + BpmMessageConvert INSTANCE = Mappers.getMapper(BpmMessageConvert.class);
  13 +
  14 + SmsSendSingleToUserReqDTO convert(Long userId, String templateCode, Map<String, Object> templateParams);
  15 +
  16 +}
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/convert/oa/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.bpm.convert.oa;
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.bpm.convert.task;
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java
1 1 package cn.iocoder.yudao.module.bpm.dal.dataobject.definition;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmModelFormTypeEnum;
4 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5   -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
  4 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum;
6 5 import com.baomidou.mybatisplus.annotation.TableField;
7 6 import com.baomidou.mybatisplus.annotation.TableId;
8 7 import com.baomidou.mybatisplus.annotation.TableName;
9 8 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
10 9 import lombok.*;
11   -import org.activiti.engine.repository.Model;
12   -import org.activiti.engine.repository.ProcessDefinition;
13 10  
14 11 import java.util.List;
15 12  
... ... @@ -36,13 +33,13 @@ public class BpmProcessDefinitionExtDO extends BaseDO {
36 33 /**
37 34 * 流程定义的编号
38 35 *
39   - * 关联 {@link ProcessDefinition#getId()}
  36 + * 关联 ProcessDefinition 的 id 属性
40 37 */
41 38 private String processDefinitionId;
42 39 /**
43 40 * 流程模型的编号
44 41 *
45   - * 关联 {@link Model#getId()}
  42 + * 关联 Model 的 id 属性
46 43 */
47 44 private String modelId;
48 45 /**
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java
1 1 package cn.iocoder.yudao.module.bpm.dal.dataobject.definition;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
5 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 4 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
  5 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
  6 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum;
7 7 import com.baomidou.mybatisplus.annotation.TableField;
8 8 import com.baomidou.mybatisplus.annotation.TableId;
9 9 import com.baomidou.mybatisplus.annotation.TableName;
10 10 import lombok.*;
11   -import org.activiti.engine.repository.Model;
12   -import org.activiti.engine.repository.ProcessDefinition;
13   -import org.activiti.engine.task.Task;
14 11  
15 12 import java.util.Set;
16 13  
... ... @@ -46,19 +43,19 @@ public class BpmTaskAssignRuleDO extends BaseDO {
46 43 /**
47 44 * 流程模型编号
48 45 *
49   - * 关联 {@link Model#getId()}
  46 + * 关联 Model 的 id 属性
50 47 */
51 48 private String modelId;
52 49 /**
53 50 * 流程定义编号
54 51 *
55   - * 关联 {@link ProcessDefinition#getId()}
  52 + * 关联 ProcessDefinition 的 id 属性
56 53 */
57 54 private String processDefinitionId;
58 55 /**
59 56 * 流程任务的定义 Key
60 57 *
61   - * 关联 {@link Task#getTaskDefinitionKey()}
  58 + * 关联 Task 的 taskDefinitionKey 属性
62 59 */
63 60 private String taskDefinitionKey;
64 61  
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java
1 1 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa;
2 2  
3   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  3 +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
4 4 import lombok.*;
5 5 import java.util.*;
6 6 import com.baomidou.mybatisplus.annotation.*;
7 7 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
8   -import org.activiti.engine.runtime.ProcessInstance;
9 8  
10 9 /**
11 10 * OA 请假申请 DO
... ... @@ -32,7 +31,7 @@ public class BpmOALeaveDO extends BaseDO {
32 31 /**
33 32 * 申请人的用户编号
34 33 *
35   - * 关联 {@link SysUserDO#getId()}
  34 + * 关联 AdminUserDO 的 id 属性
36 35 */
37 36 private Long userId;
38 37 /**
... ... @@ -59,7 +58,7 @@ public class BpmOALeaveDO extends BaseDO {
59 58 /**
60 59 * 请假的结果
61 60 *
62   - * 枚举 {@link cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum}
  61 + * 枚举 {@link BpmProcessInstanceResultEnum}
63 62 * 考虑到简单,所以直接复用了 BpmProcessInstanceResultEnum 枚举,也可以自己定义一个枚举哈
64 63 */
65 64 private Integer result;
... ... @@ -67,7 +66,7 @@ public class BpmOALeaveDO extends BaseDO {
67 66 /**
68 67 * 对应的流程编号
69 68 *
70   - * 关联 {@link ProcessInstance#getId()}
  69 + * 关联 ProcessInstance 的 id 属性
71 70 */
72 71 private String processInstanceId;
73 72  
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java
1 1 package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceStatusEnum;
5 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
  5 +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
6 6 import com.baomidou.mybatisplus.annotation.TableField;
7 7 import com.baomidou.mybatisplus.annotation.TableId;
8 8 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -10,16 +10,13 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
10 10 import lombok.Data;
11 11 import lombok.EqualsAndHashCode;
12 12 import lombok.ToString;
13   -import org.activiti.engine.history.HistoricProcessInstance;
14   -import org.activiti.engine.repository.ProcessDefinition;
15   -import org.activiti.engine.runtime.ProcessInstance;
16 13  
17 14 import java.util.Date;
18 15 import java.util.Map;
19 16  
20 17 /**
21 18 * Bpm 流程实例的拓展表
22   - * 主要解决 Activiti {@link ProcessInstance} 和 {@link HistoricProcessInstance} 不支持拓展字段,所以新建拓展表
  19 + * 主要解决 Activiti ProcessInstance 和 HistoricProcessInstance 不支持拓展字段,所以新建拓展表
23 20 *
24 21 * @author 芋道源码
25 22 */
... ... @@ -27,9 +24,6 @@ import java.util.Map;
27 24 @Data
28 25 @EqualsAndHashCode(callSuper = true)
29 26 @ToString(callSuper = true)
30   -//@Builder
31   -//@NoArgsConstructor
32   -//@AllArgsConstructor
33 27 public class BpmProcessInstanceExtDO extends BaseDO {
34 28  
35 29 /**
... ... @@ -40,31 +34,31 @@ public class BpmProcessInstanceExtDO extends BaseDO {
40 34 /**
41 35 * 发起流程的用户编号
42 36 *
43   - * 冗余 {@link HistoricProcessInstance#getStartUserId()}
  37 + * 冗余 HistoricProcessInstance 的 startUserId 属性
44 38 */
45 39 private Long startUserId;
46 40 /**
47 41 * 流程实例的名字
48 42 *
49   - * 冗余 {@link ProcessInstance#getName()} 为了筛选
  43 + * 冗余 ProcessInstance 的 name 属性,用于筛选
50 44 */
51 45 private String name;
52 46 /**
53 47 * 流程实例的编号
54 48 *
55   - * 关联 {@link ProcessInstance#getId()}
  49 + * 关联 ProcessInstance 的 id 属性
56 50 */
57 51 private String processInstanceId;
58 52 /**
59 53 * 流程定义的编号
60 54 *
61   - * 关联 {@link ProcessDefinition#getId()}
  55 + * 关联 ProcessDefinition 的 id 属性
62 56 */
63 57 private String processDefinitionId;
64 58 /**
65 59 * 流程分类
66 60 *
67   - * 冗余 {@link ProcessDefinition#getCategory()}
  61 + * 冗余 ProcessDefinition 的 category 属性
68 62 * 数据字典 bpm_model_category
69 63 */
70 64 private String category;
... ... @@ -83,7 +77,7 @@ public class BpmProcessInstanceExtDO extends BaseDO {
83 77 /**
84 78 * 结束时间
85 79 *
86   - * 冗余 {@link HistoricProcessInstance#getEndTime()}
  80 + * 冗余 HistoricProcessInstance 的 endTime 属性
87 81 */
88 82 private Date endTime;
89 83  
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java
1 1 package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum;
4 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
5 5 import com.baomidou.mybatisplus.annotation.TableName;
6 6 import lombok.Data;
7 7 import lombok.EqualsAndHashCode;
8 8 import lombok.ToString;
9   -import org.activiti.engine.history.HistoricTaskInstance;
10   -import org.activiti.engine.repository.ProcessDefinition;
11   -import org.activiti.engine.runtime.ProcessInstance;
12   -import org.activiti.engine.task.Task;
13 9  
14 10 import java.util.Date;
15 11  
16 12 /**
17 13 * Bpm 流程任务的拓展表
18   - * 主要解决 Activiti {@link Task} 和 {@link HistoricTaskInstance} 不支持拓展字段,所以新建拓展表
  14 + * 主要解决 Activiti Task 和 HistoricTaskInstance 不支持拓展字段,所以新建拓展表
19 15 *
20 16 * @author 芋道源码
21 17 */
... ... @@ -23,27 +19,24 @@ import java.util.Date;
23 19 @Data
24 20 @EqualsAndHashCode(callSuper = true)
25 21 @ToString(callSuper = true)
26   -//@Builder
27   -//@NoArgsConstructor
28   -//@AllArgsConstructor
29 22 public class BpmTaskExtDO extends BaseDO {
30 23  
31 24 /**
32 25 * 任务的审批人
33 26 *
34   - * 冗余 {@link Task#getAssignee()}
  27 + * 冗余 Task 的 assignee 属性
35 28 */
36 29 private Long assigneeUserId;
37 30 /**
38 31 * 任务的名字
39 32 *
40   - * 冗余 {@link Task#getName()} 为了筛选
  33 + * 冗余 Task 的 name 属性,为了筛选
41 34 */
42 35 private String name;
43 36 /**
44 37 * 任务的编号
45 38 *
46   - * 关联 {@link Task#getId()}
  39 + * 关联 Task 的 id 属性
47 40 */
48 41 private String taskId;
49 42 // /**
... ... @@ -65,20 +58,20 @@ public class BpmTaskExtDO extends BaseDO {
65 58 /**
66 59 * 任务的结束时间
67 60 *
68   - * 冗余 {@link HistoricTaskInstance#getEndTime()}
  61 + * 冗余 HistoricTaskInstance 的 endTime 属性
69 62 */
70 63 private Date endTime;
71 64  
72 65 /**
73 66 * 流程实例的编号
74 67 *
75   - * 关联 {@link ProcessInstance#getId()}
  68 + * 关联 ProcessInstance 的 id 属性
76 69 */
77 70 private String processInstanceId;
78 71 /**
79 72 * 流程定义的编号
80 73 *
81   - * 关联 {@link ProcessDefinition#getId()}
  74 + * 关联 ProcessDefinition 的 id 属性
82 75 */
83 76 private String processDefinitionId;
84 77  
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition;
  1 +package cn.iocoder.yudao.module.bpm.dal.mysql.definition;
2 2  
3 3 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
4 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition;
  1 +package cn.iocoder.yudao.module.bpm.dal.mysql.definition;
2 2  
3 3 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
4 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/oa/BpmOALeaveMapper.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOALeaveMapper.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa;
  1 +package cn.iocoder.yudao.module.bpm.dal.mysql.oa;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeavePageReqVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeavePageReqVO;
4 4 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task;
  1 +package cn.iocoder.yudao.module.bpm.dal.mysql.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO;
4 4 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/task/BpmTaskExtMapper.java renamed to yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task;
  1 +package cn.iocoder.yudao.module.bpm.dal.mysql.task;
2 2  
3 3 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
4 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/enums/message/BpmMessageEnum.java
1 1 package cn.iocoder.yudao.module.bpm.enums.message;
2 2  
3   -import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
4 3 import lombok.AllArgsConstructor;
5 4 import lombok.Getter;
6 5  
... ... @@ -20,9 +19,8 @@ public enum BpmMessageEnum {
20 19 /**
21 20 * 短信模板的标识
22 21 *
23   - * 关联 {@link SysSmsTemplateDO#getCode()}
  22 + * 关联 SmsTemplateDO 的 code 属性
24 23 */
25   - private final String smsCode;
26   -
  24 + private final String smsTemplateCode;
27 25  
28 26 }
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupService.java
... ... @@ -47,6 +47,14 @@ public interface BpmUserGroupService {
47 47 BpmUserGroupDO getUserGroup(Long id);
48 48  
49 49 /**
  50 + * 获得用户组列表
  51 + *
  52 + * @param ids 编号
  53 + * @return 用户组列表
  54 + */
  55 + List<BpmUserGroupDO> getUserGroupList(Collection<Long> ids);
  56 +
  57 + /**
50 58 * 获得指定状态的用户组列表
51 59 *
52 60 * @param status 状态
... ... @@ -70,4 +78,5 @@ public interface BpmUserGroupService {
70 78 * @param ids 用户组编号数组
71 79 */
72 80 void validUserGroups(Set<Long> ids);
  81 +
73 82 }
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceImpl.java
... ... @@ -15,12 +15,13 @@ import org.springframework.stereotype.Service;
15 15 import org.springframework.validation.annotation.Validated;
16 16  
17 17 import javax.annotation.Resource;
  18 +import java.util.Collection;
18 19 import java.util.List;
19 20 import java.util.Map;
20 21 import java.util.Set;
21 22  
22   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NOT_EXISTS;
23 23 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  24 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
24 25  
25 26 /**
26 27 * 用户组 Service 实现类
... ... @@ -71,6 +72,11 @@ public class BpmUserGroupServiceImpl implements BpmUserGroupService {
71 72 return userGroupMapper.selectById(id);
72 73 }
73 74  
  75 + @Override
  76 + public List<BpmUserGroupDO> getUserGroupList(Collection<Long> ids) {
  77 + return userGroupMapper.selectBatchIds(ids);
  78 + }
  79 +
74 80  
75 81 @Override
76 82 public List<BpmUserGroupDO> getUserGroupListByStatus(Integer status) {
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageServiceImpl.java
1 1 package cn.iocoder.yudao.module.bpm.service.message;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.enums.message.BpmMessageEnum;
4   -import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
  3 +import cn.iocoder.yudao.framework.web.config.WebProperties;
  4 +import cn.iocoder.yudao.module.bpm.convert.message.BpmMessageConvert;
  5 +import cn.iocoder.yudao.module.bpm.enums.message.BpmMessageEnum;
5 6 import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
6 7 import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
7 8 import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
8   -import cn.iocoder.yudao.module.system.service.sms.SysSmsCoreService;
  9 +import cn.iocoder.yudao.module.system.api.sms.SmsSendApi;
9 10 import lombok.extern.slf4j.Slf4j;
10   -import org.springframework.beans.factory.annotation.Value;
11 11 import org.springframework.stereotype.Service;
12 12 import org.springframework.validation.annotation.Validated;
13 13  
... ... @@ -26,18 +26,18 @@ import java.util.Map;
26 26 public class BpmMessageServiceImpl implements BpmMessageService {
27 27  
28 28 @Resource
29   - private SysSmsCoreService smsCoreService;
  29 + private SmsSendApi smsSendApi;
30 30  
31   - @Value("${yudao.url.admin-ui}")
32   - private String adminUiUrl;
  31 + @Resource
  32 + private WebProperties webProperties;
33 33  
34 34 @Override
35 35 public void sendMessageWhenProcessInstanceApprove(BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO) {
36 36 Map<String, Object> templateParams = new HashMap<>();
37 37 templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
38 38 templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
39   - smsCoreService.sendSingleSmsToAdmin(null, reqDTO.getStartUserId(),
40   - BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsCode(), templateParams);
  39 + smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(),
  40 + BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsTemplateCode(), templateParams));
41 41 }
42 42  
43 43 @Override
... ... @@ -46,8 +46,8 @@ public class BpmMessageServiceImpl implements BpmMessageService {
46 46 templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
47 47 templateParams.put("comment", reqDTO.getComment());
48 48 templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
49   - smsCoreService.sendSingleSmsToAdmin(null, reqDTO.getStartUserId(),
50   - BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsCode(), templateParams);
  49 + smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(),
  50 + BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsTemplateCode(), templateParams));
51 51 }
52 52  
53 53 @Override
... ... @@ -57,12 +57,12 @@ public class BpmMessageServiceImpl implements BpmMessageService {
57 57 templateParams.put("taskName", reqDTO.getTaskName());
58 58 templateParams.put("startUserNickname", reqDTO.getStartUserNickname());
59 59 templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId()));
60   - smsCoreService.sendSingleSmsToAdmin(null, reqDTO.getAssigneeUserId(),
61   - BpmMessageEnum.TASK_ASSIGNED.getSmsCode(), templateParams);
  60 + smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(),
  61 + BpmMessageEnum.TASK_ASSIGNED.getSmsTemplateCode(), templateParams));
62 62 }
63 63  
64 64 private String getProcessInstanceDetailUrl(String taskId) {
65   - return adminUiUrl + "bpm/process-instance/detail?id=" + taskId;
  65 + return webProperties.getAdminUi().getUrl() + "/bpm/process-instance/detail?id=" + taskId;
66 66 }
67 67  
68 68 }
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenTaskCreatedReqDTO.java
... ... @@ -22,7 +22,7 @@ public class BpmMessageSendWhenTaskCreatedReqDTO {
22 22 @NotEmpty(message = "流程实例的名字不能为空")
23 23 private String processInstanceName;
24 24 @NotEmpty(message = "发起人的用户编号")
25   - private String startUserId;
  25 + private Long startUserId;
26 26 @NotEmpty(message = "发起人的昵称")
27 27 private String startUserNickname;
28 28  
... ...
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/service/task/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.bpm.service.task;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmModelController.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.model.*;
4 3 import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmModelConvert;
5 4 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
6 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/BpmOALeaveController.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeavePageReqVO;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
  4 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeavePageReqVO;
  5 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeaveRespVO;
6 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert;
7 7 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
8 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/BpmActivityController.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task;
2 2  
3 3 import cn.hutool.core.util.StrUtil;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
  4 +import cn.iocoder.yudao.module.bpm.controller.task.vo.activity.BpmActivityRespVO;
5 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmActivityService;
6 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 7 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/BpmProcessInstanceController.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.*;
4 3 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
5 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.module.bpm.controller.task.vo.instance.*;
7 7 import io.swagger.annotations.Api;
8 8 import io.swagger.annotations.ApiImplicitParam;
9 9 import io.swagger.annotations.ApiOperation;
... ... @@ -25,7 +25,7 @@ public class BpmProcessInstanceController {
25 25  
26 26 @Resource
27 27 private BpmProcessInstanceService processInstanceService;
28   -
  28 +
29 29 @PostMapping("/create")
30 30 @ApiOperation("新建流程实例")
31 31 @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/BpmTaskController.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
4 3 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
5 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7   -import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
  6 +import cn.iocoder.yudao.module.bpm.controller.task.vo.task.*;
8 7 import io.swagger.annotations.Api;
9 8 import io.swagger.annotations.ApiImplicitParam;
10 9 import io.swagger.annotations.ApiOperation;
... ... @@ -13,9 +12,7 @@ import org.springframework.validation.annotation.Validated;
13 12 import org.springframework.web.bind.annotation.*;
14 13  
15 14 import javax.annotation.Resource;
16   -import javax.servlet.http.HttpServletResponse;
17 15 import javax.validation.Valid;
18   -import java.io.IOException;
19 16 import java.util.List;
20 17  
21 18 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmModelConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
2 2  
3 3 import cn.hutool.core.util.StrUtil;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.model.*;
5 4 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
6 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO;
7   -import cn.iocoder.yudao.module.bpm.api.form.dto.BpmFormDTO;
8 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 7 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
10 8 import cn.iocoder.yudao.module.bpm.controller.definition.vo.model.*;
  9 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
11 10 import org.activiti.engine.impl.persistence.entity.SuspensionState;
12 11 import org.activiti.engine.repository.Deployment;
13 12 import org.activiti.engine.repository.Model;
... ... @@ -31,19 +30,19 @@ public interface BpmModelConvert {
31 30  
32 31 BpmModelConvert INSTANCE = Mappers.getMapper(BpmModelConvert.class);
33 32  
34   - default List<BpmModelPageItemRespVO> convertList(List<Model> list, Map<Long, BpmFormDTO> formMap,
  33 + default List<BpmModelPageItemRespVO> convertList(List<Model> list, Map<Long, BpmFormDO> formMap,
35 34 Map<String, Deployment> deploymentMap,
36 35 Map<String, ProcessDefinition> processDefinitionMap) {
37 36 return CollectionUtils.convertList(list, model -> {
38 37 BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class);
39   - BpmFormDTO form = metaInfo != null ? formMap.get(metaInfo.getFormId()) : null;
  38 + BpmFormDO form = metaInfo != null ? formMap.get(metaInfo.getFormId()) : null;
40 39 Deployment deployment = model.getDeploymentId() != null ? deploymentMap.get(model.getDeploymentId()) : null;
41 40 ProcessDefinition processDefinition = model.getDeploymentId() != null ? processDefinitionMap.get(model.getDeploymentId()) : null;
42 41 return convert(model, form, deployment, processDefinition);
43 42 });
44 43 }
45 44  
46   - default BpmModelPageItemRespVO convert(Model model, BpmFormDTO form, Deployment deployment, ProcessDefinition processDefinition) {
  45 + default BpmModelPageItemRespVO convert(Model model, BpmFormDO form, Deployment deployment, ProcessDefinition processDefinition) {
47 46 BpmModelPageItemRespVO modelRespVO = new BpmModelPageItemRespVO();
48 47 modelRespVO.setId(model.getId());
49 48 modelRespVO.setCreateTime(model.getCreateTime());
... ... @@ -84,7 +83,7 @@ public interface BpmModelConvert {
84 83  
85 84 void copyTo(BpmModelMetaInfoRespDTO from, @MappingTarget BpmModelBaseVO to);
86 85  
87   - default BpmProcessDefinitionCreateReqDTO convert2(Model model, BpmFormDTO form) {
  86 + default BpmProcessDefinitionCreateReqDTO convert2(Model model, BpmFormDO form) {
88 87 BpmProcessDefinitionCreateReqDTO createReqDTO = new BpmProcessDefinitionCreateReqDTO();
89 88 createReqDTO.setModelId(model.getId());
90 89 createReqDTO.setName(model.getName());
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/definition/BpmProcessDefinitionConvert.java
... ... @@ -2,9 +2,9 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.definition;
2 2  
3 3 import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionPageItemRespVO;
4 4 import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionRespVO;
  5 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
5 6 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
6 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO;
7   -import cn.iocoder.yudao.module.bpm.api.form.dto.BpmFormDTO;
8 8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 9 import org.activiti.engine.impl.persistence.entity.SuspensionState;
10 10 import org.activiti.engine.repository.Deployment;
... ... @@ -29,17 +29,17 @@ public interface BpmProcessDefinitionConvert {
29 29 BpmProcessDefinitionConvert INSTANCE = Mappers.getMapper(BpmProcessDefinitionConvert.class);
30 30  
31 31 default List<BpmProcessDefinitionPageItemRespVO> convertList(List<ProcessDefinition> list, Map<String, Deployment> deploymentMap,
32   - Map<String, BpmProcessDefinitionExtDO> processDefinitionDOMap, Map<Long, BpmFormDTO> formMap) {
  32 + Map<String, BpmProcessDefinitionExtDO> processDefinitionDOMap, Map<Long, BpmFormDO> formMap) {
33 33 return CollectionUtils.convertList(list, definition -> {
34 34 Deployment deployment = definition.getDeploymentId() != null ? deploymentMap.get(definition.getDeploymentId()) : null;
35 35 BpmProcessDefinitionExtDO definitionDO = processDefinitionDOMap.get(definition.getId());
36   - BpmFormDTO form = definitionDO != null ? formMap.get(definitionDO.getFormId()) : null;
  36 + BpmFormDO form = definitionDO != null ? formMap.get(definitionDO.getFormId()) : null;
37 37 return convert(definition, deployment, definitionDO, form);
38 38 });
39 39 }
40 40  
41 41 default BpmProcessDefinitionPageItemRespVO convert(ProcessDefinition bean, Deployment deployment,
42   - BpmProcessDefinitionExtDO processDefinitionExtDO, BpmFormDTO form) {
  42 + BpmProcessDefinitionExtDO processDefinitionExtDO, BpmFormDO form) {
43 43 BpmProcessDefinitionPageItemRespVO respVO = convert(bean);
44 44 respVO.setSuspensionState(bean.isSuspended() ? SuspensionState.SUSPENDED.getStateCode() : SuspensionState.ACTIVE.getStateCode());
45 45 if (deployment != null) {
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/message/BpmMessageConvert.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.message;
3 3 import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
4 4 import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
5 5 import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
6   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  6 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
7 7 import org.activiti.api.task.model.Task;
8 8 import org.activiti.engine.runtime.ProcessInstance;
9 9 import org.mapstruct.Mapper;
... ... @@ -17,7 +17,7 @@ public interface BpmMessageConvert {
17 17  
18 18 BpmMessageConvert INSTANCE = Mappers.getMapper(BpmMessageConvert.class);
19 19  
20   - default BpmMessageSendWhenTaskCreatedReqDTO convert(ProcessInstance processInstance, SysUserDO startUser, Task task) {
  20 + default BpmMessageSendWhenTaskCreatedReqDTO convert(ProcessInstance processInstance, AdminUserRespDTO startUser, Task task) {
21 21 BpmMessageSendWhenTaskCreatedReqDTO reqDTO = new BpmMessageSendWhenTaskCreatedReqDTO();
22 22 copyTo(processInstance, reqDTO);
23 23 copyTo(startUser, reqDTO);
... ... @@ -30,7 +30,7 @@ public interface BpmMessageConvert {
30 30 @Mapping(source = "id", target = "startUserId"),
31 31 @Mapping(source = "nickname", target = "startUserNickname")
32 32 })
33   - void copyTo(SysUserDO from, @MappingTarget BpmMessageSendWhenTaskCreatedReqDTO to);
  33 + void copyTo(AdminUserRespDTO from, @MappingTarget BpmMessageSendWhenTaskCreatedReqDTO to);
34 34 @Mappings({
35 35 @Mapping(source = "id", target = "taskId"),
36 36 @Mapping(source = "name", target = "taskName"),
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/BpmOALeaveConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.oa;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
  4 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeaveRespVO;
5 5 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7 import org.mapstruct.Mapper;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmActivityConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.activity.BpmActivityRespVO;
4 4 import org.activiti.engine.history.HistoricActivityInstance;
5 5 import org.mapstruct.Mapper;
6 6 import org.mapstruct.Mapping;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmProcessInstanceConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceRespVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
  4 +import cn.iocoder.yudao.module.bpm.controller.task.vo.instance.BpmProcessInstanceRespVO;
5 5 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
6 6 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
7 7 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent;
8   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
9   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  8 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  9 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
10 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 11 import org.activiti.engine.history.HistoricProcessInstance;
12 12 import org.activiti.engine.repository.ProcessDefinition;
... ... @@ -71,7 +71,7 @@ public interface BpmProcessInstanceConvert {
71 71  
72 72 default BpmProcessInstanceRespVO convert2(HistoricProcessInstance processInstance, BpmProcessInstanceExtDO processInstanceExt,
73 73 ProcessDefinition processDefinition, BpmProcessDefinitionExtDO processDefinitionExt,
74   - String bpmnXml, SysUserDO startUser, SysDeptDO dept) {
  74 + String bpmnXml, AdminUserRespDTO startUser, DeptRespDTO dept) {
75 75 BpmProcessInstanceRespVO respVO = convert2(processInstance);
76 76 copyTo(processInstanceExt, respVO);
77 77 // definition
... ... @@ -94,7 +94,7 @@ public interface BpmProcessInstanceConvert {
94 94 BpmProcessInstanceRespVO.ProcessDefinition convert2(ProcessDefinition bean);
95 95 @Mapping(source = "from.id", target = "to.id", ignore = true)
96 96 void copyTo(BpmProcessDefinitionExtDO from, @MappingTarget BpmProcessInstanceRespVO.ProcessDefinition to);
97   - BpmProcessInstanceRespVO.User convert2(SysUserDO bean);
  97 + BpmProcessInstanceRespVO.User convert2(AdminUserRespDTO bean);
98 98  
99 99 default BpmProcessInstanceResultEvent convert(Object source, ProcessInstance instance, Integer result) {
100 100 BpmProcessInstanceResultEvent event = new BpmProcessInstanceResultEvent(source);
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmTaskConvert.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskDonePageItemRespVO;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskRespVO;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskTodoPageItemRespVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.task.BpmTaskDonePageItemRespVO;
  4 +import cn.iocoder.yudao.module.bpm.controller.task.vo.task.BpmTaskRespVO;
  5 +import cn.iocoder.yudao.module.bpm.controller.task.vo.task.BpmTaskTodoPageItemRespVO;
6 6 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
7   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
8   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  7 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  8 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
9 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
10 10 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
11 11 import org.activiti.engine.history.HistoricProcessInstance;
... ... @@ -30,12 +30,12 @@ public interface BpmTaskConvert {
30 30 BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
31 31  
32 32 default List<BpmTaskTodoPageItemRespVO> convertList1(List<Task> tasks, Map<String, ProcessInstance> processInstanceMap,
33   - Map<Long, SysUserDO> userMap) {
  33 + Map<Long, AdminUserRespDTO> userMap) {
34 34 return CollectionUtils.convertList(tasks, task -> {
35 35 BpmTaskTodoPageItemRespVO respVO = convert1(task);
36 36 ProcessInstance processInstance = processInstanceMap.get(task.getProcessInstanceId());
37 37 if (processInstance != null) {
38   - SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
  38 + AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
39 39 respVO.setProcessInstance(convert(processInstance, startUser));
40 40 }
41 41 return respVO;
... ... @@ -53,14 +53,14 @@ public interface BpmTaskConvert {
53 53  
54 54 default List<BpmTaskDonePageItemRespVO> convertList2(List<HistoricTaskInstance> tasks, Map<String, BpmTaskExtDO> bpmTaskExtDOMap,
55 55 Map<String, HistoricProcessInstance> historicProcessInstanceMap,
56   - Map<Long, SysUserDO> userMap) {
  56 + Map<Long, AdminUserRespDTO> userMap) {
57 57 return CollectionUtils.convertList(tasks, task -> {
58 58 BpmTaskDonePageItemRespVO respVO = convert2(task);
59 59 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
60 60 copyTo(taskExtDO, respVO);
61 61 HistoricProcessInstance processInstance = historicProcessInstanceMap.get(task.getProcessInstanceId());
62 62 if (processInstance != null) {
63   - SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
  63 + AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
64 64 respVO.setProcessInstance(convert(processInstance, startUser));
65 65 }
66 66 return respVO;
... ... @@ -77,20 +77,20 @@ public interface BpmTaskConvert {
77 77 BpmTaskExtDO convert(org.activiti.api.task.model.Task bean);
78 78  
79 79 default List<BpmTaskRespVO> convertList3(List<HistoricTaskInstance> tasks, Map<String, BpmTaskExtDO> bpmTaskExtDOMap,
80   - HistoricProcessInstance processInstance, Map<Long, SysUserDO> userMap,
81   - Map<Long, SysDeptDO> deptMap) {
  80 + HistoricProcessInstance processInstance, Map<Long, AdminUserRespDTO> userMap,
  81 + Map<Long, DeptRespDTO> deptMap) {
82 82 return CollectionUtils.convertList(tasks, task -> {
83 83 BpmTaskRespVO respVO = convert3(task);
84 84 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
85 85 copyTo(taskExtDO, respVO);
86 86 if (processInstance != null) {
87   - SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
  87 + AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
88 88 respVO.setProcessInstance(convert(processInstance, startUser));
89 89 }
90   - SysUserDO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
  90 + AdminUserRespDTO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
91 91 if (assignUser != null) {
92 92 respVO.setAssigneeUser(convert3(assignUser));
93   - SysDeptDO dept = deptMap.get(assignUser.getDeptId());
  93 + DeptRespDTO dept = deptMap.get(assignUser.getDeptId());
94 94 if (dept != null) {
95 95 respVO.getAssigneeUser().setDeptName(dept.getName());
96 96 }
... ... @@ -101,7 +101,7 @@ public interface BpmTaskConvert {
101 101  
102 102 @Mapping(source = "taskDefinitionKey", target = "definitionKey")
103 103 BpmTaskRespVO convert3(HistoricTaskInstance bean);
104   - BpmTaskRespVO.User convert3(SysUserDO bean);
  104 + BpmTaskRespVO.User convert3(AdminUserRespDTO bean);
105 105  
106 106 void copyTo(BpmTaskExtDO from, @MappingTarget BpmTaskDonePageItemRespVO to);
107 107  
... ... @@ -112,7 +112,7 @@ public interface BpmTaskConvert {
112 112 @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"),
113 113 @Mapping(source = "startUser.nickname", target = "startUserNickname")
114 114 })
115   - BpmTaskTodoPageItemRespVO.ProcessInstance convert(ProcessInstance processInstance, SysUserDO startUser);
  115 + BpmTaskTodoPageItemRespVO.ProcessInstance convert(ProcessInstance processInstance, AdminUserRespDTO startUser);
116 116  
117 117 @Mappings({
118 118 @Mapping(source = "processInstance.id", target = "id"),
... ... @@ -121,6 +121,6 @@ public interface BpmTaskConvert {
121 121 @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"),
122 122 @Mapping(source = "startUser.nickname", target = "startUserNickname")
123 123 })
124   - BpmTaskTodoPageItemRespVO.ProcessInstance convert(HistoricProcessInstance processInstance, SysUserDO startUser);
  124 + BpmTaskTodoPageItemRespVO.ProcessInstance convert(HistoricProcessInstance processInstance, AdminUserRespDTO startUser);
125 125  
126 126 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java
... ... @@ -6,13 +6,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.Bp
6 6 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity.EmptyUserGroupManager;
7 7 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener;
8 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
9   -import cn.iocoder.yudao.module.bpm.api.group.BpmUserGroupServiceApi;
10   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
11   -import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
12   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
13   -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;
14   -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;
15   -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
  9 +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService;
  10 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  11 +import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
  12 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
16 13 import org.activiti.api.runtime.shared.identity.UserGroupManager;
17 14 import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer;
18 15 import org.springframework.context.ApplicationEventPublisher;
... ... @@ -67,17 +64,17 @@ public class BpmActivitiConfiguration {
67 64  
68 65 @Bean
69 66 public BpmActivityBehaviorFactory bpmActivityBehaviorFactory(BpmTaskAssignRuleService taskRuleService,
70   - SysPermissionCoreService permissionCoreService,
71   - SysDeptCoreService deptCoreService,
72   - BpmUserGroupServiceApi userGroupServiceApi,
73   - SysUserCoreService userCoreService,
  67 + BpmUserGroupService userGroupService,
  68 + PermissionApi permissionApi,
  69 + DeptApi deptApi,
  70 + AdminUserApi adminUserApi,
74 71 List<BpmTaskAssignScript> scripts) {
75 72 BpmActivityBehaviorFactory bpmActivityBehaviorFactory = new BpmActivityBehaviorFactory();
76 73 bpmActivityBehaviorFactory.setBpmTaskRuleService(taskRuleService);
77   - bpmActivityBehaviorFactory.setPermissionCoreService(permissionCoreService);
78   - bpmActivityBehaviorFactory.setDeptCoreService(deptCoreService);
79   - bpmActivityBehaviorFactory.setUserGroupServiceApi(userGroupServiceApi);
80   - bpmActivityBehaviorFactory.setUserCoreService(userCoreService);
  74 + bpmActivityBehaviorFactory.setUserGroupService(userGroupService);
  75 + bpmActivityBehaviorFactory.setAdminUserApi(adminUserApi);
  76 + bpmActivityBehaviorFactory.setPermissionApi(permissionApi);
  77 + bpmActivityBehaviorFactory.setDeptApi(deptApi);
81 78 bpmActivityBehaviorFactory.setScripts(scripts);
82 79 return bpmActivityBehaviorFactory;
83 80 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java
... ... @@ -2,10 +2,10 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
5   -import cn.iocoder.yudao.module.bpm.api.group.BpmUserGroupServiceApi;
6   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
7   -import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
8   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
  5 +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService;
  6 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  7 +import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
  8 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
9 9 import lombok.Data;
10 10 import lombok.EqualsAndHashCode;
11 11 import lombok.Setter;
... ... @@ -30,13 +30,15 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
30 30 @Setter
31 31 private BpmTaskAssignRuleService bpmTaskRuleService;
32 32 @Setter
33   - private SysPermissionCoreService permissionCoreService;
  33 + private BpmUserGroupService userGroupService;
  34 +
34 35 @Setter
35   - private SysDeptCoreService deptCoreService;
  36 + private PermissionApi permissionApi;
36 37 @Setter
37   - private BpmUserGroupServiceApi userGroupServiceApi;
  38 + private DeptApi deptApi;
38 39 @Setter
39   - private SysUserCoreService userCoreService;
  40 + private AdminUserApi adminUserApi;
  41 +
40 42 @Setter
41 43 private List<BpmTaskAssignScript> scripts;
42 44  
... ... @@ -44,10 +46,10 @@ public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
44 46 public UserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask) {
45 47 BpmUserTaskActivitiBehavior userTaskActivityBehavior = new BpmUserTaskActivitiBehavior(userTask);
46 48 userTaskActivityBehavior.setBpmTaskRuleService(bpmTaskRuleService);
47   - userTaskActivityBehavior.setPermissionCoreService(permissionCoreService);
48   - userTaskActivityBehavior.setDeptCoreService(deptCoreService);
49   - userTaskActivityBehavior.setUserGroupServiceApi(userGroupServiceApi);
50   - userTaskActivityBehavior.setSysUserCoreService(userCoreService);
  49 + userTaskActivityBehavior.setPermissionApi(permissionApi);
  50 + userTaskActivityBehavior.setDeptApi(deptApi);
  51 + userTaskActivityBehavior.setUserGroupService(userGroupService);
  52 + userTaskActivityBehavior.setAdminUserApi(adminUserApi);
51 53 userTaskActivityBehavior.setScripts(scripts);
52 54 return userTaskActivityBehavior;
53 55 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java
... ... @@ -3,18 +3,18 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.RandomUtil;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
7   -import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
8 6 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
9 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
10   -import cn.iocoder.yudao.module.bpm.api.group.BpmUserGroupServiceApi;
11   -import cn.iocoder.yudao.module.bpm.api.group.dto.BpmUserGroupDTO;
12   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
13   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
14   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
15   -import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
16   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
17 8 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  9 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
  10 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO;
  11 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
  12 +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService;
  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.permission.PermissionApi;
  16 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  17 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
18 18 import com.google.common.annotations.VisibleForTesting;
19 19 import lombok.Setter;
20 20 import lombok.extern.slf4j.Slf4j;
... ... @@ -28,12 +28,12 @@ import org.activiti.engine.impl.persistence.entity.TaskEntityManager;
28 28  
29 29 import java.util.*;
30 30  
31   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.TASK_ASSIGN_SCRIPT_NOT_EXISTS;
32   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.TASK_CREATE_FAIL_NO_CANDIDATE_USER;
33 31 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
34 32 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
35 33 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
36 34 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
  35 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.TASK_ASSIGN_SCRIPT_NOT_EXISTS;
  36 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.TASK_CREATE_FAIL_NO_CANDIDATE_USER;
37 37  
38 38 /**
39 39 * 自定义的流程任务的 assignee 负责人的分配
... ... @@ -48,14 +48,17 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior {
48 48  
49 49 @Setter
50 50 private BpmTaskAssignRuleService bpmTaskRuleService;
  51 +
51 52 @Setter
52   - private SysPermissionCoreService permissionCoreService;
  53 + private BpmUserGroupService userGroupService;
  54 +
53 55 @Setter
54   - private SysDeptCoreService deptCoreService;
  56 + private DeptApi deptApi;
55 57 @Setter
56   - private BpmUserGroupServiceApi userGroupServiceApi;
  58 + private AdminUserApi adminUserApi;
57 59 @Setter
58   - private SysUserCoreService sysUserCoreService;
  60 + private PermissionApi permissionApi;
  61 +
59 62 /**
60 63 * 任务分配脚本
61 64 */
... ... @@ -133,22 +136,22 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior {
133 136 }
134 137  
135 138 private Set<Long> calculateTaskCandidateUsersByRole(TaskEntity task, BpmTaskAssignRuleDO rule) {
136   - return permissionCoreService.getUserRoleIdListByRoleIds(rule.getOptions());
  139 + return permissionApi.getUserRoleIdListByRoleIds(rule.getOptions());
137 140 }
138 141  
139 142 private Set<Long> calculateTaskCandidateUsersByDeptMember(TaskEntity task, BpmTaskAssignRuleDO rule) {
140   - List<SysUserDO> users = sysUserCoreService.getUsersByDeptIds(rule.getOptions());
141   - return convertSet(users, SysUserDO::getId);
  143 + List<AdminUserRespDTO> users = adminUserApi.getUsersByDeptIds(rule.getOptions());
  144 + return convertSet(users, AdminUserRespDTO::getId);
142 145 }
143 146  
144 147 private Set<Long> calculateTaskCandidateUsersByDeptLeader(TaskEntity task, BpmTaskAssignRuleDO rule) {
145   - List<SysDeptDO> depts = deptCoreService.getDepts(rule.getOptions());
146   - return convertSet(depts, SysDeptDO::getLeaderUserId);
  148 + List<DeptRespDTO> depts = deptApi.getDepts(rule.getOptions());
  149 + return convertSet(depts, DeptRespDTO::getLeaderUserId);
147 150 }
148 151  
149 152 private Set<Long> calculateTaskCandidateUsersByPost(TaskEntity task, BpmTaskAssignRuleDO rule) {
150   - List<SysUserDO> users = sysUserCoreService.getUsersByPostIds(rule.getOptions());
151   - return convertSet(users, SysUserDO::getId);
  153 + List<AdminUserRespDTO> users = adminUserApi.getUsersByPostIds(rule.getOptions());
  154 + return convertSet(users, AdminUserRespDTO::getId);
152 155 }
153 156  
154 157 private Set<Long> calculateTaskCandidateUsersByUser(TaskEntity task, BpmTaskAssignRuleDO rule) {
... ... @@ -156,9 +159,9 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior {
156 159 }
157 160  
158 161 private Set<Long> calculateTaskCandidateUsersByUserGroup(TaskEntity task, BpmTaskAssignRuleDO rule) {
159   - List<BpmUserGroupDTO> userGroups = userGroupServiceApi.getUserGroupList(rule.getOptions());
  162 + List<BpmUserGroupDO> userGroups = userGroupService.getUserGroupList(rule.getOptions());
160 163 Set<Long> userIds = new HashSet<>();
161   - userGroups.forEach(bpmUserGroupDO -> userIds.addAll(bpmUserGroupDO.getMemberUserIds()));
  164 + userGroups.forEach(group -> userIds.addAll(group.getMemberUserIds()));
162 165 return userIds;
163 166 }
164 167  
... ... @@ -183,9 +186,9 @@ public class BpmUserTaskActivitiBehavior extends UserTaskActivityBehavior {
183 186 if (CollUtil.isEmpty(assigneeUserIds)) {
184 187 return;
185 188 }
186   - Map<Long, SysUserDO> userMap = sysUserCoreService.getUserMap(assigneeUserIds);
  189 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(assigneeUserIds);
187 190 assigneeUserIds.removeIf(id -> {
188   - SysUserDO user = userMap.get(id);
  191 + AdminUserRespDTO user = userMap.get(id);
189 192 return user == null || !CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus());
190 193 });
191 194 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java
... ... @@ -2,16 +2,17 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
4 4  
5   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
6   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
7   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
8   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
  5 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  6 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  7 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  8 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
9 9 import org.activiti.engine.impl.persistence.entity.TaskEntity;
10 10 import org.springframework.util.Assert;
11 11  
12 12 import javax.annotation.Resource;
13 13 import java.util.Set;
14 14  
  15 +import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
15 16 import static java.util.Collections.emptySet;
16 17  
17 18 /**
... ... @@ -23,16 +24,16 @@ import static java.util.Collections.emptySet;
23 24 public abstract class BpmTaskAssignLeaderAbstractScript implements BpmTaskAssignScript {
24 25  
25 26 @Resource
26   - private SysUserCoreService userCoreService;
  27 + private AdminUserApi adminUserApi;
27 28 @Resource
28   - private SysDeptCoreService deptCoreService;
  29 + private DeptApi deptApi;
29 30  
30 31 protected Set<Long> calculateTaskCandidateUsers(TaskEntity task, int level) {
31 32 Assert.isTrue(level > 0, "level 必须大于 0");
32 33 // 获得发起人
33 34 Long startUserId = Long.parseLong(task.getProcessInstance().getStartUserId());
34 35 // 获得对应 leve 的部门
35   - SysDeptDO dept = null;
  36 + DeptRespDTO dept = null;
36 37 for (int i = 0; i < level; i++) {
37 38 // 获得 level 对应的部门
38 39 if (dept == null) {
... ... @@ -41,7 +42,7 @@ public abstract class BpmTaskAssignLeaderAbstractScript implements BpmTaskAssign
41 42 return emptySet();
42 43 }
43 44 } else {
44   - SysDeptDO parentDept = deptCoreService.getDept(dept.getParentId());
  45 + DeptRespDTO parentDept = deptApi.getDept(dept.getParentId());
45 46 if (parentDept == null) { // 找不到父级部门,所以只好结束寻找。原因是:例如说,级别比较高的人,所在部门层级比较少
46 47 break;
47 48 }
... ... @@ -51,12 +52,12 @@ public abstract class BpmTaskAssignLeaderAbstractScript implements BpmTaskAssign
51 52 return dept.getLeaderUserId() != null ? asSet(dept.getLeaderUserId()) : emptySet();
52 53 }
53 54  
54   - private SysDeptDO getStartUserDept(Long startUserId) {
55   - SysUserDO startUser = userCoreService.getUser(startUserId);
  55 + private DeptRespDTO getStartUserDept(Long startUserId) {
  56 + AdminUserRespDTO startUser = adminUserApi.getUser(startUserId);
56 57 if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则
57 58 return null;
58 59 }
59   - return deptCoreService.getDept(startUser.getDeptId());
  60 + return deptApi.getDept(startUser.getDeptId());
60 61 }
61 62  
62 63 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmModelServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmModelServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ArrayUtil;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.model.*;
7   -import cn.iocoder.yudao.module.bpm.controller.definition.vo.model.*;
8   -import cn.iocoder.yudao.module.bpm.controller.definition.vo.rule.BpmTaskAssignRuleRespVO;
9 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmModelConvert;
10   -import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum;
11   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
12   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
13   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
14 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
15 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO;
16   -import cn.iocoder.yudao.module.bpm.api.form.BpmFormServiceApi;
17   -import cn.iocoder.yudao.module.bpm.api.form.dto.BpmFormDTO;
18 9 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
19 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
20 11 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
21 12 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
22 13 import cn.iocoder.yudao.framework.common.util.object.PageUtils;
23 14 import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
  15 +import cn.iocoder.yudao.module.bpm.controller.definition.vo.model.*;
  16 +import cn.iocoder.yudao.module.bpm.controller.definition.vo.rule.BpmTaskAssignRuleRespVO;
  17 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
  18 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum;
  19 +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
24 20 import lombok.extern.slf4j.Slf4j;
25 21 import org.activiti.bpmn.model.BpmnModel;
26 22 import org.activiti.engine.RepositoryService;
... ... @@ -38,9 +34,9 @@ import org.springframework.validation.annotation.Validated;
38 34 import javax.annotation.Resource;
39 35 import java.util.*;
40 36  
41   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
42 37 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
43 38 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  39 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
44 40  
45 41 /**
46 42 * 流程定义实现
... ... @@ -57,7 +53,7 @@ public class BpmModelServiceImpl implements BpmModelService {
57 53 @Resource
58 54 private RepositoryService repositoryService;
59 55 @Resource
60   - private BpmFormServiceApi formServiceApi;
  56 + private BpmFormService bpmFormService;
61 57 @Resource
62 58 private BpmProcessDefinitionService processDefinitionService;
63 59 @Resource
... ... @@ -85,7 +81,7 @@ public class BpmModelServiceImpl implements BpmModelService {
85 81 BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class);
86 82 return metaInfo != null ? metaInfo.getFormId() : null;
87 83 });
88   - Map<Long, BpmFormDTO> formMap = formServiceApi.getFormMap(formIds);
  84 + Map<Long, BpmFormDO> formMap = bpmFormService.getFormMap(formIds);
89 85  
90 86 // 获得 Deployment Map
91 87 Set<String> deploymentIds = new HashSet<>();
... ... @@ -172,7 +168,7 @@ public class BpmModelServiceImpl implements BpmModelService {
172 168 }
173 169 // TODO 芋艿:校验流程图的有效性;例如说,是否有开始的元素,是否有结束的元素;
174 170 // 校验表单已配
175   - BpmFormDTO form = checkFormConfig(model);
  171 + BpmFormDO form = checkFormConfig(model);
176 172 // 校验任务分配规则已配置
177 173 checkTaskAssignRuleAllConfig(id);
178 174  
... ... @@ -225,14 +221,14 @@ public class BpmModelServiceImpl implements BpmModelService {
225 221 * @param model 流程模型
226 222 * @return 流程表单
227 223 */
228   - private BpmFormDTO checkFormConfig(Model model) {
  224 + private BpmFormDO checkFormConfig(Model model) {
229 225 BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class);
230 226 if (metaInfo == null || metaInfo.getFormType() == null) {
231 227 throw exception(MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG);
232 228 }
233 229 // 校验表单存在
234 230 if (Objects.equals(metaInfo.getFormType(), BpmModelFormTypeEnum.NORMAL.getType())) {
235   - BpmFormDTO form = formServiceApi.getForm(metaInfo.getFormId());
  231 + BpmFormDO form = bpmFormService.getForm(metaInfo.getFormId());
236 232 if (form == null) {
237 233 throw exception(FORM_NOT_EXISTS);
238 234 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmProcessDefinitionServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmProcessDefinitionServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjectUtil;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionListReqVO;
7   -import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionPageItemRespVO;
8   -import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionPageReqVO;
9   -import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionRespVO;
10 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmProcessDefinitionConvert;
11   -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
12   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper;
13   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
14 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO;
15   -import cn.iocoder.yudao.module.bpm.api.form.BpmFormServiceApi;
16   -import cn.iocoder.yudao.module.bpm.api.form.dto.BpmFormDTO;
17 8 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
18 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
19 10 import cn.iocoder.yudao.framework.common.util.object.PageUtils;
  11 +import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionListReqVO;
  12 +import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionPageItemRespVO;
  13 +import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionPageReqVO;
  14 +import cn.iocoder.yudao.module.bpm.controller.definition.vo.process.BpmProcessDefinitionRespVO;
  15 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
  16 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
  17 +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper;
  18 +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
20 19 import lombok.extern.slf4j.Slf4j;
21 20 import org.activiti.bpmn.model.BpmnModel;
22 21 import org.activiti.engine.RepositoryService;
... ... @@ -31,10 +30,10 @@ import org.springframework.validation.annotation.Validated;
31 30 import javax.annotation.Resource;
32 31 import java.util.*;
33 32  
34   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_KEY_NOT_MATCH;
35   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_NAME_NOT_MATCH;
36 33 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
37 34 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
  35 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_KEY_NOT_MATCH;
  36 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_NAME_NOT_MATCH;
38 37 import static java.util.Collections.emptyList;
39 38  
40 39 /**
... ... @@ -55,7 +54,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
55 54 @Resource
56 55 private RepositoryService repositoryService;
57 56 @Resource
58   - private BpmFormServiceApi bpmFormServiceApi;
  57 + private BpmFormService formService;
59 58  
60 59 @Resource
61 60 private BpmProcessDefinitionExtMapper processDefinitionMapper;
... ... @@ -86,7 +85,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
86 85  
87 86 // 获得 Form Map
88 87 Set<Long> formIds = convertSet(processDefinitionDOs, BpmProcessDefinitionExtDO::getFormId);
89   - Map<Long, BpmFormDTO> formMap = bpmFormServiceApi.getFormMap(formIds);
  88 + Map<Long, BpmFormDO> formMap = formService.getFormMap(formIds);
90 89  
91 90 // 拼接结果
92 91 long definitionCount = definitionQuery.count();
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjectUtil;
... ... @@ -8,21 +8,18 @@ import cn.iocoder.yudao.module.bpm.controller.definition.vo.rule.BpmTaskAssignRu
8 8 import cn.iocoder.yudao.module.bpm.controller.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO;
9 9 import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmTaskAssignRuleConvert;
10 10 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
11   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper;
  11 +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper;
12 12 import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
13   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
14   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
15   -import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
16   -import cn.iocoder.yudao.module.bpm.api.group.BpmUserGroupServiceApi;
17   -import cn.iocoder.yudao.module.system.enums.SysDictTypeConstants;
18   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
19   -import cn.iocoder.yudao.module.system.service.dept.SysPostCoreService;
20   -import cn.iocoder.yudao.module.system.service.dict.DictDataCoreService;
21   -import cn.iocoder.yudao.module.system.service.permission.SysRoleCoreService;
22   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
23 13 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
24 14 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
25 15 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
  16 +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService;
  17 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  18 +import cn.iocoder.yudao.module.system.api.dept.PostApi;
  19 +import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
  20 +import cn.iocoder.yudao.module.system.api.permission.RoleApi;
  21 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  22 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
26 23 import lombok.extern.slf4j.Slf4j;
27 24 import org.activiti.bpmn.model.BpmnModel;
28 25 import org.activiti.bpmn.model.UserTask;
... ... @@ -34,6 +31,7 @@ import javax.annotation.Resource;
34 31 import java.util.*;
35 32  
36 33 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  34 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
37 35  
38 36 /**
39 37 * BPM 任务分配规则 Service 实现类
... ... @@ -53,17 +51,17 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
53 51 @Lazy // 解决循环依赖
54 52 private BpmProcessDefinitionService processDefinitionService;
55 53 @Resource
56   - private SysRoleCoreService roleCoreService;
  54 + private BpmUserGroupService userGroupService;
57 55 @Resource
58   - private SysDeptCoreService deptCoreService;
  56 + private RoleApi roleApi;
59 57 @Resource
60   - private SysPostCoreService postService;
  58 + private DeptApi deptApi;
61 59 @Resource
62   - private SysUserCoreService userCoreService;
  60 + private PostApi postApi;
63 61 @Resource
64   - private BpmUserGroupServiceApi userGroupServiceApi;
  62 + private AdminUserApi adminUserApi;
65 63 @Resource
66   - private DictDataCoreService dictDataCoreService;
  64 + private DictDataApi dictDataApi;
67 65  
68 66 @Override
69 67 public List<BpmTaskAssignRuleDO> getTaskAssignRuleListByProcessDefinitionId(String processDefinitionId,
... ... @@ -178,18 +176,18 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
178 176  
179 177 private void validTaskAssignRuleOptions(Integer type, Set<Long> options) {
180 178 if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.ROLE.getType())) {
181   - roleCoreService.validRoles(options);
  179 + roleApi.validRoles(options);
182 180 } else if (ObjectUtils.equalsAny(type, BpmTaskAssignRuleTypeEnum.DEPT_MEMBER.getType(),
183 181 BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType())) {
184   - deptCoreService.validDepts(options);
  182 + deptApi.validDepts(options);
185 183 } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.POST.getType())) {
186   - postService.validPosts(options);
  184 + postApi.validPosts(options);
187 185 } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) {
188   - userCoreService.validUsers(options);
  186 + adminUserApi.validUsers(options);
189 187 } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) {
190   - userGroupServiceApi.validUserGroups(options);
  188 + userGroupService.validUserGroups(options);
191 189 } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) {
192   - dictDataCoreService.validDictDatas(SysDictTypeConstants.BPM_TASK_ASSIGN_SCRIPT,
  190 + dictDataApi.validDictDatas(DictTypeConstants.BPM_TASK_ASSIGN_SCRIPT,
193 191 CollectionUtils.convertSet(options, String::valueOf));
194 192 } else {
195 193 throw new IllegalArgumentException(StrUtil.format("未知的规则类型({})", type));
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/BpmOALeaveService.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.oa;
2 2  
3 3  
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*;
  4 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
  5 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeavePageReqVO;
5 6 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
6 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 8  
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/BpmOALeaveServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/BpmOALeaveServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.oa;
2 2  
3 3 import cn.hutool.core.date.DateUtil;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*;
5 4 import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert;
  5 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeaveCreateReqVO;
  6 +import cn.iocoder.yudao.module.bpm.controller.oa.vo.BpmOALeavePageReqVO;
6 7 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
7   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa.BpmOALeaveMapper;
  8 +import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOALeaveMapper;
8 9 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
9   -import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
10 10 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
11 11 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO;
12 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -18,6 +18,7 @@ import javax.annotation.Resource;
18 18 import java.util.*;
19 19  
20 20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  21 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
21 22  
22 23 /**
23 24 * OA 请假申请 Service 实现类
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/listener/BpmOALeaveResultListener.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.listener;
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent;
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventListener;
5 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl.BpmOALeaveServiceImpl;
  6 +import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveServiceImpl;
7 7 import org.springframework.stereotype.Component;
8 8  
9 9 import javax.annotation.Resource;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmActivityService.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.activity.BpmActivityRespVO;
4 4  
5 5 import java.util.List;
6 6  
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmActivityServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmActivityServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2  
3 3 import cn.hutool.core.io.IoUtil;
4   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
5 4 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmActivityConvert;
6 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
7   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmActivityService;
8   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
9   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
10 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  7 +import cn.iocoder.yudao.module.bpm.controller.task.vo.activity.BpmActivityRespVO;
11 8 import lombok.extern.slf4j.Slf4j;
12 9 import org.activiti.bpmn.model.BpmnModel;
13 10 import org.activiti.engine.HistoryService;
... ... @@ -24,7 +21,7 @@ import java.util.Collections;
24 21 import java.util.List;
25 22  
26 23 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
27   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  24 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
28 25  
29 26 /**
30 27 * BPM 活动实例 Service 实现类
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmProcessInstanceService.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.*;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.instance.*;
4 4 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum;
5 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmProcessInstanceServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmProcessInstanceServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.lang.Assert;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.*;
7 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.message.BpmMessageConvert;
8 7 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmProcessInstanceConvert;
  8 +import cn.iocoder.yudao.module.bpm.controller.task.vo.instance.*;
9 9 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
10 10 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
11   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task.BpmProcessInstanceExtMapper;
  11 +import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper;
12 12 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum;
13 13 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
14 14 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
15 15 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventPublisher;
16 16 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
17 17 import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
18   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
19   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
20 18 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO;
21   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
22   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
23   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
24   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
25 19 import cn.iocoder.yudao.framework.common.pojo.PageResult;
26 20 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
  21 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  22 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  23 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  24 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
27 25 import lombok.extern.slf4j.Slf4j;
28 26 import org.activiti.engine.HistoryService;
29 27 import org.activiti.engine.RuntimeService;
... ... @@ -41,6 +39,7 @@ import java.util.*;
41 39  
42 40 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
43 41 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
  42 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
44 43  
45 44 /**
46 45 * 流程实例 Service 实现类
... ... @@ -65,9 +64,9 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
65 64 private HistoryService historyService;
66 65  
67 66 @Resource
68   - private SysUserCoreService userCoreService;
  67 + private AdminUserApi adminUserApi;
69 68 @Resource
70   - private SysDeptCoreService deptCoreService;
  69 + private DeptApi deptApi;
71 70 @Resource
72 71 @Lazy // 解决循环依赖
73 72 private BpmTaskService taskService;
... ... @@ -189,10 +188,10 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
189 188 String bpmnXml = processDefinitionService.getProcessDefinitionBpmnXML(processInstance.getProcessDefinitionId());
190 189  
191 190 // 获得 User
192   - SysUserDO startUser = userCoreService.getUser(NumberUtils.parseLong(processInstance.getStartUserId()));
193   - SysDeptDO dept = null;
  191 + AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId()));
  192 + DeptRespDTO dept = null;
194 193 if (startUser != null) {
195   - dept = deptCoreService.getDept(startUser.getDeptId());
  194 + dept = deptApi.getDept(startUser.getDeptId());
196 195 }
197 196  
198 197 // 拼接结果
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmTaskService.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
  3 +import cn.iocoder.yudao.module.bpm.controller.task.vo.task.*;
4 4 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmTaskServiceImpl.java renamed to yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmTaskServiceImpl.java
1   -package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.StrUtil;
5   -import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
6 5 import cn.iocoder.yudao.adminserver.modules.bpm.convert.message.BpmMessageConvert;
7 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert;
  7 +import cn.iocoder.yudao.module.bpm.controller.task.vo.task.*;
8 8 import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
9   -import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task.BpmTaskExtMapper;
  9 +import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskExtMapper;
10 10 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
11 11 import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
12   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
13   -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
14 12  
15   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
16   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
17   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
18   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
19 13 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
20 14 import cn.iocoder.yudao.framework.common.pojo.PageResult;
21 15 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
22 16 import cn.iocoder.yudao.framework.common.util.object.PageUtils;
  17 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  18 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  19 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  20 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
23 21 import lombok.extern.slf4j.Slf4j;
24 22 import org.activiti.engine.HistoryService;
25 23 import org.activiti.engine.TaskService;
... ... @@ -42,6 +40,7 @@ import java.util.*;
42 40 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
43 41 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
44 42 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  43 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
45 44  
46 45 /**
47 46 * 流程任务实例 Service 实现类
... ... @@ -59,9 +58,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
59 58 private HistoryService historyService;
60 59  
61 60 @Resource
62   - private SysUserCoreService userCoreService;
  61 + private AdminUserApi adminUserApi;
63 62 @Resource
64   - private SysDeptCoreService deptCoreService;
  63 + private DeptApi deptApi;
65 64 @Resource
66 65 @Lazy // 解决循环依赖
67 66 private BpmProcessInstanceService processInstanceService;
... ... @@ -95,9 +94,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
95 94 // 获得 User Map
96 95 Set<Long> userIds = convertSet(tasks, task -> NumberUtils.parseLong(task.getAssignee()));
97 96 userIds.add(NumberUtils.parseLong(processInstance.getStartUserId()));
98   - Map<Long, SysUserDO> userMap = userCoreService.getUserMap(userIds);
  97 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
99 98 // 获得 Dept Map
100   - Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(convertSet(userMap.values(), SysUserDO::getDeptId));
  99 + Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId));
101 100  
102 101 // 拼接数据
103 102 return BpmTaskConvert.INSTANCE.convertList3(tasks, bpmTaskExtDOMap, processInstance, userMap, deptMap);
... ... @@ -144,7 +143,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
144 143 Map<String, ProcessInstance> processInstanceMap = processInstanceService.getProcessInstanceMap(
145 144 convertSet(tasks, Task::getProcessInstanceId));
146 145 // 获得 User Map
147   - Map<Long, SysUserDO> userMap = userCoreService.getUserMap(
  146 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
148 147 convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
149 148 // 拼接结果
150 149 return new PageResult<>(BpmTaskConvert.INSTANCE.convertList1(tasks, processInstanceMap, userMap),
... ... @@ -180,7 +179,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
180 179 Map<String, HistoricProcessInstance> historicProcessInstanceMap = processInstanceService.getHistoricProcessInstanceMap(
181 180 convertSet(tasks, HistoricTaskInstance::getProcessInstanceId));
182 181 // 获得 User Map
183   - Map<Long, SysUserDO> userMap = userCoreService.getUserMap(
  182 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
184 183 convertSet(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
185 184 // 拼接结果
186 185 return new PageResult<>(BpmTaskConvert.INSTANCE.convertList2(tasks, bpmTaskExtDOMap, historicProcessInstanceMap, userMap),
... ... @@ -291,7 +290,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
291 290 @Override
292 291 public void afterCommit() {
293 292 ProcessInstance processInstance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
294   - SysUserDO startUser = userCoreService.getUser(Long.valueOf(processInstance.getStartUserId()));
  293 + AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(processInstance.getStartUserId()));
295 294 messageService.sendMessageWhenTaskAssigned(BpmMessageConvert.INSTANCE.convert(processInstance, startUser, task));
296 295 }
297 296 });
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior;
2 2  
3 3 import cn.hutool.core.map.MapUtil;
4   -import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
5   -import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
6   -import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum;
7 4 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
8 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
9   -import cn.iocoder.yudao.module.bpm.api.group.BpmUserGroupServiceApi;
10   -import cn.iocoder.yudao.module.bpm.api.group.dto.BpmUserGroupDTO;
11   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
12   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
13   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
14   -import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
15   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
16 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
17 7 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
18 8 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
  9 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
  10 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO;
  11 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
  12 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum;
  13 +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService;
  14 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  15 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  16 +import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
  17 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  18 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
19 19 import org.activiti.engine.impl.persistence.entity.TaskEntity;
20 20 import org.junit.jupiter.api.Test;
21 21 import org.mockito.InjectMocks;
... ... @@ -40,13 +40,14 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
40 40 @Mock
41 41 private BpmTaskAssignRuleService bpmTaskRuleService;
42 42 @Mock
43   - private SysPermissionCoreService permissionCoreService;
  43 + private BpmUserGroupService userGroupService;
  44 +
44 45 @Mock
45   - private SysDeptCoreService deptCoreService;
  46 + private DeptApi deptApi;
46 47 @Mock
47   - private BpmUserGroupServiceApi userGroupServiceApi;
  48 + private AdminUserApi adminUserApi;
48 49 @Mock
49   - private SysUserCoreService userCoreService;
  50 + private PermissionApi permissionApi;
50 51  
51 52 @Test
52 53 public void testCalculateTaskCandidateUsers_Role() {
... ... @@ -54,7 +55,7 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
54 55 BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L))
55 56 .setType(BpmTaskAssignRuleTypeEnum.ROLE.getType());
56 57 // mock 方法
57   - when(permissionCoreService.getUserRoleIdListByRoleIds(eq(rule.getOptions())))
  58 + when(permissionApi.getUserRoleIdListByRoleIds(eq(rule.getOptions())))
58 59 .thenReturn(asSet(11L, 22L));
59 60 mockGetUserMap(asSet(11L, 22L));
60 61  
... ... @@ -70,9 +71,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
70 71 BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L))
71 72 .setType(BpmTaskAssignRuleTypeEnum.DEPT_MEMBER.getType());
72 73 // mock 方法
73   - List<SysUserDO> users = CollectionUtils.convertList(asSet(11L, 22L),
74   - id -> new SysUserDO().setId(id));
75   - when(userCoreService.getUsersByDeptIds(eq(rule.getOptions()))).thenReturn(users);
  74 + List<AdminUserRespDTO> users = CollectionUtils.convertList(asSet(11L, 22L),
  75 + id -> new AdminUserRespDTO().setId(id));
  76 + when(adminUserApi.getUsersByDeptIds(eq(rule.getOptions()))).thenReturn(users);
76 77 mockGetUserMap(asSet(11L, 22L));
77 78  
78 79 // 调用
... ... @@ -87,9 +88,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
87 88 BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L))
88 89 .setType(BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType());
89 90 // mock 方法
90   - SysDeptDO dept1 = randomPojo(SysDeptDO.class, o -> o.setLeaderUserId(11L));
91   - SysDeptDO dept2 = randomPojo(SysDeptDO.class, o -> o.setLeaderUserId(22L));
92   - when(deptCoreService.getDepts(eq(rule.getOptions()))).thenReturn(Arrays.asList(dept1, dept2));
  91 + DeptRespDTO dept1 = randomPojo(DeptRespDTO.class, o -> o.setLeaderUserId(11L));
  92 + DeptRespDTO dept2 = randomPojo(DeptRespDTO.class, o -> o.setLeaderUserId(22L));
  93 + when(deptApi.getDepts(eq(rule.getOptions()))).thenReturn(Arrays.asList(dept1, dept2));
93 94 mockGetUserMap(asSet(11L, 22L));
94 95  
95 96 // 调用
... ... @@ -104,9 +105,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
104 105 BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L))
105 106 .setType(BpmTaskAssignRuleTypeEnum.POST.getType());
106 107 // mock 方法
107   - List<SysUserDO> users = CollectionUtils.convertList(asSet(11L, 22L),
108   - id -> new SysUserDO().setId(id));
109   - when(userCoreService.getUsersByPostIds(eq(rule.getOptions()))).thenReturn(users);
  108 + List<AdminUserRespDTO> users = CollectionUtils.convertList(asSet(11L, 22L),
  109 + id -> new AdminUserRespDTO().setId(id));
  110 + when(adminUserApi.getUsersByPostIds(eq(rule.getOptions()))).thenReturn(users);
110 111 mockGetUserMap(asSet(11L, 22L));
111 112  
112 113 // 调用
... ... @@ -135,9 +136,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
135 136 BpmTaskAssignRuleDO rule = new BpmTaskAssignRuleDO().setOptions(asSet(1L, 2L))
136 137 .setType(BpmTaskAssignRuleTypeEnum.USER_GROUP.getType());
137 138 // mock 方法
138   - BpmUserGroupDTO userGroup1 = randomPojo(BpmUserGroupDTO.class, o -> o.setMemberUserIds(asSet(11L, 12L)));
139   - BpmUserGroupDTO userGroup2 = randomPojo(BpmUserGroupDTO.class, o -> o.setMemberUserIds(asSet(21L, 22L)));
140   - when(userGroupServiceApi.getUserGroupList(eq(rule.getOptions()))).thenReturn(Arrays.asList(userGroup1, userGroup2));
  139 + BpmUserGroupDO userGroup1 = randomPojo(BpmUserGroupDO.class, o -> o.setMemberUserIds(asSet(11L, 12L)));
  140 + BpmUserGroupDO userGroup2 = randomPojo(BpmUserGroupDO.class, o -> o.setMemberUserIds(asSet(21L, 22L)));
  141 + when(userGroupService.getUserGroupList(eq(rule.getOptions()))).thenReturn(Arrays.asList(userGroup1, userGroup2));
141 142 mockGetUserMap(asSet(11L, 12L, 21L, 22L));
142 143  
143 144 // 调用
... ... @@ -190,13 +191,13 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
190 191 // 准备参数. 1L 可以找到;2L 是禁用的;3L 找不到
191 192 Set<Long> assigneeUserIds = asSet(1L, 2L, 3L);
192 193 // mock 方法
193   - SysUserDO user1 = randomPojo(SysUserDO.class, o -> o.setId(1L)
  194 + AdminUserRespDTO user1 = randomPojo(AdminUserRespDTO.class, o -> o.setId(1L)
194 195 .setStatus(CommonStatusEnum.ENABLE.getStatus()));
195   - SysUserDO user2 = randomPojo(SysUserDO.class, o -> o.setId(2L)
  196 + AdminUserRespDTO user2 = randomPojo(AdminUserRespDTO.class, o -> o.setId(2L)
196 197 .setStatus(CommonStatusEnum.DISABLE.getStatus()));
197   - Map<Long, SysUserDO> userMap = MapUtil.builder(user1.getId(), user1)
  198 + Map<Long, AdminUserRespDTO> userMap = MapUtil.builder(user1.getId(), user1)
198 199 .put(user2.getId(), user2).build();
199   - when(userCoreService.getUserMap(eq(assigneeUserIds))).thenReturn(userMap);
  200 + when(adminUserApi.getUserMap(eq(assigneeUserIds))).thenReturn(userMap);
200 201  
201 202 // 调用
202 203 behavior.removeDisableUsers(assigneeUserIds);
... ... @@ -205,9 +206,9 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest {
205 206 }
206 207  
207 208 private void mockGetUserMap(Set<Long> assigneeUserIds) {
208   - Map<Long, SysUserDO> userMap = CollectionUtils.convertMap(assigneeUserIds, id -> id,
209   - id -> new SysUserDO().setId(id).setStatus(CommonStatusEnum.ENABLE.getStatus()));
210   - when(userCoreService.getUserMap(eq(assigneeUserIds))).thenReturn(userMap);
  209 + Map<Long, AdminUserRespDTO> userMap = CollectionUtils.convertMap(assigneeUserIds, id -> id,
  210 + id -> new AdminUserRespDTO().setId(id).setStatus(CommonStatusEnum.ENABLE.getStatus()));
  211 + when(adminUserApi.getUserMap(eq(assigneeUserIds))).thenReturn(userMap);
211 212 }
212 213  
213 214 }
... ...
yudao-module-bpm/yudao-module-bpm-impl-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignLeaderX2ScriptTest.java
1 1 package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.impl;
2 2  
3   -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
4   -import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
5   -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
6   -import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
7 3 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
  4 +import cn.iocoder.yudao.module.system.api.dept.DeptApi;
  5 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  6 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  7 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
8 8 import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl;
9 9 import org.activiti.engine.impl.persistence.entity.TaskEntity;
10 10 import org.activiti.engine.impl.persistence.entity.TaskEntityImpl;
11 11 import org.junit.jupiter.api.Test;
12 12 import org.mockito.InjectMocks;
13   -import org.mockito.Mock;
  13 +import org.springframework.boot.test.mock.mockito.MockBean;
14 14  
15 15 import java.util.Set;
16 16  
... ... @@ -25,18 +25,18 @@ class BpmTaskAssignLeaderX2ScriptTest extends BaseMockitoUnitTest {
25 25 @InjectMocks
26 26 private BpmTaskAssignLeaderX2Script script;
27 27  
28   - @Mock
29   - private SysUserCoreService userCoreService;
30   - @Mock
31   - private SysDeptCoreService deptCoreService;
  28 + @MockBean
  29 + private AdminUserApi adminUserApi;
  30 + @MockBean
  31 + private DeptApi deptApi;
32 32  
33 33 @Test
34 34 public void testCalculateTaskCandidateUsers_noDept() {
35 35 // 准备参数
36 36 TaskEntity task = buildTaskEntity(1L);
37 37 // mock 方法(startUser)
38   - SysUserDO startUser = randomPojo(SysUserDO.class, o -> o.setDeptId(10L));
39   - when(userCoreService.getUser(eq(1L))).thenReturn(startUser);
  38 + AdminUserRespDTO startUser = randomPojo(AdminUserRespDTO.class, o -> o.setDeptId(10L));
  39 + when(adminUserApi.getUser(eq(1L))).thenReturn(startUser);
40 40  
41 41 // 调用
42 42 Set<Long> result = script.calculateTaskCandidateUsers(task);
... ... @@ -49,11 +49,11 @@ class BpmTaskAssignLeaderX2ScriptTest extends BaseMockitoUnitTest {
49 49 // 准备参数
50 50 TaskEntity task = buildTaskEntity(1L);
51 51 // mock 方法(startUser)
52   - SysUserDO startUser = randomPojo(SysUserDO.class, o -> o.setDeptId(10L));
53   - when(userCoreService.getUser(eq(1L))).thenReturn(startUser);
54   - SysDeptDO startUserDept = randomPojo(SysDeptDO.class, o -> o.setId(10L).setParentId(100L)
  52 + AdminUserRespDTO startUser = randomPojo(AdminUserRespDTO.class, o -> o.setDeptId(10L));
  53 + when(adminUserApi.getUser(eq(1L))).thenReturn(startUser);
  54 + DeptRespDTO startUserDept = randomPojo(DeptRespDTO.class, o -> o.setId(10L).setParentId(100L)
55 55 .setLeaderUserId(20L));
56   - when(deptCoreService.getDept(eq(10L))).thenReturn(startUserDept);
  56 + when(deptApi.getDept(eq(10L))).thenReturn(startUserDept);
57 57  
58 58 // 调用
59 59 Set<Long> result = script.calculateTaskCandidateUsers(task);
... ... @@ -66,15 +66,15 @@ class BpmTaskAssignLeaderX2ScriptTest extends BaseMockitoUnitTest {
66 66 // 准备参数
67 67 TaskEntity task = buildTaskEntity(1L);
68 68 // mock 方法(startUser)
69   - SysUserDO startUser = randomPojo(SysUserDO.class, o -> o.setDeptId(10L));
70   - when(userCoreService.getUser(eq(1L))).thenReturn(startUser);
71   - SysDeptDO startUserDept = randomPojo(SysDeptDO.class, o -> o.setId(10L).setParentId(100L)
  69 + AdminUserRespDTO startUser = randomPojo(AdminUserRespDTO.class, o -> o.setDeptId(10L));
  70 + when(adminUserApi.getUser(eq(1L))).thenReturn(startUser);
  71 + DeptRespDTO startUserDept = randomPojo(DeptRespDTO.class, o -> o.setId(10L).setParentId(100L)
72 72 .setLeaderUserId(20L));
73   - when(deptCoreService.getDept(eq(10L))).thenReturn(startUserDept);
  73 + when(deptApi.getDept(eq(10L))).thenReturn(startUserDept);
74 74 // mock 方法(父 dept)
75   - SysDeptDO parentDept = randomPojo(SysDeptDO.class, o -> o.setId(100L).setParentId(1000L)
  75 + DeptRespDTO parentDept = randomPojo(DeptRespDTO.class, o -> o.setId(100L).setParentId(1000L)
76 76 .setLeaderUserId(200L));
77   - when(deptCoreService.getDept(eq(100L))).thenReturn(parentDept);
  77 + when(deptApi.getDept(eq(100L))).thenReturn(parentDept);
78 78  
79 79 // 调用
80 80 Set<Long> result = script.calculateTaskCandidateUsers(task);
... ...
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java
... ... @@ -4,8 +4,8 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 4 import cn.iocoder.yudao.framework.security.core.LoginUser;
5 5 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
6 6 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
7   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeSendReqDTO;
8   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeUseReqDTO;
  7 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
  8 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
9 9 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
10 10 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO;
11 11 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
... ...
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
... ... @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobile
8 8 import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
9 9 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
10 10 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
11   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeUseReqDTO;
  11 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
12 12 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
13 13 import com.google.common.annotations.VisibleForTesting;
14 14 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.dept;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  4 +
  5 +import java.util.Collection;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +import java.util.Set;
  9 +
  10 +/**
  11 + * 部门 API 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface DeptApi {
  16 +
  17 + /**
  18 + * 获得部门信息
  19 + *
  20 + * @param id 部门编号
  21 + * @return 部门信息
  22 + */
  23 + DeptRespDTO getDept(Long id);
  24 +
  25 + /**
  26 + * 获得部门信息数组
  27 + *
  28 + * @param ids 部门编号数组
  29 + * @return 部门信息数组
  30 + */
  31 + List<DeptRespDTO> getDepts(Collection<Long> ids);
  32 +
  33 + /**
  34 + * 校验部门们是否有效。如下情况,视为无效:
  35 + * 1. 部门编号不存在
  36 + * 2. 部门被禁用
  37 + *
  38 + * @param ids 角色编号数组
  39 + */
  40 + void validDepts(Collection<Long> ids);
  41 +
  42 + /**
  43 + * 获得指定编号的部门 Map
  44 + *
  45 + * @param ids 部门编号数组
  46 + * @return 部门 Map
  47 + */
  48 + Map<Long, DeptRespDTO> getDeptMap(Set<Long> ids);
  49 +
  50 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.dept;
  2 +
  3 +import java.util.Collection;
  4 +
  5 +/**
  6 + * 岗位 API 接口
  7 + *
  8 + * @author 芋道源码
  9 + */
  10 +public interface PostApi {
  11 +
  12 + /**
  13 + * 校验岗位们是否有效。如下情况,视为无效:
  14 + * 1. 岗位编号不存在
  15 + * 2. 岗位被禁用
  16 + *
  17 + * @param ids 岗位编号数组
  18 + */
  19 + void validPosts(Collection<Long> ids);
  20 +
  21 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.dept.dto;
  2 +
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import lombok.Data;
  5 +
  6 +/**
  7 + * 部门 Response DTO
  8 + *
  9 + * @author 芋道源码
  10 + */
  11 +@Data
  12 +public class DeptRespDTO {
  13 +
  14 + /**
  15 + * 部门编号
  16 + */
  17 + private Long id;
  18 + /**
  19 + * 部门名称
  20 + */
  21 + private String name;
  22 + /**
  23 + * 父部门编号
  24 + */
  25 + private Long parentId;
  26 + /**
  27 + * 负责人的用户编号
  28 + */
  29 + private Long leaderUserId;
  30 + /**
  31 + * 部门状态
  32 + *
  33 + * 枚举 {@link CommonStatusEnum}
  34 + */
  35 + private Integer status;
  36 +
  37 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.dict;
  2 +
  3 +import java.util.Collection;
  4 +
  5 +/**
  6 + * 字典数据 API 接口
  7 + *
  8 + * @author 芋道源码
  9 + */
  10 +public interface DictDataApi {
  11 +
  12 + /**
  13 + * 校验字典数据们是否有效。如下情况,视为无效:
  14 + * 1. 字典数据不存在
  15 + * 2. 字典数据被禁用
  16 + *
  17 + * @param dictType 字典类型
  18 + * @param values 字典数据值的数组
  19 + */
  20 + void validDictDatas(String dictType, Collection<String> values);
  21 +
  22 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.permission;
  2 +
  3 +import java.util.Collection;
  4 +import java.util.Set;
  5 +
  6 +/**
  7 + * 权限 API 接口
  8 + *
  9 + * @author 芋道源码
  10 + */
  11 +public interface PermissionApi {
  12 +
  13 + /**
  14 + * 获得拥有多个角色的用户编号集合
  15 + *
  16 + * @param roleIds 角色编号集合
  17 + * @return 用户编号集合
  18 + */
  19 + Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);
  20 +
  21 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.permission;
  2 +
  3 +import java.util.Collection;
  4 +
  5 +/**
  6 + * 角色 API 接口
  7 + *
  8 + * @author 芋道源码
  9 + */
  10 +public interface RoleApi {
  11 +
  12 + /**
  13 + * 校验角色们是否有效。如下情况,视为无效:
  14 + * 1. 角色编号不存在
  15 + * 2. 角色被禁用
  16 + *
  17 + * @param ids 角色编号数组
  18 + */
  19 + void validRoles(Collection<Long> ids);
  20 +
  21 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.java
1 1 package cn.iocoder.yudao.module.system.api.sms;
2 2  
3 3 import cn.iocoder.yudao.framework.common.exception.ServiceException;
4   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeCheckReqDTO;
5   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeSendReqDTO;
6   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeUseReqDTO;
  4 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeCheckReqDTO;
  5 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
  6 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
7 7  
8 8 import javax.validation.Valid;
9 9  
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.sms;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO;
  4 +
  5 +import javax.validation.Valid;
  6 +
  7 +/**
  8 + * 短信发送 API 接口
  9 + *
  10 + * @author 芋道源码
  11 + */
  12 +public interface SmsSendApi {
  13 +
  14 + /**
  15 + * 发送单条短信给 Admin 用户
  16 + *
  17 + * 在 mobile 为空时,使用 userId 加载对应 Admin 的手机号
  18 + *
  19 + * @param reqDTO 发送请求
  20 + * @return 发送日志编号
  21 + */
  22 + Long sendSingleSmsToAdmin(@Valid SmsSendSingleToUserReqDTO reqDTO);
  23 +
  24 + /**
  25 + * 发送单条短信给 Member 用户
  26 + *
  27 + * 在 mobile 为空时,使用 userId 加载对应 Member 的手机号
  28 + *
  29 + * @param reqDTO 发送请求
  30 + * @return 发送日志编号
  31 + */
  32 + Long sendSingleSmsToMember(@Valid SmsSendSingleToUserReqDTO reqDTO);
  33 +
  34 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/SmsCodeCheckReqDTO.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeCheckReqDTO.java
1   -package cn.iocoder.yudao.module.system.api.sms.dto;
  1 +package cn.iocoder.yudao.module.system.api.sms.dto.code;
2 2  
3 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/SmsCodeSendReqDTO.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java
1   -package cn.iocoder.yudao.module.system.api.sms.dto;
  1 +package cn.iocoder.yudao.module.system.api.sms.dto.code;
2 2  
3 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/SmsCodeUseReqDTO.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java
1   -package cn.iocoder.yudao.module.system.api.sms.dto;
  1 +package cn.iocoder.yudao.module.system.api.sms.dto.code;
2 2  
3 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.sms.dto.send;
  2 +
  3 +import cn.iocoder.yudao.framework.common.validation.Mobile;
  4 +import lombok.Data;
  5 +
  6 +import javax.validation.constraints.NotEmpty;
  7 +import javax.validation.constraints.NotNull;
  8 +import java.util.Map;
  9 +
  10 +/**
  11 + * 短信发送给 Admin 或者 Member 用户
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +@Data
  16 +public class SmsSendSingleToUserReqDTO {
  17 +
  18 + /**
  19 + * 用户编号
  20 + */
  21 + @NotNull(message = "用户编号不能为空")
  22 + private Long userId;
  23 + /**
  24 + * 手机号
  25 + */
  26 + @Mobile
  27 + private String mobile;
  28 + /**
  29 + * 短信模板编号
  30 + */
  31 + @NotEmpty(message = "短信模板编号不能为空")
  32 + private String templateCode;
  33 + /**
  34 + * 短信模板参数
  35 + */
  36 + private Map<String, Object> templateParams;
  37 +
  38 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.user;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
  4 +
  5 +import java.util.Collection;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +import java.util.Set;
  9 +
  10 +/**
  11 + * Admin 用户 API 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface AdminUserApi {
  16 +
  17 + /**
  18 + * 通过用户 ID 查询用户
  19 + *
  20 + * @param id 用户ID
  21 + * @return 用户对象信息
  22 + */
  23 + AdminUserRespDTO getUser(Long id);
  24 +
  25 + /**
  26 + * 获得指定部门的用户数组
  27 + *
  28 + * @param deptIds 部门数组
  29 + * @return 用户数组
  30 + */
  31 + List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds);
  32 +
  33 + /**
  34 + * 获得指定岗位的用户数组
  35 + *
  36 + * @param postIds 岗位数组
  37 + * @return 用户数组
  38 + */
  39 + List<AdminUserRespDTO> getUsersByPostIds(Collection<Long> postIds);
  40 +
  41 + /**
  42 + * 获得用户 Map
  43 + *
  44 + * @param ids 用户编号数组
  45 + * @return 用户 Map
  46 + */
  47 + Map<Long, AdminUserRespDTO> getUserMap(Collection<Long> ids);
  48 +
  49 + /**
  50 + * 校验用户们是否有效。如下情况,视为无效:
  51 + * 1. 用户编号不存在
  52 + * 2. 用户被禁用
  53 + *
  54 + * @param ids 用户编号数组
  55 + */
  56 + void validUsers(Set<Long> ids);
  57 +
  58 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.user.dto;
  2 +
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import lombok.Data;
  5 +
  6 +import java.util.Set;
  7 +
  8 +/**
  9 + * Admin 用户 Response DTO
  10 + *
  11 + * @author 芋道源码
  12 + */
  13 +@Data
  14 +public class AdminUserRespDTO {
  15 +
  16 + /**
  17 + * 用户ID
  18 + */
  19 + private Long id;
  20 + /**
  21 + * 用户昵称
  22 + */
  23 + private String nickname;
  24 + /**
  25 + * 帐号状态
  26 + *
  27 + * 枚举 {@link CommonStatusEnum}
  28 + */
  29 + private Integer status;
  30 +
  31 + /**
  32 + * 部门ID
  33 + */
  34 + private Long deptId;
  35 + /**
  36 + * 岗位编号数组
  37 + */
  38 + private Set<Long> postIds;
  39 + /**
  40 + * 手机号码
  41 + */
  42 + private String mobile;
  43 +
  44 +}
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.dept;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
  4 +import cn.iocoder.yudao.module.system.convert.dept.DeptConvert;
  5 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
  6 +import cn.iocoder.yudao.module.system.service.dept.DeptService;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import javax.annotation.Resource;
  10 +import java.util.Collection;
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +import java.util.Set;
  14 +
  15 +/**
  16 + * 部门 API 实现类
  17 + *
  18 + * @author 芋道源码
  19 + */
  20 +@Service
  21 +public class DeptApiImpl implements DeptApi {
  22 +
  23 + @Resource
  24 + private DeptService deptService;
  25 +
  26 + @Override
  27 + public DeptRespDTO getDept(Long id) {
  28 + DeptDO dept = deptService.getDept(id);
  29 + return DeptConvert.INSTANCE.convert03(dept);
  30 + }
  31 +
  32 + @Override
  33 + public List<DeptRespDTO> getDepts(Collection<Long> ids) {
  34 + List<DeptDO> depts = deptService.getDepts(ids);
  35 + return DeptConvert.INSTANCE.convertList03(depts);
  36 + }
  37 +
  38 + @Override
  39 + public void validDepts(Collection<Long> ids) {
  40 + deptService.validDepts(ids);
  41 + }
  42 +
  43 + @Override
  44 + public Map<Long, DeptRespDTO> getDeptMap(Set<Long> ids) {
  45 + Map<Long, DeptDO> depts = deptService.getDeptMap(ids);
  46 + return DeptConvert.INSTANCE.convertMap(depts);
  47 + }
  48 +
  49 +}
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.permission;
  2 +
  3 +import cn.iocoder.yudao.module.system.service.permission.PermissionService;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +import javax.annotation.Resource;
  7 +import java.util.Collection;
  8 +import java.util.Set;
  9 +
  10 +/**
  11 + * 权限 API 实现类
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +@Service
  16 +public class PermissionApiImpl implements PermissionApi {
  17 +
  18 + @Resource
  19 + private PermissionService permissionService;
  20 +
  21 + @Override
  22 + public Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds) {
  23 + return permissionService.getUserRoleIdListByRoleIds(roleIds);
  24 + }
  25 +
  26 +}
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.java
1 1 package cn.iocoder.yudao.module.system.api.sms;
2 2  
3   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeCheckReqDTO;
4   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeSendReqDTO;
5   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeUseReqDTO;
  3 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeCheckReqDTO;
  4 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
  5 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
6 6 import cn.iocoder.yudao.module.system.service.sms.SmsCodeService;
7 7 import org.springframework.stereotype.Service;
8 8 import org.springframework.validation.annotation.Validated;
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.sms;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO;
  4 +import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.annotation.Validated;
  7 +
  8 +import javax.annotation.Resource;
  9 +
  10 +/**
  11 + * 短信发送 API 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +@Service
  16 +@Validated
  17 +public class SmsSendApiImpl implements SmsSendApi {
  18 +
  19 + @Resource
  20 + private SmsSendService smsSendService;
  21 +
  22 + @Override
  23 + public Long sendSingleSmsToAdmin(SmsSendSingleToUserReqDTO reqDTO) {
  24 + return smsSendService.sendSingleSmsToAdmin(reqDTO.getMobile(), reqDTO.getUserId(),
  25 + reqDTO.getTemplateCode(), reqDTO.getTemplateParams());
  26 + }
  27 +
  28 + @Override
  29 + public Long sendSingleSmsToMember(SmsSendSingleToUserReqDTO reqDTO) {
  30 + return smsSendService.sendSingleSmsToMember(reqDTO.getMobile(), reqDTO.getUserId(),
  31 + reqDTO.getTemplateCode(), reqDTO.getTemplateParams());
  32 + }
  33 +
  34 +}
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.user;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
  4 +import cn.iocoder.yudao.module.system.convert.user.UserConvert;
  5 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  6 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import javax.annotation.Resource;
  10 +import java.util.Collection;
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +import java.util.Set;
  14 +
  15 +/**
  16 + * Admin 用户 API 实现类
  17 + *
  18 + * @author 芋道源码
  19 + */
  20 +@Service
  21 +public class AdminUserApiImpl implements AdminUserApi {
  22 +
  23 + @Resource
  24 + private AdminUserService userService;
  25 +
  26 + @Override
  27 + public AdminUserRespDTO getUser(Long id) {
  28 + AdminUserDO user = userService.getUser(id);
  29 + return UserConvert.INSTANCE.convert4(user);
  30 + }
  31 +
  32 + @Override
  33 + public List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds) {
  34 + List<AdminUserDO> users = userService.getUsersByDeptIds(deptIds);
  35 + return UserConvert.INSTANCE.convertList4(users);
  36 + }
  37 +
  38 + @Override
  39 + public List<AdminUserRespDTO> getUsersByPostIds(Collection<Long> postIds) {
  40 + List<AdminUserDO> users = userService.getUsersByPostIds(postIds);
  41 + return UserConvert.INSTANCE.convertList4(users);
  42 + }
  43 +
  44 + @Override
  45 + public Map<Long, AdminUserRespDTO> getUserMap(Collection<Long> ids) {
  46 + Map<Long, AdminUserDO> userMap = userService.getUserMap(ids);
  47 + return UserConvert.INSTANCE.convertMap4(userMap);
  48 + }
  49 +
  50 + @Override
  51 + public void validUsers(Set<Long> ids) {
  52 + userService.validUsers(ids);
  53 + }
  54 +
  55 +}
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/dept/DeptConvert.java
1 1 package cn.iocoder.yudao.module.system.convert.dept;
2 2  
  3 +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
3 4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
4 5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO;
5 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
... ... @@ -9,6 +10,7 @@ import org.mapstruct.Mapper;
9 10 import org.mapstruct.factory.Mappers;
10 11  
11 12 import java.util.List;
  13 +import java.util.Map;
12 14  
13 15 @Mapper
14 16 public interface DeptConvert {
... ... @@ -25,4 +27,10 @@ public interface DeptConvert {
25 27  
26 28 DeptDO convert(DeptUpdateReqVO bean);
27 29  
  30 + List<DeptRespDTO> convertList03(List<DeptDO> list);
  31 +
  32 + DeptRespDTO convert03(DeptDO bean);
  33 +
  34 + Map<Long, DeptRespDTO> convertMap(Map<Long, DeptDO> map);
  35 +
28 36 }
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.java
1 1 package cn.iocoder.yudao.module.system.convert.user;
2 2  
  3 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
3 4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileRespVO;
4 5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
5 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
... ... @@ -13,6 +14,7 @@ import org.mapstruct.Mapper;
13 14 import org.mapstruct.factory.Mappers;
14 15  
15 16 import java.util.List;
  17 +import java.util.Map;
16 18  
17 19 @Mapper
18 20 public interface UserConvert {
... ... @@ -46,4 +48,11 @@ public interface UserConvert {
46 48 List<UserProfileRespVO.SocialUser> convertList03(List<SocialUserDO> list);
47 49  
48 50 List<UserSimpleRespVO> convertList04(List<AdminUserDO> list);
  51 +
  52 + AdminUserRespDTO convert4(AdminUserDO bean);
  53 +
  54 + List<AdminUserRespDTO> convertList4(List<AdminUserDO> users);
  55 +
  56 + Map<Long, AdminUserRespDTO> convertMap4(Map<Long, AdminUserDO> map);
  57 +
49 58 }
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java
... ... @@ -46,7 +46,6 @@ public interface DeptService {
46 46 */
47 47 void deleteDept(Long id);
48 48  
49   -
50 49 /**
51 50 * 筛选部门列表
52 51 *
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.java
1 1 package cn.iocoder.yudao.module.system.service.sms;
2 2  
3 3 import cn.iocoder.yudao.framework.common.exception.ServiceException;
4   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeCheckReqDTO;
5   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeSendReqDTO;
6   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeUseReqDTO;
  4 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeCheckReqDTO;
  5 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
  6 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
7 7  
8 8 import javax.validation.Valid;
9 9  
... ...
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java
... ... @@ -4,9 +4,9 @@ import cn.hutool.core.lang.Assert;
4 4 import cn.hutool.core.map.MapUtil;
5 5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
6 6 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
7   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeCheckReqDTO;
8   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeSendReqDTO;
9   -import cn.iocoder.yudao.module.system.api.sms.dto.SmsCodeUseReqDTO;
  7 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeCheckReqDTO;
  8 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
  9 +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
10 10 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsCodeDO;
11 11 import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsCodeMapper;
12 12 import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
... ... @@ -37,11 +37,6 @@ public class SmsCodeServiceImpl implements SmsCodeService {
37 37 private SmsCodeMapper smsCodeMapper;
38 38  
39 39 @Resource
40   - private AdminUserService adminUserService;
41   - @Resource
42   - private MemberUserApi memberUserApi;
43   -
44   - @Resource
45 40 private SmsSendService smsSendService;
46 41  
47 42 @Override
... ...