年终奖

This commit is contained in:
钱涛 2023-01-31 14:15:27 +08:00
parent 857c39bd2d
commit 9bedcf6d38
5 changed files with 29 additions and 17 deletions

View File

@ -343,12 +343,6 @@ public class TaxDeclarationBO {
Long employeeId = Long.parseLong(keyArray[1]);
Map<String, String> valueMap = Maps.newHashMapWithExpectedSize(7);
Map<Long, List<SalaryAcctResultPO>> resultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId);
// 所得项目
String incomeItems = resultMap.getOrDefault(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.INCOME_ITEMS, 0L), Collections.emptyList()).stream()
.map(SalaryAcctResultPO::getResultValue)
.findAny()
.orElse(StringUtils.EMPTY);
valueMap.put(TaxDeclarationDataIndexConstant.INCOME_ITEMS, incomeItems);
// 全年一次性奖金额
BigDecimal laborIncome = findValue(TaxDeclarationDataIndexConstant.ANNUAL_INCOME, resultMap, salaryItemMap);
valueMap.put(TaxDeclarationDataIndexConstant.ANNUAL_INCOME, laborIncome.toPlainString());

View File

@ -135,7 +135,7 @@ public class TaxDeclarationDetailBO {
}
/**
* 转换成个税申报表详情列表劳务报酬所得
* 转换成个税申报表详情列表年终奖
*
* @param taxDeclarationDetailPOS
* @param simpleEmployees
@ -158,7 +158,6 @@ public class TaxDeclarationDetailBO {
.setId(dto.getEmployeeId())
.setEmployeeId(dto.getEmployeeId())
.setCardType(SalaryI18nUtil.getI18nLabel(105564, "居民身份证"))
.setIncomeItems(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.INCOME_ITEMS))
.setAnnualIncome(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ANNUAL_INCOME))
.setAnnualTaxFreeIncome(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ANNUAL_TAX_FREE_INCOME))
.setAnnualOther(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ANNUAL_OTHER))

View File

@ -52,15 +52,9 @@ public class TaxDeclarationAnnualListDTO {
private String cardNum;
@SalaryTableColumn(
text = "所得项目", width = "10%", column = "incomeItems"
text = "全年一次性奖金额", width = "10%", column = "annualIncome"
)
@TableTitle(title ="所得项目",dataIndex = "incomeItems",key = "incomeItems")
private String incomeItems;
@SalaryTableColumn(
text = "年终奖收入", width = "10%", column = "annualIncome"
)
@TableTitle(title ="年终奖收入",dataIndex = "annualIncome",key = "annualIncome")
@TableTitle(title ="全年一次性奖金额",dataIndex = "annualIncome",key = "annualIncome")
private String annualIncome;
@SalaryTableColumn(

View File

@ -3,6 +3,7 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.annotation.SalaryTableColumn;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationAnnualListDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationWageListDTO;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
@ -107,6 +108,28 @@ public class TaxDeclarationExcelServiceImpl extends Service implements TaxDeclar
}
}
}
if (Objects.equals(taxDeclarationPO.getIncomeCategory(), IncomeCategoryEnum.ONETIME_ANNUAL_BONUS.getValue())) {
// 解析表头
parseHeader(TaxDeclarationAnnualListDTO.class, headerList, dataIndexList);
rows.add(headerList);
for (int i = 0; i < totalPages; i++) {
TaxDeclarationDetailListQueryParam queryParam = new TaxDeclarationDetailListQueryParam();
queryParam.setTaxDeclarationId(taxDeclarationId);
queryParam.setCurrent(i);
queryParam.setPageSize(1000);
PageInfo<TaxDeclarationAnnualListDTO> dtoPage = getTaxDeclarationDetailService(user).listDtoPageByParam4Annual(queryParam);
List<TaxDeclarationAnnualListDTO> list = dtoPage.getList();
for (TaxDeclarationAnnualListDTO taxDeclarationLaborListDTO : list) {
List<Object> row = Lists.newArrayListWithExpectedSize(dataIndexList.size());
Map<String, Object> map = JsonUtil.parseMap(taxDeclarationLaborListDTO, Object.class);
for (String dataIndex : dataIndexList) {
row.add(map.get(dataIndex));
}
rows.add(row);
}
}
}
return ExcelUtil.genWorkbookV2(rows, sheetName);
}

View File

@ -68,10 +68,12 @@ public class SalaryPageUtil {
* @param <T> 范型制定类
* @return
*/
public static <T> List<T> subList(int pageNo, int pageSize, List<T> source) {
public static <T> List<T> subList(Integer pageNo, Integer pageSize, List<T> source) {
if (CollectionUtils.isEmpty(source)) {
return Collections.emptyList();
}
pageNo = pageNo == null || pageNo <= 0 ? 1 : pageNo;
pageSize = pageSize == null || pageSize <= 0 ? 10 : pageSize;
int endIndex = pageNo * pageSize;
int startIndex = (pageNo - 1) * pageSize;
startIndex = startIndex < 0 ? 0 : startIndex;