package com.bonus.gs.sub.evaluate.evaluate.service;


import com.bonus.gs.sub.evaluate.evaluate.beans.*;
import com.bonus.gs.sub.evaluate.manager.utils.AjaxRes;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author xliu
 * @date 2024/11/15 15:23
 */
public interface OutsourcerEvaluateService {


    //根据评价id  获取分包商、项目列表
    List<EvaluateSubBean> getEvaluatSubListById(EvaluateSubBean bean);

    //根据模板id获取模板信息
    SetTemplateBean getTemplateListById(String id);

    AjaxRes getTableTitle(EvaluateSubBean o);
    AjaxRes getTableList(EvaluateSubBean o);
    /**
     * 外包商评价列表
     * @param o OutsourcerBean
     * @return AjaxRes
     */
    List<OutSourceBean> getTeamEvaluateList(OutSourceBean o);


    List<EvaluateSubBean>getSubAndProjectByEvaluateId(@Param("id") String id);

    AjaxRes saveEvaluateData(EvaluateDataBean o);

    AjaxRes getCollectData(EvaluateSubBean o);

    List<OutSourceBean> getEvaluateAuditList(OutSourceBean o);

    AjaxRes getAuditTitleData(EvaluateSubBean o);

    AjaxRes updateEvaluateData(EvaluateDataBean o);

    /**
     * 判断是否需要等待，如返回值大于0则需要等待（是几表示还有多少个需要等待评价），<=0否则不需要等待
     * @param evaluateId
     * @return
     */
    int isWait(String evaluateId);

    int addExaminePerson(ExamineBean o);

    //根据评价id 获取需要审核的部门数
    int examineNumByEvaluateId(String evaluateId);

    //根据评价id 获取已审核部门个数
    int getExamineNumByEvaluateId(String evaluateId,String evaluateNode);


    AjaxRes getAuditBtn(EvaluateDataBean o);

    AjaxRes getTotalTitle(EvaluateSubBean o);

    AjaxRes getCollectTitle(EvaluateSubBean o);

    //根据评价id 判断是否开始汇总审核 =0 时 新增二级审核
    int startCollectExamineByEvaluateId(EvaluateDataBean o);
    //汇总审批
    AjaxRes fullApproval(EvaluateDataBean o);
    //获取月度排名
    AjaxRes getSummaryCompareList(EvaluateSubBean o);

    AjaxRes isCheckOneIsAudit(EvaluateDataBean o);

    AjaxRes isCheckTwoIsAudit(EvaluateDataBean o);
}
