From 39c536c7b498aa5d2f48fd8e11a4af0eee481cc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Thu, 26 Dec 2024 15:16:24 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dto/EndowmentInsuranceListDTO.java | 13 +-
.../dto/GrantDonationListDTO.java | 1 +
.../dto/HealthInsuranceListDTO.java | 2 +-
.../OtherDeductionFreeListQueryParam.java | 31 ++++
.../bo/TaxDeclarationRequest.java | 151 +++++++++++++++++-
.../enums/salarysob/IncomeCategoryEnum.java | 9 +-
.../salary/service/OtherDeductionService.java | 10 +-
.../impl/OtherDeductionServiceImpl.java | 47 +++++-
.../impl/TaxDeclareRecordServiceImpl.java | 48 +++++-
9 files changed, 296 insertions(+), 16 deletions(-)
create mode 100644 src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java
diff --git a/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java b/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java
index 0af824f19..0ca693bcf 100644
--- a/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java
+++ b/src/com/engine/salary/entity/datacollection/dto/EndowmentInsuranceListDTO.java
@@ -81,24 +81,27 @@ public class EndowmentInsuranceListDTO {
@TableTitle(title = "证件号码", dataIndex = "idNo", key = "idNo")
private String idNo;
-
@ExcelProperty(index = 6)
+ @TableTitle(title = "申报扣除月份", dataIndex = "deductionMonth", key = "deductionMonth")
+ private Date deductionMonth;
+
+ @ExcelProperty(index = 7)
@TableTitle(title = "税延养老账户编号", dataIndex = "accountNumber", key = "accountNumber")
private String accountNumber;
- @ExcelProperty(index = 7)
+ @ExcelProperty(index = 8)
@TableTitle(title = "报税校验码", dataIndex = "checkCode", key = "checkCode")
private String checkCode;
- @ExcelProperty(index = 8)
+ @ExcelProperty(index = 9)
@TableTitle(title = "年度保费", dataIndex = "yearPremium", key = "yearPremium")
private String yearPremium;
- @ExcelProperty(index = 9)
+ @ExcelProperty(index = 10)
@TableTitle(title = "月度保费", dataIndex = "monthPremium", key = "monthPremium")
private String monthPremium;
- @ExcelProperty(index = 10)
+ @ExcelProperty(index = 11)
@TableTitle(title = "本期扣除金额", dataIndex = "currentDeduction", key = "currentDeduction")
private String currentDeduction;
diff --git a/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java b/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java
index 6255c4043..f38aa7181 100644
--- a/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java
+++ b/src/com/engine/salary/entity/datacollection/dto/GrantDonationListDTO.java
@@ -103,6 +103,7 @@ public class GrantDonationListDTO {
@ExcelProperty(index = 9)
@TableTitle(title = "捐赠日期", dataIndex = "donateDate", key = "donateDate")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date donateDate;
@ExcelProperty(index = 10)
diff --git a/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java b/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java
index 9cc8d0b4f..890682379 100644
--- a/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java
+++ b/src/com/engine/salary/entity/datacollection/dto/HealthInsuranceListDTO.java
@@ -90,11 +90,11 @@ public class HealthInsuranceListDTO {
@ExcelProperty(index = 7)
@TableTitle(title = "保单生效日期", dataIndex = "effectiveDate", key = "effectiveDate")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date effectiveDate;
@ExcelProperty(index = 8)
@TableTitle(title = "年度保费", dataIndex = "yearPremium", key = "yearPremium")
-
private String yearPremium;
@ExcelProperty(index = 9)
diff --git a/src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java b/src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java
new file mode 100644
index 000000000..9b0a07212
--- /dev/null
+++ b/src/com/engine/salary/entity/datacollection/param/OtherDeductionFreeListQueryParam.java
@@ -0,0 +1,31 @@
+package com.engine.salary.entity.datacollection.param;
+
+import com.engine.salary.util.valid.DataCheck;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * 其他免税扣除,附表查询列表
+ *
Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OtherDeductionFreeListQueryParam{
+
+ @DataCheck(require = true, message = "扣缴义务人id为空")
+ private Long taxAgentId;
+
+ @DataCheck(require = true, message = "税款所属期为空")
+ private Date taxCycle;
+
+}
diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java
index 5c2c82770..8432faa61 100644
--- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java
+++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java
@@ -1,12 +1,15 @@
package com.engine.salary.entity.taxdeclaration.bo;
+import com.engine.salary.entity.datacollection.po.*;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
+import com.engine.salary.enums.datacollection.TaxFreeTypeEnum;
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
+import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -14,6 +17,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.general.Util;
+import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
@@ -30,7 +34,8 @@ public class TaxDeclarationRequest {
public static Map convert2RequestParam(List taxReportColumns,
List taxDeclarations,
List taxDeclarationValues,
- List employeeDeclares) {
+ List employeeDeclares,
+ Map> taxFreeMap) {
Map> objRequestParam = Maps.newHashMap();
Map>> listRequestParam = Maps.newHashMap();
Map> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory);
@@ -127,7 +132,7 @@ public class TaxDeclarationRequest {
employeeRequestParams.add(employeeRequestParam);
}
// 其他免税扣除附表
-// buildOtherDeductionDetailParams(taxFreeMap, listRequestParam, employeeDeclare, incomeCategoryEnum, employeeRequestParam);
+ buildOtherDeductionDetailParams(taxFreeMap, listRequestParam, employeeDeclare, incomeCategoryEnum, employeeRequestParam);
}
}
@@ -137,6 +142,148 @@ public class TaxDeclarationRequest {
return requestParam;
}
+ private static void buildOtherDeductionDetailParams(Map> taxFreeMap, Map>> listRequestParam, EmployeeDeclarePO employeeDeclare, IncomeCategoryEnum incomeCategoryEnum, Map employeeRequestParam) {
+ if (new BigDecimal(employeeRequestParam.getOrDefault("mssd", "0").toString()).compareTo(new BigDecimal("0")) > 0) {
+ Map freeIncomeMap = taxFreeMap.get(TaxFreeTypeEnum.FREE_INCOME);
+ List poList = (List) freeIncomeMap.get(employeeDeclare.getTaxAgentId() + "-" + employeeDeclare.getEmployeeId() + "-" + SalaryDateUtil.getFormatYearMonth(employeeDeclare.getTaxCycle()));
+ if (CollectionUtils.isNotEmpty(poList)) {
+ List