diff --git a/resource/sql/个人养老金.sql b/resource/sql/个人养老金.sql new file mode 100644 index 000000000..455be004c --- /dev/null +++ b/resource/sql/个人养老金.sql @@ -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); \ No newline at end of file diff --git a/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java b/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java index 66794def2..38c9d09bc 100644 --- a/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java +++ b/src/com/engine/salary/constant/TaxDeclarationDataIndexConstant.java @@ -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"; + /** * 累计专项附加扣除 */ diff --git a/src/com/engine/salary/entity/datacollection/AddUpSituation.java b/src/com/engine/salary/entity/datacollection/AddUpSituation.java index 6335aee90..eeae5d130 100644 --- a/src/com/engine/salary/entity/datacollection/AddUpSituation.java +++ b/src/com/engine/salary/entity/datacollection/AddUpSituation.java @@ -126,6 +126,13 @@ public class AddUpSituation { @Encrypt private String addUpInfantCare; + /** + * 累计婴幼儿照护 + */ + @SalaryFormulaVar(defaultLabel = "累计个人养老金", labelId = 117732, dataType = "number") + @Encrypt + private String addUpPrivatePension; + /** * 累计企业(职业)年金及其他福利 */ diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java index 342d81f53..fd217469e 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java @@ -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; diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java index b32b60cae..e8c2fd0aa 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java @@ -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; } diff --git a/src/com/engine/salary/entity/datacollection/param/AddUpSituationParam.java b/src/com/engine/salary/entity/datacollection/param/AddUpSituationParam.java index da28b08be..d50184b2f 100644 --- a/src/com/engine/salary/entity/datacollection/param/AddUpSituationParam.java +++ b/src/com/engine/salary/entity/datacollection/param/AddUpSituationParam.java @@ -95,4 +95,7 @@ public class AddUpSituationParam { //累计婴幼儿照护 private String addUpInfantCare; + //累计个人养老金 + private String addUpPrivatePension; + } diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java index 6d936a232..d34faabb2 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java @@ -46,40 +46,19 @@ import java.util.stream.Collectors; public class TaxDeclarationBO { private static EncryptUtil encryptUtil = new EncryptUtil(); - public static List convert2ListDTO(List taxDeclarations, - List simpleEmployees, - List taxAgents) { + public static List convert2ListDTO(List taxDeclarations, List simpleEmployees, List taxAgents) { if (CollectionUtils.isEmpty(simpleEmployees)) { return Collections.emptyList(); } - Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, - TaxAgentPO::getName); + Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName); Map 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 page, - List taxDeclarationDetails, - List simpleEmployees) { + public static void buildDetailListDTO(Long taxDeclarationId, PageInfo page, List taxDeclarationDetails, List 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 salaryItems, - List salarySobs, - List salaryAcctResults) { + public static Result handle(TaxDeclarationSaveParam saveParam, Date taxCycle, User user, List salaryItems, List salarySobs, List salaryAcctResults) { Result result = new Result(); if (CollectionUtils.isEmpty(salaryAcctResults)) { return result; @@ -151,9 +125,7 @@ public class TaxDeclarationBO { // 薪资账套聚合成map(为了根据id获取incomeCategory) Map salarySobPOMap = SalaryEntityUtil.convert2Map(salarySobs, SalarySobPO::getId); // 薪资核算结果按照个税扣缴义务人id、所用薪资账套的incomeCategory聚合成map - Map>> taxAgentIdKeyAcctResultMap = salaryAcctResults.stream() - .collect(Collectors.groupingBy(SalaryAcctResultPO::getTaxAgentId, - Collectors.groupingBy(salaryAcctResultPO -> salarySobPOMap.get(salaryAcctResultPO.getSalarySobId()).getIncomeCategory()))); + Map>> 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 salaryAcctResults, - Map salaryItemMap) { + private static void handleTaxDeclaration4Wage(Result result, TaxDeclarationPO taxDeclaration, List salaryAcctResults, Map salaryItemMap) { if (CollectionUtils.isEmpty(salaryAcctResults)) { return; } // 核算结果按照人员id分类 - Map> salaryAcctResultPOMap = SalaryEntityUtil.group2Map(salaryAcctResults, - salaryAcctResultPO -> EmployeeTypeEnum.ORGANIZATION.getValue() + "_" + salaryAcctResultPO.getEmployeeId()); + Map> 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 valueMap = Maps.newHashMapWithExpectedSize(17); Map> 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 salaryAcctResults, - Map salaryItemMap) { + private static void handleTaxDeclaration4Labor(Result result, TaxDeclarationPO taxDeclaration, List salaryAcctResults, Map salaryItemMap) { if (CollectionUtils.isEmpty(salaryAcctResults)) { return; } @@ -292,10 +259,7 @@ public class TaxDeclarationBO { Map valueMap = Maps.newHashMapWithExpectedSize(7); Map> 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 salaryAcctResults, - Map salaryItemMap) { + private static void handleTaxDeclaration4Annual(Result result, TaxDeclarationPO taxDeclaration, List salaryAcctResults, Map 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 salaryAcctResults, - Map salaryItemMap) { + private static void handleAddUpSituation(Result result, TaxDeclarationPO taxDeclaration, List salaryAcctResults, Map 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 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 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> resultMap, Map 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> resultMap, Map 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> resultMap, Map 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 diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java index 855a835be..81010fb7b 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java @@ -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)) diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationWageListDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationWageListDTO.java index 7cb5ad3cb..19a0fad21 100644 --- a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationWageListDTO.java +++ b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationWageListDTO.java @@ -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; diff --git a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml index 002e1b4fe..1a4e58158 100644 --- a/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AddUpSituationMapper.xml @@ -19,6 +19,7 @@ + @@ -62,6 +63,7 @@ , t.add_up_illness_medical , t.add_up_tax_savings , t.add_up_infant_care + , t.add_up_private_pension @@ -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 @@ -463,7 +467,8 @@ #{item.tenantKey}, #{item.addUpTaxSavings}, #{item.addUpIllnessMedical}, - #{item.addUpInfantCare} + #{item.addUpInfantCare}, + #{item.addUpPrivatePension} ) @@ -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 ) @@ -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 @@ -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} ) @@ -708,6 +717,13 @@ + + + + when id=#{item.id} then #{item.addUpPrivatePension} + + + where id in diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index f3b04ecf1..c57f146fd 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -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); //入库 diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index edc4b5a86..9988d5718 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -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> partition = Lists.partition(addUpSituations, 50);