weaver-hrm-salary/src/com/engine/salary/service/impl/TaxDeclareFailServiceImpl.java

98 lines
4.6 KiB
Java
Raw Normal View History

2023-08-11 14:20:14 +08:00
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<TaxDeclareFailPO> listPageByTaxDeclareRecordIds(Collection<Long> 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<TaxDeclareFailPO> listByTaxDeclareRecordIds(Collection<Long> 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<Long> 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<FailEmployeeListDTO> convert2FailEmployeeList(TaxDeclareRecordPO taxDeclareRecord, List<TaxDeclareFailPO> taxDeclareFails) {
if (CollectionUtils.isEmpty(taxDeclareFails)) {
return Collections.emptyList();
}
// 查询个税扣缴义务人
TaxAgentPO taxAgent = taxAgentService.getById(taxDeclareRecord.getTaxAgentId());
Map<String, IncomeCategoryEnum> incomeCategoryEnumMap = Maps.newHashMap();
for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) {
incomeCategoryEnumMap.put(incomeCategoryEnum.getCode(), incomeCategoryEnum);
}
List<FailEmployeeListDTO> 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;
}
}