package com.engine.kq.service;

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

/**
 * 考勤流程设置
 */
public interface KQAttendanceSetService {

  /**
   * 获取人员状态变更的菜单 
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateRightMenu(Map<String, Object> params, User user);

  /**
   * 获取状态变更流程的 tab页签数据
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateProcSetTabInfo(Map<String, Object> params, User user);

  /**
   * 获取人员状态变更查询条件
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getStateProcSetListSearchCondition(Map<String, Object> params, User user);

  /**
   *
   * 获取状态变更流程查询列表
   * @param params
   * @param user
   * @return
   */
  public Map<String, Object> getStateProcSetListSearchList(Map<String, Object> params,
      HttpServletRequest request, User user);

  /**
   * 获取状态变更流程 流程概览信息
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateProcSetFlowForm(Map<String, Object> params, User user);

  /**
   * 保存状态变更流程 流程概览信息
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> saveStateProcSetFlow(Map<String, Object> params, User user);

  /**
   * 获取状态变更流程 字段对应信息
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateProcSetFlowWfFields(Map<String, Object> params, User user);

  /**
   * 保存状态变更流程 字段对应信息
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> saveStateProcSetFlowWfFields(Map<String, Object> params,HttpServletRequest request, User user);

  /**
   * 获取状态变更流程 动作设置
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateProcSetFlowWfSet(Map<String, Object> params, User user);

  /**
   * 保存状态变更流程的 动作设置
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> saveStateProcSetFlowWfSet(Map<String, Object> params,HttpServletRequest request,
      HttpServletResponse response, User user);

  /**
   * 删除通用变更流程
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> delStateProcSet(Map<String, Object> params,HttpServletRequest request, User user);

  /**
   * 改变通用变更流程的状态
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> changeStateProcSetStatus(Map<String, Object> params,HttpServletRequest request, User user);

  /**
   * 获取状态变更流程 自动创建表单
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateProcSetCreateForm(Map<String, Object> params, User user);

  /**
   * 保存状态变更流程 自动创建表单
   * @param params
   * @param request
   * @param user
   * @return
   */
  Map<String, Object> saveStateProcSetCreateForm(Map<String, Object> params, HttpServletRequest request,User user);

  /**
   * 根据基本信息页面的选择的下拉框同步，带出不同的模板文件
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getProcSetTemplet(Map<String, Object> params,HttpServletRequest request, User user);

  /**
   * 获取自定义考勤流程tab页签
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getCustomKQFlowTab(Map<String, Object> params, User user);

  /**
   * 考勤流程 新建校验规则
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getProcSetCheckRule(Map<String, Object> params, User user);

  /**
   * 考勤流程 校验规则列表
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> getStateProcSetFlowCheckRuleList(Map<String, Object> params, User user);

  /**
   * 考勤流程 保存校验规则
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> saveStateProcCheckRule(Map<String, Object> params, User user);

  /**
   * 考勤流程 删除校验规则
   * @param params
   * @param user
   * @return
   */
  Map<String, Object> delStateProcCheckRule(Map<String, Object> params, User user);
}
