package com.ruoyi.project.business.mapper.flow;

import com.ruoyi.project.business.domain.flow.Flow;
import com.ruoyi.project.business.domain.flow.FlowSearchParam;
import com.ruoyi.project.business.domain.flow.FlowTodoListParam;
import com.ruoyi.project.business.domain.flow.FlowVO;
import com.ruoyi.project.business.enums.AuditFlowEnum;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 【请填写功能名称】Mapper接口
 *
 * @author generator
 * @date 2021-09-28
 */
public interface FlowMapper {

    void save(Flow flow);

    List<Flow> list(@Param("param") FlowSearchParam param);

    Flow getBusinessFlow(@Param("auditFlow") Long auditFlow, @Param("businessId") Long businessId);

    List<Flow> getHistoryFlowList(@Param("auditFlow") Long auditFlow, @Param("businessId") Long businessId);

    List<Flow> getAuditHistoryFlowList(@Param("auditFlows") List<AuditFlowEnum> auditFlows, @Param("businessId") Long businessId);

    int remove(@Param("auditFlow") AuditFlowEnum auditFlow, @Param("businessIds") List<Long> businessIds);

    int abort(@Param("auditFlow") AuditFlowEnum auditFlow, @Param("businessIds") List<Long> businessIds);

    Flow getById(@Param("id") Long id);

    void updateStatus(@Param("param") Flow flow);

    List<Flow> getFlowList(@Param("ids") List<Long> ids, @Param("auditFlows") List<AuditFlowEnum> auditFlows, @Param("status") Integer status);

    List<FlowVO> getTodoList(@Param("params") FlowTodoListParam params);

    String getStatus(@Param("auditFlow") Long auditFlow,@Param("businessDesc") String  businessDesc);
}
