package com.engine.kq.service;

import java.util.Map;
import weaver.hrm.User;

/**
 * 考勤流程相关的ajax请求事件
 */
public interface KQAttendanceEventService {

  /**
   * 获取工作时长
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getWorkDuration(Map<String, Object> params, User user);

  /**
   * 获取请假工作时长
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getLeaveWorkDuration(Map<String, Object> params, User user);

  /**
   * 获取出差工作时长
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getEvectionWorkDuration(Map<String, Object> params, User user);

  /**
   * 获取公出工作时长
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOutWorkDuration(Map<String, Object> params, User user);

  /**
   * 获取加班工作时长
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOverTimeDuration(Map<String, Object> params, User user);

  /**
   * 获取假期信息
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getVacationInfo(Map<String, Object> params, User user);

  /**
   * 获取补卡信息
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getAttendanceCard(Map<String, Object> params, User user);

  /**
   * 请假校验事件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkLeave(Map<String, Object> params, User user);

  /**
   * 出差校验事件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkEvection(Map<String, Object> params, User user);

  /**
   * 公出校验事件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkOut(Map<String, Object> params, User user);

  /**
   * 销假校验事件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkLeaveBack(Map<String, Object> params, User user);

  /**
   * 排班校验事件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkShift(Map<String, Object> params, User user);

  /**
   * 销假流程用的根据流程获取相应的请假信息
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getLeaveBackInfo(Map<String, Object> params, User user);

  /**
   * 考勤变更流程根据流程获取相应的流程信息
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getProcessChangeInfo(Map<String, Object> params, User user);

  /**
   * 考勤变更流程计算时长用的
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getProcessChangeWorkDuration(Map<String, Object> params, User user);

  /**
   * 考勤变更流程提交校验
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkProcessChange(Map<String, Object> params, User user);

  /**
   * 考获取勤变更流程类型
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getProcessChangeType(Map<String, Object> params, User user);

  /**
   * 补卡流程提交校验
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkCard(Map<String, Object> params, User user);

  /**
   * 加班流程提交校验
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> checkOvertime(Map<String, Object> params, User user);

}
