2022-04-18 18:56:17 +08:00
|
|
|
|
package com.engine.salary.service.impl;
|
|
|
|
|
|
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
|
|
|
|
|
import com.engine.common.util.ServiceUtil;
|
|
|
|
|
|
import com.engine.core.impl.Service;
|
2022-04-19 20:58:30 +08:00
|
|
|
|
import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO;
|
|
|
|
|
|
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam;
|
2022-04-18 18:56:17 +08:00
|
|
|
|
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
|
|
|
|
|
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationDetailListColumn;
|
|
|
|
|
|
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationDetailListDTO;
|
|
|
|
|
|
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
|
2022-04-19 20:58:30 +08:00
|
|
|
|
import com.engine.salary.enums.UserStatusEnum;
|
|
|
|
|
|
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
|
2022-04-18 18:56:17 +08:00
|
|
|
|
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper;
|
|
|
|
|
|
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationMapper;
|
|
|
|
|
|
import com.engine.salary.service.TaxDeclarationDetailService;
|
|
|
|
|
|
import com.engine.salary.service.TaxDeclarationExcelService;
|
|
|
|
|
|
import com.engine.salary.service.TaxDeclarationService;
|
|
|
|
|
|
import com.engine.salary.util.JsonUtil;
|
|
|
|
|
|
import com.engine.salary.util.SalaryI18nUtil;
|
|
|
|
|
|
import com.engine.salary.util.db.MapperProxyFactory;
|
|
|
|
|
|
import com.engine.salary.util.excel.ExcelUtil;
|
|
|
|
|
|
import com.engine.salary.util.page.PageInfo;
|
|
|
|
|
|
import com.fapiao.neon.model.in.Page;
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
|
|
2022-04-19 20:58:30 +08:00
|
|
|
|
import java.text.SimpleDateFormat;
|
2022-04-18 18:56:17 +08:00
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
import java.util.*;
|
2022-04-19 20:58:30 +08:00
|
|
|
|
import java.util.stream.Collectors;
|
2022-04-18 18:56:17 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 个税申报表导出
|
|
|
|
|
|
* @author: xiajun
|
|
|
|
|
|
* @modified By: xiajun
|
|
|
|
|
|
* @date: Created in 1/4/22 4:17 PM
|
|
|
|
|
|
* @version:v1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
public class TaxDeclarationExcelServiceImpl extends Service implements TaxDeclarationExcelService {
|
|
|
|
|
|
|
|
|
|
|
|
private TaxDeclarationDetailService getTaxDeclarationDetailService(User user) {
|
|
|
|
|
|
return (TaxDeclarationDetailService) ServiceUtil.getService(TaxDeclarationDetailServiceImpl.class, user);
|
|
|
|
|
|
}
|
|
|
|
|
|
private TaxDeclarationDetailMapper getTaxDeclarationDetailMapper(User user) {
|
|
|
|
|
|
return MapperProxyFactory.getProxy(TaxDeclarationDetailMapper.class);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public XSSFWorkbook exportTaxDeclaration(Long taxDeclarationId) {
|
|
|
|
|
|
// 1.工作簿名称
|
|
|
|
|
|
String sheetName = SalaryI18nUtil.getI18nLabel(85368, "个税申报表");
|
|
|
|
|
|
//表头字段
|
|
|
|
|
|
String[] headers = TaxDeclarationDetailListColumn.listHeader();
|
|
|
|
|
|
// 解析表头
|
2022-04-20 16:02:52 +08:00
|
|
|
|
//List<WeaTableColumn> weaTableColumns = TaxDeclarationDetailListColumn.listTableColumn();
|
2022-04-18 18:56:17 +08:00
|
|
|
|
List<Object> headerList = new ArrayList<>(Arrays.asList(headers));
|
|
|
|
|
|
// 查询当前个税申报表一共有多少人员
|
|
|
|
|
|
int count = getTaxDeclarationDetailMapper(user).countEmployeeId(taxDeclarationId);
|
|
|
|
|
|
// 以1000个人员一页,一共有多少页
|
2022-04-20 16:02:52 +08:00
|
|
|
|
// int totalPages = (count % 1000 == 0) ? (count / 1000) : (count / 1000 + 1); //总页数
|
2022-04-18 18:56:17 +08:00
|
|
|
|
// excel导出的数据
|
|
|
|
|
|
List<List<Object>> rows = Lists.newArrayListWithExpectedSize(count);
|
|
|
|
|
|
rows.add(headerList);
|
2022-04-20 16:02:52 +08:00
|
|
|
|
//查询数据
|
|
|
|
|
|
TaxDeclarationDetailListQueryParam queryParam = new TaxDeclarationDetailListQueryParam().setTaxDeclarationId(taxDeclarationId);
|
|
|
|
|
|
PageInfo<TaxDeclarationDetailListDTO> dtoPage = getTaxDeclarationDetailService(user).listDtoPageByParam(queryParam);
|
|
|
|
|
|
List<TaxDeclarationDetailListDTO> list = dtoPage.getList();
|
|
|
|
|
|
for (TaxDeclarationDetailListDTO dto : list) {
|
|
|
|
|
|
List<Object> row = new ArrayList<>();
|
|
|
|
|
|
row.add(dto.getSeq());
|
|
|
|
|
|
row.add(dto.getEmployeeName());
|
2022-04-20 16:45:09 +08:00
|
|
|
|
row.add(dto.getIdCardType());
|
2022-04-20 16:02:52 +08:00
|
|
|
|
row.add(dto.getIdCardNo());
|
|
|
|
|
|
row.add(dto.getTaxpayerIdNo());
|
|
|
|
|
|
row.add(dto.getResidentType());
|
|
|
|
|
|
row.add(dto.getIncomeType());
|
|
|
|
|
|
row.add(dto.getIncome());
|
|
|
|
|
|
row.add(dto.getFee());
|
|
|
|
|
|
row.add(dto.getTaxFreeIncome());
|
|
|
|
|
|
row.add(dto.getSubtraction());
|
|
|
|
|
|
row.add(dto.getEndowmentInsurance());
|
|
|
|
|
|
row.add(dto.getMedicalInsurance());
|
|
|
|
|
|
row.add(dto.getUnemploymentInsurance());
|
|
|
|
|
|
row.add(dto.getHousingProvidentFund());
|
|
|
|
|
|
row.add(dto.getAnnuity());
|
|
|
|
|
|
row.add(dto.getCommercialHealthInsurance());
|
|
|
|
|
|
row.add(dto.getTaxDeferredEndowmentInsurance());
|
|
|
|
|
|
row.add(dto.getOriginalValueOfProperty());
|
|
|
|
|
|
row.add(dto.getDeductedTax());
|
|
|
|
|
|
row.add(dto.getOther());
|
|
|
|
|
|
row.add(dto.getAddUpIncome());
|
|
|
|
|
|
row.add(dto.getAddUpSubtraction());
|
|
|
|
|
|
row.add(dto.getAddUpSpecialDeduction());
|
|
|
|
|
|
row.add(dto.getAddUpChildEducation());
|
|
|
|
|
|
row.add(dto.getAddUpContinuingEducation());
|
|
|
|
|
|
row.add(dto.getAddUpHousingLoanInterest());
|
|
|
|
|
|
row.add(dto.getAddUpHousingRent());
|
|
|
|
|
|
row.add(dto.getAddUpSupportElderly());
|
|
|
|
|
|
row.add(dto.getAddUpOther());
|
|
|
|
|
|
row.add(dto.getLessTaxProportion());
|
|
|
|
|
|
row.add(dto.getAllowedDonation());
|
|
|
|
|
|
row.add(dto.getTaxableIncome());
|
|
|
|
|
|
row.add(dto.getTaxRate());
|
|
|
|
|
|
row.add(dto.getQuickDeductionFactor());
|
|
|
|
|
|
row.add(dto.getTaxPayable());
|
|
|
|
|
|
row.add(dto.getTaxSavings());
|
|
|
|
|
|
row.add(dto.getTaxWithheld());
|
|
|
|
|
|
row.add(dto.getRefundedOrSupplementedTax());
|
|
|
|
|
|
row.add(dto.getDescription());
|
|
|
|
|
|
|
|
|
|
|
|
rows.add(row);
|
2022-04-18 18:56:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
return ExcelUtil.genWorkbookV2(rows, sheetName);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|