package com.mortals.xhx.module.check.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.check.model.CheckAttendRecordEntity;
import com.mortals.xhx.module.check.dao.CheckAttendRecordDao;
import com.mortals.xhx.module.check.model.vo.StaffCheckSummaryQuery;
import com.mortals.xhx.module.check.model.vo.StaffCheckSummaryVo;
import com.mortals.xhx.module.dept.model.DeptPerformStatEntity;
import com.mortals.xhx.module.staff.model.StaffPerformStatEntity;

import java.util.List;

/**
* CheckAttendRecordService
*
* 考勤绩效记录核查信息 service接口
*
* @author zxfei
* @date 2023-07-10
*/
public interface CheckAttendRecordService extends ICRUDService<CheckAttendRecordEntity,Long>{

    CheckAttendRecordDao getDao();

    /**
     * 核查人工审核
     * @param entity
     * @param context
     * @throws AppException
     */
    void examine(CheckAttendRecordEntity entity, Context context) throws AppException;

    /**
     * 汇总已审核的核查记录
     * @param query
     * @return
     */
    List<StaffCheckSummaryVo> summaryCheck(StaffCheckSummaryQuery query) throws AppException;

    /**
     * 个人绩效统计
     * @param query
     * @return
     */
    void doSaveStaffPerformStat(StaffCheckSummaryQuery query);

    /**
     * 部门绩效统计
     * @param query
     * @return
     */
    void doSaveDeptPerformStat(StaffCheckSummaryQuery query);

    /**
     * 通知钉钉程序
     * @param entity
     */
    void sendCheckDingTalk(CheckAttendRecordEntity entity);

}