年终奖数据
This commit is contained in:
parent
bb76df3718
commit
a4a829d201
|
|
@ -0,0 +1,13 @@
|
|||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629605, '个人养老金', 'privatePension', 1, 2, 12, 0, 0, 2, 2, 2, 8, 1680746056549, '', 0, 1, 0, 0, 'all_teams', '2022-03-28 10:33:01', '2022-05-10 15:54:31', 'number');
|
||||
|
||||
|
||||
INSERT INTO hrsa_sys_salary_item(id, name, code, system_type, category, item_type, use_default, use_in_employee_salary, rounding_mode, pattern, value_type, datasource, formula_id, description, can_edit, can_delete, creator, delete_type, tenant_key, create_time, update_time, data_type) VALUES (746777981115629698, '累计个人养老金', 'addUpPrivatePension', 1, 2, 12, 0, 0, 2, 2, 2, 8, 1681201555316, '', 0, 1, 0, 0, 'all_teams', '2022-03-28 10:33:01', '2022-05-10 15:54:31', 'number');
|
||||
|
||||
|
||||
-- 公式
|
||||
|
||||
|
||||
-- 账套默认项目
|
||||
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (706066600446312490, 1, 746777981115629605, 1, 0, 0, '2022-03-18 16:30:21', '2022-03-18 16:59:24', 0, 'all_teams', 703433961629614110, 10);
|
||||
INSERT INTO hrsa_salary_sob_default_item(id, income_category, sys_salary_item_id, can_edit, can_delete, creator, create_time, update_time, delete_type, tenant_key, sob_default_item_group_id, sorted_index) VALUES (706066600446312491, 1, 746777981115629698, 1, 0, 0, '2022-03-18 16:30:21', '2022-03-18 16:59:24', 0, 'all_teams', 703433961629614110, 11);
|
||||
|
|
@ -112,6 +112,11 @@ public class TaxDeclarationDataIndexConstant {
|
|||
*/
|
||||
public static final String ADD_UP_INFANT_CARE = "addUpInfantCare";
|
||||
|
||||
/**
|
||||
* 累计个人养老金
|
||||
*/
|
||||
public static final String ADD_UP_PRIVATE_PENSION = "addUpPrivatePension";
|
||||
|
||||
/**
|
||||
* 累计专项附加扣除
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -126,6 +126,13 @@ public class AddUpSituation {
|
|||
@Encrypt
|
||||
private String addUpInfantCare;
|
||||
|
||||
/**
|
||||
* 累计婴幼儿照护
|
||||
*/
|
||||
@SalaryFormulaVar(defaultLabel = "累计个人养老金", labelId = 117732, dataType = "number")
|
||||
@Encrypt
|
||||
private String addUpPrivatePension;
|
||||
|
||||
/**
|
||||
* 累计企业(职业)年金及其他福利
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -204,6 +204,13 @@ public class AddUpSituationDTO {
|
|||
@Encrypt
|
||||
private String addUpInfantCare;
|
||||
|
||||
//累计个人养老金
|
||||
@ExcelProperty(index = 24)
|
||||
@SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "addUpPrivatePension")
|
||||
@TableTitle(title = "累计个人养老金", dataIndex = "addUpPrivatePension", key = "addUpPrivatePension")
|
||||
@Encrypt
|
||||
private String addUpPrivatePension;
|
||||
|
||||
@SalaryTableColumn(text = "操作", width = "20%", column = "operate")
|
||||
@TableTitle(title = "操作", dataIndex = "operate", key = "operate")
|
||||
private String operate;
|
||||
|
|
|
|||
|
|
@ -170,4 +170,10 @@ public class AddUpSituationRecordDTO {
|
|||
@TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare")
|
||||
@Encrypt
|
||||
private String addUpInfantCare;
|
||||
|
||||
@ExcelProperty(index = 23)
|
||||
@SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "addUpPrivatePension")
|
||||
@TableTitle(title = "累计个人养老金", dataIndex = "addUpPrivatePension", key = "addUpPrivatePension")
|
||||
@Encrypt
|
||||
private String addUpPrivatePension;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,4 +95,7 @@ public class AddUpSituationParam {
|
|||
//累计婴幼儿照护
|
||||
private String addUpInfantCare;
|
||||
|
||||
//累计个人养老金
|
||||
private String addUpPrivatePension;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,40 +46,19 @@ import java.util.stream.Collectors;
|
|||
public class TaxDeclarationBO {
|
||||
private static EncryptUtil encryptUtil = new EncryptUtil();
|
||||
|
||||
public static List<TaxDeclarationListDTO> convert2ListDTO(List<TaxDeclarationPO> taxDeclarations,
|
||||
List<DataCollectionEmployee> simpleEmployees,
|
||||
List<TaxAgentPO> taxAgents) {
|
||||
public static List<TaxDeclarationListDTO> convert2ListDTO(List<TaxDeclarationPO> taxDeclarations, List<DataCollectionEmployee> simpleEmployees, List<TaxAgentPO> taxAgents) {
|
||||
if (CollectionUtils.isEmpty(simpleEmployees)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
Map<Long, String> taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId,
|
||||
TaxAgentPO::getName);
|
||||
Map<Long, String> taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName);
|
||||
Map<Long, String> employeeNameMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername);
|
||||
return taxDeclarations.stream()
|
||||
.map(taxDeclarationPO -> {
|
||||
IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory());
|
||||
return TaxDeclarationListDTO.builder()
|
||||
.id(taxDeclarationPO.getId())
|
||||
.incomeCategory(Optional.ofNullable(incomeCategoryEnum)
|
||||
.map(o -> SalaryI18nUtil.getI18nLabel(o.getLabelId(), o.getDefaultLabel()))
|
||||
.orElse(StringUtils.EMPTY))
|
||||
.salaryMonth(taxDeclarationPO.getSalaryMonth())
|
||||
.taxAgentId(taxDeclarationPO.getTaxAgentId())
|
||||
.taxAgentName(taxAgentNameMap.getOrDefault(taxDeclarationPO.getTaxAgentId(), ""))
|
||||
.taxCycle(taxDeclarationPO.getTaxCycle())
|
||||
.operateEmployeeId(taxDeclarationPO.getCreator())
|
||||
.operateEmployeeName(employeeNameMap.getOrDefault(taxDeclarationPO.getCreator(), ""))
|
||||
.operateTime(SalaryDateUtil.getFormatLocalDateTime(taxDeclarationPO.getCreateTime()))
|
||||
.description(taxDeclarationPO.getDescription())
|
||||
.build();
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
return taxDeclarations.stream().map(taxDeclarationPO -> {
|
||||
IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory());
|
||||
return TaxDeclarationListDTO.builder().id(taxDeclarationPO.getId()).incomeCategory(Optional.ofNullable(incomeCategoryEnum).map(o -> SalaryI18nUtil.getI18nLabel(o.getLabelId(), o.getDefaultLabel())).orElse(StringUtils.EMPTY)).salaryMonth(taxDeclarationPO.getSalaryMonth()).taxAgentId(taxDeclarationPO.getTaxAgentId()).taxAgentName(taxAgentNameMap.getOrDefault(taxDeclarationPO.getTaxAgentId(), "")).taxCycle(taxDeclarationPO.getTaxCycle()).operateEmployeeId(taxDeclarationPO.getCreator()).operateEmployeeName(employeeNameMap.getOrDefault(taxDeclarationPO.getCreator(), "")).operateTime(SalaryDateUtil.getFormatLocalDateTime(taxDeclarationPO.getCreateTime())).description(taxDeclarationPO.getDescription()).build();
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static void buildDetailListDTO(Long taxDeclarationId,
|
||||
PageInfo<TaxDeclarationDetailListDTO> page,
|
||||
List<TaxDeclarationDetailPO> taxDeclarationDetails,
|
||||
List<DataCollectionEmployee> simpleEmployees) {
|
||||
public static void buildDetailListDTO(Long taxDeclarationId, PageInfo<TaxDeclarationDetailListDTO> page, List<TaxDeclarationDetailPO> taxDeclarationDetails, List<DataCollectionEmployee> simpleEmployees) {
|
||||
if (CollectionUtils.isEmpty(taxDeclarationDetails)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -136,12 +115,7 @@ public class TaxDeclarationBO {
|
|||
page.setList(dtos);
|
||||
}
|
||||
|
||||
public static Result handle(TaxDeclarationSaveParam saveParam,
|
||||
Date taxCycle,
|
||||
User user,
|
||||
List<SalaryItemPO> salaryItems,
|
||||
List<SalarySobPO> salarySobs,
|
||||
List<SalaryAcctResultPO> salaryAcctResults) {
|
||||
public static Result handle(TaxDeclarationSaveParam saveParam, Date taxCycle, User user, List<SalaryItemPO> salaryItems, List<SalarySobPO> salarySobs, List<SalaryAcctResultPO> salaryAcctResults) {
|
||||
Result result = new Result();
|
||||
if (CollectionUtils.isEmpty(salaryAcctResults)) {
|
||||
return result;
|
||||
|
|
@ -151,9 +125,7 @@ public class TaxDeclarationBO {
|
|||
// 薪资账套聚合成map(为了根据id获取incomeCategory)
|
||||
Map<Long, SalarySobPO> salarySobPOMap = SalaryEntityUtil.convert2Map(salarySobs, SalarySobPO::getId);
|
||||
// 薪资核算结果按照个税扣缴义务人id、所用薪资账套的incomeCategory聚合成map
|
||||
Map<Long, Map<Integer, List<SalaryAcctResultPO>>> taxAgentIdKeyAcctResultMap = salaryAcctResults.stream()
|
||||
.collect(Collectors.groupingBy(SalaryAcctResultPO::getTaxAgentId,
|
||||
Collectors.groupingBy(salaryAcctResultPO -> salarySobPOMap.get(salaryAcctResultPO.getSalarySobId()).getIncomeCategory())));
|
||||
Map<Long, Map<Integer, List<SalaryAcctResultPO>>> taxAgentIdKeyAcctResultMap = salaryAcctResults.stream().collect(Collectors.groupingBy(SalaryAcctResultPO::getTaxAgentId, Collectors.groupingBy(salaryAcctResultPO -> salarySobPOMap.get(salaryAcctResultPO.getSalarySobId()).getIncomeCategory())));
|
||||
// 一个个税扣缴义务人,一种薪资类型生成一张个税申报表
|
||||
taxAgentIdKeyAcctResultMap.forEach((taxAgentId, incomeCategoryKeyAcctResultPOMap) -> {
|
||||
incomeCategoryKeyAcctResultPOMap.forEach((incomeCategory, salaryAcctResultPOS) -> {
|
||||
|
|
@ -187,16 +159,12 @@ public class TaxDeclarationBO {
|
|||
* @param salaryAcctResults
|
||||
* @param salaryItemMap
|
||||
*/
|
||||
private static void handleTaxDeclaration4Wage(Result result,
|
||||
TaxDeclarationPO taxDeclaration,
|
||||
List<SalaryAcctResultPO> salaryAcctResults,
|
||||
Map<String, Long> salaryItemMap) {
|
||||
private static void handleTaxDeclaration4Wage(Result result, TaxDeclarationPO taxDeclaration, List<SalaryAcctResultPO> salaryAcctResults, Map<String, Long> salaryItemMap) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctResults)) {
|
||||
return;
|
||||
}
|
||||
// 核算结果按照人员id分类
|
||||
Map<String, List<SalaryAcctResultPO>> salaryAcctResultPOMap = SalaryEntityUtil.group2Map(salaryAcctResults,
|
||||
salaryAcctResultPO -> EmployeeTypeEnum.ORGANIZATION.getValue() + "_" + salaryAcctResultPO.getEmployeeId());
|
||||
Map<String, List<SalaryAcctResultPO>> salaryAcctResultPOMap = SalaryEntityUtil.group2Map(salaryAcctResults, salaryAcctResultPO -> EmployeeTypeEnum.ORGANIZATION.getValue() + "_" + salaryAcctResultPO.getEmployeeId());
|
||||
salaryAcctResultPOMap.forEach((key, salaryAcctResultPOS) -> {
|
||||
String[] keyArray = StringUtils.split(key, "_");
|
||||
// 员工类型
|
||||
|
|
@ -206,8 +174,7 @@ public class TaxDeclarationBO {
|
|||
Map<String, String> valueMap = Maps.newHashMapWithExpectedSize(17);
|
||||
Map<Long, List<SalaryAcctResultPO>> resultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId);
|
||||
// 本期收入
|
||||
BigDecimal income = SalaryEntityUtil.reduce(resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.INCOME, 0L)),
|
||||
salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue()));
|
||||
BigDecimal income = SalaryEntityUtil.reduce(resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.INCOME, 0L)), salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue()));
|
||||
valueMap.put(TaxDeclarationDataIndexConstant.INCOME, income.toPlainString());
|
||||
// 本期免税收入
|
||||
BigDecimal taxFreeIncome = findValue(TaxDeclarationDataIndexConstant.TAX_FREE_INCOME, resultMap, salaryItemMap);
|
||||
|
|
@ -245,6 +212,9 @@ public class TaxDeclarationBO {
|
|||
// 累计婴幼儿照护
|
||||
BigDecimal addUpInfantCare = findValue(TaxDeclarationDataIndexConstant.ADD_UP_INFANT_CARE, resultMap, salaryItemMap);
|
||||
valueMap.put(TaxDeclarationDataIndexConstant.ADD_UP_INFANT_CARE, addUpInfantCare.toPlainString());
|
||||
// 累计个人养老金
|
||||
BigDecimal addUpPrivatePension = findValue(TaxDeclarationDataIndexConstant.ADD_UP_PRIVATE_PENSION, resultMap, salaryItemMap);
|
||||
valueMap.put(TaxDeclarationDataIndexConstant.ADD_UP_PRIVATE_PENSION, addUpPrivatePension.toPlainString());
|
||||
// 企业(职业)年金
|
||||
BigDecimal annuity = findValue(TaxDeclarationDataIndexConstant.ANNUITY, resultMap, salaryItemMap);
|
||||
valueMap.put(TaxDeclarationDataIndexConstant.ANNUITY, annuity.toPlainString());
|
||||
|
|
@ -276,10 +246,7 @@ public class TaxDeclarationBO {
|
|||
* @param salaryAcctResults
|
||||
* @param salaryItemMap
|
||||
*/
|
||||
private static void handleTaxDeclaration4Labor(Result result,
|
||||
TaxDeclarationPO taxDeclaration,
|
||||
List<SalaryAcctResultPO> salaryAcctResults,
|
||||
Map<String, Long> salaryItemMap) {
|
||||
private static void handleTaxDeclaration4Labor(Result result, TaxDeclarationPO taxDeclaration, List<SalaryAcctResultPO> salaryAcctResults, Map<String, Long> salaryItemMap) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctResults)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -292,10 +259,7 @@ public class TaxDeclarationBO {
|
|||
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);
|
||||
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.LABOR_INCOME, resultMap, salaryItemMap);
|
||||
|
|
@ -328,10 +292,7 @@ public class TaxDeclarationBO {
|
|||
* @param salaryAcctResults
|
||||
* @param salaryItemMap
|
||||
*/
|
||||
private static void handleTaxDeclaration4Annual(Result result,
|
||||
TaxDeclarationPO taxDeclaration,
|
||||
List<SalaryAcctResultPO> salaryAcctResults,
|
||||
Map<String, Long> salaryItemMap) {
|
||||
private static void handleTaxDeclaration4Annual(Result result, TaxDeclarationPO taxDeclaration, List<SalaryAcctResultPO> salaryAcctResults, Map<String, Long> salaryItemMap) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctResults)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -374,10 +335,7 @@ public class TaxDeclarationBO {
|
|||
* @param salaryAcctResults
|
||||
* @param salaryItemMap
|
||||
*/
|
||||
private static void handleAddUpSituation(Result result,
|
||||
TaxDeclarationPO taxDeclaration,
|
||||
List<SalaryAcctResultPO> salaryAcctResults,
|
||||
Map<String, Long> salaryItemMap) {
|
||||
private static void handleAddUpSituation(Result result, TaxDeclarationPO taxDeclaration, List<SalaryAcctResultPO> salaryAcctResults, Map<String, Long> salaryItemMap) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctResults)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -412,6 +370,8 @@ public class TaxDeclarationBO {
|
|||
BigDecimal addUpIllnessMedical = findAddUpValue(TaxDeclarationDataIndexConstant.ADD_UP_ILLNESS_MEDICAL, resultMap, salaryItemMap);
|
||||
// 累计婴幼儿照护
|
||||
BigDecimal addUpInfantCare = findAddUpValue(TaxDeclarationDataIndexConstant.ADD_UP_INFANT_CARE, resultMap, salaryItemMap);
|
||||
// 累计个人养老金
|
||||
BigDecimal addUpPrivatePension = findAddUpValue(TaxDeclarationDataIndexConstant.ADD_UP_PRIVATE_PENSION, resultMap, salaryItemMap);
|
||||
// 累计企业(职业)年金及其他福利
|
||||
BigDecimal addUpEnterpriseAndOther = findAddUpValue(TaxDeclarationDataIndexConstant.ADD_UP_ENTERPRISE_AND_OTHER, resultMap, salaryItemMap);
|
||||
// 累计其他免税扣除
|
||||
|
|
@ -426,16 +386,11 @@ public class TaxDeclarationBO {
|
|||
BigDecimal addUpTaxDeduction = findAddUpValue(TaxDeclarationDataIndexConstant.ADD_UP_TAX_DEDUCTION, resultMap, salaryItemMap);
|
||||
// 累计已预扣预缴税额
|
||||
List<SalaryAcctResultPO> resultPOS = resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.ADD_UP_ADVANCE_TAX, 0L));
|
||||
BigDecimal addUpAdvanceTax = resultPOS == null ? BigDecimal.ZERO : resultPOS.stream()
|
||||
.map(salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue()))
|
||||
.min(BigDecimal::compareTo)
|
||||
.orElse(BigDecimal.ZERO);
|
||||
BigDecimal addUpAdvanceTax = resultPOS == null ? BigDecimal.ZERO : resultPOS.stream().map(salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue())).min(BigDecimal::compareTo).orElse(BigDecimal.ZERO);
|
||||
// 本月(次)应补(退)税额
|
||||
BigDecimal refundedOrSupplementedTax = SalaryEntityUtil.reduce(resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.REFUNDED_OR_SUPPLEMENTED_TAX, 0L)),
|
||||
salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue()));
|
||||
BigDecimal refundedOrSupplementedTax = SalaryEntityUtil.reduce(resultMap.get(salaryItemMap.getOrDefault(TaxDeclarationDataIndexConstant.REFUNDED_OR_SUPPLEMENTED_TAX, 0L)), salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue()));
|
||||
// 生成往期累计情况
|
||||
AddUpSituation accumulatedSituation = AddUpSituation.builder()
|
||||
.employeeId(employeeId)
|
||||
AddUpSituation accumulatedSituation = AddUpSituation.builder().employeeId(employeeId)
|
||||
// .employeeType(employeeType)
|
||||
.taxAgentId(taxDeclaration.getTaxAgentId())
|
||||
.taxYearMonth(taxDeclaration.getTaxCycle())
|
||||
|
|
@ -452,6 +407,7 @@ public class TaxDeclarationBO {
|
|||
.addUpSupportElderly(addUpSupportElderly.toPlainString())
|
||||
.addUpIllnessMedical(addUpIllnessMedical.toPlainString())
|
||||
.addUpInfantCare(addUpInfantCare.toPlainString())
|
||||
.addUpPrivatePension(addUpPrivatePension.toPlainString())
|
||||
.addUpOtherDeduction(addUpOtherDeduction.toPlainString())
|
||||
.addUpTaxExemptIncome(addUpTaxFreeIncome.toPlainString())
|
||||
.addUpAllowedDonation(addUpAllowedDonation.toPlainString())
|
||||
|
|
@ -651,19 +607,7 @@ public class TaxDeclarationBO {
|
|||
if (saveParam.getDescription() == null) {
|
||||
saveParam.setDescription("");
|
||||
}
|
||||
return TaxDeclarationPO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.incomeCategory(incomeCategory)
|
||||
.taxAgentId(taxAgentId)
|
||||
.salaryMonth(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1)))
|
||||
.taxCycle(taxCycle)
|
||||
.description(saveParam.getDescription())
|
||||
.creator((long) user.getUID())
|
||||
.createTime(SalaryDateUtil.localDateTimeToDate(now))
|
||||
.updateTime(SalaryDateUtil.localDateTimeToDate(now))
|
||||
.deleteType(0)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
return TaxDeclarationPO.builder().id(IdGenerator.generate()).incomeCategory(incomeCategory).taxAgentId(taxAgentId).salaryMonth(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1))).taxCycle(taxCycle).description(saveParam.getDescription()).creator((long) user.getUID()).createTime(SalaryDateUtil.localDateTimeToDate(now)).updateTime(SalaryDateUtil.localDateTimeToDate(now)).deleteType(0).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -680,43 +624,22 @@ public class TaxDeclarationBO {
|
|||
}
|
||||
List<TaxDeclarationDetailPO> taxDeclarationDetailPOS = Lists.newArrayListWithExpectedSize(valueMap.size());
|
||||
valueMap.forEach((fieldCode, fieldValue) -> {
|
||||
TaxDeclarationDetailPO taxDeclarationDetailPO = TaxDeclarationDetailPO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.taxDeclarationId(taxDeclaration.getId())
|
||||
.employeeType(employeeType)
|
||||
.employeeId(employeeId)
|
||||
.fieldCode(fieldCode)
|
||||
.fieldValue(fieldValue)
|
||||
.creator(taxDeclaration.getCreator())
|
||||
.createTime(taxDeclaration.getCreateTime())
|
||||
.updateTime(taxDeclaration.getUpdateTime())
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(taxDeclaration.getTenantKey())
|
||||
.build();
|
||||
TaxDeclarationDetailPO taxDeclarationDetailPO = TaxDeclarationDetailPO.builder().id(IdGenerator.generate()).taxDeclarationId(taxDeclaration.getId()).employeeType(employeeType).employeeId(employeeId).fieldCode(fieldCode).fieldValue(fieldValue).creator(taxDeclaration.getCreator()).createTime(taxDeclaration.getCreateTime()).updateTime(taxDeclaration.getUpdateTime()).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(taxDeclaration.getTenantKey()).build();
|
||||
taxDeclarationDetailPOS.add(taxDeclarationDetailPO);
|
||||
});
|
||||
return taxDeclarationDetailPOS;
|
||||
}
|
||||
|
||||
private static BigDecimal findValue(String fieldCode, Map<Long, List<SalaryAcctResultPO>> resultMap, Map<String, Long> salaryItemMap) {
|
||||
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream()
|
||||
.map(e -> SalaryEntityUtil.empty2Zero(e.getResultValue()))
|
||||
.filter(e -> e.compareTo(BigDecimal.ZERO) > 0)
|
||||
.findAny()
|
||||
.orElse(BigDecimal.ZERO);
|
||||
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream().map(e -> SalaryEntityUtil.empty2Zero(e.getResultValue())).filter(e -> e.compareTo(BigDecimal.ZERO) > 0).findAny().orElse(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
private static BigDecimal findAddUpValue(String fieldCode, Map<Long, List<SalaryAcctResultPO>> resultMap, Map<String, Long> salaryItemMap) {
|
||||
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream()
|
||||
.map(e -> SalaryEntityUtil.empty2Zero(e.getResultValue()))
|
||||
.max(Comparator.comparingDouble(BigDecimal::doubleValue))
|
||||
.orElse(BigDecimal.ZERO);
|
||||
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream().map(e -> SalaryEntityUtil.empty2Zero(e.getResultValue())).max(Comparator.comparingDouble(BigDecimal::doubleValue)).orElse(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
private static String findStringValue(String fieldCode, Map<Long, List<SalaryAcctResultPO>> resultMap, Map<String, Long> salaryItemMap) {
|
||||
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream()
|
||||
.map(SalaryAcctResultPO::getResultValue)
|
||||
.findFirst().orElse("");
|
||||
return resultMap.getOrDefault(salaryItemMap.getOrDefault(fieldCode, 0L), Collections.emptyList()).stream().map(SalaryAcctResultPO::getResultValue).findFirst().orElse("");
|
||||
}
|
||||
|
||||
@Data
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ public class TaxDeclarationDetailBO {
|
|||
.addUpSupportElderly(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ADD_UP_SUPPORT_ELDERLY))
|
||||
.addUpIllnessMedical(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ADD_UP_ILLNESS_MEDICAL))
|
||||
.addUpInfantCare(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ADD_UP_INFANT_CARE))
|
||||
.addUpPrivatePension(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ADD_UP_PRIVATE_PENSION))
|
||||
.annuity(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.ANNUITY))
|
||||
.commercialHealthInsurance(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.COMMERCIAL_HEALTH_INSURANCE))
|
||||
.taxDeferredEndowmentInsurance(fieldCodeKeyFieldValueMap.get(TaxDeclarationDataIndexConstant.TAX_DEFERRED_ENDOWMENT_INSURANCE))
|
||||
|
|
|
|||
|
|
@ -101,6 +101,10 @@ public class TaxDeclarationWageListDTO {
|
|||
@TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare")
|
||||
private String addUpInfantCare;
|
||||
|
||||
@SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "addUpPrivatePension")
|
||||
@TableTitle(title = "累计个人养老金", dataIndex = "addUpPrivatePension", key = "addUpPrivatePension")
|
||||
private String addUpPrivatePension;
|
||||
|
||||
@SalaryTableColumn(text = "企业(职业)年金", width = "10%", column = "annuity")
|
||||
@TableTitle(title = "企业(职业)年金", dataIndex = "annuity", key = "annuity")
|
||||
private String annuity;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<result column="add_up_illness_medical" property="addUpIllnessMedical"/>
|
||||
<result column="add_up_tax_savings" property="addUpTaxSavings"/>
|
||||
<result column="add_up_infant_care" property="addUpInfantCare"/>
|
||||
<result column="add_up_private_pension" property="addUpPrivatePension"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="creator" property="creator"/>
|
||||
<result column="delete_type" property="deleteType"/>
|
||||
|
|
@ -62,6 +63,7 @@
|
|||
, t.add_up_illness_medical
|
||||
, t.add_up_tax_savings
|
||||
, t.add_up_infant_care
|
||||
, t.add_up_private_pension
|
||||
</sql>
|
||||
|
||||
<!--批量删除-->
|
||||
|
|
@ -118,6 +120,7 @@
|
|||
t1.add_up_support_elderly,
|
||||
t1.add_up_illness_medical,
|
||||
t1.add_up_infant_care,
|
||||
t1.add_up_private_pension,
|
||||
t1.add_up_enterprise_and_other,
|
||||
t1.add_up_other_deduction,
|
||||
t1.add_up_tax_exempt_income,
|
||||
|
|
@ -434,7 +437,8 @@
|
|||
tenant_key,
|
||||
add_up_tax_savings,
|
||||
add_up_illness_medical,
|
||||
add_up_infant_care
|
||||
add_up_infant_care,
|
||||
add_up_private_pension
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="collection" item="item" separator=",">
|
||||
|
|
@ -463,7 +467,8 @@
|
|||
#{item.tenantKey},
|
||||
#{item.addUpTaxSavings},
|
||||
#{item.addUpIllnessMedical},
|
||||
#{item.addUpInfantCare}
|
||||
#{item.addUpInfantCare},
|
||||
#{item.addUpPrivatePension}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -493,7 +498,8 @@
|
|||
tenant_key,
|
||||
add_up_tax_savings,
|
||||
add_up_illness_medical,
|
||||
add_up_infant_care
|
||||
add_up_infant_care,
|
||||
add_up_private_pension
|
||||
)
|
||||
|
||||
<foreach collection="collection" item="item" separator="union all">
|
||||
|
|
@ -522,7 +528,8 @@
|
|||
#{item.tenantKey,jdbcType=VARCHAR},
|
||||
#{item.addUpTaxSavings,jdbcType=VARCHAR},
|
||||
#{item.addUpIllnessMedical,jdbcType=VARCHAR},
|
||||
#{item.addUpInfantCare,jdbcType=VARCHAR}
|
||||
#{item.addUpInfantCare,jdbcType=VARCHAR},
|
||||
#{item.addUpPrivatePension,jdbcType=VARCHAR}
|
||||
from dual
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -553,7 +560,8 @@
|
|||
tenant_key,
|
||||
add_up_tax_savings,
|
||||
add_up_illness_medical,
|
||||
add_up_infant_care
|
||||
add_up_infant_care,
|
||||
add_up_private_pension
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
|
|
@ -581,7 +589,8 @@
|
|||
#{item.tenantKey},
|
||||
#{item.addUpTaxSavings},
|
||||
#{item.addUpIllnessMedical},
|
||||
#{item.addUpInfantCare}
|
||||
#{item.addUpInfantCare},
|
||||
#{item.addUpPrivatePension}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
@ -708,6 +717,13 @@
|
|||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="add_up_private_pension =case" suffix="end,">
|
||||
<foreach collection="collection" item="item" index="index">
|
||||
<if test="item.addUpPrivatePension!=null">
|
||||
when id=#{item.id} then #{item.addUpPrivatePension}
|
||||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
</trim>
|
||||
where
|
||||
id in
|
||||
|
|
|
|||
|
|
@ -801,6 +801,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation
|
|||
po.setAddUpIllnessMedical(dto.getAddUpIllnessMedical());
|
||||
po.setAddUpTaxSavings(dto.getAddUpTaxSavings());
|
||||
po.setAddUpInfantCare(dto.getAddUpInfantCare());
|
||||
po.setAddUpPrivatePension(dto.getAddUpPrivatePension());
|
||||
|
||||
if (errorSum == 0) {
|
||||
successCount += 1;
|
||||
|
|
@ -893,7 +894,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation
|
|||
.addUpEnterpriseAndOther(addUpSituationParam.getAddUpEnterpriseAndOther()).addUpOtherDeduction(addUpSituationParam.getAddUpOtherDeduction())
|
||||
.addUpTaxExemptIncome(addUpSituationParam.getAddUpTaxExemptIncome()).addUpAllowedDonation(addUpSituationParam.getAddUpAllowedDonation())
|
||||
.addUpTaxSavings(addUpSituationParam.getAddUpTaxSavings()).addUpAdvanceTax(addUpSituationParam.getAddUpAdvanceTax())
|
||||
.addUpInfantCare(addUpSituationParam.getAddUpInfantCare()).build();
|
||||
.addUpInfantCare(addUpSituationParam.getAddUpInfantCare())
|
||||
.addUpPrivatePension(addUpSituationParam.getAddUpPrivatePension())
|
||||
.build();
|
||||
updateList.add(build);
|
||||
biz.batchUpdate(updateList);
|
||||
}
|
||||
|
|
@ -1029,6 +1032,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation
|
|||
po.setAddUpIllnessMedical(addUpSituationParam.getAddUpIllnessMedical());
|
||||
po.setAddUpTaxSavings(addUpSituationParam.getAddUpTaxSavings());
|
||||
po.setAddUpInfantCare(addUpSituationParam.getAddUpInfantCare());
|
||||
po.setAddUpPrivatePension(addUpSituationParam.getAddUpPrivatePension());
|
||||
insertList.add(po);
|
||||
|
||||
//入库
|
||||
|
|
|
|||
|
|
@ -898,6 +898,7 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe
|
|||
po.setAddUpIllnessMedical(AESEncryptUtil.closeEncryptSetting(po.getAddUpIllnessMedical()));
|
||||
po.setAddUpTaxSavings(AESEncryptUtil.closeEncryptSetting(po.getAddUpTaxSavings()));
|
||||
po.setAddUpInfantCare(AESEncryptUtil.closeEncryptSetting(po.getAddUpInfantCare()));
|
||||
po.setAddUpPrivatePension(AESEncryptUtil.closeEncryptSetting(po.getAddUpPrivatePension()));
|
||||
} else {
|
||||
po.setAddUpIncome(AESEncryptUtil.encrypt(po.getAddUpIncome()));
|
||||
po.setAddUpSubtraction(AESEncryptUtil.encrypt(po.getAddUpSubtraction()));
|
||||
|
|
@ -916,6 +917,7 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe
|
|||
po.setAddUpIllnessMedical(AESEncryptUtil.encrypt(po.getAddUpIllnessMedical()));
|
||||
po.setAddUpTaxSavings(AESEncryptUtil.encrypt(po.getAddUpTaxSavings()));
|
||||
po.setAddUpInfantCare(AESEncryptUtil.encrypt(po.getAddUpInfantCare()));
|
||||
po.setAddUpPrivatePension(AESEncryptUtil.encrypt(po.getAddUpPrivatePension()));
|
||||
}
|
||||
});
|
||||
List<List<AddUpSituation>> partition = Lists.partition(addUpSituations, 50);
|
||||
|
|
|
|||
Loading…
Reference in New Issue