package com.chinaweal.aiccs.aiccs.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.business.entity.BizProblemReport;
import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList;
import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 问题上报业务记录表 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-04-21
 */
public interface BizProblemReportService extends BaseService<BizProblemReport> {

    /**
     * 简单分页
     * @param page 分页参数与
     * @param param 查询参数
     * @return  分页结果
     * @author lroyia
     * @since  2021年4月23日 13:49:00
     */
    IPage<BizProblemReport> simplePage(IPage<BizProblemReport> page, Map<String, Object> param);

    /**
     * 反馈问题待办创建
     * @param curUser  当前用户
     * @param taskList  待办
     * @param problems  问题信息
     * @return  创建结果
     * @author lroyia
     * @since 2021年4月21日 16:50:05
     */
    TSTaskList feedbackProblem(AICUser curUser, TSTaskList taskList, BizProblemReport... problems);

    /**
     * 下一个流程
     * @param user 当前用户
     * @param taskList  tasklist
     * @param opinionModel  处办意见对象
     * @param nextNodeID    下一个节点id
     * @param nextPerformerids  下一个节点用户id
     * @param nextPerformerNames    下一个节点用户名称
     * @param problem   问题信息对象
     * @return  处理结果
     * @author lroyia
     * @since  2021年4月22日 14:32:17
     */
    TSTaskList nextProcess(AICUser user, TSTaskList taskList, TSOpinion opinionModel, String nextNodeID, String[] nextPerformerids, String[] nextPerformerNames, BizProblemReport...problem);

    /**
     * 通过id获取问题信息（含组织架构信息）
     * @param id 数据id
     * @return  获取结果
     * @author lroyia
     * @since  2021年4月25日 14:00:50
     */
    BizProblemReport getProblemById(String id);

    List<BizProblemReport> selectbizProblemReportList();
}
