package com.engine.salary.service.impl; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.engine.core.impl.Service; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxdeclaration.dto.FailEmployeeListDTO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclareFailPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.TaxDeclareFailService; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.weaver.common.component.table.page.Page; import com.weaver.hrm.salary.dao.TaxDeclareFailMapper; import com.weaver.hrm.salary.enums.sicategory.DeleteTypeEnum; import org.apache.commons.collections4.CollectionUtils; import java.time.LocalDateTime; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import static com.engine.salary.entity.siaccount.param.DSTenantKeyThreadVar.tenantKey; /** * @description: 个税申报失败数据 * @author: xiajun * @modified By: xiajun * @date: Created in 2022/11/30 1:32 PM * @version:v1.0 */ public class TaxDeclareFailServiceImpl extends Service implements TaxDeclareFailService { private TaxDeclareFailMapper taxDeclareFailMapper; private TaxAgentService taxAgentService; @Override public PageInfo listPageByTaxDeclareRecordIds(Collection taxDeclareRecordIds) { return new LambdaQueryChainWrapper<>(taxDeclareFailMapper) .eq(TaxDeclareFailPO::getTenantKey, tenantKey) .eq(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue()) .in(TaxDeclareFailPO::getTaxDeclareRecordId, taxDeclareRecordIds) .page(page); } @Override public List listByTaxDeclareRecordIds(Collection taxDeclareRecordIds) { return new LambdaQueryChainWrapper<>(taxDeclareFailMapper) .eq(TaxDeclareFailPO::getTenantKey, tenantKey) .eq(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue()) .in(TaxDeclareFailPO::getTaxDeclareRecordId, taxDeclareRecordIds) .list(); } @Override public void deleteByTaxDeclareRecordIds(Collection taxDeclareRecordIds) { new LambdaUpdateChainWrapper<>(taxDeclareFailMapper) .eq(TaxDeclareFailPO::getTenantKey, tenantKey) .eq(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue()) .in(TaxDeclareFailPO::getTaxDeclareRecordId, taxDeclareRecordIds) .set(TaxDeclareFailPO::getDeleteType, DeleteTypeEnum.PHYSICAL_DELETED.getValue()) .set(TaxDeclareFailPO::getUpdateTime, LocalDateTime.now()) .update(); } @Override public List convert2FailEmployeeList(TaxDeclareRecordPO taxDeclareRecord, List taxDeclareFails) { if (CollectionUtils.isEmpty(taxDeclareFails)) { return Collections.emptyList(); } // 查询个税扣缴义务人 TaxAgentPO taxAgent = taxAgentService.getById(taxDeclareRecord.getTaxAgentId()); Map incomeCategoryEnumMap = Maps.newHashMap(); for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) { incomeCategoryEnumMap.put(incomeCategoryEnum.getCode(), incomeCategoryEnum); } List dtos = Lists.newArrayList(); for (TaxDeclareFailPO taxDeclareFail : taxDeclareFails) { IncomeCategoryEnum incomeCategoryEnum = incomeCategoryEnumMap.get(taxDeclareFail.getIncomeCategory()); FailEmployeeListDTO dto = new FailEmployeeListDTO() .setId(taxDeclareFail.getId()) .setEmployeeName(taxDeclareFail.getEmployeeName()) .setTaxAgentName(taxAgent.getName()) .setCardNum(taxDeclareFail.getCardNum()) .setErrorMsg(taxDeclareFail.getErrorMsg()) .setIncomeCategory(incomeCategoryEnum == null ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel())); dtos.add(dto); } return dtos; } }