package com.engine.kq.service;

import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import weaver.hrm.User;

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

  /**
   * 获取考勤组的基本信息的
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getButtonBaseInfo(Map<String, Object> params, User user);

  /**
   * 获取签到签退按钮
   * 以及考勤流程数据
   * 以及上次签到时间
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getButtons(Map<String, Object> params, User user);

  /**
   * 签到签退
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> punchButton(HttpServletRequest request,Map<String, Object> params, User user);
  /**
   * 外勤签到签退
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOutButtons(Map<String, Object> params, User user);
  /**
   * 外勤签到签退 关联考勤的时候，打卡范围
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOutButtonRange(Map<String, Object> params, User user);

  /**
   * 外勤签到签退
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> punchOutButton(HttpServletRequest request,Map<String, Object> params, User user);

  /**
   * 外勤记录 查询条件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOutButtonCondition(HttpServletRequest request,Map<String, Object> params, User user);

  /**
   * 外勤记录 查询条件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOutSearchList(HttpServletRequest request,Map<String, Object> params, User user,
      HttpServletResponse response);

  /**
   * 获取外勤签到配置
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getOutSignSetting(Map<String, Object> params, User user);
  /**
   * 保存外勤签到配置
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> saveOutSignSetting(Map<String, Object> params, User user);

  /**
   * EM端自动打卡设置界面
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getAutoEMSet(Map<String, Object> params, User user);

  /**
   * 保存EM端自动打卡设置界面
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> saveAutoEMSet(Map<String, Object> params, User user);

  /**
   * 移动端切换地图，保存最新的当前用户选择的地图
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> resetUserMap(Map<String, Object> params, User user);

  public Map<String, Object> getUserLastMap(Map<String, Object> params, User user);
}
