package com.engine.salary.service.impl; 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.taxdeclaration.bo.TaxDeclarationBO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationDetailListDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationWageListDTO; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.TaxDeclarationDetailService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.fapiao.neon.model.in.Page; import com.mzlion.core.lang.CollectionUtils; import weaver.hrm.User; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tenantKey; /** * @description: 个税申报表明细 * @author: xiajun * @modified By: xiajun * @date: Created in 1/23/22 4:29 PM * @version:v1.0 */ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDeclarationDetailService { private TaxDeclarationDetailMapper getTaxDeclarationDetailMapper(User user) { return MapperProxyFactory.getProxy(TaxDeclarationDetailMapper.class); } private SalaryEmployeeService getSalaryEmployeeService() { return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } /*@Override public List listByTaxDeclarationIdAndEmployeeIds(Long taxDeclarationId, Collection employeeIds, String tenantKey) { if (CollectionUtils.isEmpty(employeeIds)) { return Collections.emptyList(); } return new LambdaQueryChainWrapper<>(taxDeclarationDetailMapper) .eq(TaxDeclarationDetailPO::getTenantKey, tenantKey) .eq(TaxDeclarationDetailPO::getDeleteType, 0) .eq(TaxDeclarationDetailPO::getTaxDeclarationId, taxDeclarationId) .in(TaxDeclarationDetailPO::getEmployeeId, employeeIds) .list(); } @Override public Page listPage4EmployeeIdByParam(TaxDeclarationDetailListQueryParam queryParam, String tenantKey) { // 分页参数 Page page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); // 查询个税申报表明细中的人员(分页) return taxDeclarationDetailMapper.listEmployeeId(page, queryParam.getTaxDeclarationId(), tenantKey); } */ @Override public PageInfo listDtoPageByParam(TaxDeclarationDetailListQueryParam queryParam) { // 查询个税申报表明细的人员 List employeeIdPage = getTaxDeclarationDetailMapper(user).listEmployeeId(queryParam.getTaxDeclarationId()); PageInfo dtoPage = new PageInfo(TaxDeclarationDetailListDTO.class); dtoPage.setPageNum(queryParam.getCurrent()); dtoPage.setPageSize(queryParam.getPageSize()); if(null==employeeIdPage){ return dtoPage; } if (CollectionUtils.isNotEmpty(employeeIdPage)) { // 查询个税申报表明细 List taxDeclarationDetailPOS = listByTaxDeclarationIdAndEmployeeIds(queryParam.getTaxDeclarationId(), employeeIdPage); // 查询人员 List simpleEmployees = getSalaryEmployeeService().listByIds(employeeIdPage); // List simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIdPage.getRecords(), tenantKey); // 转换成列表dto TaxDeclarationBO.buildDetailListDTO(queryParam.getTaxDeclarationId(), dtoPage, taxDeclarationDetailPOS, simpleEmployees); } return dtoPage; } @Override public PageInfo listDtoPageByParam4Labor(TaxDeclarationDetailListQueryParam queryParam) { return null; } @Override public PageInfo listDtoPageByParam4Wage(TaxDeclarationDetailListQueryParam queryParam) { return null; } @Override public void batchSave(Collection taxDeclarationDetailPOS) { getTaxDeclarationDetailMapper(user).batchInsert(taxDeclarationDetailPOS); } public List listByTaxDeclarationIdAndEmployeeIds(Long taxDeclarationId, List employeeIds) { if (CollectionUtils.isEmpty(employeeIds)) { return Collections.emptyList(); } // return new LambdaQueryChainWrapper<>(taxDeclarationDetailMapper) // .eq(TaxDeclarationDetailPO::getTenantKey, tenantKey) // .eq(TaxDeclarationDetailPO::getDeleteType, 0) // .eq(TaxDeclarationDetailPO::getTaxDeclarationId, taxDeclarationId) // .in(TaxDeclarationDetailPO::getEmployeeId, employeeIds) // .list(); return getTaxDeclarationDetailMapper(user).listByTaxDeclarationIdAndEmployeeIds(taxDeclarationId,employeeIds); } }