package com.iailab.module.bpm.service.task; import com.iailab.framework.common.pojo.PageResult; import com.iailab.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageReqVO; import com.iailab.module.bpm.dal.dataobject.task.BpmProcessInstanceCopyDO; import org.flowable.bpmn.model.FlowNode; import javax.validation.constraints.NotEmpty; import java.util.Collection; /** * æµç¨‹æŠ„é€ Service æŽ¥å£ * * 现在是在审批的时候进行æµç¨‹æŠ„é€ */ public interface BpmProcessInstanceCopyService { /** * ã€ç®¡ç†å‘˜ã€‘æµç¨‹å®žä¾‹çš„æŠ„é€ * * @param userIds 抄é€çš„ç”¨æˆ·ç¼–å· * @param reason 抄é€æ„è§ * @param taskId æµç¨‹ä»»åŠ¡ç¼–å· */ void createProcessInstanceCopy(Collection<Long> userIds, String reason, String taskId); /** * ã€è‡ªåŠ¨æŠ„é€ã€‘æµç¨‹å®žä¾‹çš„æŠ„é€ * * @param userIds 抄é€çš„ç”¨æˆ·ç¼–å· * @param reason 抄é€æ„è§ * @param processInstanceId æµç¨‹ç¼–å· * @param activityId æµç¨‹æ´»åŠ¨ç¼–å·ï¼ˆå¯¹åº” {@link FlowNode#getId()}) * @param activityName 任务编å·ï¼ˆå¯¹åº” {@link FlowNode#getName()}) * @param taskId 任务编å·ï¼Œå…许空 */ void createProcessInstanceCopy(Collection<Long> userIds, String reason, @NotEmpty(message = "æµç¨‹å®žä¾‹ç¼–å·ä¸èƒ½ä¸ºç©º") String processInstanceId, @NotEmpty(message = "æµç¨‹æ´»åŠ¨ç¼–å·ä¸èƒ½ä¸ºç©º") String activityId, @NotEmpty(message = "æµç¨‹æ´»åŠ¨åå—ä¸èƒ½ä¸ºç©º") String activityName, String taskId); /** * 获得抄é€çš„æµç¨‹çš„分页 * * @param userId 当å‰ç™»å½•ç”¨æˆ· * @param pageReqVO 分页请求 * @return 抄é€çš„分页结果 */ PageResult<BpmProcessInstanceCopyDO> getProcessInstanceCopyPage(Long userId, BpmProcessInstanceCopyPageReqVO pageReqVO); }