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