package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.EmployBiz; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.*; import com.engine.salary.entity.taxagent.param.*; import com.engine.salary.entity.taxagent.po.TaxAgentSubAdminPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentManageRangeService; import com.engine.salary.service.TaxAgentSubAdminService; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * 个税义务人分管理员 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public class TaxAgentSubAdminWrapper extends Service { private SalaryEmployeeService getSalaryEmployeeService() { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } private TaxAgentSubAdminService taxAgentSubAdminService; private TaxAgentManageRangeService taxAgentManageRangeService; // private HrmCommonEmployeeService hrmCommonEmployeeService; /** * 获取分管理员列表 * * @param queryParam * @return */ public PageInfo list(TaxAgentSubAdminQueryParam queryParam) { ValidUtil.doValidator(queryParam); List list = taxAgentSubAdminService.listByTaxAgentIds(Collections.singletonList(queryParam.getTaxAgentId())); String range = SalaryI18nUtil.getI18nLabel(106290, "详情"); List subAdminList = getSalaryEmployeeService().getEmployeeByIds(list.stream().map(TaxAgentSubAdminPO::getEmployeeId).distinct().collect(Collectors.toList())); List records = TaxAgentBO.convertToSubAdminListDTO(list, range, subAdminList); PageInfo listPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), TaxAgentSubAdminListDTO.class); // 填充总数和当页数据 listPage.setTotal(records.size()); listPage.setList(SalaryPageUtil.subList(listPage.getPageNum(), listPage.getPageSize(), records)); return listPage; } /** * 删除分管理员 * * @param ids * @return */ public String delete(Collection ids) { return taxAgentSubAdminService.deleteByIds(ids); } /** * 获取基础设置表单 * * @param baseFormParam * @return */ public TaxAgentSubAdminBaseFormDTO getBaseFrom(TaxAgentSubAdminBaseFormParam baseFormParam) { ValidUtil.doValidator(baseFormParam); TaxAgentSubAdminBaseFormDTO taxAgentSubAdminBaseFormDTO = new TaxAgentSubAdminBaseFormDTO(); Long id = baseFormParam.getId(); if (id != null) { TaxAgentSubAdminPO taxAgentSubAdmin = taxAgentSubAdminService.getById(id); if (taxAgentSubAdmin == null) { throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(106466, "分管理员不存在") + "[id:%s]", id)); } if (!baseFormParam.getTaxAgentId().equals(taxAgentSubAdmin.getTaxAgentId())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(106685, "分管理员与所属个税扣缴义务人不匹配")); } taxAgentSubAdminBaseFormDTO.setId(taxAgentSubAdmin.getId()); taxAgentSubAdminBaseFormDTO.setDescription(taxAgentSubAdmin.getRemark()); TaxAgentEmployeeOptionDTO taxAgentEmployee = new TaxAgentEmployeeOptionDTO(); taxAgentEmployee.setId(taxAgentSubAdmin.getEmployeeId()); DataCollectionEmployee employee = getSalaryEmployeeService().getEmployeeById(taxAgentEmployee.getId()); taxAgentEmployee.setContent(employee == null ? "" : employee.getUsername()); taxAgentSubAdminBaseFormDTO.setSubAdminUser(Collections.singletonList(taxAgentEmployee)); } else { taxAgentSubAdminBaseFormDTO.setSubAdminUser(Lists.newArrayList()); } return taxAgentSubAdminBaseFormDTO; } /** * 保存分管理员基础设置 * * @param saveParam * @return */ public String saveBase(TaxAgentSubAdminBaseSaveParam saveParam) { return taxAgentSubAdminService.saveBase(saveParam); } /** * 范围列表 * * @param queryParam * @return */ public PageInfo listRangeInclude(TaxAgentSubAdminRangeQueryParam queryParam) { PageInfo listPage = taxAgentManageRangeService.listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ONE); return listPage; } /** * 范围排除列表 * * @param queryParam * @return */ public PageInfo listRangeExclude(TaxAgentSubAdminRangeQueryParam queryParam) { PageInfo listPage = taxAgentManageRangeService.listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ZERO); return listPage; } /** * 获取管理范围表单 * * @return */ public TaxAgentManageRangeFormDTO getRangeFrom() { return TaxAgentManageRangeFormDTO.builder().employeeStatus(UserStatusEnum.getHrmStatusList()).build(); } /** * 保存管理范围 * * @param saveParam * @return */ // public String saveRange(TaxAgentSubAdminRangeSaveParam saveParam) { // taxAgentManageRangeService.save4SubAdmin(saveParam); // return StringUtils.EMPTY; // } /** * 删除管理范围 * * @param ids * @return */ public String deleteRange(Collection ids) { taxAgentManageRangeService.deleteByIds(ids); return StringUtils.EMPTY; } }