package com.engine.organization.service;

import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam;
import com.engine.organization.entity.hrmresource.param.SearchTemplateParam;
import com.engine.organization.entity.searchtree.SearchTreeParams;

import java.util.List;
import java.util.Map;

/**
 * @author:dxfeng
 * @createTime: 2022/06/20
 * @version: 1.0
 */
public interface HrmResourceService {

    /**
     * 列表左侧树
     *
     * @param params
     * @return
     */
    Map<String, Object> getSearchTree(SearchTreeParams params);

    /**
     * 人员列表
     *
     * @param params
     * @return
     */
    Map<String, Object> listPage(Map<String, Object> params);

    /**
     * 获取新增表单
     *
     * @return
     */
    Map<String, Object> getSaveForm();

    /**
     * 新增
     *
     * @param params
     * @return
     */
    Long saveBaseForm(Map<String, Object> params);

    /**
     * 获取基本信息表单
     *
     * @param params
     * @return
     */
    Map<String, Object> getBaseForm(Map<String, Object> params);

    /**
     * 更新
     *
     * @param params
     * @return
     */
    int updateForm(Map<String, Object> params);

    /**
     * 获取搜索条件
     *
     * @param params
     * @return
     */
    Map<String, Object> getSearchCondition(Map<String, Object> params);

    /**
     * 获取列表页面按钮信息
     *
     * @return
     */
    Map<String, Object> getHasRight();

    /**
     * 拓展表单
     */
    Map<String, Object> getTabForm(Map<String, Object> params);

    /**
     * 新增拓展表单
     *
     * @param params
     * @return
     */
    long saveTabForm(HrmRelationSaveParam params);

    /**
     * 更新拓展表单
     *
     * @param params
     * @return
     */
    long updateTabForm(HrmRelationSaveParam params);

    /**
     * 保存搜索条件模板
     *
     * @param params
     * @return
     */
    Integer saveSearchTemplate(SearchTemplateParam params);

    /**
     * 删除搜索条件模板
     *
     * @param id
     */
    void deleteSearchTemplate(Integer id);

    /**
     * 获取模板所选择的列
     *
     * @param params
     * @return
     */
    String getTemplateSelectKeys(Map<String, Object> params);

    /**
     * 展示所有搜索模板
     *
     * @param params
     * @return
     */
    List<SearchTemplateParam> getSearchTemplate(Map<String, Object> params);

    /**
     * 保存定制列模板
     *
     * @param params
     * @return
     */
    Integer saveCustomTemplate(SearchTemplateParam params);

    /**
     * 批量修改保存定制列模板
     *
     * @param params
     * @return
     */
    Integer updateCustomTemplate(Map<String, Object> params);

    /**
     * 删除定制列模板
     *
     * @param id
     */
    void deleteCustomTemplate(Integer id);


    /**
     * 展示所有模板
     * @param params
     * @return
     */
    Map<String, Object> getCustomTemplate(Map<String,Object> params);

    /**
     * 获取列定制穿梭框数据
     *
     * @param params
     * @return
     */
    Map<String, Object> getCustomTransferData(Map<String, Object> params);
}
