weaver-hrm-salary/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java

65 lines
2.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.engine.salary.maintainer.datacollection;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationMapper;
import com.engine.salary.service.TaxDeclarationService;
import com.engine.salary.service.impl.TaxDeclarationServiceImpl;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import weaver.general.BaseBean;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author Harryxzy
* @date 2023/04/23 17:23
* @description 往期累计情况维护类
*/
public class AddUpSituationManager extends Service {
private TaxDeclarationMapper getTaxDeclarationMapper() {
return MapperProxyFactory.getProxy(TaxDeclarationMapper.class);
}
private TaxDeclarationService getTaxDeclarationService() {
return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
}
public String recoverAddUpHistoryData() {
// 获取已有的个税申报表记录
List<TaxDeclarationPO> taxDeclarationList = getTaxDeclarationMapper().listSome(new TaxDeclarationPO());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Map<Long, String> taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarationList, TaxDeclarationPO::getId, PO->PO.getTaxAgentId()+"-"+sdf.format(PO.getSalaryMonth()));
BaseBean bb = new BaseBean();
List<Long> taxDeclarationIds = taxDeclarationList.stream().map(TaxDeclarationPO::getId).collect(Collectors.toList());
bb.writeLog("往期累计数据恢复DataIds"+ taxDeclarationIds);
bb.writeLog("往期累计数据恢复DataMap"+ taxDeclarationMap);
// 循环调用生成申报单接口
for(int i =0; i < taxDeclarationList.size(); i++){
TaxDeclarationPO PO = taxDeclarationList.get(i);
bb.writeLog("开始删除生成:"+PO.getTaxAgentId()+"-"+PO.getSalaryMonth());
// 删除记录
int delete = getTaxDeclarationMapper().deleteByIdZj(PO.getId());
LocalDate localDate = SalaryDateUtil.dateToLocalDate(PO.getSalaryMonth());
// 调用生成申报单接口
YearMonth yearMonth = YearMonth.of(localDate.getYear(),localDate.getMonth());
try {
getTaxDeclarationService().save(TaxDeclarationSaveParam.builder().salaryMonth(yearMonth).taxAgentId(PO.getTaxAgentId()).build());
}catch (Exception e){
bb.writeLog("错误:"+e);
continue;
}
}
return "SUCCESS";
}
}