From f8a704e66c37228c4514069fa6630cff61358176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 30 Mar 2022 11:29:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryArchiveImportHandleParam.java | 32 +- .../entity/salarysob/po/SalarySobItemPO.java | 4 +- .../mapper/salarysob/SalarySobItemMapper.xml | 6 + .../impl/AttendQuoteDataServiceImpl.java | 11 +- .../impl/SalaryArchiveServiceImpl.java | 1549 ++++++++--------- .../impl/SalarySobItemServiceImpl.java | 2 +- .../salary/util/excel/ExcelParseHelper.java | 35 +- .../salary/util/excel/ExcelSupport.java | 32 +- .../engine/salary/util/excel/ExcelUtil.java | 5 +- .../salary/wrapper/SalaryArchiveWrapper.java | 4 +- 10 files changed, 871 insertions(+), 809 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java index 61b6bd7e8..01492e075 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java @@ -1,20 +1,20 @@ package com.engine.salary.entity.salaryarchive.param; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; -import com.engine.salary.entity.salaryarchive.dto.TaxAgentListDTO; -import com.engine.salary.entity.salaryarchive.po.SalaryArchiveEmployeePO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.taxrate.TaxAgent; +import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.Collection; +import java.util.Date; import java.util.List; /** @@ -31,15 +31,31 @@ import java.util.List; @AllArgsConstructor public class SalaryArchiveImportHandleParam { + //**********************前端需传入参数**************************/ + + /** + * 上传文件id + */ + String imageId; + + /** + * 导入类型 + * + * @see SalaryArchiveImportTypeEnum + */ + String importType; + + //************************************************************/ + /** * 获取租户下所有的人员 */ - List employees; + List employees; /** * 获取所有个税扣缴义务人 */ - Collection taxAgentList; + Collection taxAgentList; /** * 获取所有可被引用的薪资项目 @@ -79,12 +95,12 @@ public class SalaryArchiveImportHandleParam { /** * 当前时间 */ - LocalDateTime nowTime = LocalDateTime.now(); + Date nowTime = new Date(); /** * 当天 */ - LocalDate today = LocalDate.now(); + Date today = new Date(); /** * 待保存薪资档案 diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java index 7c7b44358..f9e287df2 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java @@ -92,7 +92,9 @@ public class SalarySobItemPO { Collection ids; Collection salarySobIds; - //not in + Collection salaryItemIds; + Collection notInSalaryItemIds; + } diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml index c59b3e354..fc6314863 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml @@ -110,6 +110,12 @@ #{salaryItemId} + + AND salary_item_id NOT IN + + #{salaryItemId} + + ORDER BY id DESC diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index ecf8d19fe..0a6831235 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -32,10 +32,13 @@ import java.util.*; import java.util.stream.Collectors; /** - * @Description: 数据采集-考勤引用数据 - * @Author: wangxiangzhong - * @Date: 2021-11-17 14:37 - */ + * 数据采集-考勤引用数据 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDataService { private AttendQuoteBiz quoteBiz = new AttendQuoteBiz(); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index ed4c8ecb6..a02b0ab40 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -1,179 +1,185 @@ -package com.engine.salary.service.impl; - -import com.engine.core.impl.Service; -import com.engine.salary.biz.*; -import com.engine.salary.common.LocalDateRange; -import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.salary.constant.SalaryItemConstant; -import com.engine.salary.entity.salaryarchive.bo.SalaryArchiveBO; -import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; -import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; -import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam; -import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam; -import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; -import com.engine.salary.entity.salaryarchive.param.SalaryArchiveTaxAgentQueryParam; -import com.engine.salary.entity.salaryarchive.po.SalaryArchiveDimissionPO; -import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; -import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; -import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; -import com.engine.salary.entity.salaryitem.po.SalaryItemPO; -import com.engine.salary.entity.taxrate.TaxAgent; -import com.engine.salary.enums.SalaryUserStatusEnum; -import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; -import com.engine.salary.service.SalaryArchiveService; -import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.excel.ExcelComment; -import com.engine.salary.util.excel.ExcelUtil; -import com.engine.salary.util.page.PageInfo; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; - -import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.stream.Collectors; - -/** - * 薪资档案 - *

Copyright: Copyright (c) 2022

- *

Company: 泛微软件

