mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	实现我的流程的后端 API 接口
This commit is contained in:
		| @@ -1,4 +1,4 @@ | |||||||
| ### 请求 /login 接口 => 成功 | ### 请求 /bpm/process-instance/create 接口 => 成功 | ||||||
| POST {{baseUrl}}/bpm/process-instance/create | POST {{baseUrl}}/bpm/process-instance/create | ||||||
| Content-Type: application/json | Content-Type: application/json | ||||||
| tenant-id: 1 | tenant-id: 1 | ||||||
| @@ -11,3 +11,8 @@ Authorization: Bearer {{token}} | |||||||
|     "b": "2" |     "b": "2" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | ### 请求 /bpm/process-instance/my-page 接口 => 成功 | ||||||
|  | GET {{baseUrl}}/bpm/process-instance/my-page | ||||||
|  | tenant-id: 1 | ||||||
|  | Authorization: Bearer {{token}} | ||||||
|   | |||||||
| @@ -1,15 +1,15 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.bpm.controller.task; | package cn.iocoder.yudao.adminserver.modules.bpm.controller.task; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; | import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
| import org.springframework.web.bind.annotation.PostMapping; | import org.springframework.web.bind.annotation.*; | ||||||
| import org.springframework.web.bind.annotation.RequestBody; |  | ||||||
| import org.springframework.web.bind.annotation.RequestMapping; |  | ||||||
| import org.springframework.web.bind.annotation.RestController; |  | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| import javax.validation.Valid; | import javax.validation.Valid; | ||||||
| @@ -26,11 +26,19 @@ public class BpmProcessInstanceController { | |||||||
|     @Resource |     @Resource | ||||||
|     private BpmProcessInstanceService processInstanceService; |     private BpmProcessInstanceService processInstanceService; | ||||||
|  |  | ||||||
|  |     // TODO 芋艿:权限 | ||||||
|  |  | ||||||
|     @PostMapping("/create") |     @PostMapping("/create") | ||||||
|     @ApiOperation("新建流程实例") |     @ApiOperation("新建流程实例") | ||||||
|     public CommonResult<String> createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) { |     public CommonResult<String> createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) { | ||||||
|         return success(processInstanceService.createProcessInstance(getLoginUserId(), createReqVO)); |         return success(processInstanceService.createProcessInstance(getLoginUserId(), createReqVO)); | ||||||
| //        processInstanceService.getMyProcessInstancePage(getLoginUserId()); |     } | ||||||
|  |  | ||||||
|  |     @GetMapping("/my-page") | ||||||
|  |     @ApiOperation(value = "获得我的实例分页列表", notes = "在【我的流程】菜单中,进行调用") | ||||||
|  |     public CommonResult<PageResult<BpmProcessInstancePageItemRespVO>> getMyProcessInstancePage( | ||||||
|  |             @Valid BpmProcessInstanceMyPageReqVO pageReqVO) { | ||||||
|  |         return success(processInstanceService.getMyProcessInstancePage(getLoginUserId(), pageReqVO)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,8 +9,6 @@ import java.util.Map; | |||||||
|  |  | ||||||
| @ApiModel("流程实例的创建 Request VO") | @ApiModel("流程实例的创建 Request VO") | ||||||
| @Data | @Data | ||||||
| //@EqualsAndHashCode(callSuper = true) |  | ||||||
| //@ToString(callSuper = true) |  | ||||||
| public class BpmProcessInstanceCreateReqVO { | public class BpmProcessInstanceCreateReqVO { | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "流程定义的编号", required = true, example = "1024") |     @ApiModelProperty(value = "流程定义的编号", required = true, example = "1024") | ||||||
|   | |||||||
| @@ -1,6 +1,41 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance; | package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import io.swagger.annotations.ApiModel; | ||||||
|  | import io.swagger.annotations.ApiModelProperty; | ||||||
|  | import lombok.Data; | ||||||
|  | import lombok.EqualsAndHashCode; | ||||||
|  | import lombok.ToString; | ||||||
|  | import org.springframework.format.annotation.DateTimeFormat; | ||||||
|  |  | ||||||
|  | import java.util.Date; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||||
|  |  | ||||||
|  | @ApiModel("流程实例的分页 Item Response VO") | ||||||
|  | @Data | ||||||
|  | @EqualsAndHashCode(callSuper = true) | ||||||
|  | @ToString(callSuper = true) | ||||||
| public class BpmProcessInstanceMyPageReqVO extends PageParam { | public class BpmProcessInstanceMyPageReqVO extends PageParam { | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程名称", example = "芋道") | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程定义的编号", example = "2048") | ||||||
|  |     private String processDefinitionId; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程实例的状态", notes = "参见 bpm_process_instance_status", example = "1") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程实例的结果", notes = "参见 bpm_process_instance_result", example = "2") | ||||||
|  |     private Integer result; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "开始的创建时间") | ||||||
|  |     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||||
|  |     private Date beginCreateTime; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "结束的创建时间") | ||||||
|  |     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||||
|  |     private Date endCreateTime; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,36 @@ | |||||||
|  | package cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance; | ||||||
|  |  | ||||||
|  | import io.swagger.annotations.ApiModel; | ||||||
|  | import io.swagger.annotations.ApiModelProperty; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | import java.util.Date; | ||||||
|  |  | ||||||
|  | @ApiModel("流程实例的分页 Item Response VO") | ||||||
|  | @Data | ||||||
|  | public class BpmProcessInstancePageItemRespVO { | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程实例的编号", required = true, example = "1024") | ||||||
|  |     private String id; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程名称", required = true, example = "芋道") | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程定义的编号", required = true, example = "2048") | ||||||
|  |     private String processDefinitionId; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程分类", required = true, notes = "参见 bpm_model_category 数据字典", example = "1") | ||||||
|  |     private String category; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程实例的状态", required = true, notes = "参见 bpm_process_instance_status", example = "1") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "流程实例的结果", required = true, notes = "参见 bpm_process_instance_result", example = "2") | ||||||
|  |     private Integer result; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "创建时间", required = true) | ||||||
|  |     private Date createTime; | ||||||
|  |  | ||||||
|  |     // TODO 芋艿:tasks | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,12 +1,17 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.bpm.convert.task; | package cn.iocoder.yudao.adminserver.modules.bpm.convert.task; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import org.activiti.engine.repository.ProcessDefinition; | ||||||
| import org.activiti.engine.runtime.ProcessInstance; | import org.activiti.engine.runtime.ProcessInstance; | ||||||
| import org.mapstruct.Mapper; | import org.mapstruct.Mapper; | ||||||
| import org.mapstruct.Mapping; | import org.mapstruct.Mapping; | ||||||
| import org.mapstruct.Mappings; | import org.mapstruct.Mappings; | ||||||
| import org.mapstruct.factory.Mappers; | import org.mapstruct.factory.Mappers; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 流程实例 Convert |  * 流程实例 Convert | ||||||
|  * |  * | ||||||
| @@ -18,10 +23,20 @@ public interface BpmProcessInstanceConvert { | |||||||
|     BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class); |     BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class); | ||||||
|  |  | ||||||
|     @Mappings({ |     @Mappings({ | ||||||
|             @Mapping(source = "startUserId", target = "userId"), |             @Mapping(source = "instance.startUserId", target = "userId"), | ||||||
|             @Mapping(source = "id", target = "processInstanceId"), |             @Mapping(source = "instance.id", target = "processInstanceId"), | ||||||
|             @Mapping(source = "startTime", target = "createTime") |             @Mapping(source = "instance.startTime", target = "createTime"), | ||||||
|  |             @Mapping(source = "definition.id", target = "processDefinitionId"), | ||||||
|  |             @Mapping(source = "definition.name", target = "name"), | ||||||
|  |             @Mapping(source = "definition.category", target = "category") | ||||||
|     }) |     }) | ||||||
|     BpmProcessInstanceExtDO convert(ProcessInstance bean); |     BpmProcessInstanceExtDO convert(ProcessInstance instance, ProcessDefinition definition); | ||||||
|  |  | ||||||
|  |     PageResult<BpmProcessInstancePageItemRespVO> convertPage(PageResult<BpmProcessInstanceExtDO> page); | ||||||
|  |  | ||||||
|  |     List<BpmProcessInstancePageItemRespVO> convertList(List<BpmProcessInstanceExtDO> list); | ||||||
|  |  | ||||||
|  |     @Mapping(source = "processInstanceId", target = "id") | ||||||
|  |     BpmProcessInstancePageItemRespVO convert(BpmProcessInstanceExtDO bean); | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |||||||
| import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||||
| import lombok.*; | import lombok.*; | ||||||
| import org.activiti.engine.history.HistoricProcessInstance; | import org.activiti.engine.history.HistoricProcessInstance; | ||||||
|  | import org.activiti.engine.repository.ProcessDefinition; | ||||||
| import org.activiti.engine.runtime.ProcessInstance; | import org.activiti.engine.runtime.ProcessInstance; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -18,9 +19,9 @@ import org.activiti.engine.runtime.ProcessInstance; | |||||||
| @Data | @Data | ||||||
| @EqualsAndHashCode(callSuper = true) | @EqualsAndHashCode(callSuper = true) | ||||||
| @ToString(callSuper = true) | @ToString(callSuper = true) | ||||||
| @Builder | //@Builder | ||||||
| @NoArgsConstructor | //@NoArgsConstructor | ||||||
| @AllArgsConstructor | //@AllArgsConstructor | ||||||
| public class BpmProcessInstanceExtDO extends BaseDO { | public class BpmProcessInstanceExtDO extends BaseDO { | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -41,6 +42,19 @@ public class BpmProcessInstanceExtDO extends BaseDO { | |||||||
|      * 关联 {@link ProcessInstance#getId()} |      * 关联 {@link ProcessInstance#getId()} | ||||||
|      */ |      */ | ||||||
|     private String processInstanceId; |     private String processInstanceId; | ||||||
|  |     /** | ||||||
|  |      * 流程定义的编号 | ||||||
|  |      * | ||||||
|  |      * 关联 {@link ProcessDefinition#getId()} | ||||||
|  |      */ | ||||||
|  |     private String processDefinitionId; | ||||||
|  |     /** | ||||||
|  |      * 流程分类 | ||||||
|  |      * | ||||||
|  |      * 冗余 {@link ProcessDefinition#getCategory()} | ||||||
|  |      * 数据字典 bpm_model_category | ||||||
|  |      */ | ||||||
|  |     private String category; | ||||||
|     /** |     /** | ||||||
|      * 流程实例的状态 |      * 流程实例的状态 | ||||||
|      * |      * | ||||||
| @@ -48,7 +62,7 @@ public class BpmProcessInstanceExtDO extends BaseDO { | |||||||
|      */ |      */ | ||||||
|     private Integer status; |     private Integer status; | ||||||
|     /** |     /** | ||||||
|      * 结果 |      * 流程实例的结果 | ||||||
|      * |      * | ||||||
|      * 枚举 {@link BpmProcessInstanceResultEnum} |      * 枚举 {@link BpmProcessInstanceResultEnum} | ||||||
|      */ |      */ | ||||||
|   | |||||||
| @@ -1,9 +1,24 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task; | package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | ||||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
|  | import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
| @Mapper | @Mapper | ||||||
| public interface BpmProcessInstanceExtMapper extends BaseMapper<BpmProcessInstanceExtDO> { | public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInstanceExtDO> { | ||||||
|  |  | ||||||
|  |     default PageResult<BpmProcessInstanceExtDO> selectPage(Long userId, BpmProcessInstanceMyPageReqVO reqVO) { | ||||||
|  |         return selectPage(reqVO, new QueryWrapperX<BpmProcessInstanceExtDO>() | ||||||
|  |                 .eqIfPresent("user_id", userId) | ||||||
|  |                 .likeIfPresent("name", reqVO.getName()) | ||||||
|  |                 .eqIfPresent("process_definition_id", reqVO.getProcessDefinitionId()) | ||||||
|  |                 .eqIfPresent("status", reqVO.getStatus()) | ||||||
|  |                 .eqIfPresent("result", reqVO.getResult()) | ||||||
|  |                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||||||
|  |                 .orderByDesc("id")); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.bpm.service.task; | package cn.iocoder.yudao.adminserver.modules.bpm.service.task; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.service.task.listener.BpmProcessInstanceEventListener; | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  |  | ||||||
| import javax.validation.Valid; | import javax.validation.Valid; | ||||||
|  |  | ||||||
| @@ -21,6 +23,14 @@ public interface BpmProcessInstanceService { | |||||||
|      */ |      */ | ||||||
|     String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO); |     String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO); | ||||||
|  |  | ||||||
|     void getMyProcessInstancePage(Long userId); |     /** | ||||||
|  |      * 获得流程实例的分页 | ||||||
|  |      * | ||||||
|  |      * @param userId 用户编号 | ||||||
|  |      * @param pageReqVO 分页请求 | ||||||
|  |      * @return 流程实例的分页 | ||||||
|  |      */ | ||||||
|  |     PageResult<BpmProcessInstancePageItemRespVO> getMyProcessInstancePage(Long userId, | ||||||
|  |                                                                           @Valid BpmProcessInstanceMyPageReqVO pageReqVO); | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,10 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl; | package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl; | ||||||
|  |  | ||||||
|  | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.core.lang.Assert; | import cn.hutool.core.lang.Assert; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceCreateReqVO; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstanceMyPageReqVO; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmProcessInstancePageItemRespVO; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmProcessInstanceConvert; | import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmProcessInstanceConvert; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | ||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task.BpmProcessInstanceExtMapper; | 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 | |||||||
| import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; | import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; | ||||||
| import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; | import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; | ||||||
| import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.activiti.engine.HistoryService; | import org.activiti.engine.HistoryService; | ||||||
| import org.activiti.engine.RuntimeService; | import org.activiti.engine.RuntimeService; | ||||||
| @@ -81,7 +85,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | |||||||
|         // 设置流程名字 |         // 设置流程名字 | ||||||
|         runtimeService.setProcessInstanceName(instance.getId(), definition.getName()); |         runtimeService.setProcessInstanceName(instance.getId(), definition.getName()); | ||||||
|         // 记录流程实例的拓展表 |         // 记录流程实例的拓展表 | ||||||
|         createProcessInstanceExt(instance, definition.getName()); |         createProcessInstanceExt(instance, definition); | ||||||
|  |  | ||||||
|         // 添加初始的评论 TODO 芋艿:在思考下 |         // 添加初始的评论 TODO 芋艿:在思考下 | ||||||
|         Task task = taskService.createTaskQuery().processInstanceId(instance.getId()).singleResult(); |         Task task = taskService.createTaskQuery().processInstanceId(instance.getId()).singleResult(); | ||||||
| @@ -101,22 +105,34 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | |||||||
|     /** |     /** | ||||||
|      * 创建流程实例的拓展 |      * 创建流程实例的拓展 | ||||||
|      * |      * | ||||||
|  |      * @param definition 流程定义 | ||||||
|      * @param instance 流程实例 |      * @param instance 流程实例 | ||||||
|      * @param name 实例名。此时,instance 的 name 为空,所以需要传递该参数 |  | ||||||
|      */ |      */ | ||||||
|     private void createProcessInstanceExt(ProcessInstance instance, String name) { |     private void createProcessInstanceExt(ProcessInstance instance, ProcessDefinition definition) { | ||||||
|         BpmProcessInstanceExtDO instanceExt = BpmProcessInstanceConvert.INSTANCE.convert(instance); |         BpmProcessInstanceExtDO instanceExt = BpmProcessInstanceConvert.INSTANCE.convert(instance, definition); | ||||||
|         instanceExt.setName(name); |  | ||||||
|         instanceExt.setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus()); |         instanceExt.setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus()); | ||||||
|         instanceExt.setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); |         instanceExt.setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); | ||||||
|         processInstanceExtMapper.insert(instanceExt); |         processInstanceExtMapper.insert(instanceExt); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public PageResult<BpmProcessInstancePageItemRespVO> getMyProcessInstancePage(Long userId, | ||||||
|  |                                                                                  BpmProcessInstanceMyPageReqVO pageReqVO) { | ||||||
|  |         // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页 | ||||||
|  |         PageResult<BpmProcessInstanceExtDO> pageResult = processInstanceExtMapper.selectPage(userId, pageReqVO); | ||||||
|  |         if (CollUtil.isEmpty(pageResult.getList())) { | ||||||
|  |             return new PageResult<>(pageResult.getTotal()); | ||||||
|  |         } | ||||||
|  |         // TODO 芋艿:tasks | ||||||
|  |         // 转换返回 | ||||||
|  |         return BpmProcessInstanceConvert.INSTANCE.convertPage(pageResult); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public void getMyProcessInstancePage(Long userId) { |     public void getMyProcessInstancePage(Long userId) { | ||||||
|         // id title 所属流程 当前审批环节 状态 结果 创建时间 提交申请时间 【标题、状态】「ActBusiness」 |         // id title 所属流程 当前审批环节 状态 结果 创建时间 提交申请时间 【标题、状态】「ActBusiness」 | ||||||
|         // id title 流程类别 流程版本 提交时间 流程状态 耗时 当前节点 办理 【标题、提交时间】「HistoricProcessInstanceQuery」 |         // id title 流程类别 流程版本 提交时间 流程状态 耗时 当前节点 办理 【标题、提交时间】「HistoricProcessInstanceQuery」 | ||||||
|  |  | ||||||
|         // id title 所属流程 流程类别 创建时间 状态 当前审批环节 【标题、状态】 |         // id name 所属流程 流程类别 创建时间 状态 当前审批环节 【标题、流程、时间、状态、结果】 | ||||||
|  |  | ||||||
|         runtimeService.createProcessInstanceQuery().list(); |         runtimeService.createProcessInstanceQuery().list(); | ||||||
|         HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery() |         HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV