package com.chinaweal.aiccs.aiccs.abnormal.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chinaweal.aiccs.aiccs.abnormal.entity.TSBizDissent;
import com.chinaweal.aiccs.aiccs.abnormal.entity.TSHandInMat;
import com.chinaweal.aiccs.aiccs.abnormal.entity.dto.DissentAppDto;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList;
import com.chinaweal.aicorg.model.AICUser;

import java.util.List;

/**
 * <p>
 * 经营异常名录异议业务表 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-01-19
 */
public interface TSBizDissentService extends IService<TSBizDissent> {

    /**
     * 查询异议信息列表
     * @param tsBizDissentModel 异议信息查询条件
     * @return 查询结果
     * @author lroyia
     * @since 2021年1月26日 10:38:28
     */
    List<TSBizDissent> selectbizDissentList(TSBizDissent tsBizDissentModel);

    /**
     * 通过bizSeqId查询经营异常名录异议业务记录
     * @param bizSeqId bizSeqId
     * @return 查询结果
     * @author lroyia
     * @since 2021年1月26日 10:27:24
     */
    TSBizDissent selectbizDissentone(String bizSeqId);

    /**
     * 开启异常企业异议待办
     * @param user 用户
     * @param userIdList 用户组
     * @param taskListModel 待办信息
     * @param tsBizDissentModel 异议信息
     * @return 启动结果
     * @author lroyia
     * @since 2021年1月26日 10:33:18
     */
    TSTaskList startBizDissentAccept(AICUser user, List<String> userIdList, TSTaskList taskListModel, TSBizDissent tsBizDissentModel);

    /**
     * 异议审批流程
     * @param user 当前登录用户信息
     * @param taskListModel 待办信息
     * @param tsBizDissentModel  异议信息
     * @param opinionModel 处办信息
     * @param nextNodeID 下一个节点id
     * @param nextPerformerids 平台id
     * @param nextPerformerNames 平台名称
     * @return 处理结果
     * @author lroyia
     * @since 2021年1月26日 10:44:58
     */
    TSTaskList saveBizDissentAuditProcess(AICUser user, TSTaskList taskListModel, TSBizDissent tsBizDissentModel, TSOpinion opinionModel, String nextNodeID, String[] nextPerformerids, String[] nextPerformerNames);

    void startAppDissent(DissentAppDto dissentAppDto);

}
