package com.chinaweal.aiccs.aiccs.seriousillegal.service;

import com.chinaweal.aiccs.aiccs.abnormal.entity.TSHandInMat;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.TSBizSerIllegalDiss;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.dto.DissentIllegalAppDto;
import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseService;

import java.util.List;

/**
 * <p>
 * 严重违法失信企业名单异议业务表 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-01-26
 */
public interface TSBizSerIllegalDissService extends BaseService<TSBizSerIllegalDiss> {

    List<TSBizSerIllegalDiss> selectbizDissentList(TSBizSerIllegalDiss tsBizDissentModel);

    TSBizSerIllegalDiss selectBizDissentByBizSeq(String bizseq);

    /**
     * 启动严重违法失信企业异议待办
     * @param user 当前用户信息
     * @param taskListModel 待办信息
     * @param tsBizDissentModel 异议信息
     * @return 启动结果
     * @author lroyia
     * @since 2021年1月27日 10:41:48
     */
    TSTaskList startBizDissentAccept(AICUser user, List<String> userIdList, TSTaskList taskListModel, TSBizSerIllegalDiss tsBizDissentModel);

    /**
     * 异议审批流程
     * @param user 用户信息
     * @param taskListModel 待办信息
     * @param tsBizDissentModel 异议信息
     * @param opinionModel 处办信息
     * @param nextNodeID 下一个节点id
     * @param nextPerformerids 下一步处理人id
     * @param nextPerformerNames 处理
     * @return 处理结果
     * @author lroyia
     * @since 2021年1月27日 10:45:15
     */
    TSTaskList saveBizDissentAuditProcess(AICUser user, TSTaskList taskListModel,
                                          TSBizSerIllegalDiss tsBizDissentModel,
                                          TSOpinion opinionModel, String nextNodeID,
                                          String[] nextPerformerids,
                                          String[] nextPerformerNames);

    void saveBizDissentApply(TSBizSerIllegalDiss tsBizDissentModel,List<TSHandInMat> tsHandInMatModels);

    void startAppDissent(DissentIllegalAppDto dissentIllegalAppDto);
}
