From 0a54fe5f80b2abeb58a3e78f31864979161f402c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Thu, 14 Dec 2023 10:35:10 +0800
Subject: [PATCH 01/26] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=B3=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TaxDeclareRecordDetailSaveParam.java | 64 +++++++++++++++++++
.../taxdeclaration/po/TaxReportColumnPO.java | 28 ++++----
.../impl/TaxDeclareRecordServiceImpl.java | 10 ++-
.../salary/web/TaxDeclarationController.java | 31 ++++++++-
.../wrapper/TaxDeclareRecordWrapper.java | 40 ++++++++++--
5 files changed, 151 insertions(+), 22 deletions(-)
create mode 100644 src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java
diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java
new file mode 100644
index 000000000..7744819ba
--- /dev/null
+++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java
@@ -0,0 +1,64 @@
+package com.engine.salary.entity.taxdeclaration.param;
+
+import com.engine.salary.annotation.SalaryTableColumn;
+import com.engine.salary.annotation.TableTitle;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * 个税申报明细保存
+ *
Copyright: Copyright (c) 2023
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+public class TaxDeclareRecordDetailSaveParam {
+
+ //主键id
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long id;
+
+ //个税申报记录id")
+ private Long taxDeclareRecordId;
+
+ //个税申报表id")
+ private Long taxDeclarationId;
+
+ //人员id
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long employeeId;
+ private Integer employeeType;
+
+ @SalaryTableColumn(
+ text = "工号", width = "10%", column = "jobNum"
+ )
+ @TableTitle(title ="工号",dataIndex = "jobNum",key = "jobNum")
+ private String jobNum;
+
+ @SalaryTableColumn(
+ text = "姓名", width = "10%", column = "username"
+ )
+ @TableTitle(title ="姓名",dataIndex = "username",key = "username")
+ private String username;
+
+ @SalaryTableColumn(
+ text = "证件类型", width = "10%", column = "cardType"
+ )
+ @TableTitle(title ="证件类型",dataIndex = "cardType",key = "cardType")
+ private String cardType;
+
+ @SalaryTableColumn(
+ text = "证件号码", width = "10%", column = "cardNum"
+ )
+ @TableTitle(title ="证件号码",dataIndex = "cardNum",key = "cardNum")
+ private String cardNum;
+
+ private Map taxReportColumnValues;
+
+
+}
diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxReportColumnPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxReportColumnPO.java
index 5e824dc48..a6591e714 100644
--- a/src/com/engine/salary/entity/taxdeclaration/po/TaxReportColumnPO.java
+++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxReportColumnPO.java
@@ -20,34 +20,34 @@ import java.util.Date;
@Builder
@AllArgsConstructor
@NoArgsConstructor
-//hrsa_tax_report_column")
+//hrsa_tax_report_column
public class TaxReportColumnPO {
- //name = "主键id")
+ //name = 主键id
private Long id;
- //name = "报表类型")
+ //name = 报表类型
private String taxReportType;
- //name = "所得项目")
+ //name = 所得项目
private String incomeCategory;
- //name = "申报表的列名")
+ //name = 申报表的列名
private String reportColumnName;
- //name = "申报表的列名多语言标签")
+ //name = 申报表的列名多语言标签
private Integer reportColumnLabel;
- //name = "申报表的列索引")
+ //name = 申报表的列索引
private String reportColumnDataIndex;
- //name = "数值类型")
+ //name = 数值类型
private String dataType;
- //name = "个税对接时的参数key")
+ //name = 个税对接时的参数key
private String requestParamKey;
- //name = "租户key", ignore = true)
+ //name = 租户key
private String tenantKey;
- //name = "创建人id", ignore = true)
+ //name = 创建人id
private Long creator;
- //name = "是否删除", ignore = true)
+ //name = 是否删除
private Integer deleteType;
- //name = "创建时间", ignore = true)
+ //name = 创建时间
private Date createTime;
- //name = "更新时间", ignore = true)
+ //name = 更新时间
private Date updateTime;
Collection ids;
diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java
index ac6829f00..23606e23e 100644
--- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java
+++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java
@@ -414,7 +414,15 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
// 薪资核算结果
Set salaryAcctEmployeeIdSet = SalaryEntityUtil.properties(incomeCategoryEntry.getValue(), SalaryAcctEmployeePO::getId);
List> resultValues = salaryAcctEmployeeIdSet.stream().map(salaryAcctResultValueMap::get).filter(Objects::nonNull).collect(Collectors.toList());
- TaxDeclareContext taxDeclareContext = new TaxDeclareContext().setSalaryAcctRecordMap(salaryAcctRecordMap).setSalaryAcctEmployees(incomeCategoryEntry.getValue()).setSalaryAcctResultValues(salaryAcctResultValues).setTaxDeclaration(taxDeclaration).setSalarySobTaxReportRuleMap(salarySobTaxReportRuleMap).setSalarySobAddUpRuleMap(salarySobAddUpRuleMap).setTaxReportColumns(taxReportColumnMap.get(incomeCategoryEntry.getKey())).setSalaryItems(salaryItems);
+ TaxDeclareContext taxDeclareContext = new TaxDeclareContext()
+ .setSalaryAcctRecordMap(salaryAcctRecordMap)
+ .setSalaryAcctEmployees(incomeCategoryEntry.getValue())
+ .setSalaryAcctResultValues(salaryAcctResultValues)
+ .setTaxDeclaration(taxDeclaration)
+ .setSalarySobTaxReportRuleMap(salarySobTaxReportRuleMap)
+ .setSalarySobAddUpRuleMap(salarySobAddUpRuleMap)
+ .setTaxReportColumns(taxReportColumnMap.get(incomeCategoryEntry.getKey()))
+ .setSalaryItems(salaryItems);
TaxDeclarationStrategy taxDeclarationStrategy = new TaxDeclarationCommon();
TaxDeclarationGenerateResult generateResult = taxDeclarationStrategy.generate(taxDeclareContext, (long) user.getUID());
taxDeclarationValues.addAll(generateResult.getTaxDeclarationValues());
diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java
index f3e0a89e5..64fba69e2 100644
--- a/src/com/engine/salary/web/TaxDeclarationController.java
+++ b/src/com/engine/salary/web/TaxDeclarationController.java
@@ -229,7 +229,7 @@ public class TaxDeclarationController {
try {
User user = HrmUserVarify.getUser(request, response);
- XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id ,requestId);
+ XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id, requestId);
String fileName = "申报内置算税结果-" + LocalDate.now();
try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
@@ -334,6 +334,35 @@ public class TaxDeclarationController {
return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::refreshData, taxDeclareRecordParam.getTaxDeclareRecordId());
}
+ /**
+ * 新增表单
+ *
+ * @param incomeCategory
+ * @return
+ */
+ @GET
+ @Path("/getAddForm")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String getAddForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "IncomeCategoryEnum") IncomeCategoryEnum incomeCategory) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getAddForm, incomeCategory);
+ }
+
+ /**
+ * 新增
+ * @param request
+ * @param response
+ * @param param
+ * @return
+ */
+ @POST
+ @Path("/add")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String add(@Context HttpServletRequest request, @Context HttpServletResponse response,TaxDeclareRecordDetailSaveParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::add, param);
+ }
+
/**
* 个税申报表详情列表
*
diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java
index edd3900df..96c8e6ee6 100644
--- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java
+++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java
@@ -3,13 +3,11 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.cache.SalaryCacheKey;
+import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxdeclaration.dto.*;
-import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
-import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
-import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
-import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
+import com.engine.salary.entity.taxdeclaration.param.*;
import com.engine.salary.entity.taxdeclaration.po.*;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
@@ -89,6 +87,11 @@ public class TaxDeclareRecordWrapper extends Service {
return ServiceUtil.getService(TaxDeclareFailServiceImpl.class, user);
}
+ private TaxReportColumnService getTaxReportColumnService(User user) {
+ return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
+ }
+
+
/**
* 个税申报记录列表
*
@@ -463,11 +466,11 @@ public class TaxDeclareRecordWrapper extends Service {
public Object getDeclareTaxResultFeedback(Long id) {
- return getTaxDeclareRecordService(user).getDeclareTaxResultFeedback(id);
+ return getTaxDeclareRecordService(user).getDeclareTaxResultFeedback(id);
}
- public XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id,String requestId) {
+ public XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id, String requestId) {
return getTaxDeclareRecordService(user).exportGetDeclareTaxResultFeedback(id, requestId);
}
@@ -660,4 +663,29 @@ public class TaxDeclareRecordWrapper extends Service {
return getTaxDeclarationExcelService(user).exportEmployee4Fail(queryParam);
}
+ public List getAddForm(IncomeCategoryEnum incomeCategoryEnum) {
+ // 查询个税申报表列
+ List taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(incomeCategoryEnum);
+ return taxReportColumns;
+ }
+
+ public void add(TaxDeclareRecordDetailSaveParam param) {
+
+ TaxDeclarationValuePO build = TaxDeclarationValuePO.builder()
+ .id(IdGenerator.generate())
+ .taxDeclarationId(param.getTaxDeclarationId())
+ .taxDeclareRecordId(param.getTaxDeclareRecordId())
+ .employeeId(param.getEmployeeId())
+ .employeeType(param.getEmployeeType())
+ .resultValue(param.getTaxReportColumnValues())
+ .createTime(new Date())
+ .updateTime(new Date())
+ .creator((long) user.getUID())
+ .deleteType(0)
+ .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
+ .build();
+ List objects = new ArrayList<>();
+ objects.add(build);
+ getTaxDeclarationValueService(user).batchSave(objects);
+ }
}
From e97a35f158c77fb089a9d770cc54e4076714ea90 Mon Sep 17 00:00:00 2001
From: Harryxzy
Date: Thu, 14 Dec 2023 15:57:55 +0800
Subject: [PATCH 02/26] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=A1=A5=E5=8F=91?=
=?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E6=A8=A1=E6=9D=BF=E6=97=B6=EF=BC=8C?=
=?UTF-8?q?=E5=B7=B2=E5=8F=91=E8=A1=A5=E5=8F=91=E9=A1=B9=E7=9B=AEfix?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java
index 893b0d55e..cd7af96ba 100644
--- a/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java
+++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java
@@ -167,6 +167,8 @@ public class SalaryTemplateBO {
.id(String.valueOf(e.getSalaryItemId()))
.salaryItemId(String.valueOf(e.getSalaryItemId()))
.name(e.getName())
+ .salaryItemShowName(e.getName())
+ .originName(e.getName())
.sortedIndex(e.getSortedIndex())
.build()
);
From d9c952e80c66280f502b4033ec391e862a4329bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Thu, 14 Dec 2023 17:55:48 +0800
Subject: [PATCH 03/26] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E8=A1=A8=E6=98=8E?=
=?UTF-8?q?=E7=BB=86=E6=96=B0=E5=A2=9E=E3=80=81=E7=BC=96=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../param/EmployeeDeclareListQueryParam.java | 1 +
.../bo/TaxDeclarationDetailBO.java | 26 ++++-
.../dto/TaxDeclareRecordDetailFormDTO.java | 76 +++++++++++++++
.../TaxDeclareRecordDetailFormParam.java | 21 ++++
.../TaxDeclareRecordDetailSaveParam.java | 32 +------
.../employeedeclare/EmployeeDeclareMapper.xml | 3 +
.../service/TaxDeclarationValueService.java | 8 ++
.../impl/TaxDeclarationValueServiceImpl.java | 57 +++++++++++
.../salary/web/TaxDeclarationController.java | 61 ++++++++----
.../wrapper/TaxDeclareRecordWrapper.java | 95 +++++++++++++++----
10 files changed, 309 insertions(+), 71 deletions(-)
create mode 100644 src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclareRecordDetailFormDTO.java
create mode 100644 src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailFormParam.java
diff --git a/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareListQueryParam.java b/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareListQueryParam.java
index e569ecbf1..27222c08f 100644
--- a/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareListQueryParam.java
+++ b/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareListQueryParam.java
@@ -48,6 +48,7 @@ public class EmployeeDeclareListQueryParam extends BaseQueryParam {
// 员工姓名/编号
private String keyword;
+ private Long employeeId;
// 部门
private Collection departmentIds;
diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java
index 81010fb7b..5b8454a82 100644
--- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java
+++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationDetailBO.java
@@ -2,11 +2,9 @@ package com.engine.salary.entity.taxdeclaration.bo;
import com.engine.salary.constant.TaxDeclarationDataIndexConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
-import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationAnnualListDTO;
-import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationEmployeeDTO;
-import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO;
-import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationWageListDTO;
+import com.engine.salary.entity.taxdeclaration.dto.*;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
+import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO;
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
@@ -15,6 +13,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 个税申报表详情
@@ -177,4 +176,23 @@ public class TaxDeclarationDetailBO {
}
return taxDeclarationLaborListDTOS;
}
+
+
+ public static List convert2ListTaxReportColumn(List pos) {
+ if (CollectionUtils.isEmpty(pos)) {
+ return Collections.emptyList();
+ }
+
+ List collect = pos.stream().map(po -> {
+ TaxDeclareRecordDetailFormDTO.TaxReportColumn taxReportColumn = new TaxDeclareRecordDetailFormDTO.TaxReportColumn();
+ taxReportColumn.setReportColumnName(po.getReportColumnName());
+ taxReportColumn.setReportColumnDataIndex(po.getReportColumnDataIndex());
+ taxReportColumn.setTaxReportType(po.getTaxReportType());
+ taxReportColumn.setIncomeCategory(po.getIncomeCategory());
+ taxReportColumn.setDataType(po.getDataType());
+ return taxReportColumn;
+ }).collect(Collectors.toList());
+
+ return collect;
+ }
}
diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclareRecordDetailFormDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclareRecordDetailFormDTO.java
new file mode 100644
index 000000000..a94811684
--- /dev/null
+++ b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclareRecordDetailFormDTO.java
@@ -0,0 +1,76 @@
+package com.engine.salary.entity.taxdeclaration.dto;
+
+import com.engine.salary.annotation.TableTitle;
+import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 个税申报明细新增表单
+ * Copyright: Copyright (c) 2023
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TaxDeclareRecordDetailFormDTO {
+
+ /**
+ * 个税申报表id
+ */
+ private Long taxDeclarationId;
+
+ @TableTitle(title = "工号", dataIndex = "jobNum", key = "jobNum")
+ private String jobNum;
+
+ @TableTitle(title = "姓名", dataIndex = "username", key = "username")
+ private String username;
+
+ @TableTitle(title = "证件类型", dataIndex = "cardType", key = "cardType")
+ private String cardType;
+
+ @TableTitle(title = "证件号码", dataIndex = "cardNum", key = "cardNum")
+ private String cardNum;
+
+ /**
+ * 收入所得项目
+ */
+ private String incomeCategory;
+
+ /**
+ * 人员报送下拉选择
+ */
+ private List employeeDeclares;
+
+ /**
+ * 当前申报类型可编辑字段
+ */
+ private List taxReportColumns;
+ private Map resultValue;
+
+
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class TaxReportColumn {
+ //报表类型
+ private String taxReportType;
+ //所得项目
+ private String incomeCategory;
+ //申报表列索引
+ private String reportColumnDataIndex ;
+ //申报表的列名
+ private String reportColumnName;
+ //数值类型
+ private String dataType;
+ }
+}
diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailFormParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailFormParam.java
new file mode 100644
index 000000000..3386119bf
--- /dev/null
+++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailFormParam.java
@@ -0,0 +1,21 @@
+package com.engine.salary.entity.taxdeclaration.param;
+
+import lombok.Data;
+
+/**
+ * 个税申报明细保存
+ * Copyright: Copyright (c) 2023
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+public class TaxDeclareRecordDetailFormParam {
+
+ /**
+ * 个税申报表id
+ */
+ private Long taxDeclarationId;
+
+}
diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java
index 7744819ba..0f60decd9 100644
--- a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java
+++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordDetailSaveParam.java
@@ -1,7 +1,5 @@
package com.engine.salary.entity.taxdeclaration.param;
-import com.engine.salary.annotation.SalaryTableColumn;
-import com.engine.salary.annotation.TableTitle;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
@@ -23,10 +21,7 @@ public class TaxDeclareRecordDetailSaveParam {
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
- //个税申报记录id")
- private Long taxDeclareRecordId;
-
- //个税申报表id")
+ //个税申报表id
private Long taxDeclarationId;
//人员id
@@ -34,31 +29,6 @@ public class TaxDeclareRecordDetailSaveParam {
private Long employeeId;
private Integer employeeType;
- @SalaryTableColumn(
- text = "工号", width = "10%", column = "jobNum"
- )
- @TableTitle(title ="工号",dataIndex = "jobNum",key = "jobNum")
- private String jobNum;
-
- @SalaryTableColumn(
- text = "姓名", width = "10%", column = "username"
- )
- @TableTitle(title ="姓名",dataIndex = "username",key = "username")
- private String username;
-
- @SalaryTableColumn(
- text = "证件类型", width = "10%", column = "cardType"
- )
- @TableTitle(title ="证件类型",dataIndex = "cardType",key = "cardType")
- private String cardType;
-
- @SalaryTableColumn(
- text = "证件号码", width = "10%", column = "cardNum"
- )
- @TableTitle(title ="证件号码",dataIndex = "cardNum",key = "cardNum")
- private String cardNum;
-
private Map taxReportColumnValues;
-
}
diff --git a/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml b/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml
index 890181735..33e2deec0 100644
--- a/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml
+++ b/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml
@@ -838,6 +838,9 @@
AND declare_status = #{param.declareStatus.value}
+
+ AND employee_id=#{param.employeeId}
+
AND employment_status = #{param.employmentStatus.value}
diff --git a/src/com/engine/salary/service/TaxDeclarationValueService.java b/src/com/engine/salary/service/TaxDeclarationValueService.java
index 8ec154857..ab129909c 100644
--- a/src/com/engine/salary/service/TaxDeclarationValueService.java
+++ b/src/com/engine/salary/service/TaxDeclarationValueService.java
@@ -2,6 +2,7 @@ package com.engine.salary.service;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
+import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO;
import com.engine.salary.util.page.PageInfo;
@@ -58,10 +59,17 @@ public interface TaxDeclarationValueService {
*/
void batchSave(List taxDeclarationValues);
+
+ void save(TaxDeclareRecordDetailSaveParam param);
+ void edit(TaxDeclareRecordDetailSaveParam param);
+ TaxDeclarationValuePO getById(Long id);
+
/**
* 删除个税申报表明细
*
* @param taxDeclareRecordIds
*/
void deleteByTaxDeclareRecordIds(Collection taxDeclareRecordIds);
+
+
}
diff --git a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java
index f7aaf17c9..e45ba18f2 100644
--- a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java
+++ b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java
@@ -3,6 +3,7 @@ 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;
+import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
@@ -10,11 +11,13 @@ import com.engine.salary.entity.extemp.po.ExtEmpPO;
import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationValueList;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
+import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam;
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.salaryaccounting.EmployeeTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
+import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationValueMapper;
import com.engine.salary.service.*;
import com.engine.salary.util.JsonUtil;
@@ -24,6 +27,7 @@ import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import com.google.common.collect.Lists;
+import dm.jdbc.util.IdGenerator;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import weaver.hrm.User;
@@ -63,6 +67,10 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
}
+ private TaxDeclarationService getTaxDeclarationService(User user) {
+ return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user);
+ }
+
@Override
public PageInfo listPageByTaxDeclarationIds(TaxDeclarationValueListQueryParam queryParam, Collection taxDeclarationIds) {
List taxDeclarationValuePOS = getTaxDeclarationValueMapper().listSome(TaxDeclarationValuePO.builder().taxDeclarationIds(taxDeclarationIds).build());
@@ -131,6 +139,55 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar
}
}
+ @Override
+ public void save(TaxDeclareRecordDetailSaveParam param) {
+ TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(param.getTaxDeclarationId());
+ if(taxDeclaration==null){
+ throw new SalaryRunTimeException("个税申报表不存在!");
+ }
+
+ TaxDeclarationValuePO po = TaxDeclarationValuePO.builder()
+ .id(IdGenerator.generate())
+ .taxDeclarationId(param.getTaxDeclarationId())
+ .taxDeclareRecordId(taxDeclaration.getTaxDeclareRecordId())
+ .employeeId(param.getEmployeeId())
+ .employeeType(param.getEmployeeType())
+ .resultValue(param.getTaxReportColumnValues())
+ .resultValueJson(JsonUtil.toJsonString(param.getTaxReportColumnValues()))
+ .createTime(new Date())
+ .updateTime(new Date())
+ .creator((long) user.getUID())
+ .deleteType(0)
+ .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
+ .build();
+ encryptUtil.encrypt(po, TaxDeclarationValuePO.class);
+
+ getTaxDeclarationValueMapper().insertIgnoreNull(po);
+
+ }
+
+ @Override
+ public void edit(TaxDeclareRecordDetailSaveParam param) {
+ TaxDeclarationValuePO po = getById(param.getId());
+ po.setResultValue(param.getTaxReportColumnValues());
+ po.setResultValueJson(JsonUtil.toJsonString(param.getTaxReportColumnValues()));
+ po.setUpdateTime(new Date());
+ encryptUtil.encrypt(po, TaxDeclarationValuePO.class);
+ getTaxDeclarationValueMapper().updateIgnoreNull(po);
+ }
+
+ @Override
+ public TaxDeclarationValuePO getById(Long id) {
+ TaxDeclarationValuePO po = getTaxDeclarationValueMapper().getById(id);
+ if(po==null){
+ throw new SalaryRunTimeException("个税申报明细不存在!");
+ }
+ encryptUtil.decrypt(po,TaxDeclarationValuePO.class);
+ po.setResultValue(JsonUtil.parseMap(po.getResultValueJson(), String.class));
+
+ return po;
+ }
+
@Override
public void deleteByTaxDeclareRecordIds(Collection taxDeclareRecordIds) {
if (CollectionUtils.isEmpty(taxDeclareRecordIds)) {
diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java
index 64fba69e2..0d6ad1e9e 100644
--- a/src/com/engine/salary/web/TaxDeclarationController.java
+++ b/src/com/engine/salary/web/TaxDeclarationController.java
@@ -337,19 +337,20 @@ public class TaxDeclarationController {
/**
* 新增表单
*
- * @param incomeCategory
+ * @param param
* @return
*/
- @GET
+ @POST
@Path("/getAddForm")
@Produces(MediaType.APPLICATION_JSON)
- public String getAddForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "IncomeCategoryEnum") IncomeCategoryEnum incomeCategory) {
+ public String getAddForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordDetailFormParam param) {
User user = HrmUserVarify.getUser(request, response);
- return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getAddForm, incomeCategory);
+ return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getAddForm, param);
}
/**
* 新增
+ *
* @param request
* @param response
* @param param
@@ -358,11 +359,45 @@ public class TaxDeclarationController {
@POST
@Path("/add")
@Produces(MediaType.APPLICATION_JSON)
- public String add(@Context HttpServletRequest request, @Context HttpServletResponse response,TaxDeclareRecordDetailSaveParam param) {
+ public String add(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordDetailSaveParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::add, param);
}
+
+ /**
+ * 编辑
+ *
+ * @param request
+ * @param response
+ * @param param
+ * @return
+ */
+ @POST
+ @Path("/edit")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String edit(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordDetailSaveParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::edit, param);
+ }
+
+ /**
+ * 获取详细详细
+ *
+ * @param request
+ * @param response
+ * @param id
+ * @return
+ */
+ @GET
+ @Path("/detailInfo")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String edit(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::detailInfo, id);
+ }
+
+
/**
* 个税申报表详情列表
*
@@ -407,9 +442,7 @@ public class TaxDeclarationController {
};
response.setContentType("application/octet-stream");
- return Response.ok(output)
- .header("Content-disposition", "attachment;filename=" + fileName)
- .header("Cache-Control", "no-cache").build();
+ return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
} catch (Exception e) {
log.error("个税申报表明细导出异常", e);
throw e;
@@ -544,9 +577,7 @@ public class TaxDeclarationController {
};
response.setContentType("application/octet-stream");
- return Response.ok(output)
- .header("Content-disposition", "attachment;filename=" + fileName)
- .header("Cache-Control", "no-cache").build();
+ return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
} catch (Exception e) {
log.error("未报送的人员导出异常", e);
throw e;
@@ -581,9 +612,7 @@ public class TaxDeclarationController {
};
response.setContentType("application/octet-stream");
- return Response.ok(output)
- .header("Content-disposition", "attachment;filename=" + fileName)
- .header("Cache-Control", "no-cache").build();
+ return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
} catch (Exception e) {
log.error("缺少申报数据的人员导出异常", e);
throw e;
@@ -617,9 +646,7 @@ public class TaxDeclarationController {
};
response.setContentType("application/octet-stream");
- return Response.ok(output)
- .header("Content-disposition", "attachment;filename=" + fileName)
- .header("Cache-Control", "no-cache").build();
+ return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
} catch (Exception e) {
log.error("申报失败人员导出异常", e);
throw e;
diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java
index 96c8e6ee6..17b58d8e1 100644
--- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java
+++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java
@@ -3,12 +3,17 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.cache.SalaryCacheKey;
-import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
+import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareListQueryParam;
+import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
+import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationDetailBO;
import com.engine.salary.entity.taxdeclaration.dto.*;
import com.engine.salary.entity.taxdeclaration.param.*;
import com.engine.salary.entity.taxdeclaration.po.*;
+import com.engine.salary.enums.employeedeclare.CardTypeEnum;
+import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
+import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
@@ -91,6 +96,10 @@ public class TaxDeclareRecordWrapper extends Service {
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
}
+ private EmployeeDeclareService getEmployeeDeclareService(User user) {
+ return ServiceUtil.getService(EmployeeDeclareServiceImpl.class, user);
+ }
+
/**
* 个税申报记录列表
@@ -663,29 +672,77 @@ public class TaxDeclareRecordWrapper extends Service {
return getTaxDeclarationExcelService(user).exportEmployee4Fail(queryParam);
}
- public List getAddForm(IncomeCategoryEnum incomeCategoryEnum) {
+ public TaxDeclareRecordDetailFormDTO getAddForm(TaxDeclareRecordDetailFormParam param) {
+ TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(param.getTaxDeclarationId());
// 查询个税申报表列
- List taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(incomeCategoryEnum);
- return taxReportColumns;
+ List taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()));
+ //当前税款所属期报送成功且状态正常的人员
+ List employeeDeclarePOS = getEmployeeDeclareService(user).listByParam(
+ EmployeeDeclareListQueryParam
+ .builder()
+ .taxCycle(taxDeclaration.getTaxCycle())
+ .taxAgentId(taxDeclaration.getTaxAgentId())
+ .declareStatus(DeclareStatusEnum.DECLARE_SUCCESS)
+ .employmentStatus(EmploymentStatusEnum.NORMAL)
+ .build()
+ );
+
+ //过滤申报表中已存在的人员
+ List taxDeclarationValuePOS = getTaxDeclarationValueService(user).listByTaxDeclarationIds(Collections.singletonList(param.getTaxDeclarationId()));
+ Set empIds = SalaryEntityUtil.properties(taxDeclarationValuePOS, TaxDeclarationValuePO::getEmployeeId);
+
+ employeeDeclarePOS = employeeDeclarePOS.stream().filter(emp -> !empIds.contains(emp.getEmployeeId())).collect(Collectors.toList());
+
+ return TaxDeclareRecordDetailFormDTO.builder()
+ .taxReportColumns(TaxDeclarationDetailBO.convert2ListTaxReportColumn(taxReportColumns))
+ .employeeDeclares(employeeDeclarePOS)
+ .taxDeclarationId(taxDeclaration.getTaxAgentId())
+ .build();
}
+ /**
+ * 新增
+ * @param param
+ */
public void add(TaxDeclareRecordDetailSaveParam param) {
+ getTaxDeclarationValueService(user).save(param);
+ }
- TaxDeclarationValuePO build = TaxDeclarationValuePO.builder()
- .id(IdGenerator.generate())
- .taxDeclarationId(param.getTaxDeclarationId())
- .taxDeclareRecordId(param.getTaxDeclareRecordId())
- .employeeId(param.getEmployeeId())
- .employeeType(param.getEmployeeType())
- .resultValue(param.getTaxReportColumnValues())
- .createTime(new Date())
- .updateTime(new Date())
- .creator((long) user.getUID())
- .deleteType(0)
- .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
+ /**
+ * 编辑
+ * @param param
+ */
+ public void edit(TaxDeclareRecordDetailSaveParam param) {
+ getTaxDeclarationValueService(user).edit(param);
+ }
+
+ public TaxDeclareRecordDetailFormDTO detailInfo(Long id) {
+ TaxDeclarationValuePO declarationValuePO = getTaxDeclarationValueService(user).getById(id);
+ TaxDeclarationPO taxDeclarationPO = getTaxDeclarationService(user).getById(declarationValuePO.getTaxDeclarationId());
+
+ List employeeDeclarePOS = getEmployeeDeclareService(user).listByParam(
+ EmployeeDeclareListQueryParam
+ .builder()
+ .taxCycle(taxDeclarationPO.getTaxCycle())
+ .taxAgentId(taxDeclarationPO.getTaxAgentId())
+ .employeeId(declarationValuePO.getEmployeeId())
+ .build()
+ );
+
+ if (CollectionUtils.isEmpty(employeeDeclarePOS)) {
+ throw new SalaryRunTimeException("当前人员未报送!");
+ }
+ EmployeeDeclarePO employeeDeclarePO = employeeDeclarePOS.get(0);
+ // 查询个税申报表列
+ List taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()));
+ return TaxDeclareRecordDetailFormDTO.builder()
+ .incomeCategory(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()).getDefaultLabel())
+ .cardNum(employeeDeclarePO.getCardNum())
+ .cardType(SalaryEnumUtil.enumMatchByValue(employeeDeclarePO.getCardType(), CardTypeEnum.class).getDefaultLabel())
+ .username(employeeDeclarePO.getEmployeeName())
+ .jobNum(employeeDeclarePO.getJobNum())
+ .taxReportColumns(TaxDeclarationDetailBO.convert2ListTaxReportColumn(taxReportColumns))
+ .resultValue(declarationValuePO.getResultValue())
.build();
- List objects = new ArrayList<>();
- objects.add(build);
- getTaxDeclarationValueService(user).batchSave(objects);
}
}
From 4f8606b00ee4311c09848fa62f183b56f6fa9940 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Sat, 16 Dec 2023 12:35:24 +0800
Subject: [PATCH 04/26] =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=AF=86=E5=88=AB?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salary/report/wrapper/SalaryStatisticsReportWrapper.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
index ce270b1fa..86b7aeb7d 100644
--- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
+++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
@@ -216,6 +216,7 @@ public class SalaryStatisticsReportWrapper extends Service {
/**
* 复制薪资账套
+ *
* @param id
*/
public void duplicate(Long id) {
@@ -322,7 +323,7 @@ public class SalaryStatisticsReportWrapper extends Service {
//报表中缓存的条件
salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id));
if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) {
- return getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + paramMd5);
+ return getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5);
}
}
@@ -346,7 +347,7 @@ public class SalaryStatisticsReportWrapper extends Service {
getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_IDS, salaryReportIds + "," + id);
getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id, salaryReportConditions + "," + paramMd5);
- getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_DATA + paramMd5, resultMap);
+ getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5, resultMap);
return resultMap;
From bda3d7080bee22cb7fab3b869b54840066c4e6a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Sat, 16 Dec 2023 12:36:56 +0800
Subject: [PATCH 05/26] =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=AF=86=E5=88=AB?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../report/service/impl/SalaryStatisticsReportServiceImpl.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java
index 4bb650f92..3f9745f11 100644
--- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java
+++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java
@@ -497,7 +497,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
Arrays.asList(salaryReportConditions.split(",")).forEach(paramMd5 -> {
if (StringUtils.isNotBlank(paramMd5)) {
//条件对应的结果
- getSalaryCacheService(user).remove(SalaryCacheKey.SALARY_REPORT_DATA + paramMd5);
+ getSalaryCacheService(user).remove(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5);
}
}
);
From e8223a832bb0c89038a2f3b56811fd88a365abdc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Sat, 16 Dec 2023 12:40:33 +0800
Subject: [PATCH 06/26] =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=AF=86=E5=88=AB?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../salary/report/wrapper/SalaryStatisticsReportWrapper.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
index 86b7aeb7d..508877028 100644
--- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
+++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java
@@ -345,6 +345,7 @@ public class SalaryStatisticsReportWrapper extends Service {
resultMap.put("reportId", id);
+ //设置报表缓存
getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_IDS, salaryReportIds + "," + id);
getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id, salaryReportConditions + "," + paramMd5);
getSalaryCacheService(user).set(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5, resultMap);
From c581c8d74db7fa03dfd4472307d7d1363653a70f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Wed, 20 Dec 2023 17:21:46 +0800
Subject: [PATCH 07/26] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E7=94=B3=E6=8A=A5?=
=?UTF-8?q?=E8=A1=A8=E6=98=8E=E7=BB=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../bo/TaxDeclarationCommon.java | 5 +-
.../enums/salarysob/IncomeCategoryEnum.java | 140 ++++-
.../GetDeclareTaxResultFeedbackResponse.java | 523 ++++++++++--------
.../salary/service/TaxDeclarationService.java | 4 +-
.../impl/TaxDeclarationServiceImpl.java | 15 +-
.../impl/TaxDeclareRecordServiceImpl.java | 10 +-
.../engine/salary/util/excel/ExcelUtil.java | 65 +++
7 files changed, 490 insertions(+), 272 deletions(-)
diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationCommon.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationCommon.java
index 88192ff3e..904e638e4 100644
--- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationCommon.java
+++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationCommon.java
@@ -19,6 +19,7 @@ import com.engine.salary.util.SalaryEntityUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import dm.jdbc.util.IdGenerator;
+import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
import java.math.BigDecimal;
@@ -63,8 +64,7 @@ public class TaxDeclarationCommon implements TaxDeclarationStrategy {
SalarySobTaxReportRulePO salarySobTaxReportRule = taxDeclareContext.getSalarySobTaxReportRuleMap()
.get(lastSalaryAcctEmployee.getSalarySobId() + "-" + taxReportColumn.getReportColumnDataIndex());
List salaryAcctResultValue = salaryAcctResultValueMap.get(lastSalaryAcctEmployee.getId());
- String defaultValue = Objects.equals(taxReportColumn.getDataType(), SalaryDataTypeEnum.NUMBER.getValue()) ? "0" : "";
- String value = defaultValue;
+ String value = "";
if (salarySobTaxReportRule != null && salaryAcctResultValue != null) {
value = salaryAcctResultValue.stream()
.filter(result -> result.getSalaryItemId().equals(salarySobTaxReportRule.getSalaryItemId()))
@@ -72,6 +72,7 @@ public class TaxDeclarationCommon implements TaxDeclarationStrategy {
.orElse(new SalaryAcctResultPO())
.getResultValue();
}
+ value = StringUtils.isNotBlank(value) ? value : Objects.equals(taxReportColumn.getDataType(), SalaryDataTypeEnum.NUMBER.getValue()) ? "0.00" : "";
valueMap.put(taxReportColumn.getReportColumnDataIndex(), value);
}
TaxDeclarationValuePO taxDeclarationValue = TaxDeclarationValuePO.builder()
diff --git a/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java b/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java
index 762b3e581..71009b4e6 100644
--- a/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java
+++ b/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java
@@ -1,13 +1,12 @@
package com.engine.salary.enums.salarysob;
import com.engine.salary.enums.BaseEnum;
+import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse;
+import com.engine.salary.util.excel.ExcelUtil;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
/**
* 应税项目
@@ -20,19 +19,123 @@ import java.util.Objects;
public enum IncomeCategoryEnum implements BaseEnum {
// todo 多语言
- WAGES_AND_SALARIES(1, "0101", "正常工资薪金", 160487),
- REMUNERATION_FOR_LABOR(4, "0400", "一般劳务报酬所得", 160488),
- ONETIME_ANNUAL_BONUS(2, "0103", "全年一次性奖金收入", 160489),
- COMPENSATION_FOR_RETIRE(107, "0107", "内退一次性补偿金", 181936),
- COMPENSATION_FOR_DISMISS(108, "0108", "解除劳动合同一次性补偿金", 181937),
- INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE(109, "0109", "个人股权激励收入", 181938),
- ANNUITY_RECEIPT(110, "0110", "年金领取", 181939),
- INCOME_FOR_INSURANCE_SALESMAN(402, "0402", "保险营销员佣金收入", 181940),
- INCOME_FOR_SECURITIES_BROKER(403, "0403", "证券经纪人佣金收入", 181942),
- REMUNERATION_FOR_OTHER_CONTINUOUS_LABOR(489, "0489", "其他连续劳务报酬所得", 181943),
- REMUNERATION_FOR_OTHER_LABOR(499, "0499", "其他非连续劳务报酬所得", 175330),
- REMUNERATION_FOR_AUTHOR(500, "0500", "稿酬所得", 181944),
- ROYALTIES(600, "0600", "特许权使用费所得", 181945),
+ WAGES_AND_SALARIES(1, "0101", "正常工资薪金", 160487) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ REMUNERATION_FOR_LABOR(4, "0400", "一般劳务报酬所得", 160488) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getLwbclb().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ ONETIME_ANNUAL_BONUS(2, "0103", "全年一次性奖金收入", 160489) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQnycxjjsslb().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ COMPENSATION_FOR_RETIRE(107, "0107", "内退一次性补偿金", 181936) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getNtycxbcjlb().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ COMPENSATION_FOR_DISMISS(108, "0108", "解除劳动合同一次性补偿金", 181937) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getJcldhtycxbcjlb().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE(109, "0109", "个人股权激励收入", 181938) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getGrgqjl().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ ANNUITY_RECEIPT(110, "0110", "年金领取", 181939) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQynj().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ INCOME_FOR_INSURANCE_SALESMAN(402, "0402", "保险营销员佣金收入", 181940) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getBxyxy().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ INCOME_FOR_SECURITIES_BROKER(403, "0403", "证券经纪人佣金收入", 181942) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZqjjr().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ REMUNERATION_FOR_OTHER_CONTINUOUS_LABOR(489, "0489", "其他连续劳务报酬所得", 181943) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQtlxlwbc().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ REMUNERATION_FOR_OTHER_LABOR(499, "0499", "其他非连续劳务报酬所得", 175330) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQtflxlwbc().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ REMUNERATION_FOR_AUTHOR(500, "0500", "稿酬所得", 181944) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getGcsdlb().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
+ ROYALTIES(600, "0600", "特许权使用费所得", 181945) {
+ @Override
+ public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
+ List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getTxq().getSscglb();
+ List> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
+ result.put(this.getDefaultLabel(), zhsdSheetData);
+ return result;
+ }
+ },
;
@@ -51,6 +154,8 @@ public enum IncomeCategoryEnum implements BaseEnum {
this.labelId = labelId;
}
+ public abstract Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse);
+
@Override
public Integer getValue() {
return value;
@@ -79,6 +184,7 @@ public enum IncomeCategoryEnum implements BaseEnum {
}
return null;
}
+
public static List parseByValue(Collection values) {
if (CollectionUtils.isEmpty(values)) {
return Collections.emptyList();
diff --git a/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java b/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java
index 47f9c42fe..1313ca083 100644
--- a/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java
+++ b/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java
@@ -58,10 +58,11 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
// * 限售股所得 必填:是 见限售股所得计算结果
// */
// private 对象 xsgsd;
-// /**
-// * 人员申报失败列表 必填:是 参考人员代报结果对象
-// */
-// private 数组 rysbsblb;
+
+ /**
+ * 人员申报失败列表 必填:是 参考人员代报结果对象
+ */
+ private List rysbsblb;
@Data
public static class zhsd {
@@ -73,66 +74,66 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
* 正常工资薪金算税结果对象 参考综合所得算税结果对象
*/
private zcgzxj zcgzxj;
-// /**
-// * 全年一次性奖金收入算税结果对象 参考综合所得算税结果对象
-// */
-// private 对象 qnycxjjsslb;
-// /**
-// * 稿酬所得算税结果对象 参考综合所得算税结果对象
-// */
-// private 对象 gcsdlb;
-// /**
-// * 一般劳务报酬算税结果对象 参考综合所得算税结果对象
-// */
-// private 对象 lwbclb;
-// /**
-// * 解除劳动合同一次性补偿金列表 参考综合所得算税结果对象
-// */
-// private 对象 jcldhtycxbcjlb;
-// /**
-// * 保险营销员薪金算税结果对象 参考综合所得算税结果对象
-// */
-// private 对象 bxyxy;
-// /**
-// * 证券经纪人薪金算税结果对象 参考综合所得算税结果对象
-// */
-// private 对象 zqjjr;
-// /**
-// * 特许权算税结果对象 参考综合所得算税结果对象
-// */
-// private 对象 txq;
-// /**
-// * 个人股权激励结果对象 参考综合所得算税结果对象
-// */
-// private 对象 grgqjl;
-// /**
-// * 企业年金结果对象 参考综合所得算税结果对象
-// */
-// private 对象 qynj;
-// /**
-// * 内退一次性补偿金 参考综合所得算税结果对象
-// */
-// private 对象 ntycxbcjlb;
-// /**
-// * 其他连续劳务报酬 参考综合所得算税结果对象
-// */
-// private 对象 qtlxlwbc;
-// /**
-// * 其他非连续劳务报酬 参考综合所得算税结果对象
-// */
-// private 对象 qtflxlwbc;
-// /**
-// * 提前退休一次性补贴 参考综合所得算税结果对象
-// */
-// private 对象 tqtxycxbt;
-// /**
-// * 央企负责人绩效薪金延期兑现收入和任期奖励 参考综合所得算税结果对象
-// */
-// private 对象 yqfzrsrhjl;
-// /**
-// * 法律援助劳务报酬 参考综合所得算税结果对象
-// */
-// private 对象 flyzlwbclb;
+ /**
+ * 全年一次性奖金收入算税结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj qnycxjjsslb;
+ /**
+ * 稿酬所得算税结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj gcsdlb;
+ /**
+ * 一般劳务报酬算税结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj lwbclb;
+ /**
+ * 解除劳动合同一次性补偿金列表 参考综合所得算税结果对象
+ */
+ private zcgzxj jcldhtycxbcjlb;
+ /**
+ * 保险营销员薪金算税结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj bxyxy;
+ /**
+ * 证券经纪人薪金算税结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj zqjjr;
+ /**
+ * 特许权算税结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj txq;
+ /**
+ * 个人股权激励结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj grgqjl;
+ /**
+ * 企业年金结果对象 参考综合所得算税结果对象
+ */
+ private zcgzxj qynj;
+ /**
+ * 内退一次性补偿金 参考综合所得算税结果对象
+ */
+ private zcgzxj ntycxbcjlb;
+ /**
+ * 其他连续劳务报酬 参考综合所得算税结果对象
+ */
+ private zcgzxj qtlxlwbc;
+ /**
+ * 其他非连续劳务报酬 参考综合所得算税结果对象
+ */
+ private zcgzxj qtflxlwbc;
+ /**
+ * 提前退休一次性补贴 参考综合所得算税结果对象
+ */
+ private zcgzxj tqtxycxbt;
+ /**
+ * 央企负责人绩效薪金延期兑现收入和任期奖励 参考综合所得算税结果对象
+ */
+ private zcgzxj yqfzrsrhjl;
+ /**
+ * 法律援助劳务报酬 参考综合所得算税结果对象
+ */
+ private zcgzxj flyzlwbclb;
/**
@@ -234,7 +235,6 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
/**
* 是否明细申报 必填:否 是或者否
*/
- @SalaryTableColumn(text = "是否明细申报", width = "10%", column = "sfmxsb")
private String sfmxsb;
/**
* 姓名 必填:null 如果是汇总申报返回空
@@ -264,133 +264,143 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
/**
* 当期收入额 必填:是 不填写默认为0
*/
- @SalaryTableColumn(text = "当期收入额", width = "10%", column = "sre")
+ @SalaryTableColumn(text = "本期收入", width = "10%", column = "sre")
private BigDecimal sre;
/**
* 当期免税收入 必填:null
*/
- @SalaryTableColumn(text = "当期免税收入", width = "10%", column = "mssd")
+ @SalaryTableColumn(text = "本期免税收入", width = "10%", column = "mssd")
private BigDecimal mssd;
/**
* 基本养老保险 必填:null
*/
- @SalaryTableColumn(text = "基本养老保险", width = "10%", column = "jbylaobxf")
+ @SalaryTableColumn(text = "本期基本养老保险费", width = "10%", column = "jbylaobxf")
private BigDecimal jbylaobxf;
/**
* 基本医疗保险 必填:null
*/
- @SalaryTableColumn(text = "基本医疗保险", width = "10%", column = "jbylbxf")
+ @SalaryTableColumn(text = "本期基本医疗保险费", width = "10%", column = "jbylbxf")
private BigDecimal jbylbxf;
/**
* 失业保险 必填:null
*/
- @SalaryTableColumn(text = "失业保险", width = "10%", column = "sybxf")
+ @SalaryTableColumn(text = "本期失业保险费", width = "10%", column = "sybxf")
private BigDecimal sybxf;
/**
* 住房公积金 必填:null
*/
- @SalaryTableColumn(text = "住房公积金", width = "10%", column = "zfgjj")
+ @SalaryTableColumn(text = "本期住房公积金", width = "10%", column = "zfgjj")
private BigDecimal zfgjj;
- /**
- * 子女教育支出 必填:null
- */
- @SalaryTableColumn(text = "子女教育支出", width = "10%", column = "znjyzc")
- private BigDecimal znjyzc;
- /**
- * 赡养老人支出 必填:null
- */
- @SalaryTableColumn(text = "赡养老人支出", width = "10%", column = "sylrzc")
- private BigDecimal sylrzc;
- /**
- * 住房贷款利息支出 必填:null
- */
- @SalaryTableColumn(text = "住房贷款利息支出", width = "10%", column = "zfdklxzc")
- private BigDecimal zfdklxzc;
- /**
- * 住房租金支出 必填:null
- */
- @SalaryTableColumn(text = "住房租金支出", width = "10%", column = "zfzjzc")
- private BigDecimal zfzjzc;
- /**
- * 继续教育支出 必填:null
- */
- @SalaryTableColumn(text = "继续教育支出", width = "10%", column = "jxjyzc")
- private BigDecimal jxjyzc;
- /**
- * 非学历继续教育支出 必填:null
- */
- @SalaryTableColumn(text = "非学历继续教育支出", width = "10%", column = "fxljxjyzc")
- private BigDecimal fxljxjyzc;
- /**
- * 3岁以下婴幼儿照护支出 必填:null
- */
- @SalaryTableColumn(text = "3岁以下婴幼儿照护支出", width = "10%", column = "yyezhzc")
- private BigDecimal yyezhzc;
+
/**
* 年金 必填:null
*/
- @SalaryTableColumn(text = "年金", width = "10%", column = "nj")
+ @SalaryTableColumn(text = "本期企业(职业)年金", width = "10%", column = "nj")
private BigDecimal nj;
+
/**
* 商业健康保险 必填:null
*/
- @SalaryTableColumn(text = "商业健康保险", width = "10%", column = "syjkbx")
+ @SalaryTableColumn(text = "本期商业健康保险费", width = "10%", column = "syjkbx")
private BigDecimal syjkbx;
/**
* 税延养老保险 必填:null
*/
- @SalaryTableColumn(text = "税延养老保险", width = "10%", column = "syylbx")
+ @SalaryTableColumn(text = "本期税延养老保险费", width = "10%", column = "syylbx")
private BigDecimal syylbx;
/**
* 其他 必填:null 按法律规定可以在税前扣除的项目
*/
- @SalaryTableColumn(text = "其他", width = "10%", column = "qt")
+ @SalaryTableColumn(text = "本期其他扣除(其他)", width = "10%", column = "qt")
private BigDecimal qt;
+
/**
- * 准予扣除的捐赠额 必填:null
+ * 累计收入额 必填:null
*/
- @SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "zykcjze")
- private BigDecimal zykcjze;
+ @SalaryTableColumn(text = "累计收入额", width = "10%", column = "ljsre")
+ private BigDecimal ljsre;
/**
- * 减免税额 必填:null
+ * 累计免税收入额 必填:null
*/
- @SalaryTableColumn(text = "减免税额", width = "10%", column = "jmse")
- private BigDecimal jmse;
+ @SalaryTableColumn(text = "累计免税收入", width = "10%", column = "ljmssd")
+ private BigDecimal ljmssd;
+
/**
- * 备注 必填:null
+ * 累计减除费用额 必填:null 正常工资薪金累计减除费用 对应保险营销员、证券经纪人累计费用
*/
- @SalaryTableColumn(text = "备注", width = "10%", column = "bz")
- private String bz;
+ @SalaryTableColumn(text = "累计减除费用", width = "10%", column = "ljjcfye")
+ private BigDecimal ljjcfye;
+
/**
- * 减除费用 必填:null 正常工资薪金的减除费用。 对应保险营销员、证券经纪人的费用
+ * 累计专项扣除额 必填:null 三险一金合计
*/
- @SalaryTableColumn(text = "减除费用", width = "10%", column = "jcfy")
- private BigDecimal jcfy;
+ @SalaryTableColumn(text = "累计专项扣除", width = "10%", column = "ljzxkce")
+ private BigDecimal ljzxkce;
+
/**
- * 其他扣除合计 必填:null
+ * 累计子女教育支出 必填:null
*/
- @SalaryTableColumn(text = "其他扣除合计", width = "10%", column = "qtckhj")
- private BigDecimal qtckhj;
+ @SalaryTableColumn(text = "累计子女教育支出扣除", width = "10%", column = "ljznjyzc")
+ private BigDecimal ljznjyzc;
/**
- * 应纳税所得额 必填:null 正常工资薪金返回Null
+ * 累计继续教育支出 必填:null
*/
- @SalaryTableColumn(text = "应纳税所得额", width = "10%", column = "ynssde")
- private BigDecimal ynssde;
+ @SalaryTableColumn(text = "累计继续教育支出扣除", width = "10%", column = "ljjxjyzc")
+ private BigDecimal ljjxjyzc;
/**
- * 应纳税额 必填:null 正常工资薪金返回Null
+ * 累计非学历继续教育支持 必填:null
*/
- @SalaryTableColumn(text = "应纳税额", width = "10%", column = "ynse")
- private BigDecimal ynse;
+ private BigDecimal ljfxljxjyzc;
/**
- * 已缴税额 必填:null 正常工资薪金返回Null
+ * 累计学历继续教育支持 必填:null
*/
- @SalaryTableColumn(text = "已缴税额", width = "10%", column = "ykjse")
- private BigDecimal ykjse;
+ private BigDecimal ljxljxjyzc;
/**
- * 应扣缴税额 必填:null 正常工资薪金返回Null
+ * 累计住房租金支出 必填:null
*/
- @SalaryTableColumn(text = "应扣缴税额", width = "10%", column = "yingkjse")
- private BigDecimal yingkjse;
+ @SalaryTableColumn(text = "累计住房租金支出扣除", width = "10%", column = "ljzfzjzc")
+ private BigDecimal ljzfzjzc;
+ /**
+ * 累计房屋贷款支出 必填:null
+ */
+ @SalaryTableColumn(text = "累计房屋贷款支出扣除", width = "10%", column = "ljzfdklxzc")
+ private BigDecimal ljzfdklxzc;
+ /**
+ * 累计赡养老人支出 必填:null
+ */
+ @SalaryTableColumn(text = "累计赡养老人支出扣除", width = "10%", column = "ljsylrzc")
+ private BigDecimal ljsylrzc;
+ /**
+ * 累计3岁以下婴幼儿照护支出 必填:null
+ */
+ @SalaryTableColumn(text = "累计3岁以下婴幼儿照护", width = "10%", column = "ljyyezhzc")
+ private BigDecimal ljyyezhzc;
+
+
+ /**
+ * 累计个人养老金 必填:null
+ */
+ @SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "ljgrylj")
+ private BigDecimal ljgrylj;
+
+ /**
+ * 累计其他扣除额 必填:null
+ */
+ @SalaryTableColumn(text = "累计其他扣除", width = "10%", column = "ljqtkce")
+ private BigDecimal ljqtkce;
+
+ /**
+ * 累计准予扣除的捐赠额 必填:null
+ */
+ @SalaryTableColumn(text = "累计准予扣除的捐赠", width = "10%", column = "ljzykcjze")
+ private BigDecimal ljzykcjze;
+
+ /**
+ * 累计应纳税所得额 必填:null
+ */
+ @SalaryTableColumn(text = "累计应纳税所得额", width = "10%", column = "ljynssde")
+ private BigDecimal ljynssde;
+
/**
* 税率 必填:null
*/
@@ -401,81 +411,19 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
*/
@SalaryTableColumn(text = "速算扣除数", width = "10%", column = "sskcs")
private BigDecimal sskcs;
- /**
- * 所得项目名称 必填:是 正常工资薪金;全年一次性奖金收入;稿酬所得;劳务报酬
- */
- @SalaryTableColumn(text = "所得项目名称", width = "10%", column = "sdxm")
- private String sdxm;
- /**
- * 应补退税额 必填:null 应补退税额=累计应扣缴税额-累计已缴税额
- */
- @SalaryTableColumn(text = "应补退税额", width = "10%", column = "ybtse")
- private BigDecimal ybtse;
- /**
- * 累计收入额 必填:null
- */
- @SalaryTableColumn(text = "累计收入额", width = "10%", column = "ljsre")
- private BigDecimal ljsre;
- /**
- * 累计免税收入额 必填:null
- */
- @SalaryTableColumn(text = "累计免税收入额", width = "10%", column = "ljmssd")
- private BigDecimal ljmssd;
- /**
- * 累计专项扣除额 必填:null 三险一金合计
- */
- @SalaryTableColumn(text = "累计专项扣除额", width = "10%", column = "ljzxkce")
- private BigDecimal ljzxkce;
- /**
- * 累计专项附加扣除额 必填:null 专项附加合计
- */
- @SalaryTableColumn(text = "累计专项附加扣除额", width = "10%", column = "ljzxfjkce")
- private BigDecimal ljzxfjkce;
- /**
- * 累计其他扣除额 必填:null
- */
- @SalaryTableColumn(text = "累计其他扣除额", width = "10%", column = "ljqtkce")
- private BigDecimal ljqtkce;
- /**
- * 累计减免税额 必填:null
- */
- @SalaryTableColumn(text = "累计减免税额", width = "10%", column = "ljjmse")
- private BigDecimal ljjmse;
- /**
- * 累计减除费用额 必填:null 正常工资薪金累计减除费用 对应保险营销员、证券经纪人累计费用
- */
- @SalaryTableColumn(text = "累计减除费用额", width = "10%", column = "ljjcfye")
- private BigDecimal ljjcfye;
- /**
- * 累计月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
- */
- @SalaryTableColumn(text = "累计月减除费用", width = "10%", column = "ljyjcfy")
- private BigDecimal ljyjcfy;
- /**
- * 允许扣除税费 必填:null 保险营销员、证券经纪人
- */
- @SalaryTableColumn(text = "允许扣除税费", width = "10%", column = "yxkcsf")
- private BigDecimal yxkcsf;
- /**
- * 展业成本 必填:null 保险营销员、证券经纪人
- */
- @SalaryTableColumn(text = "展业成本", width = "10%", column = "zycb")
- private BigDecimal zycb;
- /**
- * 月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
- */
- @SalaryTableColumn(text = "月减除费用", width = "10%", column = "yjcfy")
- private BigDecimal yjcfy;
- /**
- * 累计应纳税所得额 必填:null
- */
- @SalaryTableColumn(text = "累计应纳税所得额", width = "10%", column = "ljynssde")
- private BigDecimal ljynssde;
+
/**
* 累计应纳税额 必填:null
*/
@SalaryTableColumn(text = "累计应纳税额", width = "10%", column = "ljynse")
private BigDecimal ljynse;
+
+ /**
+ * 累计减免税额 必填:null
+ */
+ @SalaryTableColumn(text = "累计减免税额", width = "10%", column = "ljjmse")
+ private BigDecimal ljjmse;
+
/**
* 累计应扣缴税额 必填:null 累计应扣缴税额 = 累计应纳税额 - 累计减免税额
*/
@@ -487,59 +435,114 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
@SalaryTableColumn(text = "累计已缴税额", width = "10%", column = "ljykjse")
private BigDecimal ljykjse;
/**
- * 累计子女教育支出 必填:null
+ * 已缴税额 必填:null 正常工资薪金返回Null
*/
- @SalaryTableColumn(text = "累计子女教育支出", width = "10%", column = "ljznjyzc")
- private BigDecimal ljznjyzc;
+ @SalaryTableColumn(text = "已缴税额", width = "10%", column = "ykjse")
+ private BigDecimal ykjse;
+
/**
- * 累计继续教育支出 必填:null
+ * 累计专项附加扣除额 必填:null 专项附加合计
*/
- @SalaryTableColumn(text = "累计继续教育支出", width = "10%", column = "ljjxjyzc")
- private BigDecimal ljjxjyzc;
+ @SalaryTableColumn(text = "累计专项附加扣除额", width = "10%", column = "ljzxfjkce")
+ private BigDecimal ljzxfjkce;
+
/**
- * 累计非学历继续教育支持 必填:null
+ * 应补退税额 必填:null 应补退税额=累计应扣缴税额-累计已缴税额
*/
- @SalaryTableColumn(text = "累计非学历继续教育支持", width = "10%", column = "ljfxljxjyzc")
- private BigDecimal ljfxljxjyzc;
+ @SalaryTableColumn(text = "应补退税额", width = "10%", column = "ybtse")
+ private BigDecimal ybtse;
+
/**
- * 累计学历继续教育支持 必填:null
+ * 备注 必填:null
*/
- @SalaryTableColumn(text = "累计学历继续教育支持", width = "10%", column = "ljxljxjyzc")
- private BigDecimal ljxljxjyzc;
+ @SalaryTableColumn(text = "备注", width = "10%", column = "bz")
+ private String bz;
+
/**
- * 累计住房租金支出 必填:null
+ * 子女教育支出 必填:null
*/
- @SalaryTableColumn(text = "累计住房租金支出", width = "10%", column = "ljzfzjzc")
- private BigDecimal ljzfzjzc;
+ private BigDecimal znjyzc;
/**
- * 累计房屋贷款支出 必填:null
+ * 赡养老人支出 必填:null
*/
- @SalaryTableColumn(text = "累计房屋贷款支出", width = "10%", column = "ljzfdklxzc")
- private BigDecimal ljzfdklxzc;
+ private BigDecimal sylrzc;
/**
- * 累计赡养老人支出 必填:null
+ * 住房贷款利息支出 必填:null
*/
- @SalaryTableColumn(text = "累计赡养老人支出", width = "10%", column = "ljsylrzc")
- private BigDecimal ljsylrzc;
+ private BigDecimal zfdklxzc;
/**
- * 累计3岁以下婴幼儿照护支出 必填:null
+ * 住房租金支出 必填:null
*/
- @SalaryTableColumn(text = "累计3岁以下婴幼儿照护支出", width = "10%", column = "ljyyezhzc")
- private BigDecimal ljyyezhzc;
+ private BigDecimal zfzjzc;
/**
- * 累计准予扣除的捐赠额 必填:null
+ * 继续教育支出 必填:null
*/
- @SalaryTableColumn(text = "累计准予扣除的捐赠额", width = "10%", column = "ljzykcjze")
- private BigDecimal ljzykcjze;
+ private BigDecimal jxjyzc;
/**
- * 累计个人养老金 必填:null
+ * 非学历继续教育支出 必填:null
*/
- @SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "ljgrylj")
- private BigDecimal ljgrylj;
+ private BigDecimal fxljxjyzc;
+ /**
+ * 3岁以下婴幼儿照护支出 必填:null
+ */
+ private BigDecimal yyezhzc;
+
+ /**
+ * 准予扣除的捐赠额 必填:null
+ */
+ private BigDecimal zykcjze;
+ /**
+ * 减免税额 必填:null
+ */
+ private BigDecimal jmse;
+
+ /**
+ * 减除费用 必填:null 正常工资薪金的减除费用。 对应保险营销员、证券经纪人的费用
+ */
+ private BigDecimal jcfy;
+ /**
+ * 其他扣除合计 必填:null
+ */
+ private BigDecimal qtckhj;
+ /**
+ * 应纳税所得额 必填:null 正常工资薪金返回Null
+ */
+ private BigDecimal ynssde;
+ /**
+ * 应纳税额 必填:null 正常工资薪金返回Null
+ */
+ private BigDecimal ynse;
+
+ /**
+ * 应扣缴税额 必填:null 正常工资薪金返回Null
+ */
+ private BigDecimal yingkjse;
+
+ /**
+ * 所得项目名称 必填:是 正常工资薪金;全年一次性奖金收入;稿酬所得;劳务报酬
+ */
+ private String sdxm;
+
+ /**
+ * 累计月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
+ */
+ private BigDecimal ljyjcfy;
+ /**
+ * 允许扣除税费 必填:null 保险营销员、证券经纪人
+ */
+ private BigDecimal yxkcsf;
+ /**
+ * 展业成本 必填:null 保险营销员、证券经纪人
+ */
+ private BigDecimal zycb;
+ /**
+ * 月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
+ */
+ private BigDecimal yjcfy;
+
/**
* 累计个人养老金校验码 必填:null
*/
- @SalaryTableColumn(text = "累计个人养老金校验码", width = "10%", column = "ljgryljjym")
private String ljgryljjym;
/**
* 企业上月是否已申报 必填:null 仅在两个月算税场景时使用,当前月分为N月:
@@ -547,34 +550,28 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
* 1表示N-1月(上月)已申报
* 2表示N-2月(上上个月)未申报
*/
- @SalaryTableColumn(text = "企业上月是否已申报", width = "10%", column = "qysysfysb")
private String qysysfysb;
/**
* 员工在税局累计已扣缴的税额 必填:null 当前月分为N,如果N-1(上月)已申报,则返回N-1月员工在税局累计已扣缴的税额;
* 如果N-1月未申报,则返回N-2月工在税局累计已扣缴的税额;
*/
- @SalaryTableColumn(text = "员工在税局累计已扣缴的税额", width = "10%", column = "ygzsjljykjse")
private BigDecimal ygzsjljykjse;
/**
* 本月已累计扣除税额 必填:null 针对一月多次算税的场景字段
*/
- @SalaryTableColumn(text = "本月已累计扣除税额", width = "10%", column = "byyljkjse")
private BigDecimal byyljkjse;
/**
* 本次应扣缴税额 必填:null 针对一月多次算税的场景字段,本次应扣缴税额=本月应扣缴税额-本月已累计税额
*/
- @SalaryTableColumn(text = "本次应扣缴税额", width = "10%", column = "bcykjse")
private BigDecimal bcykjse;
/**
* 分摊年度数 必填:null
*/
- @SalaryTableColumn(text = "分摊年度数", width = "10%", column = "ftnds")
private Integer ftnds;
/**
* 年减除费用 必填:null 默认为60000
*/
- @SalaryTableColumn(text = "年减除费用", width = "10%", column = "njcfy")
private BigDecimal njcfy;
}
@@ -622,6 +619,44 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
}
+ /**
+ * 4.4.1.3.1.1人员代报结果对象
+ */
+ @Data
+ public static class rydbjgdx {
+ /**
+ * 人员ID
+ */
+ private Integer ygid;
+ /**
+ * 人员名称
+ */
+ private String xm;
+ /**
+ * 证件类型 见证件类型字典
+ */
+ private String zzlx;
+ /**
+ * 证件号码
+ */
+ private String zzhm;
+ /**
+ * 错误码
+ */
+ private String cwm;
+ /**
+ * 错误信息
+ */
+ private String cwxx;
+ /**
+ * 所得税的code
+ */
+ private String sdxmdm;
+ /**
+ * 所得税的名称
+ */
+ private String sdxmmc;
+ }
}
diff --git a/src/com/engine/salary/service/TaxDeclarationService.java b/src/com/engine/salary/service/TaxDeclarationService.java
index 2731904a5..cb12aae30 100644
--- a/src/com/engine/salary/service/TaxDeclarationService.java
+++ b/src/com/engine/salary/service/TaxDeclarationService.java
@@ -23,6 +23,8 @@ public interface TaxDeclarationService {
*/
List listByTaxCycleAndTaxAgentIds(YearMonth salaryMonth, Collection taxAgentIds);
+ List listByTaxDeclareRecordId(Long taxDeclareRecordId);
+
PageInfo listPageByParam(TaxDeclarationListQueryParam queryParam);
List countByTaxDeclarationId(Collection taxAgentIds);
@@ -33,7 +35,6 @@ public interface TaxDeclarationService {
/**
* 删除个税申报表
- *
*/
void delete(SalaryAcctRecordPO salaryAcctRecordPO);
@@ -48,6 +49,7 @@ public interface TaxDeclarationService {
/**
* 撤回个税申报单
+ *
* @param taxDeclarationId
*/
void withDrawTaxDeclaration(Long taxDeclarationId);
diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java
index 987eacf58..3c8391812 100644
--- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java
+++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java
@@ -94,6 +94,15 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
return taxDeclarationPOS;
}
+ @Override
+ public List listByTaxDeclareRecordId(Long taxDeclareRecordId) {
+ if (Objects.isNull(taxDeclareRecordId)) {
+ throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
+ }
+ TaxDeclarationPO po = TaxDeclarationPO.builder().taxDeclareRecordId(taxDeclareRecordId).build();
+ return getTaxDeclarationMapper().listSome(po);
+ }
+
@Override
public PageInfo listPageByParam(TaxDeclarationListQueryParam queryParam) {
long currentEmployeeId = user.getUID();
@@ -205,7 +214,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
// 无薪资核算结果,不允许生成个税申报表
if (CollectionUtils.isEmpty(salaryAcctResultPOS)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110093, "{0}无可申报数据")
- .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
+ .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
}
Set salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId);
@@ -214,14 +223,14 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
boolean notArchived = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()));
if (notArchived) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98875, "{0}有未归档数据,请全部归档后再申报")
- .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
+ .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
}
// 如果当前薪资所属月下存在不同的税款所属期,属于异常业务场景,不允许生成个税申报表
Date taxCycle = salaryAcctRecordPOS.get(0).getTaxCycle();
boolean differentTaxCycle = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> salaryAcctRecordPO.getTaxCycle().compareTo(taxCycle) != 0);
if (differentTaxCycle) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98876, "{0}存在不同的税款所属期,无法正常生成个税申报表,请调整账套设置,重新核算后再生成个税申报表")
- .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
+ .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
}
// 查询薪资账套
Set salarySobIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getSalarySobId);
diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java
index 23606e23e..f84035722 100644
--- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java
+++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java
@@ -35,6 +35,7 @@ import com.engine.salary.entity.taxdeclaration.response.DeclareTaxResponse;
import com.engine.salary.entity.taxdeclaration.response.UpdateDeclareResponse;
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
+import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum;
import com.engine.salary.enums.taxdeclaration.*;
@@ -942,12 +943,11 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
DeclareClient declareClient = new DeclareClient(taxDeclareRecord.getTaxAgentId());
GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(StringUtils.isEmpty(requestId) ? taxDeclareRecord.getRequestId() : requestId);
- List sscglb = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb();
- // 需要导出的数据
- List> excelSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, sscglb);
-
- return ExcelUtil.genWorkbookV2(excelSheetData, "申报内置算税结果");
+ Map>> map = new HashMap<>();
+ List list = getTaxDeclarationService(user).listByTaxDeclareRecordId(id);
+ list.stream().map(TaxDeclarationPO::getIncomeCategory).map(IncomeCategoryEnum::parseByValue).forEach(e->e.parseGetDeclareTaxResultFeedbackResponse(map,declareTaxResultFeedbackResponse));
+ return ExcelUtil.genWorkbookV2(map);
}
diff --git a/src/com/engine/salary/util/excel/ExcelUtil.java b/src/com/engine/salary/util/excel/ExcelUtil.java
index b9a0c5d2c..f0ac59837 100644
--- a/src/com/engine/salary/util/excel/ExcelUtil.java
+++ b/src/com/engine/salary/util/excel/ExcelUtil.java
@@ -272,6 +272,71 @@ public class ExcelUtil {
return workbook;
}
+ public static XSSFWorkbook genWorkbookV2(Map>> map) {
+ XSSFWorkbook workbook = new XSSFWorkbook();
+
+ map.entrySet().forEach(en->{
+
+ String sheetName = en.getKey();
+ List> rowList = en.getValue();
+ // 设置title样式
+ XSSFCellStyle titleCellStyle = workbook.createCellStyle();
+ XSSFFont titleFont = workbook.createFont();
+ titleFont.setFontName("仿宋");
+ titleFont.setFontHeightInPoints((short) 15);
+ titleCellStyle.setFont(titleFont);
+ titleCellStyle.setAlignment(HorizontalAlignment.CENTER);
+ titleCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//背景色
+ titleCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+
+
+ // 设置主体样式
+ XSSFCellStyle cellStyle = workbook.createCellStyle();
+ XSSFFont font = workbook.createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short) 10);// 设置字体大小
+ cellStyle.setFont(font);// 选择需要用到的字体格式
+ cellStyle.setWrapText(true);
+
+ XSSFSheet sheet = workbook.createSheet(sheetName);
+ //自适应宽度
+ sheet.autoSizeColumn(0, true);
+ //默认列宽
+ sheet.setDefaultColumnWidth(20);
+ //默认行高
+ sheet.setDefaultRowHeightInPoints(18);
+
+ for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) {
+ List