package cn.com.countrygarden.bi.main.service.personnel;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.alibaba.fastjson.JSONObject;

import cn.com.countrygarden.bi.main.core.Result;
import cn.com.countrygarden.bi.main.dto.PersonnelAssessmentDTO;
import cn.com.countrygarden.bi.main.dto.ReviewInvestigationVo;
import cn.com.countrygarden.bi.main.dto.ReviewQuestionnaireEditVo;
import cn.com.countrygarden.bi.main.dto.ReviewQuestionnaireProblemDTO;
import cn.com.countrygarden.bi.main.dto.ReviewQuestionnaireProblemVo;
import cn.com.countrygarden.bi.main.dto.ReviewScoreProblemDTO;
import cn.com.countrygarden.bi.main.dto.ReviewExcel.ReviewRinquDTO;
import cn.com.countrygarden.bi.main.dto.ReviewExcel.ReviewjudgeGradeDTO;
import cn.com.countrygarden.bi.main.model.AccessToken;
import cn.com.countrygarden.bi.main.model.dup.DupOrgan;
import cn.com.countrygarden.bi.main.model.sys.Function;
import cn.com.countrygarden.bi.main.model.personnel.PersonnelAssessment;
import cn.com.countrygarden.bi.main.model.review.ReviewEvaluate;
import cn.com.countrygarden.bi.main.model.review.ReviewInvestigated;
import cn.com.countrygarden.bi.main.model.review.ReviewQuestionnaire;
import tk.mybatis.mapper.entity.Condition;
import tk.mybatis.mapper.entity.Example;
/**
 * 270评估-业务逻辑层
 *
 * @author 吕伟峰
 * @email www.justintoforest@gamail.com
 * @url 
 * @date 2018-10-08
 */
public interface PersonnelAssessmentService {

    Result queryPageList(PersonnelAssessmentDTO personnelAssessment, int page, int size,AccessToken accessToken);
    
    String exxlspersonnelAssessment(PersonnelAssessmentDTO personnelAssessment,Integer is_all,List<String> perseluserid,Map<String, Object> rolesMap,AccessToken accessToken,List<String> userquyu);

    Result queryById(Integer id);

    Result add(PersonnelAssessment personnelAssessment, AccessToken accessToken);

    Result edit(PersonnelAssessment personnelAssessment, AccessToken accessToken);

    Result del(Integer id);
    
    Result delpiliang(String perid);
    
    Result delpiliangreid(String reid);
    
    Result scoreproblem(ReviewScoreProblemDTO scoreproblem);
    
    Result ReviewQuestionnairelistVo(Integer id,String name,boolean hasRole,int page, int size,String userCode,Integer investigationmanagementId);
    
    Result queryQuestionnaireAndproblem(int id);
    
    Result queryProblemTypeAndProblemClass(int investigationmanagementId);
    
    Result addAssessment(ReviewQuestionnaire reviewQuestionnaire, String str,String qclassAryNew,AccessToken accessToken);
    
    Result questionnaireParamVoOne(Integer id);
    
    Result editAssessment(ReviewQuestionnaireEditVo reviewQuestionnaireEditVo,String str, String qclassAryNew,AccessToken accessToken) throws ParseException;
    
    Result appAssessment(ReviewInvestigated reviewInvestigated,String upJsonStr,String sameJsonStr,String downJsonStr 
            ,AccessToken accessToken);
    
    Result selectInvestigationVoList(ReviewInvestigationVo reviewinvesti,boolean hasRole,int page, int size,String getusercode,AccessToken accessToken);
    
    Result resendSms(int investigatedId, String investigatedName, int questionnaireId,String questionnaireName);
    
    Result investigationlistedit(ReviewInvestigated reviewInvestigated, AccessToken accessToken);
    
    Result selectAnswerBeforeVo(int investigatedId,int reviewJudgeId,int questionnaireId);
    
    Result updataflag(Integer id,Integer judgeId,Integer questionnaireId);
    
    Result addScoreAssessment(String answer,String answenwer,AccessToken accessToken);
    
    Result perscoreone(int investigatedId);
    
    Result scoredtos(Integer investigatedid,Integer gradeid,Integer questionnaireId);
    
    Result scoredtosrj(Integer investigatedid,Integer gradeid,Integer questionnaireId);
    
    Result evaluationproblem(Integer investigatedid,Integer questionnaireId);
    
    Result evaluateadd(ReviewEvaluate reviewEvaluate, AccessToken accessToken);
    
    Result updateedit(ReviewEvaluate rewet, AccessToken accessToken);
    
    List<ReviewjudgeGradeDTO> reviewjudgegrade(Integer investigatedid,Integer questionnaireId);
    
    ReviewRinquDTO reviewrinqu(Integer investigatedid,Integer questionnaireId);
    
    List<ReviewScoreProblemDTO> scoreproblemexcl(Integer investigatedid,Integer questionnaireId);
    
    List<ReviewQuestionnaireProblemDTO> questionoblemsex(Integer questionnaireId,Integer investigationmanagementId);
    
    List<ReviewQuestionnaireProblemDTO> questionoblemswenex(Integer questionnaireId,Integer investigationmanagementId);
    
    List<ReviewScoreProblemDTO> scoreproblemwenexcl(Integer investigatedid,Integer questionnaireId);
    
    Result scoredtost(Integer investigatedid,Integer gradeid,Integer questionnaireId);
    
    Result scoredtosx(Integer investigatedid,Integer gradeid,Integer questionnaireId);
    
    Result getlistlishi(Integer investigatedid);
    
    Result scoreraid(ReviewScoreProblemDTO scoreproblem);
    
    Result reviewevaluate(Integer investigatedid,Integer questionnaireid);
    
   
}