package com.chinaweal.aiccs.aiccs.auditing.service;

import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 监管共用审批意见表 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-01-22
 */
public interface TSOpinionService extends BaseService<TSOpinion> {

    /**
     * 业务流程所有环节意见
     * @param auditingID 环节id
     * @return 环节意见
     * @author lroyia
     * @since 2021年1月22日 14:25:48
     */
    List<TSOpinion> selectByAuditingID(String auditingID);

    /**
     * 创建处办信息
     * @param workflowId 工作流id
     * @param opinionType 意见类型
     * @param handler 处理人
     * @param opinion 处办意见
     * @return 创建结果
     * @author lroyia
     * @since 2021年2月7日 14:59:29
     */
    TSOpinion createOpinion(String workflowId, String opinionType, AICUser handler, String opinion);

    /**
     * 通过工作流id获取所有工作流内的处理意见
     * @param workflowId 工作流id
     * @return  获取结果
     * @author lroyia
     * @since  2021年4月28日 13:48:14
     */
    List<TSOpinion> getOpinionsWithOrg(String workflowId);

    TSOpinion getOpinionByOne(String workflowId);

    /**
     * 根据工作流id及意见类型获取最新意见
     * @param workflowId
     * @param opinionType
     * @return
     */
    TSOpinion getNewestOpinion(String workflowId,String opinionType);

    List<TSOpinion> queryByWorkflowId(String workflowId);

    /**
     * 恢复数据用
     * @return
     */
    List<TSOpinion> getRecoverList();

    /**
     * 恢复数据用(回退至申请人)
     * @return
     */
    List<TSOpinion> getRecoverListReturn();

    /**
     * 恢复数据用(已办)
     * @return
     */
    List<TSOpinion> getRecoverListFinish();

}
