From bcfcd1de9afcbf993713cabd26ec1caf214c8cce Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 1 Mar 2024 13:52:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E7=A8=8E=E7=94=B3=E6=8A=A5-=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E5=AF=B9=E6=AF=94=E6=98=BE=E7=A4=BA=E5=88=97=E5=AE=9A?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bo/TaxDeclarationValueList.java | 4 +- .../dto/TaxDeclarationValueListDTO.java | 3 + .../service/TaxDeclarationValueService.java | 3 +- .../impl/TaxDeclarationValueServiceImpl.java | 147 +++++++++++++----- .../salary/web/TaxDeclarationController.java | 14 +- .../wrapper/TaxDeclareRecordWrapper.java | 6 +- 6 files changed, 120 insertions(+), 57 deletions(-) diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java index e557e155e..fd5a44593 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java @@ -90,7 +90,7 @@ public class TaxDeclarationValueList { } EmployeeDeclarePO employeeDeclare = employeeDeclareMap.get(taxDeclarationValue.getEmployeeId()); if (employeeDeclare != null) { - dataMap.put("jobNum", employeeDeclare.getJobNum()); + dataMap.put(cnKey ? "工号" : "jobNum", employeeDeclare.getJobNum()); dataMap.put(cnKey ? "姓名" : "username", employeeDeclare.getEmployeeName()); dataMap.put(cnKey ? "证件类型" : "cardType", SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel())); dataMap.put(cnKey ? "证件号码" : "cardNum", employeeDeclare.getCardNum()); @@ -103,7 +103,7 @@ public class TaxDeclarationValueList { dataMap.put(cnKey ? "证件号码" : "cardNum", simpleUserInfo == null ? "" : simpleUserInfo.getIdNo()); } else { ExtEmpPO extEmployee = extEmployeeMap.get(taxDeclarationValue.getEmployeeId()); - dataMap.put(cnKey ? "工号" : "jobNum", ""); + dataMap.put(cnKey ? "工号" : "jobNum", extEmployee.getWorkcode()); dataMap.put(cnKey ? "姓名" : "username", extEmployee.getUsername()); dataMap.put(cnKey ? "证件类型" : "cardType", SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel())); dataMap.put(cnKey ? "证件号码" : "cardNum", extEmployee.getIdNo()); diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationValueListDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationValueListDTO.java index 7090bddfa..a546652f1 100644 --- a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationValueListDTO.java +++ b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationValueListDTO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.taxdeclaration.dto; import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.SalaryTable; import lombok.Data; import lombok.experimental.Accessors; @@ -17,6 +19,7 @@ import java.util.Map; **/ @Data @Accessors(chain = true) +@SalaryTable(pageId = "34h8e2r7-9ee6-4d11-adn9-7t0ge54d6rj8", tableType = WeaTableType.CHECKBOX) public class TaxDeclarationValueListDTO { /** diff --git a/src/com/engine/salary/service/TaxDeclarationValueService.java b/src/com/engine/salary/service/TaxDeclarationValueService.java index 8fabdd5d7..481126b75 100644 --- a/src/com/engine/salary/service/TaxDeclarationValueService.java +++ b/src/com/engine/salary/service/TaxDeclarationValueService.java @@ -1,7 +1,6 @@ package com.engine.salary.service; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO; -import com.engine.salary.entity.taxdeclaration.dto.TaxReportColumnDTO; import com.engine.salary.entity.taxdeclaration.param.ContrastQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam; @@ -100,7 +99,7 @@ public interface TaxDeclarationValueService { * 在线对比表头列表 * @param param */ - Map> contrastHeaderList(ContrastQueryParam param); + // Map contrastHeaderList(ContrastQueryParam param); /** * 缓存在线对比表头列表 diff --git a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java index 9465f88c8..cf7805b01 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java @@ -5,16 +5,17 @@ import com.cloudstore.dev.api.util.Util_DataCache; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.component.SalaryWeaTable; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.encrypt.EncryptUtil; 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.salaryarchive.dto.SalaryArchiveListDTO; 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.dto.TaxReportColumnDTO; import com.engine.salary.entity.taxdeclaration.param.ContrastQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam; @@ -36,6 +37,7 @@ import com.engine.salary.service.*; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryEnumUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelUtilPlus; @@ -43,6 +45,7 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.wbi.core.entity.WeaResultMsg; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -391,7 +394,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar for (Map local : localList) { AtomicBoolean hasDiff = new AtomicBoolean(false); Map result = new HashMap<>(); - result.put("工号", local.get("jobNum")); + result.put("工号", local.get("工号")); result.put("姓名", local.get("姓名")); result.put("证件类型", local.get("证件类型")); result.put("证件号码", local.get("证件号码")); @@ -430,50 +433,102 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar oneResultList.add(result); } } - resultList.put("columns", param.isOnlyShowDiffItem() ? onlyShowColumns : columns); + List headerList = new ArrayList<>(); + headerList.add("工号"); + headerList.add("姓名"); + headerList.add("证件类型"); + headerList.add("证件号码"); + headerList.addAll((param.isOnlyShowDiffItem() ? onlyShowColumns : columns).stream().collect(Collectors.toList())); + resultList.put("columns", headerList); resultList.put("pageInfo", SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), oneResultList)); + + // 显示定制列 + List weaColumns = new ArrayList<>(); + weaColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "工号")); + weaColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "姓名"), "姓名")); + weaColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "证件类型"), "证件类型")); + weaColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "证件号码"), "证件号码")); + for (TaxReportColumnPO columnPO : taxReportColumns) { + weaColumns.add(new WeaTableColumn("100px", columnPO.getReportColumnName(), columnPO.getReportColumnName())); + } + + SalaryWeaTable table = new SalaryWeaTable(user, TaxDeclarationValueListDTO.class); + table.setColumns(weaColumns); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + + resultList.put("dataKey", result.getResultMap()); return resultList; + } - @Override - public Map> contrastHeaderList(ContrastQueryParam param) { - Map> resultMap = new HashMap<>(); - TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(param.getTaxDeclarationId()); - if (taxDeclaration == null) { - throw new SalaryRunTimeException("无申报表"); - } - // 查询个税申报表表头 - IncomeCategoryEnum incomeCategoryEnum = SalaryEnumUtil.enumMatchByValue(taxDeclaration.getIncomeCategory(), IncomeCategoryEnum.class); - List taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(incomeCategoryEnum); - List defaultDtoList = new ArrayList<>(); - taxReportColumns.stream().forEach(po -> {defaultDtoList.add(TaxReportColumnDTO.builder().id(po.getId()).reportColumnName(po.getReportColumnName()).reportColumnDataIndex(po.getReportColumnDataIndex()).build());}); - resultMap.put("defaultList",defaultDtoList); - // 获取缓存中保存的设置 - String cacheKey = user.getUID() + SalaryItemConstant.TAX_DECLARE_CONTRAST_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List selectedItems = JsonUtil.parseList(cacheValue, String.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, String.class); - if (CollectionUtils.isEmpty(selectedItems)) { - // 默认全选 - resultMap.put("selectedList", defaultDtoList); - resultMap.put("unSelectedList", Collections.emptyList()); - } else { - Map columnMap = SalaryEntityUtil.convert2Map(defaultDtoList, TaxReportColumnDTO::getReportColumnDataIndex); - List selectedColumn = new ArrayList<>(); - selectedItems.stream().forEach(index -> { - TaxReportColumnDTO taxReportColumnDTO = columnMap.get(index); - if (taxReportColumnDTO != null) { - // 已选择的项目 - selectedColumn.add(taxReportColumnDTO); - } - }); - // 过滤出未选择的项目 - List unSelectedList = defaultDtoList.stream().filter(po -> !selectedItems.contains(po.getReportColumnDataIndex())).collect(Collectors.toList()); - resultMap.put("selectedList", selectedColumn); - resultMap.put("unSelectedList", unSelectedList); - } - - return resultMap; - } + // @Override + // public Map contrastHeaderList(ContrastQueryParam param) { + // TaxDeclarationPO taxDeclaration = getTaxDeclarationService(user).getById(param.getTaxDeclarationId()); + // if (taxDeclaration == null) { + // throw new SalaryRunTimeException("无申报表"); + // } + // // 查询个税申报表表头 + // IncomeCategoryEnum incomeCategoryEnum = SalaryEnumUtil.enumMatchByValue(taxDeclaration.getIncomeCategory(), IncomeCategoryEnum.class); + // List taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(incomeCategoryEnum); + // + // SalaryWeaTable table = new SalaryWeaTable(user, TaxDeclarationValueListDTO.class); + // + // + // List columns = new ArrayList<>(); + // columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "工号")); + // columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "姓名"), "姓名")); + // columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "证件类型"), "证件类型")); + // columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "证件号码"), "证件号码")); + // for (TaxReportColumnPO columnPO : taxReportColumns) { + // columns.add(new WeaTableColumn("100px", columnPO.getReportColumnName(), columnPO.getReportColumnName())); + // } + // table.setColumns(columns); + // WeaResultMsg result = new WeaResultMsg(false); + // result.putAll(table.makeDataResult()); + // result.success(); + // + // + // Map datas = new HashMap<>(); + // datas.put("dataKey", result.getResultMap()); + // return datas; + // // + // // + // // + // // + // // + // // + // // + // // List defaultDtoList = new ArrayList<>(); + // // taxReportColumns.stream().forEach(po -> {defaultDtoList.add(TaxReportColumnDTO.builder().id(po.getId()).reportColumnName(po.getReportColumnName()).reportColumnDataIndex(po.getReportColumnDataIndex()).build());}); + // // resultMap.put("defaultList",defaultDtoList); + // // // 获取缓存中保存的设置 + // // String cacheKey = user.getUID() + SalaryItemConstant.TAX_DECLARE_CONTRAST_FIELD_SIGN; + // // String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); + // // List selectedItems = JsonUtil.parseList(cacheValue, String.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, String.class); + // // if (CollectionUtils.isEmpty(selectedItems)) { + // // // 默认全选 + // // resultMap.put("selectedList", defaultDtoList); + // // resultMap.put("unSelectedList", Collections.emptyList()); + // // } else { + // // Map columnMap = SalaryEntityUtil.convert2Map(defaultDtoList, TaxReportColumnDTO::getReportColumnDataIndex); + // // List selectedColumn = new ArrayList<>(); + // // selectedItems.stream().forEach(index -> { + // // TaxReportColumnDTO taxReportColumnDTO = columnMap.get(index); + // // if (taxReportColumnDTO != null) { + // // // 已选择的项目 + // // selectedColumn.add(taxReportColumnDTO); + // // } + // // }); + // // // 过滤出未选择的项目 + // // List unSelectedList = defaultDtoList.stream().filter(po -> !selectedItems.contains(po.getReportColumnDataIndex())).collect(Collectors.toList()); + // // resultMap.put("selectedList", selectedColumn); + // // resultMap.put("unSelectedList", unSelectedList); + // // } + // + // return resultMap; + // } @Override public void cacheContrastHeader(List columnIndex) { @@ -487,7 +542,7 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar param.setCurrent(1); // 获取线下对比结果 Map contrastMap = contrast(param); - List header = (List)contrastMap.get("columns"); + List header = ((List) contrastMap.get("columns")); PageInfo> pageInfo = (PageInfo>)contrastMap.get("pageInfo"); List> list = pageInfo.getList(); @@ -497,6 +552,12 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar empInfoColumns.add(new WeaTableColumn("100px", "证件类型", "cardType")); empInfoColumns.add(new WeaTableColumn("100px", "证件号码", "cardNum")); + List empInfoList = empInfoColumns.stream().map(WeaTableColumn::getText).collect(Collectors.toList()); + header = header.stream().filter(h -> !empInfoList.contains(h)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(param.getColumns())) { + header = header.stream().filter(h -> param.getColumns().contains(h)).collect(Collectors.toList()); + } + return ExcelUtilPlus.genWorkbook4TaxDeclareContrast(empInfoColumns, header, list, "在线对比结果"); } diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java index c3e87f616..bab38d66b 100644 --- a/src/com/engine/salary/web/TaxDeclarationController.java +++ b/src/com/engine/salary/web/TaxDeclarationController.java @@ -304,13 +304,13 @@ public class TaxDeclarationController { * @param param * @return */ - @POST - @Path("/contrastHeaderList") - @Produces(MediaType.APPLICATION_JSON) - public String contrastHeaderList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ContrastQueryParam param) { - User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>>(user).run(getTaxDeclareRecordWrapper(user)::contrastHeaderList, param); - } + // @POST + // @Path("/contrastHeaderList") + // @Produces(MediaType.APPLICATION_JSON) + // public String contrastHeaderList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ContrastQueryParam param) { + // User user = HrmUserVarify.getUser(request, response); + // return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::contrastHeaderList, param); + // } /** diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java index bec6d0d4f..8b6be1711 100644 --- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java @@ -652,9 +652,9 @@ public class TaxDeclareRecordWrapper extends Service { * 在线对比表头列表 * @param param */ - public Map> contrastHeaderList(ContrastQueryParam param) { - return getTaxDeclarationValueService(user).contrastHeaderList(param); - } + // public Map contrastHeaderList(ContrastQueryParam param) { + // return getTaxDeclarationValueService(user).contrastHeaderList(param); + // } /** * 在线对比表头列表