Commit 55a6ec78e4298a4039554183cd1888f3f5715e0e

Authored by YunaiV
1 parent 1031b78f

实现我的流程的后端 API 接口

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/BpmProcessInstanceController.http
1 -### 请求 /login 接口 => 成功 1 +### 请求 /bpm/process-instance/create 接口 => 成功
2 POST {{baseUrl}}/bpm/process-instance/create 2 POST {{baseUrl}}/bpm/process-instance/create
3 Content-Type: application/json 3 Content-Type: application/json
4 tenant-id: 1 4 tenant-id: 1
@@ -11,3 +11,8 @@ Authorization: Bearer {{token}} @@ -11,3 +11,8 @@ Authorization: Bearer {{token}}
11 "b": "2" 11 "b": "2"
12 } 12 }
13 } 13 }
  14 +
  15 +### 请求 /bpm/process-instance/my-page 接口 => 成功
  16 +GET {{baseUrl}}/bpm/process-instance/my-page
  17 +tenant-id: 1
  18 +Authorization: Bearer {{token}}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/BpmProcessInstanceController.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task; 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task;
2 2
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
4 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; 6 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import io.swagger.annotations.Api; 9 import io.swagger.annotations.Api;
7 import io.swagger.annotations.ApiOperation; 10 import io.swagger.annotations.ApiOperation;
8 import org.springframework.validation.annotation.Validated; 11 import org.springframework.validation.annotation.Validated;
9 -import org.springframework.web.bind.annotation.PostMapping;  
10 -import org.springframework.web.bind.annotation.RequestBody;  
11 -import org.springframework.web.bind.annotation.RequestMapping;  
12 -import org.springframework.web.bind.annotation.RestController; 12 +import org.springframework.web.bind.annotation.*;
13 13
14 import javax.annotation.Resource; 14 import javax.annotation.Resource;
15 import javax.validation.Valid; 15 import javax.validation.Valid;
@@ -26,11 +26,19 @@ public class BpmProcessInstanceController { @@ -26,11 +26,19 @@ public class BpmProcessInstanceController {
26 @Resource 26 @Resource
27 private BpmProcessInstanceService processInstanceService; 27 private BpmProcessInstanceService processInstanceService;
28 28
  29 + // TODO 芋艿:权限
  30 +
29 @PostMapping("/create") 31 @PostMapping("/create")
30 @ApiOperation("新建流程实例") 32 @ApiOperation("新建流程实例")
31 public CommonResult<String> createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) { 33 public CommonResult<String> createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) {
32 return success(processInstanceService.createProcessInstance(getLoginUserId(), createReqVO)); 34 return success(processInstanceService.createProcessInstance(getLoginUserId(), createReqVO));
33 -// processInstanceService.getMyProcessInstancePage(getLoginUserId()); 35 + }
  36 +
  37 + @GetMapping("/my-page")
  38 + @ApiOperation(value = "获得我的实例分页列表", notes = "在【我的流程】菜单中,进行调用")
  39 + public CommonResult<PageResult<BpmProcessInstancePageItemRespVO>> getMyProcessInstancePage(
  40 + @Valid BpmProcessInstanceMyPageReqVO pageReqVO) {
  41 + return success(processInstanceService.getMyProcessInstancePage(getLoginUserId(), pageReqVO));
34 } 42 }
35 43
36 } 44 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstanceCreateReqVO.java
@@ -9,8 +9,6 @@ import java.util.Map; @@ -9,8 +9,6 @@ import java.util.Map;
9 9
10 @ApiModel("流程实例的创建 Request VO") 10 @ApiModel("流程实例的创建 Request VO")
11 @Data 11 @Data
12 -//@EqualsAndHashCode(callSuper = true)  
13 -//@ToString(callSuper = true)  
14 public class BpmProcessInstanceCreateReqVO { 12 public class BpmProcessInstanceCreateReqVO {
15 13
16 @ApiModelProperty(value = "流程定义的编号", required = true, example = "1024") 14 @ApiModelProperty(value = "流程定义的编号", required = true, example = "1024")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstanceMyPageReqVO.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance; 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.annotations.ApiModel;
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +import lombok.Data;
  7 +import lombok.EqualsAndHashCode;
  8 +import lombok.ToString;
  9 +import org.springframework.format.annotation.DateTimeFormat;
4 10
  11 +import java.util.Date;
  12 +
  13 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  14 +
  15 +@ApiModel("流程实例的分页 Item Response VO")
  16 +@Data
  17 +@EqualsAndHashCode(callSuper = true)
  18 +@ToString(callSuper = true)
5 public class BpmProcessInstanceMyPageReqVO extends PageParam { 19 public class BpmProcessInstanceMyPageReqVO extends PageParam {
  20 +
  21 + @ApiModelProperty(value = "流程名称", example = "芋道")
  22 + private String name;
  23 +
  24 + @ApiModelProperty(value = "流程定义的编号", example = "2048")
  25 + private String processDefinitionId;
  26 +
  27 + @ApiModelProperty(value = "流程实例的状态", notes = "参见 bpm_process_instance_status", example = "1")
  28 + private Integer status;
  29 +
  30 + @ApiModelProperty(value = "流程实例的结果", notes = "参见 bpm_process_instance_result", example = "2")
  31 + private Integer result;
  32 +
  33 + @ApiModelProperty(value = "开始的创建时间")
  34 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  35 + private Date beginCreateTime;
  36 +
  37 + @ApiModelProperty(value = "结束的创建时间")
  38 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  39 + private Date endCreateTime;
  40 +
6 } 41 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/task/vo/instance/BpmProcessInstancePageItemRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +
  7 +import java.util.Date;
  8 +
  9 +@ApiModel("流程实例的分页 Item Response VO")
  10 +@Data
  11 +public class BpmProcessInstancePageItemRespVO {
  12 +
  13 + @ApiModelProperty(value = "流程实例的编号", required = true, example = "1024")
  14 + private String id;
  15 +
  16 + @ApiModelProperty(value = "流程名称", required = true, example = "芋道")
  17 + private String name;
  18 +
  19 + @ApiModelProperty(value = "流程定义的编号", required = true, example = "2048")
  20 + private String processDefinitionId;
  21 +
  22 + @ApiModelProperty(value = "流程分类", required = true, notes = "参见 bpm_model_category 数据字典", example = "1")
  23 + private String category;
  24 +
  25 + @ApiModelProperty(value = "流程实例的状态", required = true, notes = "参见 bpm_process_instance_status", example = "1")
  26 + private Integer status;
  27 +
  28 + @ApiModelProperty(value = "流程实例的结果", required = true, notes = "参见 bpm_process_instance_result", example = "2")
  29 + private Integer result;
  30 +
  31 + @ApiModelProperty(value = "创建时间", required = true)
  32 + private Date createTime;
  33 +
  34 + // TODO 芋艿:tasks
  35 +
  36 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmProcessInstanceConvert.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.convert.task; 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;
3 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import org.activiti.engine.repository.ProcessDefinition;
4 import org.activiti.engine.runtime.ProcessInstance; 7 import org.activiti.engine.runtime.ProcessInstance;
5 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
6 import org.mapstruct.Mapping; 9 import org.mapstruct.Mapping;
7 import org.mapstruct.Mappings; 10 import org.mapstruct.Mappings;
8 import org.mapstruct.factory.Mappers; 11 import org.mapstruct.factory.Mappers;
9 12
  13 +import java.util.List;
  14 +
10 /** 15 /**
11 * 流程实例 Convert 16 * 流程实例 Convert
12 * 17 *
@@ -18,10 +23,20 @@ public interface BpmProcessInstanceConvert { @@ -18,10 +23,20 @@ public interface BpmProcessInstanceConvert {
18 BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class); 23 BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class);
19 24
20 @Mappings({ 25 @Mappings({
21 - @Mapping(source = "startUserId", target = "userId"),  
22 - @Mapping(source = "id", target = "processInstanceId"),  
23 - @Mapping(source = "startTime", target = "createTime") 26 + @Mapping(source = "instance.startUserId", target = "userId"),
  27 + @Mapping(source = "instance.id", target = "processInstanceId"),
  28 + @Mapping(source = "instance.startTime", target = "createTime"),
  29 + @Mapping(source = "definition.id", target = "processDefinitionId"),
  30 + @Mapping(source = "definition.name", target = "name"),
  31 + @Mapping(source = "definition.category", target = "category")
24 }) 32 })
25 - BpmProcessInstanceExtDO convert(ProcessInstance bean); 33 + BpmProcessInstanceExtDO convert(ProcessInstance instance, ProcessDefinition definition);
  34 +
  35 + PageResult<BpmProcessInstancePageItemRespVO> convertPage(PageResult<BpmProcessInstanceExtDO> page);
  36 +
  37 + List<BpmProcessInstancePageItemRespVO> convertList(List<BpmProcessInstanceExtDO> list);
  38 +
  39 + @Mapping(source = "processInstanceId", target = "id")
  40 + BpmProcessInstancePageItemRespVO convert(BpmProcessInstanceExtDO bean);
26 41
27 } 42 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java
@@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 import com.baomidou.mybatisplus.annotation.TableName; 6 import com.baomidou.mybatisplus.annotation.TableName;
7 import lombok.*; 7 import lombok.*;
8 import org.activiti.engine.history.HistoricProcessInstance; 8 import org.activiti.engine.history.HistoricProcessInstance;
  9 +import org.activiti.engine.repository.ProcessDefinition;
9 import org.activiti.engine.runtime.ProcessInstance; 10 import org.activiti.engine.runtime.ProcessInstance;
10 11
11 /** 12 /**
@@ -18,9 +19,9 @@ import org.activiti.engine.runtime.ProcessInstance; @@ -18,9 +19,9 @@ import org.activiti.engine.runtime.ProcessInstance;
18 @Data 19 @Data
19 @EqualsAndHashCode(callSuper = true) 20 @EqualsAndHashCode(callSuper = true)
20 @ToString(callSuper = true) 21 @ToString(callSuper = true)
21 -@Builder  
22 -@NoArgsConstructor  
23 -@AllArgsConstructor 22 +//@Builder
  23 +//@NoArgsConstructor
  24 +//@AllArgsConstructor
24 public class BpmProcessInstanceExtDO extends BaseDO { 25 public class BpmProcessInstanceExtDO extends BaseDO {
25 26
26 /** 27 /**
@@ -42,13 +43,26 @@ public class BpmProcessInstanceExtDO extends BaseDO { @@ -42,13 +43,26 @@ public class BpmProcessInstanceExtDO extends BaseDO {
42 */ 43 */
43 private String processInstanceId; 44 private String processInstanceId;
44 /** 45 /**
  46 + * 流程定义的编号
  47 + *
  48 + * 关联 {@link ProcessDefinition#getId()}
  49 + */
  50 + private String processDefinitionId;
  51 + /**
  52 + * 流程分类
  53 + *
  54 + * 冗余 {@link ProcessDefinition#getCategory()}
  55 + * 数据字典 bpm_model_category
  56 + */
  57 + private String category;
  58 + /**
45 * 流程实例的状态 59 * 流程实例的状态
46 * 60 *
47 * 枚举 {@link BpmProcessInstanceStatusEnum} 61 * 枚举 {@link BpmProcessInstanceStatusEnum}
48 */ 62 */
49 private Integer status; 63 private Integer status;
50 /** 64 /**
51 - * 结果 65 + * 流程实例的结果
52 * 66 *
53 * 枚举 {@link BpmProcessInstanceResultEnum} 67 * 枚举 {@link BpmProcessInstanceResultEnum}
54 */ 68 */
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task; 1 package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO;
3 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
4 -import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  7 +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
5 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
6 9
7 @Mapper 10 @Mapper
8 -public interface BpmProcessInstanceExtMapper extends BaseMapper<BpmProcessInstanceExtDO> { 11 +public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInstanceExtDO> {
  12 +
  13 + default PageResult<BpmProcessInstanceExtDO> selectPage(Long userId, BpmProcessInstanceMyPageReqVO reqVO) {
  14 + return selectPage(reqVO, new QueryWrapperX<BpmProcessInstanceExtDO>()
  15 + .eqIfPresent("user_id", userId)
  16 + .likeIfPresent("name", reqVO.getName())
  17 + .eqIfPresent("process_definition_id", reqVO.getProcessDefinitionId())
  18 + .eqIfPresent("status", reqVO.getStatus())
  19 + .eqIfPresent("result", reqVO.getResult())
  20 + .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  21 + .orderByDesc("id"));
  22 + }
  23 +
9 } 24 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/BpmProcessInstanceService.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task; 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
2 2
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO;
4 -import cn.iocoder.yudao.adminserver.modules.bpm.service.task.listener.BpmProcessInstanceEventListener; 4 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 7
6 import javax.validation.Valid; 8 import javax.validation.Valid;
7 9
@@ -21,6 +23,14 @@ public interface BpmProcessInstanceService { @@ -21,6 +23,14 @@ public interface BpmProcessInstanceService {
21 */ 23 */
22 String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO); 24 String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO);
23 25
24 - void getMyProcessInstancePage(Long userId); 26 + /**
  27 + * 获得流程实例的分页
  28 + *
  29 + * @param userId 用户编号
  30 + * @param pageReqVO 分页请求
  31 + * @return 流程实例的分页
  32 + */
  33 + PageResult<BpmProcessInstancePageItemRespVO> getMyProcessInstancePage(Long userId,
  34 + @Valid BpmProcessInstanceMyPageReqVO pageReqVO);
25 35
26 } 36 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmProcessInstanceServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl; 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.hutool.core.lang.Assert; 4 import cn.hutool.core.lang.Assert;
4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO;
  6 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO;
  7 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO;
5 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmProcessInstanceConvert; 8 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmProcessInstanceConvert;
6 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; 9 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
7 import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task.BpmProcessInstanceExtMapper; 10 import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task.BpmProcessInstanceExtMapper;
@@ -11,6 +14,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDef @@ -11,6 +14,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDef
11 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; 14 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
12 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 15 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
13 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 16 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  17 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 import lombok.extern.slf4j.Slf4j; 18 import lombok.extern.slf4j.Slf4j;
15 import org.activiti.engine.HistoryService; 19 import org.activiti.engine.HistoryService;
16 import org.activiti.engine.RuntimeService; 20 import org.activiti.engine.RuntimeService;
@@ -81,7 +85,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService @@ -81,7 +85,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
81 // 设置流程名字 85 // 设置流程名字
82 runtimeService.setProcessInstanceName(instance.getId(), definition.getName()); 86 runtimeService.setProcessInstanceName(instance.getId(), definition.getName());
83 // 记录流程实例的拓展表 87 // 记录流程实例的拓展表
84 - createProcessInstanceExt(instance, definition.getName()); 88 + createProcessInstanceExt(instance, definition);
85 89
86 // 添加初始的评论 TODO 芋艿:在思考下 90 // 添加初始的评论 TODO 芋艿:在思考下
87 Task task = taskService.createTaskQuery().processInstanceId(instance.getId()).singleResult(); 91 Task task = taskService.createTaskQuery().processInstanceId(instance.getId()).singleResult();
@@ -101,22 +105,34 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService @@ -101,22 +105,34 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
101 /** 105 /**
102 * 创建流程实例的拓展 106 * 创建流程实例的拓展
103 * 107 *
  108 + * @param definition 流程定义
104 * @param instance 流程实例 109 * @param instance 流程实例
105 - * @param name 实例名。此时,instance 的 name 为空,所以需要传递该参数  
106 */ 110 */
107 - private void createProcessInstanceExt(ProcessInstance instance, String name) {  
108 - BpmProcessInstanceExtDO instanceExt = BpmProcessInstanceConvert.INSTANCE.convert(instance);  
109 - instanceExt.setName(name); 111 + private void createProcessInstanceExt(ProcessInstance instance, ProcessDefinition definition) {
  112 + BpmProcessInstanceExtDO instanceExt = BpmProcessInstanceConvert.INSTANCE.convert(instance, definition);
110 instanceExt.setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus()); 113 instanceExt.setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus());
111 instanceExt.setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); 114 instanceExt.setResult(BpmProcessInstanceResultEnum.PROCESS.getResult());
112 processInstanceExtMapper.insert(instanceExt); 115 processInstanceExtMapper.insert(instanceExt);
113 } 116 }
114 117
  118 + @Override
  119 + public PageResult<BpmProcessInstancePageItemRespVO> getMyProcessInstancePage(Long userId,
  120 + BpmProcessInstanceMyPageReqVO pageReqVO) {
  121 + // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页
  122 + PageResult<BpmProcessInstanceExtDO> pageResult = processInstanceExtMapper.selectPage(userId, pageReqVO);
  123 + if (CollUtil.isEmpty(pageResult.getList())) {
  124 + return new PageResult<>(pageResult.getTotal());
  125 + }
  126 + // TODO 芋艿:tasks
  127 + // 转换返回
  128 + return BpmProcessInstanceConvert.INSTANCE.convertPage(pageResult);
  129 + }
  130 +
115 public void getMyProcessInstancePage(Long userId) { 131 public void getMyProcessInstancePage(Long userId) {
116 // id title 所属流程 当前审批环节 状态 结果 创建时间 提交申请时间 【标题、状态】「ActBusiness」 132 // id title 所属流程 当前审批环节 状态 结果 创建时间 提交申请时间 【标题、状态】「ActBusiness」
117 // id title 流程类别 流程版本 提交时间 流程状态 耗时 当前节点 办理 【标题、提交时间】「HistoricProcessInstanceQuery」 133 // id title 流程类别 流程版本 提交时间 流程状态 耗时 当前节点 办理 【标题、提交时间】「HistoricProcessInstanceQuery」
118 134
119 - // id title 所属流程 流程类别 创建时间 状态 当前审批环节 【标题、状态】 135 + // id name 所属流程 流程类别 创建时间 状态 当前审批环节 【标题、流程、时间、状态、结果】
120 136
121 runtimeService.createProcessInstanceQuery().list(); 137 runtimeService.createProcessInstanceQuery().list();
122 HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery() 138 HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()