From 57a0030cc8c9e46a010ff44f40912c8f56b6f989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 1 Apr 2024 17:07:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=96=E7=B1=8D=E4=BA=BA?= =?UTF-8?q?=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/TaxDeclareRecordParam.java | 2 + .../service/TaxDeclareRecordService.java | 2 +- .../impl/TaxDeclareRecordServiceImpl.java | 72 +++++++++---------- .../salary/web/TaxDeclarationController.java | 23 +++--- .../wrapper/TaxDeclareRecordWrapper.java | 33 +++++---- 5 files changed, 65 insertions(+), 67 deletions(-) diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java index 6e1104507..d0fe52a80 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.taxdeclaration.param; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; import lombok.Data; /** @@ -18,6 +19,7 @@ public class TaxDeclareRecordParam { /** * 申报类型 + * @see DeclareReportTypeEnum */ private Integer reportType; } diff --git a/src/com/engine/salary/service/TaxDeclareRecordService.java b/src/com/engine/salary/service/TaxDeclareRecordService.java index 00a082ecf..c4cbeca10 100644 --- a/src/com/engine/salary/service/TaxDeclareRecordService.java +++ b/src/com/engine/salary/service/TaxDeclareRecordService.java @@ -194,5 +194,5 @@ public interface TaxDeclareRecordService { void updateById(TaxDeclareRecordPO taxDeclareRecord); - void getTaxReportType(Long id); + List getTaxReports(Long id); } diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java index 6bb017d88..c8da3fde0 100644 --- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java @@ -642,22 +642,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe DeclareReportTypeEnum declareReportType = DeclareReportTypeEnum.parseByValue(reportType); TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType); - if (declareStatus == null) { - declareStatus = TaxDeclareStatusPO.builder() - .id(IdGenerator.generate()) - .taxDeclareRecordId(id) - .reportType(reportType) - .taxDeclareType(TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()) - .taxDeclareStatus(TaxDeclareStatusEnum.NOT_DECLARE.getValue()) - .taxDeclareErrorMsg("") - .personNum(0) - .taxPayAmount("") - .taxPaidAmount("") - .taxPurePaidAmount("") - .deleteType(0) - .build(); - getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus); - } + TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); @@ -757,7 +742,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe } @Override - public List getTaxDeclareStatusByTaxDeclareRecordId(Long taxDeclareRecordId) { + public List getTaxDeclareStatusByTaxDeclareRecordId(Long taxDeclareRecordId) { return getTaxDeclareStatusMapper().listSome(TaxDeclareStatusPO.builder().taxDeclareRecordId(taxDeclareRecordId).build()); } @@ -1200,28 +1185,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe } @Override - public void getTaxReportType(Long id) { - List taxDeclareStatusByTaxDeclareRecordId = getTaxDeclareStatusByTaxDeclareRecordId(id); - - DeclareReportTypeEnum declareReportType = DeclareReportTypeEnum.parseByValue(reportType); - - TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType); - if (declareStatus == null) { - declareStatus = TaxDeclareStatusPO.builder() - .id(IdGenerator.generate()) - .taxDeclareRecordId(id) - .reportType(reportType) - .taxDeclareType(TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()) - .taxDeclareStatus(TaxDeclareStatusEnum.NOT_DECLARE.getValue()) - .taxDeclareErrorMsg("") - .personNum(0) - .taxPayAmount("") - .taxPaidAmount("") - .taxPurePaidAmount("") - .deleteType(0) - .build(); - getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus); - } + public List getTaxReports(Long id) { // 查询个税申报记录 TaxDeclareRecordPO taxDeclareRecord = getById(id); @@ -1235,9 +1199,37 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156494, "当前无可申报的数据")); } - taxDeclarations.forEach(taxDeclarationPO -> { + Set reportTypes = new HashSet<>(); + taxDeclarations.forEach(taxDeclarationPO -> { + reportTypes.add(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()).getReportType().getValue()); }); + + List statuses = new ArrayList<>(); + + reportTypes.forEach(reportType -> { + TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType); + if (declareStatus == null) { + declareStatus = TaxDeclareStatusPO.builder() + .id(IdGenerator.generate()) + .taxDeclareRecordId(id) + .reportType(reportType) + .taxDeclareType(taxDeclareRecord.getTaxDeclareType()) + .taxDeclareStatus(taxDeclareRecord.getTaxDeclareStatus()) + .taxDeclareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg()) + .personNum(taxDeclareRecord.getPersonNum()) + .taxPayAmount(taxDeclareRecord.getTaxPayAmount()) + .taxPaidAmount(taxDeclareRecord.getTaxPaidAmount()) + .taxPurePaidAmount(taxDeclareRecord.getTaxPaidAmount()) + .deleteType(0) + .build(); + getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus); + } + + statuses.add(declareStatus); + }); + + return statuses; } diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java index 1608703d6..d1a9ea2c1 100644 --- a/src/com/engine/salary/web/TaxDeclarationController.java +++ b/src/com/engine/salary/web/TaxDeclarationController.java @@ -3,6 +3,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.taxdeclaration.dto.*; import com.engine.salary.entity.taxdeclaration.param.*; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.service.TaxDeclarationExcelService; import com.engine.salary.service.TaxDeclarationService; @@ -98,25 +99,24 @@ public class TaxDeclarationController { * @return */ @GET - @Path("/getTaxReportType") + @Path("/getTaxReports") @Produces(MediaType.APPLICATION_JSON) public String getTaxReportType(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getTaxReportType, id); + return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::getTaxReports, id); } /** * 个税申报表相关信息 * - * @param id 个税申报记录id * @return */ - @GET + @POST @Path("/getTaxDeclarationInfo") @Produces(MediaType.APPLICATION_JSON) - public String getTaxDeclarationInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + public String getTaxDeclarationInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationInfoById, id); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationInfoById, param); } /** @@ -179,15 +179,14 @@ public class TaxDeclarationController { /** * 获取个税申报记录下的个税申报表TAB * - * @param id 个税申报记录id * @return */ - @GET + @POST @Path("/getTaxDeclarationTab") @Produces(MediaType.APPLICATION_JSON) - public String getTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + public String getTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationTab, id); + return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationTab, param); } /** @@ -199,7 +198,7 @@ public class TaxDeclarationController { @POST @Path("/addTaxDeclaration") @Produces(MediaType.APPLICATION_JSON) - public String addTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, TaxDeclarationAddParam param) { + public String addTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationAddParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::addTaxDeclaration, param); } @@ -215,7 +214,7 @@ public class TaxDeclarationController { @POST @Path("/deleteTaxDeclaration") @Produces(MediaType.APPLICATION_JSON) - public String deleteTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response, TaxDeclarationDeleteParam param) { + public String deleteTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationDeleteParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::deleteTaxDeclaration, param); } diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java index 7cb884858..67bb280e7 100644 --- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java @@ -17,6 +17,7 @@ import com.engine.salary.enums.OperateTypeEnum; 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.DeclareReportTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum; import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum; @@ -287,18 +288,20 @@ public class TaxDeclareRecordWrapper extends Service { /** * 获取个税申报记录下的个税申报表TAB * - * @param id * @return */ - public List getTaxDeclarationTab(Long id) { + public List getTaxDeclarationTab(TaxDeclareRecordParam param) { // 查询个税申报记录 - TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(id); + TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(param.getTaxDeclareRecordId()); + // 查询个税申报记录下的个税申报表 List taxDeclarations = getTaxDeclarationService(user).listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()), Collections.singleton(taxDeclareRecord.getTaxAgentId())); -// taxDeclarations = taxDeclarations.stream() -// .filter(e -> Objects.equals(e.getControlView(), 0) || Objects.equals(e.getCreator(), (long)user.getUID())) -// .collect(Collectors.toList()); + + //筛选申报类型 + DeclareReportTypeEnum declareReportTypeEnum = DeclareReportTypeEnum.parseByValue(param.getReportType()); + taxDeclarations = taxDeclarations.stream().filter(po -> IncomeCategoryEnum.parseByValue(po.getIncomeCategory()).getReportType() == declareReportTypeEnum).collect(Collectors.toList()); + Map taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarations, TaxDeclarationPO::getIncomeCategory); List tabs = Lists.newArrayList(); for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) { @@ -331,12 +334,12 @@ public class TaxDeclareRecordWrapper extends Service { /** * 查询个税申报表的基本信息 * - * @param id 个税申报表id * @return */ - public TaxDeclarationInfoDTO getTaxDeclarationInfoById(Long id) { + public TaxDeclarationInfoDTO getTaxDeclarationInfoById(TaxDeclareRecordParam param) { // 查询个税申报表 - TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(id); + Long taxDeclareRecordId = param.getTaxDeclareRecordId(); + TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(taxDeclareRecordId); if (Objects.isNull(taxDeclareRecord)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "个税申报表不存在或已删除")); } @@ -352,8 +355,10 @@ public class TaxDeclareRecordWrapper extends Service { List taxDeclareFails = getTaxDeclareFailService(user).listByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId())); // 查询个税扣缴义务人 TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId()); - TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.class); - TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.class); + + TaxDeclareStatusPO taxDeclareStatus = getTaxDeclareRecordService(user).getTaxDeclareStatus(taxDeclareRecordId, param.getReportType()); + TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareStatus.getTaxDeclareType(), TaxDeclareTypeEnum.class); + TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.class); return TaxDeclarationInfoDTO.builder() .salaryMonth(taxDeclareRecord.getSalaryMonth()) @@ -364,7 +369,7 @@ public class TaxDeclareRecordWrapper extends Service { .declareTypeDesc(taxDeclareTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareTypeEnum.getLabelId(), taxDeclareTypeEnum.getDefaultLabel())) .declareStatus(taxDeclareStatusEnum) .declareStatusDesc(taxDeclareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareStatusEnum.getLabelId(), taxDeclareStatusEnum.getDefaultLabel())) - .declareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg()) + .declareErrorMsg(taxDeclareStatus.getTaxDeclareErrorMsg()) .displayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1)) .declareFailSize(taxDeclareFails.size()) .abnormalSize(notDeclareTaxDeclareEmployees.size() + noValueTaxDeclareEmployees.size()) @@ -871,7 +876,7 @@ public class TaxDeclareRecordWrapper extends Service { SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } - public void getTaxReportType(Long id) { - getTaxDeclareRecordService(user).getTaxReportType(id); + public List getTaxReports(Long id) { + return getTaxDeclareRecordService(user).getTaxReports(id); } }