From ce5c106845662fbcef51787006acb40239137f21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 23 Jan 2024 11:23:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=AF=94=E5=8A=9F=E8=83=BD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=AD=9B=E9=80=89=E6=98=AF=E5=90=A6=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=B7=AE=E5=BC=82=E4=BA=BA=E5=91=98=E5=92=8C=E5=B7=AE=E5=BC=82?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxdeclaration/dto/ContrastListDTO.java | 20 +++++++++++ .../param/ContrastQueryParam.java | 9 +++++ .../impl/TaxDeclarationValueServiceImpl.java | 36 +++++++++++++------ .../salary/web/TaxDeclarationController.java | 2 +- 4 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 src/com/engine/salary/entity/taxdeclaration/dto/ContrastListDTO.java diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/ContrastListDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/ContrastListDTO.java new file mode 100644 index 000000000..0d8fa7f8b --- /dev/null +++ b/src/com/engine/salary/entity/taxdeclaration/dto/ContrastListDTO.java @@ -0,0 +1,20 @@ +package com.engine.salary.entity.taxdeclaration.dto; + +import lombok.Data; + +/** + * 个税申报表详情列表(劳务报酬所得) + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +public class ContrastListDTO { + private String local; + + private String online; + + private Object diff; +} diff --git a/src/com/engine/salary/entity/taxdeclaration/param/ContrastQueryParam.java b/src/com/engine/salary/entity/taxdeclaration/param/ContrastQueryParam.java index 95a4861af..e1a24429e 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/ContrastQueryParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/ContrastQueryParam.java @@ -19,4 +19,13 @@ public class ContrastQueryParam extends BaseQueryParam { */ private Long taxDeclarationId; + /** + * 是否只显示差异人员 + */ + private boolean onlyShowDiffEmp; + + /** + * 是否只显示差异项 + */ + private boolean onlyShowDiffItem; } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java index fb671f6a5..76743eb72 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java @@ -10,6 +10,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; import com.engine.salary.entity.extemp.po.ExtEmpPO; import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationValueList; +import com.engine.salary.entity.taxdeclaration.dto.ContrastListDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO; import com.engine.salary.entity.taxdeclaration.param.ContrastQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam; @@ -45,6 +46,7 @@ import weaver.hrm.User; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; /** @@ -356,8 +358,10 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar onlineNoMap.put(no, map); } + Set onlyShowColumns = new HashSet<>(); List> oneResultList = new ArrayList<>(); for (Map local : localList) { + AtomicBoolean hasDiff = new AtomicBoolean(false); Map result = new HashMap<>(); result.put("姓名", local.get("姓名")); result.put("证件类型", local.get("证件类型")); @@ -365,29 +369,39 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar String no = local.getOrDefault("证件号码", "").toString(); Map online = onlineNoMap.get(no); - taxReportColumns.forEach(col -> { - Map temp = Maps.newHashMap(); + taxReportColumns.stream().map(TaxReportColumnPO::getReportColumnName).forEach(col -> { + ContrastListDTO dto = new ContrastListDTO(); // 系统值 - String localValue = Util.null2String(local.get(col.getReportColumnName())); + String localValue = Util.null2String(local.get(col)); // 线上值 - String onlineValue = Util.null2String(online.get(col.getReportColumnName())); - temp.put("local", localValue); - temp.put("online", onlineValue); + String onlineValue = Util.null2String(online.get(col)); + dto.setLocal(localValue); + dto.setOnline(onlineValue); if (NumberUtil.isNumber(localValue) && NumberUtil.isNumber(onlineValue)) { BigDecimal diff = new BigDecimal(localValue).subtract(new BigDecimal(onlineValue)); if (diff.compareTo(new BigDecimal(0)) != 0) { - temp.put("diff", diff); + dto.setDiff(diff); + onlyShowColumns.add(col); + hasDiff.set(true); } } else { if (!Objects.equals(localValue, onlineValue)) { - temp.put("diff", localValue); + dto.setDiff(localValue); + onlyShowColumns.add(col); + hasDiff.set(true); } } - result.put(col.getReportColumnName(), temp); + result.put(col, dto); }); - oneResultList.add(result); + if (param.isOnlyShowDiffEmp()) { + if (hasDiff.get()) { + oneResultList.add(result); + } + } else { + oneResultList.add(result); + } } - resultList.put("columns", columns); + resultList.put("columns", param.isOnlyShowDiffItem() ? onlyShowColumns : columns); resultList.put("pageInfo", SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), oneResultList)); return resultList; } diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java index 9569e60cb..65a96bf26 100644 --- a/src/com/engine/salary/web/TaxDeclarationController.java +++ b/src/com/engine/salary/web/TaxDeclarationController.java @@ -285,7 +285,7 @@ public class TaxDeclarationController { * * @param request * @param response - * @param ContrastQueryParam + * @param param * @return */ @POST