- * - * @author qiantao - * @version 1.0 - **/ -public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveService { - - private SalaryArchiveBiz mapper = new SalaryArchiveBiz(); - private SalaryArchiveItemBiz salaryArchiveItemMapper = new SalaryArchiveItemBiz(); - private SalaryArchiveTaxAgentBiz salaryArchiveTaxAgentMapper = new SalaryArchiveTaxAgentBiz(); - private SalaryArchiveDimissionBiz salaryArchiveDimissionMapper = new SalaryArchiveDimissionBiz(); - private SalaryItemBiz salaryItemMapper = new SalaryItemBiz(); - - - // private SalaryBatchService salaryBatchService; - private TaxAgentBiz taxAgentService = new TaxAgentBiz(); - private ExecutorService taskExecutor; - - @Override - public SalaryArchivePO getById(Long salaryArchiveId) { - return mapper.getById(salaryArchiveId); - } - - @Override - public PageInfo listPage(SalaryArchiveQueryParam queryParam) { - return mapper.listPage(queryParam); - } - - /** - * 获取薪资档案对应的当前生效的薪资项目 - * - * @param salaryArchivesIds - * @return - */ - @Override - public List getCurrentEffectiveItemList(Collection salaryArchivesIds, Collection salaryItemIds) { - // 没有薪资项目时,给个不存在的,否则加载所有不合理 fixme - salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; - List salaryArchiveItems = salaryArchiveItemMapper.getCurrentEffectiveItemList(SalaryArchiveItemQueryParam.builder().salaryArchivesIds(salaryArchivesIds).salaryItemIds(salaryItemIds).effectiveTime(new Date()).build()); - return salaryArchiveItems.stream() - .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSalaryArchiveId() + "-" + f.getSalaryItemId()))), ArrayList::new)); - } - - /** - * 获取薪资档案对应的当前生效的个税扣缴义务人 - * - * @param salaryArchivesIds - * @return - */ - @Override - public List getCurrentEffectiveTaxAgentList(Collection salaryArchivesIds) { - - List salaryArchiveTaxAgents = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().salaryArchivesIds(salaryArchivesIds).effectiveTime(new Date()).build()); - - return salaryArchiveTaxAgents.stream() - .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryArchiveTaxAgentPO::getSalaryArchiveId))), ArrayList::new)); - } - - /** - * 构建薪资档案数据 - * - * @param salaryArchives - * @param taxAgentLists - * @param salaryItems - * @param isPage - * @return - */ - @Override - public List> buildSalaryArchiveData(Collection salaryArchives, - Collection taxAgentLists, - List salaryItems, - Boolean isPage) { - // 分页用于表格展示,否则用于导出 - Collection ids = isPage ? salaryArchives.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()) : CollectionUtils.emptyCollection(); - - List salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); - // 1.获取薪资档案所对应的当前生效的薪资项目数据 - List salaryArchiveItemList = getCurrentEffectiveItemList(ids, salaryItemIds); - List> salaryArchiveItemData = salaryArchives.stream().map(m -> { - Map map = Maps.newHashMap(); - map.put("salaryArchiveId", m.getId()); - List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(m.getId())).collect(Collectors.toList()); - salaryArchiveItemValuelList.forEach(i -> { - map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, i.getItemValue()); - }); - return map; - }).collect(Collectors.toList()); - //2.获取薪资档案所对应的当前生效的个税扣缴义务人列表 - List taxAgentList = getCurrentEffectiveTaxAgentList(ids); - List> taxAgentData = taxAgentList.stream().map(m -> { - Map map = Maps.newHashMap(); - map.put("salaryArchiveId", m.getSalaryArchiveId()); - map.put("taxAgentId", m.getTaxAgentId()); - Optional optional = taxAgentLists.stream().filter(f -> f.getId().equals(m.getTaxAgentId())).findFirst(); - map.put("taxAgentName", optional.isPresent() ? optional.get().getName() : ""); - map.put("taxAgentEffectiveTime", m.getEffectiveTime() + ""); - return map; - }).collect(Collectors.toList()); - // 3.组装数据 - List> listMaps = new ArrayList<>(); - salaryArchives.forEach(e -> { - e.setEmployeeStatus(SalaryUserStatusEnum.getDefaultLabelByValue(e.getEmployeeStatus())); - - Map map = new LinkedHashMap<>(); - map.put("id", e.getId()); - map.put("username", e.getUsername()); - map.put("employeeId", e.getEmployeeId()); - - Optional> optionalTaxAgent = taxAgentData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); - map.put("taxAgentName", optionalTaxAgent.isPresent() ? optionalTaxAgent.get().get("taxAgentName").toString() : ""); - map.put("taxAgentId", optionalTaxAgent.isPresent() ? optionalTaxAgent.get().get("taxAgentId").toString() : ""); - map.put("taxAgentEffectiveTime", optionalTaxAgent.isPresent() ? optionalTaxAgent.get().get("taxAgentEffectiveTime").toString() : ""); - - map.put("departmentName", e.getDepartmentName()); - map.put("mobile", e.getMobile()); - map.put("employeeStatus", e.getEmployeeStatus()); - - // 薪资项目动态 - Optional> optionalItem = salaryArchiveItemData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); - optionalItem.ifPresent(map::putAll); - - listMaps.add(map); - }); - return listMaps; - } - - @Override - public void exportList(Map map, String username, String eteamsId, SalaryArchiveQueryParam queryParam) { -// String nameI18n = SalaryI18nUtil.getI18nLabel(85368, "薪资档案"); -// List sheetList = new ArrayList<>(); +//package com.engine.salary.service.impl; // -// ExcelSheetData excelSheetData = new ExcelSheetData(); +//import com.engine.core.impl.Service; +//import com.engine.salary.biz.*; +//import com.engine.salary.common.LocalDateRange; +//import com.engine.salary.constant.SalaryDefaultTenantConstant; +//import com.engine.salary.constant.SalaryItemConstant; +//import com.engine.salary.entity.salaryarchive.bo.SalaryArchiveBO; +//import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; +//import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; +//import com.engine.salary.entity.salaryarchive.param.*; +//import com.engine.salary.entity.salaryarchive.po.SalaryArchiveDimissionPO; +//import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; +//import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; +//import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; +//import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +//import com.engine.salary.entity.taxrate.TaxAgent; +//import com.engine.salary.enums.SalaryUserStatusEnum; +//import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; +//import com.engine.salary.exception.SalaryRunTimeException; +//import com.engine.salary.service.SalaryArchiveService; +//import com.engine.salary.util.SalaryI18nUtil; +//import com.engine.salary.util.excel.ExcelComment; +//import com.engine.salary.util.excel.ExcelParseHelper; +//import com.engine.salary.util.excel.ExcelSupport; +//import com.engine.salary.util.excel.ExcelUtil; +//import com.engine.salary.util.page.PageInfo; +//import com.google.common.base.Joiner; +//import com.google.common.collect.Lists; +//import com.google.common.collect.Maps; +//import org.apache.commons.collections4.CollectionUtils; +//import org.apache.commons.lang3.StringUtils; +//import org.apache.poi.ss.usermodel.Cell; +//import org.apache.poi.ss.usermodel.Row; +//import org.apache.poi.ss.usermodel.Sheet; +//import org.apache.poi.xssf.usermodel.XSSFWorkbook; +//import weaver.file.ExcelSheet; +//import weaver.file.ImageFileManager; +// +//import java.io.InputStream; +//import java.util.*; +//import java.util.concurrent.ExecutorService; +//import java.util.stream.Collectors; +// +//import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; +// +///** +// * 薪资档案 +// *

Copyright: Copyright (c) 2022

+// *

Company: 泛微软件

+// * +// * @author qiantao +// * @version 1.0 +// **/ +//public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveService { +// +// private SalaryArchiveBiz mapper = new SalaryArchiveBiz(); +// private EmployBiz employBiz = new EmployBiz(); +// private SalaryArchiveItemBiz salaryArchiveItemMapper = new SalaryArchiveItemBiz(); +// private SalaryArchiveTaxAgentBiz salaryArchiveTaxAgentMapper = new SalaryArchiveTaxAgentBiz(); +// private SalaryArchiveDimissionBiz salaryArchiveDimissionMapper = new SalaryArchiveDimissionBiz(); +// private SalaryItemBiz salaryItemMapper = new SalaryItemBiz(); +// +// +// // private SalaryBatchService salaryBatchService; +// private TaxAgentBiz taxAgentService = new TaxAgentBiz(); +// private ExecutorService taskExecutor; +// +// @Override +// public SalaryArchivePO getById(Long salaryArchiveId) { +// return mapper.getById(salaryArchiveId); +// } +// +// @Override +// public PageInfo listPage(SalaryArchiveQueryParam queryParam) { +// return mapper.listPage(queryParam); +// } +// +// /** +// * 获取薪资档案对应的当前生效的薪资项目 +// * +// * @param salaryArchivesIds +// * @return +// */ +// @Override +// public List getCurrentEffectiveItemList(Collection salaryArchivesIds, Collection salaryItemIds) { +// // 没有薪资项目时,给个不存在的,否则加载所有不合理 fixme +// salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; +// List salaryArchiveItems = salaryArchiveItemMapper.getCurrentEffectiveItemList(SalaryArchiveItemQueryParam.builder().salaryArchivesIds(salaryArchivesIds).salaryItemIds(salaryItemIds).effectiveTime(new Date()).build()); +// return salaryArchiveItems.stream() +// .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSalaryArchiveId() + "-" + f.getSalaryItemId()))), ArrayList::new)); +// } +// +// /** +// * 获取薪资档案对应的当前生效的个税扣缴义务人 +// * +// * @param salaryArchivesIds +// * @return +// */ +// @Override +// public List getCurrentEffectiveTaxAgentList(Collection salaryArchivesIds) { +// +// List salaryArchiveTaxAgents = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().salaryArchivesIds(salaryArchivesIds).effectiveTime(new Date()).build()); +// +// return salaryArchiveTaxAgents.stream() +// .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryArchiveTaxAgentPO::getSalaryArchiveId))), ArrayList::new)); +// } +// +// /** +// * 构建薪资档案数据 +// * +// * @param salaryArchives +// * @param taxAgentLists +// * @param salaryItems +// * @param isPage +// * @return +// */ +// @Override +// public List> buildSalaryArchiveData(Collection salaryArchives, +// Collection taxAgentLists, +// List salaryItems, +// Boolean isPage) { +// // 分页用于表格展示,否则用于导出 +// Collection ids = isPage ? salaryArchives.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()) : CollectionUtils.emptyCollection(); +// +// List salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); +// // 1.获取薪资档案所对应的当前生效的薪资项目数据 +// List salaryArchiveItemList = getCurrentEffectiveItemList(ids, salaryItemIds); +// List> salaryArchiveItemData = salaryArchives.stream().map(m -> { +// Map map = Maps.newHashMap(); +// map.put("salaryArchiveId", m.getId()); +// List salaryArchiveItemValuelList = salaryArchiveItemList.stream().filter(i -> i.getSalaryArchiveId().equals(m.getId())).collect(Collectors.toList()); +// salaryArchiveItemValuelList.forEach(i -> { +// map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, i.getItemValue()); +// }); +// return map; +// }).collect(Collectors.toList()); +// //2.获取薪资档案所对应的当前生效的个税扣缴义务人列表 +// List taxAgentList = getCurrentEffectiveTaxAgentList(ids); +// List> taxAgentData = taxAgentList.stream().map(m -> { +// Map map = Maps.newHashMap(); +// map.put("salaryArchiveId", m.getSalaryArchiveId()); +// map.put("taxAgentId", m.getTaxAgentId()); +// Optional optional = taxAgentLists.stream().filter(f -> f.getId().equals(m.getTaxAgentId())).findFirst(); +// map.put("taxAgentName", optional.isPresent() ? optional.get().getName() : ""); +// map.put("taxAgentEffectiveTime", m.getEffectiveTime() + ""); +// return map; +// }).collect(Collectors.toList()); +// // 3.组装数据 +// List> listMaps = new ArrayList<>(); +// salaryArchives.forEach(e -> { +// e.setEmployeeStatus(SalaryUserStatusEnum.getDefaultLabelByValue(e.getEmployeeStatus())); +// +// Map map = new LinkedHashMap<>(); +// map.put("id", e.getId()); +// map.put("username", e.getUsername()); +// map.put("employeeId", e.getEmployeeId()); +// +// Optional> optionalTaxAgent = taxAgentData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); +// map.put("taxAgentName", optionalTaxAgent.isPresent() ? optionalTaxAgent.get().get("taxAgentName").toString() : ""); +// map.put("taxAgentId", optionalTaxAgent.isPresent() ? optionalTaxAgent.get().get("taxAgentId").toString() : ""); +// map.put("taxAgentEffectiveTime", optionalTaxAgent.isPresent() ? optionalTaxAgent.get().get("taxAgentEffectiveTime").toString() : ""); +// +// map.put("departmentName", e.getDepartmentName()); +// map.put("mobile", e.getMobile()); +// map.put("employeeStatus", e.getEmployeeStatus()); +// +// // 薪资项目动态 +// Optional> optionalItem = salaryArchiveItemData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); +// optionalItem.ifPresent(map::putAll); +// +// listMaps.add(map); +// }); +// return listMaps; +// } +// +// @Override +// public void exportList(Map map, String username, String eteamsId, SalaryArchiveQueryParam queryParam) { // // 1.工作簿名称 -// excelSheetData.setSheetName(nameI18n); +// String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资档案"); // // 获取所有可被引用的薪资项目 -// List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(tenantKey); +// List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); // String[] header = { // SalaryI18nUtil.getI18nLabel(85429, "姓名"), // SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), @@ -181,18 +187,19 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // SalaryI18nUtil.getI18nLabel(86186, "手机号"), // SalaryI18nUtil.getI18nLabel(91075, "状态") // }; -// List headerList = new ArrayList<>(Arrays.asList(header)); +// // 2.表头 +// List headerList = new ArrayList<>(Arrays.asList(header)); // for (SalaryItemPO salaryItem : salaryItems) { // headerList.add(salaryItem.getName()); // } -// // 2.表头 -// excelSheetData.setHeaders(Collections.singletonList(headerList.toArray(new String[]{}))); +// // // 获取所有个税扣缴义务人 -// Collection taxAgentList = taxAgentService.findAll(tenantKey); -// Collection salaryArchives = mapper.list(queryParam, tenantKey); -// List> listMaps = buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, employeeId, tenantKey, Boolean.FALSE); +// Collection taxAgentList = taxAgentService.listAll(); +// Collection salaryArchives = mapper.list(queryParam); +// List> listMaps = buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); // // 组装数据 // List> rows = new ArrayList<>(); +// rows.add(headerList); // listMaps.forEach(e -> { // List row = new ArrayList<>(); // row.add(e.get("username").toString()); @@ -207,242 +214,232 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // rows.add(row); // }); // // 3.表数据 -// excelSheetData.setRows(rows); // -// sheetList.add(excelSheetData); -// -// salaryBatchService.simpleExportExcel(ExportExcelInfo.builder() -// .bizId(map.get("biz").toString()) -// .flag(true) -// .userId(employeeId) -// .eteamsId(eteamsId) -// .tenantKey(tenantKey) -// .operator(username) -// .module(map.get("module").toString()) -// .fileName(nameI18n + SalaryDateUtil.getFormatLocalDateTime(LocalDateTime.now())) -// .handlerName("exportSalaryArchive") -// .dataType(nameI18n) -// .function("exportSalaryArchive").build(), sheetList); - } - - @Override - public XSSFWorkbook downloadTemplate(SalaryArchiveImportTypeEnum salaryArchiveImportTypeEnum, SalaryArchiveQueryParam queryParam) { - boolean isInit = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.INIT.getValue()); - boolean isTaxAgentAdjust = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getValue()); - boolean isSalaryItemAdjust = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()); - - String nameI18n = SalaryI18nUtil.getI18nLabel(101601, "薪资档案导入模板"); - // 初始化 - if (isInit) { - nameI18n += "-" + SalaryI18nUtil.getI18nLabel(SalaryArchiveImportTypeEnum.INIT.getLabelId(), SalaryArchiveImportTypeEnum.INIT.getDefaultLabel()); - // 调整个税扣缴义务人 - } else if (isTaxAgentAdjust) { - nameI18n += "-" + SalaryI18nUtil.getI18nLabel(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getLabelId(), SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getDefaultLabel()); - // 调薪 - } else if (isSalaryItemAdjust) { - nameI18n += "-" + SalaryI18nUtil.getI18nLabel(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getLabelId(), SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getDefaultLabel()); - } - - // 1.工作簿名称 - String sheetName = nameI18n; - // 获取所有可被引用的薪资项目 - List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); - - // 2.表头 - List header = Lists.newArrayList(); - header.add(SalaryI18nUtil.getI18nLabel(85429, "姓名")); - header.add(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人")); - header.add(SalaryI18nUtil.getI18nLabel(85904, "生效日期")); - if (isTaxAgentAdjust || isSalaryItemAdjust) { - header.add(SalaryI18nUtil.getI18nLabel(85431, "调整原因")); - } - header.add(SalaryI18nUtil.getI18nLabel(86185, "部门")); - header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); - header.add(SalaryI18nUtil.getI18nLabel(91075, "状态")); - if (isInit || isSalaryItemAdjust) { - for (SalaryItemPO salaryItem : salaryItems) { - header.add(salaryItem.getName()); - } - } - - // 获取所有个税扣缴义务人 - Collection taxAgentList = taxAgentService.listAll(); - Collection salaryArchives = mapper.list(queryParam); - List> listMaps = buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); - // 组装数据 - List> rows = new ArrayList<>(); - rows.add(header); - listMaps.forEach(e -> { - List row = new ArrayList<>(); - row.add(e.get("username").toString()); - row.add(e.get("taxAgentName").toString()); - if (isTaxAgentAdjust || isSalaryItemAdjust) { - row.add(isTaxAgentAdjust ? e.get("taxAgentEffectiveTime").toString() : ""); - } - row.add(""); - row.add(e.get("departmentName").toString()); - row.add(e.get("mobile") == null ? "" : e.get("mobile").toString()); - row.add(e.get("employeeStatus").toString()); - // 调薪 - if (isInit || isSalaryItemAdjust) { - // 薪资项目数据 - for (SalaryItemPO salaryItem : salaryItems) { - row.add(e.containsKey(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX) ? (e.get(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX) == null ? "" : e.get(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX).toString()) : ""); - } - } - rows.add(row); - }); - // 3.表数据 - // 4.注释 - List excelComments = Lists.newArrayList(); - excelComments.add(new ExcelComment(0, 0, 0, 0, SalaryI18nUtil.getI18nLabel(100344, "必填"))); - if (isInit || isTaxAgentAdjust) { - excelComments.add(new ExcelComment(0, 0, 1, 1, SalaryI18nUtil.getI18nLabel(100344, "必填"))); - } - excelComments.add(new ExcelComment(0, 0, 2, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); - - //调整个税扣缴义务人 - if (isTaxAgentAdjust) { - excelComments.add(new ExcelComment(0, 0, 3, 3, SalaryI18nUtil.getI18nLabel(100952, "必填,可填写如:调动,变更,入职,离职,其他,初始化"))); - // 调薪 - } else if (isSalaryItemAdjust) { - excelComments.add(new ExcelComment( 0, 0, 3, 3, SalaryI18nUtil.getI18nLabel(100953, "必填,可填写如:入职,转正,调薪,调岗调薪,离职,其他,初始化"))); - } - XSSFWorkbook book = ExcelUtil.genWorkbookV2(rows, sheetName,excelComments); - return book; - - } - -// @BatchExportHandler("exportSalaryArchive") -// public void exportSalaryArchiveHandler() { -// BatchCallbackMessage message = BatchExportContext.getBatchCallbackMessage(); -// log.info("接受到薪资档案导出的结果:{}", JSONObject.toJSONString(message)); +// ExcelUtil.genWorkbookV2(rows, sheetName); // } - - @Override - public List dimissionSets() { - return salaryArchiveDimissionMapper.dimissionSets(); - } - - @Override - public String saveDimissionSet(SalaryArchiveDimissionSaveParam saveParam) { - Date now = new Date(); - List dimissionSets = dimissionSets(); - if (CollectionUtils.isNotEmpty(dimissionSets)) { - SalaryArchiveDimissionPO po = dimissionSets.get(0); - po.setDimissionTimeInterval(saveParam.getDimissionTimeInterval().getValue()); - po.setUpdateTime(now); - salaryArchiveDimissionMapper.updateById(po); - } else { - salaryArchiveDimissionMapper.insert(SalaryArchiveDimissionPO - .builder() -// .id(IdGenerator.generate()) - .dimissionTimeInterval(saveParam.getDimissionTimeInterval().getValue()) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build() - ); - } - return StringUtils.EMPTY; - } - - @Override - public List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds) { - return getSalaryArchiveData(localDateRange, employeeIds, Boolean.FALSE); - } - - @Override - public List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds) { - return getSalaryArchiveData(localDateRange, employeeIds, Boolean.TRUE); - } - - /** - * 根据日期范围和人员获取薪资档案数据 - * - * @param localDateRange - * @param employeeIds - * @param isOnlyTaxAgent - * @return - */ - private List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, boolean isOnlyTaxAgent) { - // 获取个税扣缴义务人调整数据 - List salaryArchiveTaxAgentList = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().employeeIds(employeeIds).effectiveTime(localDateRange.getEndDate()).build()); - List allEmployeeIds = salaryArchiveTaxAgentList.stream().map(SalaryArchiveTaxAgentPO::getEmployeeId).distinct().collect(Collectors.toList()); - // 获取所有可被引用的薪资项目 - List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); - Collection salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); - // 获取薪资项目调整数据,isOnlyTaxAgent为true时不需要薪资项目数据 - List salaryArchiveItemDataList; - if (isOnlyTaxAgent || CollectionUtils.isEmpty(salaryItemIds)) { - salaryArchiveItemDataList = Lists.newArrayList(); - } else { - salaryArchiveItemDataList = salaryArchiveItemMapper.listByParam(SalaryArchiveItemQueryParam.builder().salaryItemIds(salaryItemIds).employeeIds(employeeIds).effectiveTime(new Date()).build()); - } - return SalaryArchiveBO.buildSalaryArchiveData(salaryArchiveTaxAgentList, - salaryArchiveItemDataList, - localDateRange, - allEmployeeIds, - isOnlyTaxAgent); - } - - /** - * 导入薪资档案 - */ -// @BatchImportHandler("importSalaryArchive") -// public void importSalaryArchive() { -// BatchDocumentMessage message = BatchImportContext.getBatchDocumentMessage(); -// log.info("【薪资档案】接收到上传的数据:{}", JSONObject.toJSONString(message)); -// // 租户key -// String tenantKey = message.getTenantKey().toLowerCase(); -// try { -// // 加密用 -// DSTenantKeyThreadVar.tenantKey.set(tenantKey); -// // 接收到解析的数据 -// batchImportEbatch(message); -// } catch (Exception e) { -// e.printStackTrace(); -// log.error("【薪资档案】导入失败:{}", String.format("BatchTaskId=%s,错误信息=%s", message.getBatchTaskId(), e.getMessage())); -// } finally { -// // 加密用 -// DSTenantKeyThreadVar.tenantKey.remove(); +// +// @Override +// public XSSFWorkbook downloadTemplate(SalaryArchiveImportTypeEnum salaryArchiveImportTypeEnum, SalaryArchiveQueryParam queryParam) { +// boolean isInit = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.INIT.getValue()); +// boolean isTaxAgentAdjust = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getValue()); +// boolean isSalaryItemAdjust = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()); +// +// String nameI18n = SalaryI18nUtil.getI18nLabel(101601, "薪资档案导入模板"); +// // 初始化 +// if (isInit) { +// nameI18n += "-" + SalaryI18nUtil.getI18nLabel(SalaryArchiveImportTypeEnum.INIT.getLabelId(), SalaryArchiveImportTypeEnum.INIT.getDefaultLabel()); +// // 调整个税扣缴义务人 +// } else if (isTaxAgentAdjust) { +// nameI18n += "-" + SalaryI18nUtil.getI18nLabel(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getLabelId(), SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getDefaultLabel()); +// // 调薪 +// } else if (isSalaryItemAdjust) { +// nameI18n += "-" + SalaryI18nUtil.getI18nLabel(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getLabelId(), SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getDefaultLabel()); // } -// } - - /** - * 导入的数据插入到数据库中 - * - * @param message - */ -// @Transactional(rollbackFor = Exception.class) -// public void batchImportEbatch(BatchDocumentMessage message) { -// List excelSheets = message.getBatchFile().getExcelSheets(); // -// // 租户key -// String tenantKey = message.getTenantKey().toLowerCase(); -// Long currentEmployeeId = message.getUserId(); -// String paramsData = message.getUploadSet().getCustomData(); -// Map params = JSONObject.parseObject(paramsData, Map.class); +// // 1.工作簿名称 +// String sheetName = nameI18n; +// // 获取所有可被引用的薪资项目 +// List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); // -// // 1.自定义参数校验 -// boolean isValid = checkParams(message, params); -// if (!isValid) { -// return; +// // 2.表头 +// List header = Lists.newArrayList(); +// header.add(SalaryI18nUtil.getI18nLabel(85429, "姓名")); +// header.add(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人")); +// header.add(SalaryI18nUtil.getI18nLabel(85904, "生效日期")); +// if (isTaxAgentAdjust || isSalaryItemAdjust) { +// header.add(SalaryI18nUtil.getI18nLabel(85431, "调整原因")); // } -// // 导入类型 -// String importType = params.get("importType").toString(); -// -// // 2.构建导入需要的数据 -// SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(tenantKey); -// -// int total = 0; -// for (ExcelSheet excelSheet : excelSheets) { -// List> data = excelSheet.getData(); -// if (data != null) { -// total += data.size(); +// header.add(SalaryI18nUtil.getI18nLabel(86185, "部门")); +// header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); +// header.add(SalaryI18nUtil.getI18nLabel(91075, "状态")); +// if (isInit || isSalaryItemAdjust) { +// for (SalaryItemPO salaryItem : salaryItems) { +// header.add(salaryItem.getName()); // } // } +// +// // 获取所有个税扣缴义务人 +// Collection taxAgentList = taxAgentService.listAll(); +// Collection salaryArchives = mapper.list(queryParam); +// List> listMaps = buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); +// // 组装数据 +// List> rows = new ArrayList<>(); +// rows.add(header); +// listMaps.forEach(e -> { +// List row = new ArrayList<>(); +// row.add(e.get("username").toString()); +// row.add(e.get("taxAgentName").toString()); +// if (isTaxAgentAdjust || isSalaryItemAdjust) { +// row.add(isTaxAgentAdjust ? e.get("taxAgentEffectiveTime").toString() : ""); +// } +// row.add(""); +// row.add(e.get("departmentName").toString()); +// row.add(e.get("mobile") == null ? "" : e.get("mobile").toString()); +// row.add(e.get("employeeStatus").toString()); +// // 调薪 +// if (isInit || isSalaryItemAdjust) { +// // 薪资项目数据 +// for (SalaryItemPO salaryItem : salaryItems) { +// row.add(e.containsKey(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX) ? (e.get(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX) == null ? "" : e.get(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX).toString()) : ""); +// } +// } +// rows.add(row); +// }); +// // 3.表数据 +// // 4.注释 +// List excelComments = Lists.newArrayList(); +// excelComments.add(new ExcelComment(0, 0, 3, 2, SalaryI18nUtil.getI18nLabel(100344, "必填"))); +// if (isInit || isTaxAgentAdjust) { +// excelComments.add(new ExcelComment(1, 0, 4, 2, SalaryI18nUtil.getI18nLabel(100344, "必填"))); +// } +// excelComments.add(new ExcelComment(2, 0, 5, 2, SalaryI18nUtil.getI18nLabel(100458, "必填,格式样例为'2022-01-01'、'2022/1/1'"))); +// +// //调整个税扣缴义务人 +// if (isTaxAgentAdjust) { +// excelComments.add(new ExcelComment(3, 0, 6, 2, SalaryI18nUtil.getI18nLabel(100952, "必填,可填写如:调动,变更,入职,离职,其他,初始化"))); +// // 调薪 +// } else if (isSalaryItemAdjust) { +// excelComments.add(new ExcelComment(3, 0, 6, 2, SalaryI18nUtil.getI18nLabel(100953, "必填,可填写如:入职,转正,调薪,调岗调薪,离职,其他,初始化"))); +// } +// XSSFWorkbook book = ExcelUtil.genWorkbookV2(rows, sheetName, excelComments); +// return book; +// +// } +// +//// @BatchExportHandler("exportSalaryArchive") +//// public void exportSalaryArchiveHandler() { +//// BatchCallbackMessage message = BatchExportContext.getBatchCallbackMessage(); +//// log.info("接受到薪资档案导出的结果:{}", JSONObject.toJSONString(message)); +//// } +// +// @Override +// public List dimissionSets() { +// return salaryArchiveDimissionMapper.dimissionSets(); +// } +// +// @Override +// public String saveDimissionSet(SalaryArchiveDimissionSaveParam saveParam) { +// Date now = new Date(); +// List dimissionSets = dimissionSets(); +// if (CollectionUtils.isNotEmpty(dimissionSets)) { +// SalaryArchiveDimissionPO po = dimissionSets.get(0); +// po.setDimissionTimeInterval(saveParam.getDimissionTimeInterval().getValue()); +// po.setUpdateTime(now); +// salaryArchiveDimissionMapper.updateById(po); +// } else { +// salaryArchiveDimissionMapper.insert(SalaryArchiveDimissionPO +// .builder() +//// .id(IdGenerator.generate()) +// .dimissionTimeInterval(saveParam.getDimissionTimeInterval().getValue()) +// .createTime(now) +// .updateTime(now) +// .creator((long) user.getUID()) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build() +// ); +// } +// return StringUtils.EMPTY; +// } +// +// @Override +// public List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds) { +// return getSalaryArchiveData(localDateRange, employeeIds, Boolean.FALSE); +// } +// +// @Override +// public List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds) { +// return getSalaryArchiveData(localDateRange, employeeIds, Boolean.TRUE); +// } +// +// /** +// * 根据日期范围和人员获取薪资档案数据 +// * +// * @param localDateRange +// * @param employeeIds +// * @param isOnlyTaxAgent +// * @return +// */ +// private List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, boolean isOnlyTaxAgent) { +// // 获取个税扣缴义务人调整数据 +// List salaryArchiveTaxAgentList = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().employeeIds(employeeIds).effectiveTime(localDateRange.getEndDate()).build()); +// List allEmployeeIds = salaryArchiveTaxAgentList.stream().map(SalaryArchiveTaxAgentPO::getEmployeeId).distinct().collect(Collectors.toList()); +// // 获取所有可被引用的薪资项目 +// List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); +// Collection salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); +// // 获取薪资项目调整数据,isOnlyTaxAgent为true时不需要薪资项目数据 +// List salaryArchiveItemDataList; +// if (isOnlyTaxAgent || CollectionUtils.isEmpty(salaryItemIds)) { +// salaryArchiveItemDataList = Lists.newArrayList(); +// } else { +// salaryArchiveItemDataList = salaryArchiveItemMapper.listByParam(SalaryArchiveItemQueryParam.builder().salaryItemIds(salaryItemIds).employeeIds(employeeIds).effectiveTime(new Date()).build()); +// } +// return SalaryArchiveBO.buildSalaryArchiveData(salaryArchiveTaxAgentList, +// salaryArchiveItemDataList, +// localDateRange, +// allEmployeeIds, +// isOnlyTaxAgent); +// } +// +// /** +// * 导入薪资档案 +// */ +//// @BatchImportHandler("importSalaryArchive") +//// public void importSalaryArchive() { +//// BatchDocumentMessage message = BatchImportContext.getBatchDocumentMessage(); +//// log.info("【薪资档案】接收到上传的数据:{}", JSONObject.toJSONString(message)); +//// // 租户key +//// String tenantKey = message.getTenantKey().toLowerCase(); +//// try { +//// // 加密用 +//// DSTenantKeyThreadVar.tenantKey.set(tenantKey); +//// // 接收到解析的数据 +//// batchImportEbatch(message); +//// } catch (Exception e) { +//// e.printStackTrace(); +//// log.error("【薪资档案】导入失败:{}", String.format("BatchTaskId=%s,错误信息=%s", message.getBatchTaskId(), e.getMessage())); +//// } finally { +//// // 加密用 +//// DSTenantKeyThreadVar.tenantKey.remove(); +//// } +//// } +// +// /** +// * 导入的数据插入到数据库中 +// */ +// public void batchImport(SalaryArchiveImportHandleParam param) { +// //1、参数校验 +// String imageId = param.getImageId(); +// if (StringUtils.isBlank(imageId)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100593, "文件id为空")); +// } +// String importType = param.getImportType(); +// SalaryArchiveImportTypeEnum importTypeEnum = SalaryArchiveImportTypeEnum.parseByValue(importType); +// if (importTypeEnum == null) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100593, "导入类型不正确")); +// } +// +// +// // 2.构建导入需要的数据 +// SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(); +// +// InputStream fileInputStream = null; +//// try { +// fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(imageId)); +//// fileInputStream = new FileInputStream("C:\\Users\\钱涛\\Desktop\\addUpDeductionTemplate.xlsx"); +//// } catch (FileNotFoundException e) { +//// e.printStackTrace(); +//// } +// +// Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); +// List headers = ExcelSupport.getSheetHeader(sheet, 0); +// +// checkHeaders(importType, headers); +// +// List> data = ExcelParseHelper.parse(fileInputStream, 0, 1); +// +// +// int total = data.size(); +// // int index = 0; // int successCount = 0; // int errorCount = 0; @@ -457,16 +454,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // if (excelSheet.getHeader().size() == 0) { // continue; // } -// List headers = excelSheet.getHeader(); -// boolean isValidHeader = checkHeaders(importType, message, headers); -// if (!isValidHeader) { -// return; -// } +// +// // int effectiveTimeIndex = 0; // for (int j = 0; j < headers.size(); j++) { // Map header = headers.get(j); // String key = Optional.ofNullable(header.get("key")).orElse("").toString(); -// if (key.equals(SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85904, "生效日期"))) { +// if (key.equals(SalaryI18nUtil.getI18nLabel(85904, "生效日期"))) { // effectiveTimeIndex = j; // } // } @@ -484,7 +478,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // index += 1; // map = data.get(i); // // 3.校验行内容 -// boolean isError = singleRowCheck(importType, allEmployeeIds, map, headers, effectiveTimeIndex, excelComments, errorCount, currentEmployeeId, tenantKey, importHandleParam); +// boolean isError = singleRowCheck(importType, allEmployeeIds, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam); // // if (isError) { // errorCount += 1; @@ -515,40 +509,39 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // // 发送导入回调信息 // salaryBatchService.sendImportCallBackInfo(message, successCount, errorCount, errorExcelSheets); // } - - /** - * 构建导入处理参数 - * - * @param tenantKey - * @return - */ -// private SalaryArchiveImportHandleParam buildImportHandleParam(String tenantKey) { +// +// /** +// * 构建导入处理参数 +// * +// * @return +// */ +// private SalaryArchiveImportHandleParam buildImportHandleParam() { // // 获取所有可被引用的薪资项目 -// List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(tenantKey); +// List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); // // Collection salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); -// +// Date now = new Date(); // return SalaryArchiveImportHandleParam.builder() // // 获取租户下所有的人员 -// .employees(mapper.listEmployee(tenantKey)) +// .employees(employBiz.listEmployee()) // // 获取所有个税扣缴义务人 -// .taxAgentList(taxAgentService.findAll(tenantKey)) +// .taxAgentList(taxAgentService.listAll()) // .salaryItems(salaryItems) // // 查询已有的薪资档案基本数据 -// .salaryArchives(mapper.list(SalaryArchiveQueryParam.builder().build(), tenantKey)) +// .salaryArchives(mapper.list(SalaryArchiveQueryParam.builder().build())) // .salaryItemIds(salaryItemIds) // // 查询已生效的薪资项目数据 -// .effectiveItemList(getEffectiveItemList(salaryItemIds, tenantKey)) +// .effectiveItemList(getEffectiveItemList(salaryItemIds)) // // 查询未生效的薪资项目数据 -// .ineffectiveItemList(getIneffectiveItemList(salaryItemIds, tenantKey)) +// .ineffectiveItemList(getIneffectiveItemList(salaryItemIds)) // // 查询已生效的个税扣缴义务人数据 -// .effectiveTaxAgentList(getEffectiveTaxAgentList(tenantKey)) +// .effectiveTaxAgentList(getEffectiveTaxAgentList()) // // 查询未生效的个税扣缴义务人数据 -// .ineffectiveTaxAgentList(getIneffectiveTaxAgentList(tenantKey)) +// .ineffectiveTaxAgentList(getIneffectiveTaxAgentList()) // // 当前时间 -// .nowTime(LocalDateTime.now()) +// .nowTime(now) // // 当天 -// .today(LocalDate.now()) +// .today(now) // // 待保存薪资档案 // .salaryArchiveSaves(Lists.newArrayList()) // // 待保存薪资档案-个税扣缴义务人 @@ -561,7 +554,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // .salaryArchiveItemDelSalaryItemIds(Lists.newArrayList()) // .build(); // } - +// // /** // * 初始化导入数据校验 // * 说明:如果一个人的多条记录中有一个错那么就全部弄到错误文档中 @@ -605,7 +598,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // sames.forEach(e -> { // if (!e.isError()) { // e.setError(Boolean.TRUE); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 101723, "该员工的薪资档案记录有误,请检查"), finalErrorCount.get() + 1, finalErrorCount.get() + 1, 0, 0); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(101723, "该员工的薪资档案记录有误,请检查"), finalErrorCount.get() + 1, finalErrorCount.get() + 1, 0, 0); // finalErrorCount.addAndGet(1); // errorData.add(e.getRow()); // finalSuccessCount.addAndGet(-1); @@ -627,7 +620,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // sames.forEach(e -> { // if (!e.isError()) { // e.setError(Boolean.TRUE); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 101723, "该员工的薪资档案记录有误,请检查"), finalErrorCount.get() + 1, finalErrorCount.get() + 1, 0, 0); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(101723, "该员工的薪资档案记录有误,请检查"), finalErrorCount.get() + 1, finalErrorCount.get() + 1, 0, 0); // finalErrorCount.addAndGet(1); // errorData.add(e.getRow()); // finalSuccessCount.addAndGet(-1); @@ -660,7 +653,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // return validMap; // } // -// /** +// /** // * 校验单行数据 // * // * @param importType @@ -681,13 +674,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // boolean isTaxAgentAdjust = importType.equals(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getValue()); // boolean isSalaryItemAdjust = importType.equals(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()); // -// String userNameI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85429, "姓名"); -// String taxAgentI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 86184, "个税扣缴义务人"); -// String effectiveTimeI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85904, "生效日期"); -// String adjustReasonI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85431, "调整原因"); +// String userNameI18n = SalaryI18nUtil.getI18nLabel(85429, "姓名"); +// String taxAgentI18n = SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"); +// String effectiveTimeI18n = SalaryI18nUtil.getI18nLabel(85904, "生效日期"); +// String adjustReasonI18n = SalaryI18nUtil.getI18nLabel(85431, "调整原因"); // // 1.姓名 // String userName = Optional.ofNullable(map.get(userNameI18n)).orElse("").toString(); -// String deparmentName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 86185, "部门"))).orElse("").toString(); +// String deparmentName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86185, "部门"))).orElse("").toString(); // List employeeSameIds = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) // && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDeparmentName(), deparmentName))).map(SalaryArchiveEmployeePO::getEmployeeId) // .collect(Collectors.toList()); @@ -743,20 +736,20 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // || (adjustReasonI18n.equals(key.toString()) && (isTaxAgentAdjust || isSalaryItemAdjust))); // // 判空 // if (isEmpty) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100577, "不能为空"), errorCount + 1, errorCount + 1, j, j); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100577, "不能为空"), errorCount + 1, errorCount + 1, j, j); // isError = true; // } // // 1.姓名列处理 // if (!isEmpty && userNameI18n.equals(key.toString())) { // if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100578, "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"), errorCount + 1, errorCount + 1, j, j); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100578, "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"), errorCount + 1, errorCount + 1, j, j); // isError = true; // } else if (employeeId == null) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100579, "姓名错误,系统内不存在该姓名"), errorCount + 1, errorCount + 1, j, j); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名"), errorCount + 1, errorCount + 1, j, j); // isError = true; // // (调薪或调整个税扣缴义务人) // } else if (finalSalaryArchive == null && (isTaxAgentAdjust || isSalaryItemAdjust)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 101653, "该人员的薪资档案不存在,请先初始化"), errorCount + 1, errorCount + 1, j, j); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(101653, "该人员的薪资档案不存在,请先初始化"), errorCount + 1, errorCount + 1, j, j); // isError = true; // } // // 2.个税扣缴义务人列处理(初始化导入或调整个税扣缴义务人) @@ -765,11 +758,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // taxAgentId, effectiveTime, finalSalaryArchive, adjustReason, importHandleParam); // // 3.生效时间处理 // } else if (!isEmpty && effectiveTimeI18n.equals(key.toString()) && effectiveTime == null) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 102497, "生效日期错误或格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'"), errorCount + 1, errorCount + 1, j, j); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102497, "生效日期错误或格式不正确,正确格式示例为'2022-01-01'、'2022/1/1'"), errorCount + 1, errorCount + 1, j, j); // isError = true; // // 4.调整原因列处理(调薪或调整个税扣缴义务人) // } else if (!isEmpty && adjustReasonI18n.equals(key.toString()) && (isTaxAgentAdjust || isSalaryItemAdjust) && StringUtils.isEmpty(adjustReason)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100591, "调整原因不存在"), errorCount + 1, errorCount + 1, j, j); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100591, "调整原因不存在"), errorCount + 1, errorCount + 1, j, j); // isError = true; // // 5.薪资项目列处理(初始化导入或调薪) // } else { @@ -784,263 +777,263 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // } // return isError; // } -// -// private SalaryArchivePO buildSalaryArchive(boolean isInit, Long currentEmployeeId, String tenantKey, Long employeeId, SalaryArchiveImportHandleParam importHandleParam) { -// Optional optionalSA = importHandleParam.getSalaryArchives().stream().filter(p -> p.getEmployeeId().toString().equals(employeeId != null ? employeeId.toString() : "")).findFirst(); -// SalaryArchivePO salaryArchive = null; -// if (optionalSA.isPresent()) { -// // 修改档案 -// SalaryArchiveListDTO sa = optionalSA.get(); -// salaryArchive = new SalaryArchivePO(); -// salaryArchive.setId(sa.getId()); -// salaryArchive.setEmployeeId(sa.getEmployeeId()); -// } else if (employeeId != null && isInit) { -// // 新增档案 -// salaryArchive = SalaryArchivePO.builder() -// .id(IdGenerator.generate()) -// .employeeId(employeeId) -// .createTime(importHandleParam.getNowTime()) -// .updateTime(importHandleParam.getNowTime()) -// .creator(currentEmployeeId) -// .tenantKey(tenantKey) -// .build(); -// importHandleParam.getSalaryArchiveSaves().add(salaryArchive); -// } -// return salaryArchive; -// } -// -// /** -// * 个税扣缴义务人处理 -// * -// * @param isError -// * @param excelComments -// * @param errorCount -// * @param j -// * @param currentEmployeeId -// * @param tenantKey -// * @param taxAgentId -// * @param effectiveTime -// * @param finalSalaryArchive -// * @param taxAgentAdjustReason -// * @param importHandleParam -// * @return -// */ -// private boolean handleTaxAgent(boolean isError, boolean isInit, int effectiveTimeIndex, -// List excelComments, int errorCount, int j, Long currentEmployeeId, String tenantKey, -// Long taxAgentId, LocalDate effectiveTime, SalaryArchivePO finalSalaryArchive, String taxAgentAdjustReason, SalaryArchiveImportHandleParam importHandleParam) { -// if (taxAgentId == null) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100545, "个税扣缴义务人不存在"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } else if (effectiveTime != null && finalSalaryArchive != null) { -// boolean isBeforeError = false; -// if (!isInit) { -// // 前后调整校验 -// // 已生效 -// List effectiveList = importHandleParam.getEffectiveTaxAgentList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId())).collect(Collectors.toList()); -// // 当前已生效 -// SalaryArchiveTaxAgentPO effectiveTaxAgent = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 0 ? effectiveList.get(0) : null; -// // 当前已生效的前一次调整 -// SalaryArchiveTaxAgentPO effectiveBeforeTaxAgent = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 1 ? effectiveList.get(1) : null; -// // 未生效 -// Optional optionalIneffective = importHandleParam.getIneffectiveTaxAgentList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId())).findFirst(); -// SalaryArchiveTaxAgentPO ineffectiveTaxAgent = optionalIneffective.orElse(null); -// // 1.检验是否可以调整 -// if (effectiveTaxAgent != null) { -// // 当前已经生效的时间 -// LocalDate currentEffectiveTime = effectiveTaxAgent.getEffectiveTime(); -// // 1.1 如果早于<当前已生效 -// if (effectiveTime.isBefore(currentEffectiveTime)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex); -// isError = true; -// isBeforeError = true; -// // 1.2 如果等于当前已生效 -// } else if (effectiveTime.isEqual(currentEffectiveTime)) { -// if (effectiveBeforeTaxAgent != null && effectiveBeforeTaxAgent.getTaxAgentId().equals(taxAgentId)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// // 1.3 如果>已经生效且<=今天 -// } else if (effectiveTime.isAfter(currentEffectiveTime) && !effectiveTime.isAfter(importHandleParam.getToday())) { -// if (effectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// // 1.4 如果>今天 -// } else if (effectiveTime.isAfter(importHandleParam.getToday()) && effectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// } else if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// // 2.数据处理,有的就先删后增 -// if (effectiveTaxAgent != null && effectiveTime.isEqual(effectiveTaxAgent.getEffectiveTime())) { -// importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds().add(effectiveTaxAgent.getId()); -// } -// if (ineffectiveTaxAgent != null && effectiveTime.isAfter(importHandleParam.getToday())) { -// importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds().add(ineffectiveTaxAgent.getId()); -// } -// } -// if (!isBeforeError) { -// importHandleParam.getSalaryArchiveTaxAgentSaves().add(SalaryArchiveTaxAgentPO.builder() -// .id(IdGenerator.generate()) -// .salaryArchiveId(finalSalaryArchive.getId()) -// .employeeId(finalSalaryArchive.getEmployeeId()) -// .taxAgentId(taxAgentId) -// .effectiveTime(effectiveTime) -// .adjustReason(StringUtils.isEmpty(taxAgentAdjustReason) ? SalaryArchiveTaxAgentAdjustReasonEnum.INIT.getValue() : taxAgentAdjustReason) -// .operator(currentEmployeeId) -// .operateTime(importHandleParam.getNowTime()) -// .createTime(importHandleParam.getNowTime()) -// .updateTime(importHandleParam.getNowTime()) -// .creator(currentEmployeeId) -// .tenantKey(tenantKey) -// .build()); -// } -// } -// return isError; -// } -// -// /** -// * 薪资项目处理 -// * -// * @param isError -// * @param excelComments -// * @param errorCount -// * @param j -// * @param currentEmployeeId -// * @param tenantKey -// * @param effectiveTime -// * @param finalSalaryArchive -// * @param salaryItemAdjustReason -// * @param importHandleParam -// * @param cellVal -// * @return -// */ -// private boolean handleSalaryItem(boolean isError, boolean isInit, int effectiveTimeIndex, -// List excelComments, int errorCount, int j, Long currentEmployeeId, String tenantKey, -// LocalDate effectiveTime, SalaryArchivePO finalSalaryArchive, String salaryItemAdjustReason, SalaryArchiveImportHandleParam importHandleParam, -// String key, String cellVal, Map map) { -// Optional optionalSalaryItem = importHandleParam.getSalaryItems().stream().filter(e -> e.getName().equals(key)).findFirst(); -// if (optionalSalaryItem.isPresent()) { -// Long salaryItemId = optionalSalaryItem.get().getId(); -// boolean isBeforeError = false; -// if (!isInit) { -// // 已生效 -// List effectiveList = importHandleParam.getEffectiveItemList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId()) && i.getSalaryItemId().equals(salaryItemId)).collect(Collectors.toList()); -// // 当前已生效 -// SalaryArchiveItemPO effectiveSalaryItem = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 0 ? effectiveList.get(0) : null; -// // 当前已生效的前一次调整 -// SalaryArchiveItemPO effectiveBeforeSalaryItem = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 1 ? effectiveList.get(1) : null; -// // 未生效 -// Optional optionalIneffective = importHandleParam.getIneffectiveItemList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId()) && i.getSalaryItemId().equals(salaryItemId)).findFirst(); -// SalaryArchiveItemPO ineffectiveSalaryItem = optionalIneffective.orElse(null); -// -// // 1.检验是否可以调整 -// if (effectiveSalaryItem != null) { -// // 当前已经生效的时间 -// LocalDate currentEffectiveTime = effectiveSalaryItem.getEffectiveTime(); -// // 1.1 如果早于<当前已生效 -// if (effectiveTime.isBefore(currentEffectiveTime)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex); -// isError = true; -// isBeforeError = true; -// // 1.2 如果等于当前已生效 -// } else if (effectiveTime.isEqual(currentEffectiveTime)) { -// if (effectiveBeforeSalaryItem != null && effectiveBeforeSalaryItem.getItemValue().equals(cellVal)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// // 1.3 如果>已经生效且<=今天 -// } else if (effectiveTime.isAfter(currentEffectiveTime) && !effectiveTime.isAfter(importHandleParam.getToday())) { -// if (effectiveSalaryItem.getItemValue().equals(cellVal)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// // 1.4 如果>今天 -// } else if (effectiveTime.isAfter(importHandleParam.getToday()) && effectiveSalaryItem.getItemValue().equals(cellVal)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// } else if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) { -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); -// isError = true; -// } -// // 2.数据处理 -// if (effectiveSalaryItem != null && effectiveTime.isEqual(effectiveSalaryItem.getEffectiveTime())) { -// importHandleParam.getSalaryArchiveItemDelSalaryItemIds().add(effectiveSalaryItem.getId()); -// } -// if (ineffectiveSalaryItem != null && effectiveTime.isAfter(importHandleParam.getToday())) { -// importHandleParam.getSalaryArchiveItemDelSalaryItemIds().add(ineffectiveSalaryItem.getId()); -// } -// } -// if (!isBeforeError) { -// importHandleParam.getSalaryArchiveItemSaves().add(SalaryArchiveItemPO.builder() -// .id(IdGenerator.generate()) -// .salaryArchiveId(finalSalaryArchive.getId()) -// .employeeId(finalSalaryArchive.getEmployeeId()) -// .effectiveTime(effectiveTime) -// .adjustReason(StringUtils.isEmpty(salaryItemAdjustReason) ? SalaryArchiveItemAdjustReasonEnum.INIT.getValue() : salaryItemAdjustReason) -// .salaryItemId(salaryItemId) -// .itemValue(cellVal) -// .description("") -// .operator(currentEmployeeId) -// .operateTime(importHandleParam.getNowTime()) -// .createTime(importHandleParam.getNowTime()) -// .updateTime(importHandleParam.getNowTime()) -// .creator(currentEmployeeId) -// .tenantKey(tenantKey) -// .build()); -// } -// // 用于初始化导入,同一个人的多行记录之间的薪资项目是否调整 -// map.put("salaryItemVal", Optional.ofNullable(map.get("salaryItemVal")).orElse("").toString() + salaryItemId + cellVal); -// } -// return isError; -// } -// -// /** -// * 字符串转日期 -// * 兼容/和- -// * -// * @param effectiveTime -// * @return -// */ -// private LocalDate dateStrToLocalDate(String effectiveTime) { -// LocalDate localDate = null; -// try { -// if (effectiveTime.contains("/")) { -// String[] strs = effectiveTime.split("/"); -// localDate = LocalDate.of(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Integer.parseInt(strs[2])); -// } else if (effectiveTime.contains("-")) { -// String[] strs = effectiveTime.replaceAll("-0", "-").split("-"); -// // localDate = LocalDate.parse(effectiveTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 月份日期超过最大会被改为最大 -// localDate = LocalDate.of(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Integer.parseInt(strs[2])); -// } -// } catch (Exception e) { -// localDate = null; -// } -// -// return localDate; -// } -// -// private List getEffectiveItemList(Collection salaryItemIds, String tenantKey) { +//// +//// private SalaryArchivePO buildSalaryArchive(boolean isInit, Long currentEmployeeId, String tenantKey, Long employeeId, SalaryArchiveImportHandleParam importHandleParam) { +//// Optional optionalSA = importHandleParam.getSalaryArchives().stream().filter(p -> p.getEmployeeId().toString().equals(employeeId != null ? employeeId.toString() : "")).findFirst(); +//// SalaryArchivePO salaryArchive = null; +//// if (optionalSA.isPresent()) { +//// // 修改档案 +//// SalaryArchiveListDTO sa = optionalSA.get(); +//// salaryArchive = new SalaryArchivePO(); +//// salaryArchive.setId(sa.getId()); +//// salaryArchive.setEmployeeId(sa.getEmployeeId()); +//// } else if (employeeId != null && isInit) { +//// // 新增档案 +//// salaryArchive = SalaryArchivePO.builder() +//// .id(IdGenerator.generate()) +//// .employeeId(employeeId) +//// .createTime(importHandleParam.getNowTime()) +//// .updateTime(importHandleParam.getNowTime()) +//// .creator(currentEmployeeId) +//// .tenantKey(tenantKey) +//// .build(); +//// importHandleParam.getSalaryArchiveSaves().add(salaryArchive); +//// } +//// return salaryArchive; +//// } +//// +//// /** +//// * 个税扣缴义务人处理 +//// * +//// * @param isError +//// * @param excelComments +//// * @param errorCount +//// * @param j +//// * @param currentEmployeeId +//// * @param tenantKey +//// * @param taxAgentId +//// * @param effectiveTime +//// * @param finalSalaryArchive +//// * @param taxAgentAdjustReason +//// * @param importHandleParam +//// * @return +//// */ +//// private boolean handleTaxAgent(boolean isError, boolean isInit, int effectiveTimeIndex, +//// List excelComments, int errorCount, int j, Long currentEmployeeId, String tenantKey, +//// Long taxAgentId, LocalDate effectiveTime, SalaryArchivePO finalSalaryArchive, String taxAgentAdjustReason, SalaryArchiveImportHandleParam importHandleParam) { +//// if (taxAgentId == null) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100545, "个税扣缴义务人不存在"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } else if (effectiveTime != null && finalSalaryArchive != null) { +//// boolean isBeforeError = false; +//// if (!isInit) { +//// // 前后调整校验 +//// // 已生效 +//// List effectiveList = importHandleParam.getEffectiveTaxAgentList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId())).collect(Collectors.toList()); +//// // 当前已生效 +//// SalaryArchiveTaxAgentPO effectiveTaxAgent = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 0 ? effectiveList.get(0) : null; +//// // 当前已生效的前一次调整 +//// SalaryArchiveTaxAgentPO effectiveBeforeTaxAgent = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 1 ? effectiveList.get(1) : null; +//// // 未生效 +//// Optional optionalIneffective = importHandleParam.getIneffectiveTaxAgentList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId())).findFirst(); +//// SalaryArchiveTaxAgentPO ineffectiveTaxAgent = optionalIneffective.orElse(null); +//// // 1.检验是否可以调整 +//// if (effectiveTaxAgent != null) { +//// // 当前已经生效的时间 +//// LocalDate currentEffectiveTime = effectiveTaxAgent.getEffectiveTime(); +//// // 1.1 如果早于<当前已生效 +//// if (effectiveTime.isBefore(currentEffectiveTime)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex); +//// isError = true; +//// isBeforeError = true; +//// // 1.2 如果等于当前已生效 +//// } else if (effectiveTime.isEqual(currentEffectiveTime)) { +//// if (effectiveBeforeTaxAgent != null && effectiveBeforeTaxAgent.getTaxAgentId().equals(taxAgentId)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// // 1.3 如果>已经生效且<=今天 +//// } else if (effectiveTime.isAfter(currentEffectiveTime) && !effectiveTime.isAfter(importHandleParam.getToday())) { +//// if (effectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// // 1.4 如果>今天 +//// } else if (effectiveTime.isAfter(importHandleParam.getToday()) && effectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// } else if (ineffectiveTaxAgent != null && ineffectiveTaxAgent.getTaxAgentId().equals(taxAgentId)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// // 2.数据处理,有的就先删后增 +//// if (effectiveTaxAgent != null && effectiveTime.isEqual(effectiveTaxAgent.getEffectiveTime())) { +//// importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds().add(effectiveTaxAgent.getId()); +//// } +//// if (ineffectiveTaxAgent != null && effectiveTime.isAfter(importHandleParam.getToday())) { +//// importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds().add(ineffectiveTaxAgent.getId()); +//// } +//// } +//// if (!isBeforeError) { +//// importHandleParam.getSalaryArchiveTaxAgentSaves().add(SalaryArchiveTaxAgentPO.builder() +//// .id(IdGenerator.generate()) +//// .salaryArchiveId(finalSalaryArchive.getId()) +//// .employeeId(finalSalaryArchive.getEmployeeId()) +//// .taxAgentId(taxAgentId) +//// .effectiveTime(effectiveTime) +//// .adjustReason(StringUtils.isEmpty(taxAgentAdjustReason) ? SalaryArchiveTaxAgentAdjustReasonEnum.INIT.getValue() : taxAgentAdjustReason) +//// .operator(currentEmployeeId) +//// .operateTime(importHandleParam.getNowTime()) +//// .createTime(importHandleParam.getNowTime()) +//// .updateTime(importHandleParam.getNowTime()) +//// .creator(currentEmployeeId) +//// .tenantKey(tenantKey) +//// .build()); +//// } +//// } +//// return isError; +//// } +//// +//// /** +//// * 薪资项目处理 +//// * +//// * @param isError +//// * @param excelComments +//// * @param errorCount +//// * @param j +//// * @param currentEmployeeId +//// * @param tenantKey +//// * @param effectiveTime +//// * @param finalSalaryArchive +//// * @param salaryItemAdjustReason +//// * @param importHandleParam +//// * @param cellVal +//// * @return +//// */ +//// private boolean handleSalaryItem(boolean isError, boolean isInit, int effectiveTimeIndex, +//// List excelComments, int errorCount, int j, Long currentEmployeeId, String tenantKey, +//// LocalDate effectiveTime, SalaryArchivePO finalSalaryArchive, String salaryItemAdjustReason, SalaryArchiveImportHandleParam importHandleParam, +//// String key, String cellVal, Map map) { +//// Optional optionalSalaryItem = importHandleParam.getSalaryItems().stream().filter(e -> e.getName().equals(key)).findFirst(); +//// if (optionalSalaryItem.isPresent()) { +//// Long salaryItemId = optionalSalaryItem.get().getId(); +//// boolean isBeforeError = false; +//// if (!isInit) { +//// // 已生效 +//// List effectiveList = importHandleParam.getEffectiveItemList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId()) && i.getSalaryItemId().equals(salaryItemId)).collect(Collectors.toList()); +//// // 当前已生效 +//// SalaryArchiveItemPO effectiveSalaryItem = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 0 ? effectiveList.get(0) : null; +//// // 当前已生效的前一次调整 +//// SalaryArchiveItemPO effectiveBeforeSalaryItem = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 1 ? effectiveList.get(1) : null; +//// // 未生效 +//// Optional optionalIneffective = importHandleParam.getIneffectiveItemList().stream().filter(i -> finalSalaryArchive.getId().equals(i.getSalaryArchiveId()) && i.getSalaryItemId().equals(salaryItemId)).findFirst(); +//// SalaryArchiveItemPO ineffectiveSalaryItem = optionalIneffective.orElse(null); +//// +//// // 1.检验是否可以调整 +//// if (effectiveSalaryItem != null) { +//// // 当前已经生效的时间 +//// LocalDate currentEffectiveTime = effectiveSalaryItem.getEffectiveTime(); +//// // 1.1 如果早于<当前已生效 +//// if (effectiveTime.isBefore(currentEffectiveTime)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex); +//// isError = true; +//// isBeforeError = true; +//// // 1.2 如果等于当前已生效 +//// } else if (effectiveTime.isEqual(currentEffectiveTime)) { +//// if (effectiveBeforeSalaryItem != null && effectiveBeforeSalaryItem.getItemValue().equals(cellVal)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// // 1.3 如果>已经生效且<=今天 +//// } else if (effectiveTime.isAfter(currentEffectiveTime) && !effectiveTime.isAfter(importHandleParam.getToday())) { +//// if (effectiveSalaryItem.getItemValue().equals(cellVal)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// // 1.4 如果>今天 +//// } else if (effectiveTime.isAfter(importHandleParam.getToday()) && effectiveSalaryItem.getItemValue().equals(cellVal)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100432, "调整前后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// } else if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(cellVal)) { +//// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100434, "与未生效的调整后不可相同"), errorCount + 1, errorCount + 1, j, j); +//// isError = true; +//// } +//// // 2.数据处理 +//// if (effectiveSalaryItem != null && effectiveTime.isEqual(effectiveSalaryItem.getEffectiveTime())) { +//// importHandleParam.getSalaryArchiveItemDelSalaryItemIds().add(effectiveSalaryItem.getId()); +//// } +//// if (ineffectiveSalaryItem != null && effectiveTime.isAfter(importHandleParam.getToday())) { +//// importHandleParam.getSalaryArchiveItemDelSalaryItemIds().add(ineffectiveSalaryItem.getId()); +//// } +//// } +//// if (!isBeforeError) { +//// importHandleParam.getSalaryArchiveItemSaves().add(SalaryArchiveItemPO.builder() +//// .id(IdGenerator.generate()) +//// .salaryArchiveId(finalSalaryArchive.getId()) +//// .employeeId(finalSalaryArchive.getEmployeeId()) +//// .effectiveTime(effectiveTime) +//// .adjustReason(StringUtils.isEmpty(salaryItemAdjustReason) ? SalaryArchiveItemAdjustReasonEnum.INIT.getValue() : salaryItemAdjustReason) +//// .salaryItemId(salaryItemId) +//// .itemValue(cellVal) +//// .description("") +//// .operator(currentEmployeeId) +//// .operateTime(importHandleParam.getNowTime()) +//// .createTime(importHandleParam.getNowTime()) +//// .updateTime(importHandleParam.getNowTime()) +//// .creator(currentEmployeeId) +//// .tenantKey(tenantKey) +//// .build()); +//// } +//// // 用于初始化导入,同一个人的多行记录之间的薪资项目是否调整 +//// map.put("salaryItemVal", Optional.ofNullable(map.get("salaryItemVal")).orElse("").toString() + salaryItemId + cellVal); +//// } +//// return isError; +//// } +//// +//// /** +//// * 字符串转日期 +//// * 兼容/和- +//// * +//// * @param effectiveTime +//// * @return +//// */ +//// private LocalDate dateStrToLocalDate(String effectiveTime) { +//// LocalDate localDate = null; +//// try { +//// if (effectiveTime.contains("/")) { +//// String[] strs = effectiveTime.split("/"); +//// localDate = LocalDate.of(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Integer.parseInt(strs[2])); +//// } else if (effectiveTime.contains("-")) { +//// String[] strs = effectiveTime.replaceAll("-0", "-").split("-"); +//// // localDate = LocalDate.parse(effectiveTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 月份日期超过最大会被改为最大 +//// localDate = LocalDate.of(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Integer.parseInt(strs[2])); +//// } +//// } catch (Exception e) { +//// localDate = null; +//// } +//// +//// return localDate; +//// } +//// +// private List getEffectiveItemList(Collection salaryItemIds) { // // 没有薪资项目时,给个不存在的,否则加载所有不合理 // salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; // return new LambdaQueryChainWrapper<>(salaryArchiveItemMapper) @@ -1052,7 +1045,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // .list(); // } // -// private List getIneffectiveItemList(Collection salaryItemIds, String tenantKey) { +// private List getIneffectiveItemList(Collection salaryItemIds) { // // 没有薪资项目时,给个不存在的,否则加载所有不合理 // salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; // return new LambdaQueryChainWrapper<>(salaryArchiveItemMapper) @@ -1063,7 +1056,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // .list(); // } // -// private List getEffectiveTaxAgentList(String tenantKey) { +// private List getEffectiveTaxAgentList() { // return new LambdaQueryChainWrapper<>(salaryArchiveTaxAgentMapper) // .eq(SalaryArchiveTaxAgentPO::getDeleteType, 0) // .eq(SalaryArchiveTaxAgentPO::getTenantKey, tenantKey) @@ -1072,7 +1065,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // .list(); // } // -// private List getIneffectiveTaxAgentList(String tenantKey) { +// private List getIneffectiveTaxAgentList() { // return new LambdaQueryChainWrapper<>(salaryArchiveTaxAgentMapper) // .eq(SalaryArchiveTaxAgentPO::getDeleteType, 0) // .eq(SalaryArchiveTaxAgentPO::getTenantKey, tenantKey) @@ -1118,24 +1111,20 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // * 检查列头 // * // * @param importType -// * @param message // * @param headers // * @return // */ -// private boolean checkHeaders(String importType, BatchDocumentMessage message, List headers) { +// private boolean checkHeaders(String importType, List headers) { // boolean isValid = true; // boolean isInit = importType.equals(SalaryArchiveImportTypeEnum.INIT.getValue()); // boolean isTaxAgentAdjust = importType.equals(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getValue()); // boolean isSalaryItemAdjust = importType.equals(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()); // -// String tenantKey = message.getTenantKey(); -// Long currentEmployeeId = message.getUserId(); -// String userNameI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85429, "姓名"); -// String taxAgentI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 86184, "个税扣缴义务人"); -// String effectiveTimeI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85904, "生效日期"); -// String adjustReasonI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 85431, "调整原因"); // -// List headerList = headers.stream().map(m -> Optional.ofNullable(m.get("key")).orElse("").toString()).collect(Collectors.toList()); +// String userNameI18n = SalaryI18nUtil.getI18nLabel(85429, "姓名"); +// String taxAgentI18n = SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"); +// String effectiveTimeI18n = SalaryI18nUtil.getI18nLabel(85904, "生效日期"); +// String adjustReasonI18n = SalaryI18nUtil.getI18nLabel(85431, "调整原因"); // // List mustHeaders = Lists.newArrayList(); // if (isInit) { @@ -1153,78 +1142,76 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // mustHeaders.add(adjustReasonI18n); // } // // 缺少的必须列 -// List lackHeaders = mustHeaders.stream().filter(item -> !headerList.contains(item)).collect(Collectors.toList()); +// List lackHeaders = mustHeaders.stream().filter(item -> !headers.contains(item)).collect(Collectors.toList()); // // String errorMsg = ""; -// String checkHeaderI18n = SalaryI18nUtil.getI18nLabel(tenantKey, currentEmployeeId, 101850, "缺少如下列,请检查:"); +// String checkHeaderI18n = SalaryI18nUtil.getI18nLabel(101850, "缺少如下列,请检查:"); // if (CollectionUtils.isNotEmpty(lackHeaders)) { -// errorMsg = checkHeaderI18n + Joiner.on(",").join(lackHeaders); +// errorMsg = checkHeaderI18n + Joiner.on(",").join((Iterable) lackHeaders); // } // // // 有错误信息发送 // if (StringUtils.isNotEmpty(errorMsg)) { -// // 发送导入回调信息 -// salaryBatchService.sendImportCallBackInfo(message, errorMsg); -// isValid = false; +// throw new SalaryRunTimeException(errorMsg); // } // return isValid; // } // -// /** -// * 数据落库处理 -// * -// * @param importHandleParam -// */ -// private void handleImportData(boolean isInit, String tenantKey, SalaryArchiveImportHandleParam importHandleParam) { -// -// List salaryArchiveSaves = importHandleParam.getSalaryArchiveSaves(); -// List salaryArchiveTaxAgentSaves = importHandleParam.getSalaryArchiveTaxAgentSaves(); -// List salaryArchiveItemSaves = importHandleParam.getSalaryArchiveItemSaves(); -// List salaryArchiveTaxAgentDelTaxAgentIds = importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds(); -// List salaryArchiveItemDelSalaryItemIds = importHandleParam.getSalaryArchiveItemDelSalaryItemIds(); -// // 初始化导入 -// if (isInit) { -// List salaryArchiveTaxAgentIds = importHandleParam.getSalaryArchiveTaxAgentSaves().stream().map(SalaryArchiveTaxAgentPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); -// List salaryArchiveItemIds = importHandleParam.getSalaryArchiveItemSaves().stream().map(SalaryArchiveItemPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); -// List salaryArchiveIds = salaryArchiveTaxAgentIds.stream().filter(item -> salaryArchiveItemIds.contains(item)).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(salaryArchiveIds)) { -// List> partition = Lists.partition(salaryArchiveIds, 1000); -// for (List p : partition) { -// new LambdaUpdateChainWrapper<>(salaryArchiveTaxAgentMapper) -// .eq(SalaryArchiveTaxAgentPO::getDeleteType, 0) -// .eq(SalaryArchiveTaxAgentPO::getTenantKey, tenantKey) -// .in(SalaryArchiveTaxAgentPO::getSalaryArchiveId, p) -// .set(SalaryArchiveTaxAgentPO::getDeleteType, 1) -// .update(); -// new LambdaUpdateChainWrapper<>(salaryArchiveItemMapper) -// .eq(SalaryArchiveItemPO::getDeleteType, 0) -// .eq(SalaryArchiveItemPO::getTenantKey, tenantKey) -// .in(SalaryArchiveItemPO::getSalaryArchiveId, p) -// .set(SalaryArchiveItemPO::getDeleteType, 1) -// .update(); -// } -// } -// } else { -// if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgentDelTaxAgentIds)) { -// salaryArchiveTaxAgentMapper.deleteBatchIds(salaryArchiveTaxAgentDelTaxAgentIds); -// } -// if (CollectionUtils.isNotEmpty(salaryArchiveItemDelSalaryItemIds)) { -// salaryArchiveItemMapper.deleteBatchIds(salaryArchiveItemDelSalaryItemIds); -// } -// } -// -// // 新增薪资档案 -// if (CollectionUtils.isNotEmpty(salaryArchiveSaves)) { -// // 薪资档案 -// mapper.batchInsert(salaryArchiveSaves); -// } -// // 薪资档案-个税扣缴义务人 -// if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgentSaves)) { -// salaryArchiveTaxAgentMapper.batchInsert(salaryArchiveTaxAgentSaves); -// } -// // 薪资档案-薪资项目 -// if (CollectionUtils.isNotEmpty(salaryArchiveItemSaves)) { -// salaryArchiveItemMapper.batchInsert(salaryArchiveItemSaves); -// } -// } -} +//// /** +//// * 数据落库处理 +//// * +//// * @param importHandleParam +//// */ +//// private void handleImportData(boolean isInit, String tenantKey, SalaryArchiveImportHandleParam importHandleParam) { +//// +//// List salaryArchiveSaves = importHandleParam.getSalaryArchiveSaves(); +//// List salaryArchiveTaxAgentSaves = importHandleParam.getSalaryArchiveTaxAgentSaves(); +//// List salaryArchiveItemSaves = importHandleParam.getSalaryArchiveItemSaves(); +//// List salaryArchiveTaxAgentDelTaxAgentIds = importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds(); +//// List salaryArchiveItemDelSalaryItemIds = importHandleParam.getSalaryArchiveItemDelSalaryItemIds(); +//// // 初始化导入 +//// if (isInit) { +//// List salaryArchiveTaxAgentIds = importHandleParam.getSalaryArchiveTaxAgentSaves().stream().map(SalaryArchiveTaxAgentPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); +//// List salaryArchiveItemIds = importHandleParam.getSalaryArchiveItemSaves().stream().map(SalaryArchiveItemPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); +//// List salaryArchiveIds = salaryArchiveTaxAgentIds.stream().filter(item -> salaryArchiveItemIds.contains(item)).collect(Collectors.toList()); +//// if (CollectionUtils.isNotEmpty(salaryArchiveIds)) { +//// List> partition = Lists.partition(salaryArchiveIds, 1000); +//// for (List p : partition) { +//// new LambdaUpdateChainWrapper<>(salaryArchiveTaxAgentMapper) +//// .eq(SalaryArchiveTaxAgentPO::getDeleteType, 0) +//// .eq(SalaryArchiveTaxAgentPO::getTenantKey, tenantKey) +//// .in(SalaryArchiveTaxAgentPO::getSalaryArchiveId, p) +//// .set(SalaryArchiveTaxAgentPO::getDeleteType, 1) +//// .update(); +//// new LambdaUpdateChainWrapper<>(salaryArchiveItemMapper) +//// .eq(SalaryArchiveItemPO::getDeleteType, 0) +//// .eq(SalaryArchiveItemPO::getTenantKey, tenantKey) +//// .in(SalaryArchiveItemPO::getSalaryArchiveId, p) +//// .set(SalaryArchiveItemPO::getDeleteType, 1) +//// .update(); +//// } +//// } +//// } else { +//// if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgentDelTaxAgentIds)) { +//// salaryArchiveTaxAgentMapper.deleteBatchIds(salaryArchiveTaxAgentDelTaxAgentIds); +//// } +//// if (CollectionUtils.isNotEmpty(salaryArchiveItemDelSalaryItemIds)) { +//// salaryArchiveItemMapper.deleteBatchIds(salaryArchiveItemDelSalaryItemIds); +//// } +//// } +//// +//// // 新增薪资档案 +//// if (CollectionUtils.isNotEmpty(salaryArchiveSaves)) { +//// // 薪资档案 +//// mapper.batchInsert(salaryArchiveSaves); +//// } +//// // 薪资档案-个税扣缴义务人 +//// if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgentSaves)) { +//// salaryArchiveTaxAgentMapper.batchInsert(salaryArchiveTaxAgentSaves); +//// } +//// // 薪资档案-薪资项目 +//// if (CollectionUtils.isNotEmpty(salaryArchiveItemSaves)) { +//// salaryArchiveItemMapper.batchInsert(salaryArchiveItemSaves); +//// } +//// } +//} diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index ac4666848..0ba8ed754 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -73,7 +73,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe @Override public List listBySalarySobIdAndSalaryItemIdNotIn(Long salarySobId, Collection salaryItemIds) { - return salarySobItemMapper.listSome(SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemIds(salaryItemIds).build()); + return salarySobItemMapper.listSome(SalarySobItemPO.builder().salarySobId(salarySobId).notInSalaryItemIds(salaryItemIds).build()); } @Override diff --git a/src/com/engine/salary/util/excel/ExcelParseHelper.java b/src/com/engine/salary/util/excel/ExcelParseHelper.java index 79ce22f43..0ae024e98 100644 --- a/src/com/engine/salary/util/excel/ExcelParseHelper.java +++ b/src/com/engine/salary/util/excel/ExcelParseHelper.java @@ -9,9 +9,9 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.lang.reflect.Field; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; + +import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; /** * Excel 解析工具类 @@ -121,6 +121,35 @@ public class ExcelParseHelper { return result; } + + /** + * 将sheet数据转为map + * @param file + * @param sheetIndex sheet下标 + * @param rowIndex 从哪行开始解析 + * @return + */ + public static List> parse(InputStream file, int sheetIndex, int rowIndex) { + Sheet sheet = ExcelSupport.parseFile(file, sheetIndex, EXCEL_TYPE_XLSX); + int rowCount = sheet.getPhysicalNumberOfRows(); // 总行数 + int cellCount = sheet.getRow(PARSE_EXCEL_ROW_VALID_CELL_INDEX).getPhysicalNumberOfCells(); // 总列数 + + List sheetHeader = ExcelSupport.getSheetHeader(sheet, PARSE_EXCEL_ROW_VALID_CELL_INDEX); + + List> result = new ArrayList<>(); + for (; rowIndex < rowCount; rowIndex++) { + Map cellResult = new HashMap<>(); + for (int j = 0; j < cellCount; j++) { + String key = sheetHeader.get(j); + cellResult.put(key, ExcelSupport.getCellValue(sheet, rowIndex, j)); + } + result.add(cellResult); + } + return result; + } + + + /** * 为对象的每一个属性赋值 * diff --git a/src/com/engine/salary/util/excel/ExcelSupport.java b/src/com/engine/salary/util/excel/ExcelSupport.java index fc571190e..93d1289ea 100644 --- a/src/com/engine/salary/util/excel/ExcelSupport.java +++ b/src/com/engine/salary/util/excel/ExcelSupport.java @@ -2,10 +2,7 @@ package com.engine.salary.util.excel; import org.apache.commons.lang3.Validate; import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.DateUtil; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.web.multipart.MultipartFile; @@ -13,7 +10,10 @@ import java.io.BufferedInputStream; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.Iterator; +import java.util.List; import static org.apache.poi.ss.usermodel.CellType.STRING; @@ -23,8 +23,8 @@ public class ExcelSupport { private static final String pattern = "yyyy-MM-dd HH:mm:ss"; //excel类型 - private static final String EXCEL_TYPE_XLSX = "xlsx"; - private static final String EXCEL_TYPE_XLS = "xls"; + public static final String EXCEL_TYPE_XLSX = "xlsx"; + public static final String EXCEL_TYPE_XLS = "xls"; /** @@ -73,6 +73,26 @@ public class ExcelSupport { } } + /** + * 获取sheet的头列 + * + * @param sheet + * @param headerIndex 头下标 + * @return + */ + public static List getSheetHeader(Sheet sheet, int headerIndex) { + List headers = new ArrayList<>(); + Row headerRow = sheet.getRow(headerIndex); + Iterator cellIterator = headerRow.cellIterator(); + while (cellIterator.hasNext()) { + Cell cell = (Cell) cellIterator.next(); + java.lang.String stringCellValue = cell.getStringCellValue(); + headers.add(stringCellValue); + } + return headers; + } + + /** * 返回指定单元格的数据 * diff --git a/src/com/engine/salary/util/excel/ExcelUtil.java b/src/com/engine/salary/util/excel/ExcelUtil.java index 53c8ebfec..22ce0fa4a 100644 --- a/src/com/engine/salary/util/excel/ExcelUtil.java +++ b/src/com/engine/salary/util/excel/ExcelUtil.java @@ -185,12 +185,11 @@ public class ExcelUtil { } if(CollectionUtils.isNotEmpty(comments)){ - comments.forEach(c -> { + for (ExcelComment c:comments) { XSSFDrawing patr = sheet.createDrawingPatriarch(); XSSFComment cellComment = patr.createCellComment(new XSSFClientAnchor(c.dx1, c.dy1, c.dx2, c.dy2, c.col1, c.row1, c.col2, c.row2)); cellComment.setString(c.content); - }); - + } } return workbook; } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 4840c504f..6c7e747f1 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -21,7 +21,6 @@ import com.engine.salary.service.SalaryArchiveItemService; import com.engine.salary.service.SalaryArchiveService; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.SalaryArchiveItemServiceImpl; -import com.engine.salary.service.impl.SalaryArchiveServiceImpl; import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -45,7 +44,8 @@ import java.util.stream.Collectors; public class SalaryArchiveWrapper extends Service { private SalaryArchiveService getSalaryArchiveService(User user) { - return (SalaryArchiveService) ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + return null; +// return (SalaryArchiveService) ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); } private SalaryArchiveItemService getSalaryArchiveItemService(User user) { From a3604a28f07ef9593fdc71047e16ed2a21624a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 30 Mar 2022 12:15:49 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A0=A1=E9=A9=97=E8=A6=8F=E5=89=87?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/biz/SalarySobCheckRuleBiz.java | 16 ++++++++ .../dto/SalarySobCheckRuleListDTO.java | 5 +++ .../param/SalarySobCheckRuleQueryParam.java | 13 +++--- .../salarysob/SalarySobCheckRuleMapper.java | 6 ++- .../salarysob/SalarySobCheckRuleMapper.xml | 39 ++++++++++++++++++ .../service/SalarySobCheckRuleService.java | 6 ++- .../impl/SalarySobCheckRuleServiceImpl.java | 21 ++++------ .../salary/web/SalarySobController.java | 14 +++---- .../wrapper/SalarySobCheckRuleWrapper.java | 40 +++++++++++-------- 9 files changed, 115 insertions(+), 45 deletions(-) diff --git a/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java b/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java index 9e3e9fb01..74d9abf9d 100644 --- a/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java +++ b/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java @@ -1,7 +1,10 @@ package com.engine.salary.biz; +import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobCheckRulePO; import com.engine.salary.mapper.salarysob.SalarySobCheckRuleMapper; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.PageUtil; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; @@ -85,4 +88,17 @@ public class SalarySobCheckRuleBiz { sqlSession.close(); } } + + public PageInfo listPageByParam(SalarySobCheckRuleQueryParam param) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + SalarySobCheckRuleMapper mapper = sqlSession.getMapper(SalarySobCheckRuleMapper.class); + PageUtil.start(param.getCurrent(), param.getPageSize()); + List list = mapper.listByParam(param); + PageInfo pageInfo = new PageInfo(list, SalarySobCheckRulePO.class); + return pageInfo; + } finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobCheckRuleListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobCheckRuleListDTO.java index 6c4582ddc..d0e409b28 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobCheckRuleListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobCheckRuleListDTO.java @@ -4,6 +4,7 @@ import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.SalaryTableOperate; +import com.engine.salary.annotation.TableTitle; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -29,20 +30,24 @@ public class SalarySobCheckRuleListDTO { //主键id @SalaryTableColumn(column = "id", display = false) + @TableTitle(title = "id", dataIndex = "id", key = "id") private Long id; //薪资账套id private Long salarySobId; @SalaryTableColumn(text = "名称", width = "10%", column = "name") + @TableTitle(title = "名称", dataIndex = "name", key = "name") private String name; //公式id private Long formulaId; @SalaryTableColumn(text = "校验规则", width = "10%", column = "formulaContent") + @TableTitle(title = "校验规则", dataIndex = "formulaContent", key = "formulaContent") private String formulaContent; @SalaryTableColumn(text = "备注", width = "10%", column = "description") + @TableTitle(title = "备注", dataIndex = "description", key = "description") private String description; } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobCheckRuleQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobCheckRuleQueryParam.java index 8b7f90f54..648b5b791 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobCheckRuleQueryParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobCheckRuleQueryParam.java @@ -7,12 +7,13 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @description: 薪资账套校验规则查询参数 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 11/23/21 7:02 PM - * @version:v1.0 - */ + * 薪资账套校验规则查询参数 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Data @Builder @NoArgsConstructor diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.java b/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.java index de1b1a476..d8888e5a0 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.salarysob; +import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobCheckRulePO; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ public interface SalarySobCheckRuleMapper { * @return 返回集合,没有返回空List */ List listSome(SalarySobCheckRulePO salarySobCheckRule); + + List listByParam(SalarySobCheckRuleQueryParam param); /** @@ -83,5 +86,6 @@ public interface SalarySobCheckRuleMapper { * @param salarySobCheckRules */ void batchInsert(@Param("collection") Collection salarySobCheckRules); - + + } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.xml index 6cd8d9bf2..811026572 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobCheckRuleMapper.xml @@ -93,6 +93,45 @@ + + + + + + AND salary_sob_id = #{salarySobId} + + + AND name like CONCAT('%',#{name},'%') + + + + + + AND salary_sob_id = #{salarySobId} + + + AND name like '%'||#{name}||'%' + + + + + + AND salary_sob_id = #{salarySobId} + + + AND name like '%'+#{name}+'%' + + + + listPageByParam(SalarySobCheckRuleQueryParam queryParam); + PageInfo listPageByParam(SalarySobCheckRuleQueryParam queryParam); /** * 保存 @@ -99,4 +101,6 @@ public interface SalarySobCheckRuleService { * @param salarySobIds 薪资账套id */ void deleteBySalarySobIds(Collection salarySobIds); + + } diff --git a/src/com/engine/salary/service/impl/SalarySobCheckRuleServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobCheckRuleServiceImpl.java index c3b9c3b44..58f90b4e2 100644 --- a/src/com/engine/salary/service/impl/SalarySobCheckRuleServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobCheckRuleServiceImpl.java @@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SalarySobCheckRuleBiz; import com.engine.salary.entity.salarysob.bo.SalarySobCheckRuleBO; +import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleQueryParam; import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleSaveParam; import com.engine.salary.entity.salarysob.param.UpdateCheckRuleFormulaParam; import com.engine.salary.entity.salarysob.po.SalarySobCheckRulePO; @@ -13,6 +14,7 @@ import com.engine.salary.service.SalarySobCheckRuleService; import com.engine.salary.service.SalarySobService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections4.CollectionUtils; @@ -57,19 +59,12 @@ public class SalarySobCheckRuleServiceImpl extends Service implements SalarySobC return salarySobCheckRuleMapper.listSome(SalarySobCheckRulePO.builder().salarySobId(salarySobId).name(name).build()); } -// @Override -// public Page listPageByParam(SalarySobCheckRuleQueryParam queryParam) { -// // 分页参数 -// Page page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); -// // 查询薪资账套的校验规则 -// return new LambdaQueryChainWrapper<>(salarySobCheckRuleMapper) -// .eq(SalarySobCheckRulePO::getTenantKey, tenantKey) -// .eq(SalarySobCheckRulePO::getDeleteType, 0) -// .eq(SalarySobCheckRulePO::getSalarySobId, queryParam.getSalarySobId()) -// .like(SalaryEntityUtil.isNotNullOrEmpty(queryParam.getName()), SalarySobCheckRulePO::getName, queryParam.getName()) -// .orderByDesc(SalarySobCheckRulePO::getId) -// .page(page); -// } + @Override + public PageInfo listPageByParam(SalarySobCheckRuleQueryParam queryParam) { + + return salarySobCheckRuleMapper.listPageByParam(queryParam); + + } @Override public void save(SalarySobCheckRuleSaveParam saveParam) { diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index d73de34ed..5c14430af 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -313,13 +313,13 @@ public class SalarySobController { /** * 薪资账套校验规则列表 */ -// @POST -// @Path("/checkrule/list") -// @Produces(MediaType.APPLICATION_JSON) -// public String listSalarySobCheckRule(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobCheckRuleQueryParam queryParam) { -// User user = HrmUserVarify.getUser(request, response); -// return new ResponseResult>().run(getSalarySobCheckRuleWrapper(user)::listPage, queryParam); -// } + @POST + @Path("/checkrule/list") + @Produces(MediaType.APPLICATION_JSON) + public String listSalarySobCheckRule(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobCheckRuleQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getSalarySobCheckRuleWrapper(user)::listPage, queryParam); + } /** * 薪资账套校验规则表单 diff --git a/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java b/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java index c9804dbc1..c14c8e758 100644 --- a/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobCheckRuleWrapper.java @@ -4,6 +4,8 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.salarysob.bo.SalarySobCheckRuleBO; import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleFormDTO; +import com.engine.salary.entity.salarysob.dto.SalarySobCheckRuleListDTO; +import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleQueryParam; import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleSaveParam; import com.engine.salary.entity.salarysob.param.UpdateCheckRuleFormulaParam; import com.engine.salary.entity.salarysob.po.SalarySobCheckRulePO; @@ -12,10 +14,13 @@ import com.engine.salary.service.SalaryFormulaService; import com.engine.salary.service.SalarySobCheckRuleService; import com.engine.salary.service.impl.SalarySobCheckRuleServiceImpl; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.page.PageInfo; import com.weaver.excel.formula.api.entity.ExpressFormula; import weaver.hrm.User; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Objects; /** @@ -40,27 +45,28 @@ public class SalarySobCheckRuleWrapper extends Service { * 薪资账套的校验规则列表 * * @param queryParam 列表查询条件 - * @param tenantKey 租户key * @return */ -// public WeaTable listPage(SalarySobCheckRuleQueryParam queryParam, String tenantKey) { -// // 分页查询薪资账套的校验规则 -// Page page = salarySobCheckRuleService.listPageByParam(queryParam, tenantKey); -// // 查询公式详情 -// Set formulaIds = SalaryEntityUtil.properties(page.getRecords(), SalarySobCheckRulePO::getFormulaId); -// List expressFormulas = salaryFormulaService.listExpressFormula(formulaIds, tenantKey); -// // 转换成dto -// List salarySobCheckRuleListDTOS = SalarySobCheckRuleBO.convert2ListDTO(page.getRecords(), expressFormulas); -// // 转换成前端所需的数据格式 -// Page dtoPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal(), page.isSearchCount()); -// dtoPage.setRecords(salarySobCheckRuleListDTOS); -// return SalaryFormatUtil.getInstance().buildTable(SalarySobCheckRuleListDTO.class, dtoPage); -// } + public PageInfo listPage(SalarySobCheckRuleQueryParam queryParam) { + // 分页查询薪资账套的校验规则 + PageInfo page = getSalarySobCheckRuleService(user).listPageByParam(queryParam); + // todo 查询公式详情 +// Set formulaIds = SalaryEntityUtil.properties(page.getList(), SalarySobCheckRulePO::getFormulaId); +// List expressFormulas = salaryFormulaService.listExpressFormula(formulaIds); + // 转换成dto + List salarySobCheckRuleListDTOS = SalarySobCheckRuleBO.convert2ListDTO(page.getList(), new ArrayList<>()); + // 转换成前端所需的数据格式 + PageInfo dtoPage = new PageInfo<>(salarySobCheckRuleListDTOS, SalarySobCheckRuleListDTO.class); + dtoPage.setPageSize(page.getPageSize()); + dtoPage.setPageNum(page.getPageNum()); + dtoPage.setTotal(page.getTotal()); + return dtoPage; + } /** * 薪资账套的校验规则详情 * - * @param id 校验规则的id + * @param id 校验规则的id * @return */ public SalarySobCheckRuleFormDTO getForm(Long id) { @@ -83,7 +89,7 @@ public class SalarySobCheckRuleWrapper extends Service { /** * 保存 * - * @param saveParam 保存参数 + * @param saveParam 保存参数 */ public void save(SalarySobCheckRuleSaveParam saveParam) { getSalarySobCheckRuleService(user).save(saveParam); @@ -110,7 +116,7 @@ public class SalarySobCheckRuleWrapper extends Service { /** * 删除 * - * @param ids 校验规则的id + * @param ids 校验规则的id */ public void delete(Collection ids) { getSalarySobCheckRuleService(user).deleteByIds(ids);