From dc008dad5c710b417cf6cbfac9d7fed827a751e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 19 Apr 2022 19:32:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SalaryAcctExcelService.java | 8 + .../impl/SalaryAcctExcelServiceImpl.java | 412 +++++++++--------- .../impl/SalaryAcctResultServiceImpl.java | 3 + .../salary/web/SalaryAcctController.java | 28 +- 4 files changed, 234 insertions(+), 217 deletions(-) diff --git a/src/com/engine/salary/service/SalaryAcctExcelService.java b/src/com/engine/salary/service/SalaryAcctExcelService.java index 2860c028d..de8c8ecb3 100644 --- a/src/com/engine/salary/service/SalaryAcctExcelService.java +++ b/src/com/engine/salary/service/SalaryAcctExcelService.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.util.List; +import java.util.Map; /** * 薪资核算导入导出 @@ -75,6 +76,13 @@ public interface SalaryAcctExcelService { * @return */ XSSFWorkbook exportComparisonResultTemplate(SalaryComparisonResultExportParam exportParam); + + + Map importSalaryAcctResult(SalaryAcctImportParam param); + + + Map importExcelAcctResult(SalaryAcctImportParam param); + // // /** // * 薪资核算结果校验异常导出 diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index d9abbb9b9..6f6ec0a28 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -39,6 +39,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.file.ImageFileManager; import weaver.hrm.User; @@ -419,44 +420,17 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return ExcelUtil.genWorkbookV2(rows, sheetName); } + public Map importSalaryAcctResult(SalaryAcctImportParam param) { + return batchImport(param, "importSalaryAcctResult"); + } -// -// @BatchImportHandler("importSalaryAcctResult") -// @Transactional(rollbackFor = Exception.class) -// public void importSalaryAcctResult() { -// BatchDocumentMessage message = BatchImportContext.getBatchDocumentMessage(); -// String tenantKey = message.getTenantKey(); -// try { -// // 加密用 -// DSTenantKeyThreadVar.tenantKey.set(tenantKey); -// // 接收到解析的数据 -// batchImport(message, "importSalaryAcctResult"); -// } catch (Exception e) { -// log.error("薪资核算结果导入失败:{}", e.getMessage(), e); -// } finally { -// DSTenantKeyThreadVar.tenantKey.remove(); -// } -// } -// @BatchImportHandler("importExcelAcctResult") -// @Transactional(rollbackFor = Exception.class) -// public void importExcelAcctResult() { -// BatchDocumentMessage message = BatchImportContext.getBatchDocumentMessage(); -// String tenantKey = message.getTenantKey(); -// try { -// // 加密用 -// DSTenantKeyThreadVar.tenantKey.set(tenantKey); -// // 接收到解析的数据 -// batchImport(message, "importExcelAcctResult"); -// } catch (Exception e) { -// log.error("线下核算结果导入失败:{}", e.getMessage(), e); -// } finally { -// // 加密用 -// DSTenantKeyThreadVar.tenantKey.remove(); -// } -// } + public Map importExcelAcctResult(SalaryAcctImportParam param) { + return batchImport(param, "importExcelAcctResult"); + } private Map batchImport(SalaryAcctImportParam param, String importType) { + Map apidatas = new HashMap(); ValidUtil.doValidator(param); Date now = new Date(); @@ -509,205 +483,215 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List excelAcctResults = Lists.newArrayList(); InputStream fileInputStream = null; - fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); - - Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); + try { - // 错误提示信息 - List excelComments = Lists.newArrayList(); - // 存在错误的那行数据 - List> errorDatas = Lists.newArrayList(); - // 表头 - List headers = ExcelSupport.getSheetHeader(sheet, 0); - ; - // 处理数值 - List> data = ExcelParseHelper.parse2Map(sheet, 1); - if (CollectionUtils.isEmpty(headers)) { - throw new RuntimeException("表头为空"); - } - if (CollectionUtils.isEmpty(data)) { - throw new RuntimeException(""); - } - for (int i = 0; i < data.size(); i++) { - int usernameIndex = 0; - boolean isError = false; - Map map = data.get(i); - Long employeeId = 0L; - Long taxAgentId = 0L; - List salaryAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1); - List excelAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1); - for (int j = 0; j < headers.size(); j++) { - String header = headers.get(j); - String dataKey = header; - if (dataKey == null) { - continue; - } - String dataValue = (String) map.getOrDefault(dataKey.toString(), ""); - if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(85429, "姓名"), dataKey.toString())) { - usernameIndex = j; - if (StringUtils.isEmpty(dataValue)) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空")); - excelComments.add(errorMessageMap); - //salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空"), i, i, j, j); - } else { - employeeId = salaryEmployeeMap.getOrDefault(dataValue, 0L); - if (employeeId == null || employeeId <= 0) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名")); - excelComments.add(errorMessageMap); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名"), i, i, j, j); - } - } - } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), dataKey.toString())) { - if (StringUtils.isEmpty(dataValue)) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102839, "个税扣缴义务人不能为空"))); - excelComments.add(errorMessageMap); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102839, "个税扣缴义务人不能为空"), i, i, j, j); - } else { - taxAgentId = taxAgentNameMap.getOrDefault(dataValue, 0L); - if (taxAgentId == null || taxAgentId <= 0) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102840, "个税扣缴义务人错误,系统内不存在该个税扣缴义务人"))); - excelComments.add(errorMessageMap); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102840, "个税扣缴义务人错误,系统内不存在该个税扣缴义务人"), i, i, j, j); - } - } - } else { - Long salaryItemId = salaryItemMap.get(dataKey.toString()); - if (salaryItemId == null || salaryItemId <= 0) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102840, "本次核算所用账套不包含该薪资项目"))); - excelComments.add(errorMessageMap); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102841, "表头错误,本次核算所用账套不包含该薪资项目"), i, i, j, j); - } else { - excelSalaryItemIds.add(salaryItemId); - if (StringUtils.equals("importExcelAcctResult", importType)) { - ExcelAcctResultPO excelAcctResult = ExcelAcctResultPO.builder() -// .id(IdGenerator.generate()) - .salaryAcctRecordId(salaryAcctRecordPO.getId()) - .salarySobId(salaryAcctRecordPO.getSalarySobId()) - .salaryItemId(salaryItemId) - .resultValue(dataValue) - .creator(currentEmployeeId) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - excelAcctResultsOfOneEmp.add(excelAcctResult); - } - if (StringUtils.equals("importSalaryAcctResult", importType)) { - SalaryAcctResultPO salaryAcctResult = SalaryAcctResultPO.builder() -// .id(IdGenerator.generate()) - .salaryAcctRecordId(salaryAcctRecordPO.getId()) - .salarySobId(salaryAcctRecordPO.getSalarySobId()) - .salaryItemId(salaryItemId) - .resultValue(dataValue) - .creator(currentEmployeeId) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - salaryAcctResultsOfOneEmp.add(salaryAcctResult); - } - } - } - // (如果是线下对比)如果个税扣缴义务人+人员目前不在核算人员里面,不支持导入 - if (StringUtils.equals("importExcelAcctResult", importType) - && (employeeId != null && employeeId > 0) - && (taxAgentId != null && taxAgentId > 0) - && i == data.size() - 1 - && !salaryAcctEmployeeMap.containsKey(employeeId + "-" + taxAgentId)) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102840, "本次薪资核算不包含该人员"))); - excelComments.add(errorMessageMap); -// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102842, "本次薪资核算不包含该人员"), i, i, usernameIndex, usernameIndex); - } + fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); + + Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); + + + // 错误提示信息 + List excelComments = Lists.newArrayList(); + // 存在错误的那行数据 + List> errorDatas = Lists.newArrayList(); + // 表头 + List headers = ExcelSupport.getSheetHeader(sheet, 0); + + // 处理数值 + List> data = ExcelParseHelper.parse2Map(sheet, 1); + if (CollectionUtils.isEmpty(headers)) { + throw new RuntimeException("表头为空"); } - // 每处理50个数据更新一次进度 - index++; + if (CollectionUtils.isEmpty(data)) { + throw new RuntimeException("无数据"); + } + for (int i = 0; i < data.size(); i++) { + int usernameIndex = 0; + boolean isError = false; + Map map = data.get(i); + Long employeeId = 0L; + Long taxAgentId = 0L; + List salaryAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1); + List excelAcctResultsOfOneEmp = Lists.newArrayListWithExpectedSize(headers.size() - 1); + for (int j = 0; j < headers.size(); j++) { + String header = headers.get(j); + String dataKey = header; + if (dataKey == null) { + continue; + } + String dataValue = (String) map.getOrDefault(dataKey.toString(), ""); + if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(85429, "姓名"), dataKey.toString())) { + usernameIndex = j; + if (StringUtils.isEmpty(dataValue)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空")); + excelComments.add(errorMessageMap); + //salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空"), i, i, j, j); + } else { + employeeId = salaryEmployeeMap.getOrDefault(dataValue, 0L); + if (employeeId == null || employeeId <= 0) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名")); + excelComments.add(errorMessageMap); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100579, "姓名错误,系统内不存在该姓名"), i, i, j, j); + } + } + } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), dataKey.toString())) { + if (StringUtils.isEmpty(dataValue)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102839, "个税扣缴义务人不能为空"))); + excelComments.add(errorMessageMap); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102839, "个税扣缴义务人不能为空"), i, i, j, j); + } else { + taxAgentId = taxAgentNameMap.getOrDefault(dataValue, 0L); + if (taxAgentId == null || taxAgentId <= 0) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102840, "个税扣缴义务人错误,系统内不存在该个税扣缴义务人"))); + excelComments.add(errorMessageMap); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102840, "个税扣缴义务人错误,系统内不存在该个税扣缴义务人"), i, i, j, j); + } + } + } else { + Long salaryItemId = salaryItemMap.get(dataKey.toString()); + if (salaryItemId == null || salaryItemId <= 0) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102840, "本次核算所用账套不包含该薪资项目"))); + excelComments.add(errorMessageMap); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102841, "表头错误,本次核算所用账套不包含该薪资项目"), i, i, j, j); + } else { + excelSalaryItemIds.add(salaryItemId); + if (StringUtils.equals("importExcelAcctResult", importType)) { + ExcelAcctResultPO excelAcctResult = ExcelAcctResultPO.builder() +// .id(IdGenerator.generate()) + .salaryAcctRecordId(salaryAcctRecordPO.getId()) + .salarySobId(salaryAcctRecordPO.getSalarySobId()) + .salaryItemId(salaryItemId) + .resultValue(dataValue) + .creator(currentEmployeeId) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + excelAcctResultsOfOneEmp.add(excelAcctResult); + } + if (StringUtils.equals("importSalaryAcctResult", importType)) { + SalaryAcctResultPO salaryAcctResult = SalaryAcctResultPO.builder() +// .id(IdGenerator.generate()) + .salaryAcctRecordId(salaryAcctRecordPO.getId()) + .salarySobId(salaryAcctRecordPO.getSalarySobId()) + .salaryItemId(salaryItemId) + .resultValue(dataValue) + .creator(currentEmployeeId) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + salaryAcctResultsOfOneEmp.add(salaryAcctResult); + } + } + } + // (如果是线下对比)如果个税扣缴义务人+人员目前不在核算人员里面,不支持导入 + if (StringUtils.equals("importExcelAcctResult", importType) + && (employeeId != null && employeeId > 0) + && (taxAgentId != null && taxAgentId > 0) + && i == data.size() - 1 + && !salaryAcctEmployeeMap.containsKey(employeeId + "-" + taxAgentId)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, SalaryI18nUtil.getI18nLabel(102840, "本次薪资核算不包含该人员"))); + excelComments.add(errorMessageMap); +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102842, "本次薪资核算不包含该人员"), i, i, usernameIndex, usernameIndex); + } + } + // 每处理50个数据更新一次进度 + index++; // if (index % 50 == 0 || index >= total) { // salaryBatchService.sendImportRate(message.getBizId(), total, index); // } - if (isError) { - failCount++; - errorDatas.add(map); - continue; - } - SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(employeeId + "-" + taxAgentId); - Long salaryAcctEmpId = Optional.ofNullable(salaryAcctEmployee).map(SalaryAcctEmployeePO::getId).orElse(0L); - if (StringUtils.equals("importExcelAcctResult", importType)) { - for (ExcelAcctResultPO excelAcctResultPO : excelAcctResultsOfOneEmp) { - excelAcctResultPO.setEmployeeId(employeeId); - excelAcctResultPO.setTaxAgentId(taxAgentId); - excelAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId); + if (isError) { + failCount++; + errorDatas.add(map); + continue; } - excelAcctResults.addAll(excelAcctResultsOfOneEmp); - } - if (StringUtils.equals("importSalaryAcctResult", importType)) { - if (salaryAcctEmpId <= 0) { - SalaryAcctEmployeePO acctEmployee = SalaryAcctEmployeePO.builder() + SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(employeeId + "-" + taxAgentId); + Long salaryAcctEmpId = Optional.ofNullable(salaryAcctEmployee).map(SalaryAcctEmployeePO::getId).orElse(0L); + if (StringUtils.equals("importExcelAcctResult", importType)) { + for (ExcelAcctResultPO excelAcctResultPO : excelAcctResultsOfOneEmp) { + excelAcctResultPO.setEmployeeId(employeeId); + excelAcctResultPO.setTaxAgentId(taxAgentId); + excelAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId); + } + excelAcctResults.addAll(excelAcctResultsOfOneEmp); + } + if (StringUtils.equals("importSalaryAcctResult", importType)) { + if (salaryAcctEmpId <= 0) { + SalaryAcctEmployeePO acctEmployee = SalaryAcctEmployeePO.builder() // .id(IdGenerator.generate()) - .employeeId(employeeId) - .salaryAcctRecordId(salaryAcctRecordId) - .salarySobId(salaryAcctRecordPO.getSalarySobId()) - .salaryMonth(salaryAcctRecordPO.getSalaryMonth()) - .taxAgentId(taxAgentId) - .creator(currentEmployeeId) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - newSalaryAcctEmployees.add(acctEmployee); - salaryAcctEmpId = acctEmployee.getId(); + .employeeId(employeeId) + .salaryAcctRecordId(salaryAcctRecordId) + .salarySobId(salaryAcctRecordPO.getSalarySobId()) + .salaryMonth(salaryAcctRecordPO.getSalaryMonth()) + .taxAgentId(taxAgentId) + .creator(currentEmployeeId) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + newSalaryAcctEmployees.add(acctEmployee); + salaryAcctEmpId = acctEmployee.getId(); + } + for (SalaryAcctResultPO salaryAcctResultPO : salaryAcctResultsOfOneEmp) { + salaryAcctResultPO.setEmployeeId(employeeId); + salaryAcctResultPO.setTaxAgentId(taxAgentId); + salaryAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId); + } + salaryAcctEmpIds.add(salaryAcctEmpId); + salaryAcctResults.addAll(salaryAcctResultsOfOneEmp); } - for (SalaryAcctResultPO salaryAcctResultPO : salaryAcctResultsOfOneEmp) { - salaryAcctResultPO.setEmployeeId(employeeId); - salaryAcctResultPO.setTaxAgentId(taxAgentId); - salaryAcctResultPO.setSalaryAcctEmpId(salaryAcctEmpId); - } - salaryAcctEmpIds.add(salaryAcctEmpId); - salaryAcctResults.addAll(salaryAcctResultsOfOneEmp); + successCount++; } - successCount++; - } - // 如果sheet包含错误数据 + // 如果sheet包含错误数据 // if (CollectionUtils.isNotEmpty(errorDatas)) { // salaryBatchService.createErrorExcelSheet(headers, errorDatas, excelSheet.getName(), excelComments, errorExcelSheets); // } - if (StringUtils.equals("importExcelAcctResult", importType)) { - getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); - if (CollectionUtils.isNotEmpty(excelAcctResults)) { - getSalaryComparisonResultService(user).batchSave(excelAcctResults); + if (StringUtils.equals("importExcelAcctResult", importType)) { + getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); + if (CollectionUtils.isNotEmpty(excelAcctResults)) { + getSalaryComparisonResultService(user).batchSave(excelAcctResults); + } } - } - if (StringUtils.equals("importSalaryAcctResult", importType)) { - if (CollectionUtils.isNotEmpty(salaryAcctEmpIds)) { - getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); + if (StringUtils.equals("importSalaryAcctResult", importType)) { + if (CollectionUtils.isNotEmpty(salaryAcctEmpIds)) { + getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); + } + if (CollectionUtils.isNotEmpty(salaryAcctResults)) { + getSalaryAcctResultService(user).batchSave(salaryAcctResults); + } + if (CollectionUtils.isNotEmpty(newSalaryAcctEmployees)) { + getSalaryAcctEmployeeService(user).batchSave(newSalaryAcctEmployees); + } } - if (CollectionUtils.isNotEmpty(salaryAcctResults)) { - getSalaryAcctResultService(user).batchSave(salaryAcctResults); - } - if (CollectionUtils.isNotEmpty(newSalaryAcctEmployees)) { - getSalaryAcctEmployeeService(user).batchSave(newSalaryAcctEmployees); - } - } + apidatas.put("successCount", successCount); + apidatas.put("errorCount", failCount); + apidatas.put("errorData", excelComments); + + } finally { + IOUtils.closeQuietly(fileInputStream); + } // 发送导入回调信息 // salaryBatchService.sendImportCallBackInfo(message, successCount, failCount, errorExcelSheets); - return null; + return apidatas; } // @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index f735b85fd..eb04cff65 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -181,6 +181,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 薪资核算结果的分页结果 PageInfo> resultPage = new PageInfo<>(); resultPage.setList(data); + resultPage.setTotal(page.getTotal()); + resultPage.setPageNum(page.getPageNum()); + resultPage.setPageSize(page.getPageSize()); return resultPage; } diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 5909e8b2e..4281c1e05 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -1,7 +1,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.salaryacct.dto.*; +import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; +import com.engine.salary.entity.salaryacct.dto.SalaryAccEmployeeListDTO; +import com.engine.salary.entity.salaryacct.dto.SalaryAcctImportFieldDTO; +import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO; import com.engine.salary.entity.salaryacct.param.*; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; @@ -89,7 +92,7 @@ public class SalaryAcctController { @Produces(MediaType.APPLICATION_JSON) public String getForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>().run(getSalaryAcctRecordWrapper(user)::getForm, id); + return new ResponseResult>().run(getSalaryAcctRecordWrapper(user)::getForm, id); } //获取薪资核算的薪资周期、考勤周期等 @@ -424,6 +427,15 @@ public class SalaryAcctController { return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); } + //导入核算结果 + @POST + @Path("/acctresult/importParams") + @Produces(MediaType.APPLICATION_JSON) + public String importSalaryAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getSalaryAcctExcelService(user)::importSalaryAcctResult, param); + } + // **********************************薪资核算结果 end*********************************/ // **********************************检验异常 start*********************************/ @@ -591,7 +603,7 @@ public class SalaryAcctController { public Response exportComparisonResultTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { SalaryComparisonResultExportParam param = new SalaryComparisonResultExportParam(); String salaryAcctRecordId = request.getParameter("salaryAcctRecordId"); - if(StringUtils.isNotBlank(salaryAcctRecordId)){ + if (StringUtils.isNotBlank(salaryAcctRecordId)) { param.setSalaryAcctRecordId(Long.parseLong(salaryAcctRecordId)); } @@ -612,5 +624,15 @@ public class SalaryAcctController { return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); } + //导入线下核算结果 + @POST + @Path("/comparisonresult/importExcelAcctResult") + @Produces(MediaType.APPLICATION_JSON) + public String importExcelAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getSalaryAcctExcelService(user)::importExcelAcctResult, param); + } + + /**********************************线下对比 end*********************************/ }