package com.fjhx.flow.service.flow;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.flow.entity.flow.dto.FlowExampleSelectDto;
import com.fjhx.flow.entity.flow.dto.FlowNodeDto;
import com.fjhx.flow.entity.flow.dto.SetStartDataDto;
import com.fjhx.flow.entity.flow.po.FlowExample;
import com.fjhx.flow.entity.flow.po.FlowInfo;
import com.fjhx.flow.entity.flow.vo.ApprovalRecordVo;
import com.fjhx.flow.entity.flow.vo.FlowExampleVo;
import com.ruoyi.common.core.domain.BaseIdPo;
import com.ruoyi.common.core.service.BaseService;
import java.util.Collections;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Function;
/**
*
* 流程实例 服务类
*
*
* @author
* @since 2023-03-16
*/
public interface FlowExampleService extends BaseService {
/**
* 获取流程类型
*/
List getFlowType();
/**
* 获取待处理流程实例
*/
Page getToBeProcessedPage(FlowExampleSelectDto dto);
/**
* 获取已发起流程实例
*/
Page getHaveInitiatedPage(FlowExampleSelectDto dto);
/**
* 获取已处理流程实例
*/
Page getProcessedPage(FlowExampleSelectDto dto);
/**
* 获取审批记录
*/
ApprovalRecordVo getApprovalRecord(Long id);
/**
* 获取流程分页列表
*/
Page getPage(FlowExampleSelectDto dto);
/**
* 发起流程记录
*/
List getFlowNode(FlowNodeDto dto);
/**
* 重新赋值开始节点数据
*/
void setStartData(SetStartDataDto dto);
/**
* 赋值流程id
*/
void setFlowId(List list, Function getIdFun, BiConsumer setFun);
/**
* 赋值流程id
*/
default void setFlowId(List list, BiConsumer setFun) {
setFlowId(list, BaseIdPo::getId, setFun);
}
/**
* 赋值流程id
*/
default void setFlowId(T entity, BiConsumer setFun) {
setFlowId(Collections.singletonList(entity), BaseIdPo::getId, setFun);
}
/**
* 赋值流程id
*/
default void setFlowId(T entity, Function getIdFun, BiConsumer setFun) {
setFlowId(Collections.singletonList(entity), getIdFun, setFun);
}
}