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] =?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); + } }