package com.engine.organization.wrapper;

import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.organization.entity.chart.params.StatisticsParam;
import com.engine.organization.service.ChartService;
import com.engine.organization.service.OrgChartService;
import com.engine.organization.service.impl.ChartServiceImpl;
import com.engine.organization.service.impl.OrgChartServiceImpl;
import weaver.hrm.User;

import java.util.Map;

/**
 * @className: OrgChartWrapper
 * @author: dengjp
 * @date: 2022/7/7
 * @description: 组织架构图Wrapper
 **/
public class OrgChartWrapper extends Service {
    private OrgChartService getOrgChartService(User user) {
        return ServiceUtil.getService(OrgChartServiceImpl.class, user);

    }

    private ChartService getChartService(User user) {
        return ServiceUtil.getService(ChartServiceImpl.class, user);
    }


    public Map<String, Object> getOptionCondition(Map<String, Object> request2Map, User user) {
        return getOrgChartService(user).getOptionCondition(request2Map, user);
    }

    public Map<String, Object> getSubCompanyTree(Map<String, Object> request2Map, User user) {
        return getOrgChartService(user).getSubCompanyTree(request2Map);
    }

    public Map<String, Object> getCompanyData(Map<String, Object> request2Map, User user) {
       //  return getOrgChartService(user).getCompanyData(request2Map, user);
        return getChartService(user).getCompanyData(request2Map);
    }

    public Map<String, Object> getUserData(Map<String, Object> request2Map, User user) {
        return getOrgChartService(user).getUserData(request2Map, user);
    }

    public Map<String, Object> asyncUserData(Map<String, Object> request2Map, User user) {
        return getOrgChartService(user).asyncUserData(request2Map, user);
    }

    public Map<String, Object> asyncCompanyData(Map<String, Object> request2Map, User user) {
        // return getOrgChartService(user).asyncCompanyData(request2Map, user);
         return getChartService(user).asyncCompanyData(request2Map);
    }

    public String synchronousData(Map<String, Object> request2Map) {
        return getOrgChartService(user).synchronousData(request2Map, user);
    }

    public Map<String, Object> searchTimeLines(Map<String, Object> request2Map, User user) {
        return getOrgChartService(user).searchTimeLines(request2Map);
    }

    public Map<String, Object> getDepartmentDetail(Map<String, Object> request2Map, User user) {
        return getChartService(user).getDepartmentDetail(request2Map);
    }

    public Map<String, Object> versionRecord(Map<String, Object> request2Map, User user) {
        return getChartService(user).versionRecord(request2Map,user);
    }

    public Map<String, Object> getDepartmentTree(Map<String, Object> request2Map, User user) {
        return getChartService(user).getDepartmentTree(request2Map);
    }

    public Map<String, Object> getMovingTree(Map<String, Object> request2Map, User user) {
        return getChartService(user).getMovingTree(request2Map);
    }

    public Map<String, Object> getFullSelectTree(Map<String, Object> request2Map, User user) {
        return getChartService(user).getFullSelectTree(request2Map);
    }

    public Map<String, Object> selectStatistics(Map<String, Object> request2Map) {
        return getChartService(user).selectStatistics(request2Map);
    }

    public Map<String, Object> recordStatistics(StatisticsParam param) {
        return getChartService(user).recordStatistics(param);
    }
}
