package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.hrm.HrmStatus;
import com.engine.salary.entity.taxagent.bo.TaxAgentBO;
import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeOptionDTO;
import com.engine.salary.entity.taxagent.dto.TaxAgentFormDTO;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeFormDTO;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO;
import com.engine.salary.entity.taxagent.param.*;
import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.*;
import com.engine.salary.service.impl.*;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import com.google.common.collect.Maps;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.BeanUtils;
import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
/**
* 个税扣缴义务人
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public class TaxAgentWrapper extends Service {
public TaxAgentBaseService getTaxAgentBaseService(User user) {
return ServiceUtil.getService(TaxAgentBaseServiceImpl.class, user);
}
public TaxAgentAdminService getTaxAgentAdminService(User user) {
return ServiceUtil.getService(TaxAgentAdminServiceImpl.class, user);
}
public TaxAgentService getTaxAgentService(User user) {
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
}
public SalaryEmployeeService getSalaryEmployeeService(User user) {
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
}
public TaxAgentManageRangeService getTaxAgentManageRangeService(User user) {
return ServiceUtil.getService(TaxAgentManageRangeServiceImpl.class, user);
}
// private PaymentAgencyService paymentAgencyService;
//
// private SIEmployeeStatusMapper siEmployeeStatusMapper;
//
// private HrmCommonHrmStatusService hrmCommonHrmStatusService;
//
// private HrmConfigSetCache hrmConfigSetCache;
/**
* 是否是薪酬模块总管理员
*
* @param currentEmployeeId
* @return
*/
public Boolean isChief(Long currentEmployeeId) {
return getTaxAgentService(user).isChief(currentEmployeeId);
}
/**
* 权限信息
*
* @param currentEmployeeId
* @return
*/
public Map permission(Long currentEmployeeId) {
Map resultMap = Maps.newHashMap();
Boolean isChief = isChief(currentEmployeeId);
Boolean isDefaultOpen = getTaxAgentService(user).isDefaultOpen(currentEmployeeId);
Boolean isAdminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId);
Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution();
resultMap.put("isChief", isChief);
resultMap.put("isDefaultOpen", isDefaultOpen);
resultMap.put("isAdminEnable", isAdminEnable);
resultMap.put("isOpenDevolution", isOpenDevolution);
return resultMap;
}
/**
* 个税口角义务人列表
*
* @param queryParam
* @return
*/
public PageInfo