diff --git a/src/com/engine/salary/biz/SalaryArchiveTaxAgentBiz.java b/src/com/engine/salary/biz/SalaryArchiveTaxAgentBiz.java index b7e7060e0..1201076fd 100644 --- a/src/com/engine/salary/biz/SalaryArchiveTaxAgentBiz.java +++ b/src/com/engine/salary/biz/SalaryArchiveTaxAgentBiz.java @@ -20,4 +20,13 @@ public class SalaryArchiveTaxAgentBiz { } } + public void deleteBySalaryArchiveId(List salaryArchiveIds) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + SalaryArchiveTaxAgentMapper mapper = sqlSession.getMapper(SalaryArchiveTaxAgentMapper.class); + mapper.deleteBySalaryArchiveId(salaryArchiveIds); + } finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java index 32120eafa..d5dc5f517 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.java @@ -64,4 +64,6 @@ public interface SalaryArchiveTaxAgentMapper { int delete(SalaryArchiveTaxAgentPO salaryArchiveTaxAgent); List listByParam(@Param("param") SalaryArchiveTaxAgentQueryParam build); + + void deleteBySalaryArchiveId(List salaryArchiveIds); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml index 9e4a0e561..fef43a12e 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveTaxAgentMapper.xml @@ -316,4 +316,15 @@ + + UPDATE hrsa_salary_archive_tax_agent + SET delete_type = 1 + WHERE delete_type = 0 + AND salary_archive_id IN + + #{salaryArchiveIds} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml index fdf149297..5a188125b 100644 --- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml +++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml @@ -336,7 +336,7 @@ #{item.useDefault}, #{item.useInEmployeeSalary}, #{item.roundingMode}, #{item.pattern}, #{item.valueType}, #{item.formulaId}, #{item.description}, #{item.canEdit}, - #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey},#{dataType}) + #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey},#{item.dataType}) @@ -350,7 +350,7 @@ #{item.useDefault}, #{item.useInEmployeeSalary}, #{item.roundingMode}, #{item.pattern}, #{item.valueType}, #{item.formulaId}, #{item.description}, #{item.canEdit}, - #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey,#{dataType}} from dual + #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey,#{item.dataType}} from dual @@ -364,7 +364,7 @@ #{item.useDefault}, #{item.useInEmployeeSalary}, #{item.roundingMode}, #{item.pattern}, #{item.valueType}, #{item.formulaId}, #{item.description}, #{item.canEdit}, - #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey}, #{dataType}) + #{item.createTime}, #{item.updateTime}, #{item.creator}, 0, #{item.tenantKey}, #{item.dataType}) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index a02b0ab40..08915b930 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -5,8 +5,10 @@ //import com.engine.salary.common.LocalDateRange; //import com.engine.salary.constant.SalaryDefaultTenantConstant; //import com.engine.salary.constant.SalaryItemConstant; +//import com.engine.salary.entity.datacollection.DataCollectionEmployee; //import com.engine.salary.entity.salaryarchive.bo.SalaryArchiveBO; //import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; +//import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveInitImportDTO; //import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; //import com.engine.salary.entity.salaryarchive.param.*; //import com.engine.salary.entity.salaryarchive.po.SalaryArchiveDimissionPO; @@ -17,8 +19,11 @@ //import com.engine.salary.entity.taxrate.TaxAgent; //import com.engine.salary.enums.SalaryUserStatusEnum; //import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; +//import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; +//import com.engine.salary.enums.salaryarchive.SalaryArchiveTaxAgentAdjustReasonEnum; //import com.engine.salary.exception.SalaryRunTimeException; //import com.engine.salary.service.SalaryArchiveService; +//import com.engine.salary.util.SalaryDateUtil; //import com.engine.salary.util.SalaryI18nUtil; //import com.engine.salary.util.excel.ExcelComment; //import com.engine.salary.util.excel.ExcelParseHelper; @@ -30,14 +35,13 @@ //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.text.SimpleDateFormat; //import java.util.*; //import java.util.concurrent.ExecutorService; //import java.util.stream.Collectors; @@ -440,71 +444,50 @@ // // int total = data.size(); // -// int index = 0; // int successCount = 0; // int errorCount = 0; -// // 错误excel内容 -// List errorExcelSheets = new ArrayList<>(); // // 用于(初始化导入)的相同employeeId时的处理 // boolean isInit = importType.equals(SalaryArchiveImportTypeEnum.INIT.getValue()); // List initImportData = Lists.newArrayList(); // // 用于(调薪和调整个税扣缴义务人)的相同employeeId时取第一条记录,如果是初始化导入则有重复 // List allEmployeeIds = Lists.newArrayList(); -// for (ExcelSheet excelSheet : excelSheets) { -// if (excelSheet.getHeader().size() == 0) { -// continue; -// } // -// -// 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(85904, "生效日期"))) { -// effectiveTimeIndex = j; -// } -// } -// // 错误sheet数据 -// List> errorData = new ArrayList<>(); -// // 错误提示 -// List excelComments = new ArrayList<>(); -// -// List> data = excelSheet.getData(); -// Map map; -// if (data == null) { -// continue; -// } -// for (int i = 0; i < data.size(); i++) { -// index += 1; -// map = data.get(i); -// // 3.校验行内容 -// boolean isError = singleRowCheck(importType, allEmployeeIds, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam); -// -// if (isError) { -// errorCount += 1; -// // 添加错误数据 -// errorData.add(map); -// } else { -// successCount += 1; -// } -// // 初始化导入对重复记录校验 -// if (isInit) { -// Map validMap = validInitImportData(isError, i, map, excelComments, errorCount, successCount, errorData, initImportData, currentEmployeeId, tenantKey, importHandleParam); -// errorCount = Integer.parseInt(validMap.getOrDefault("errorCount", errorCount).toString()); -// successCount = Integer.parseInt(validMap.getOrDefault("successCount", successCount).toString()); -// } -// // 导入进度 -// salaryBatchService.sendImportRate(message.getBizId(), total, index); -// } -// -// // 如果sheet包含错误数据 -// if (CollectionUtils.isNotEmpty(errorData)) { -// salaryBatchService.createErrorExcelSheet(headers, errorData, excelSheet.getName(), excelComments, errorExcelSheets); +// int effectiveTimeIndex = 0; +// for (int j = 0; j < headers.size(); j++) { +// if (headers.get(j).equals(SalaryI18nUtil.getI18nLabel(85904, "生效日期"))) { +// effectiveTimeIndex = j; // } // } +// // 错误sheet数据 +// List> errorData = new ArrayList<>(); +// // 错误提示 +// List excelComments = new ArrayList<>(); +// +// +// for (int i = 0; i < data.size(); i++) { +// Map map = data.get(i); +// // 3.校验行内容 +// boolean isError = singleRowCheck(importType, allEmployeeIds, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam); +// +// if (isError) { +// errorCount += 1; +// // 添加错误数据 +// errorData.add(map); +// } else { +// successCount += 1; +// } +// // 初始化导入对重复记录校验 +// if (isInit) { +// Map validMap = validInitImportData(isError, i, map, excelComments, errorCount, successCount, errorData, initImportData, importHandleParam); +// errorCount = Integer.parseInt(validMap.getOrDefault("errorCount", errorCount).toString()); +// successCount = Integer.parseInt(validMap.getOrDefault("successCount", successCount).toString()); +// } +// +// } +// // // // 4.数据入库处理 -// handleImportData(isInit, tenantKey, importHandleParam); +// handleImportData(isInit, importHandleParam); // // // 发送导入回调信息 // salaryBatchService.sendImportCallBackInfo(message, successCount, errorCount, errorExcelSheets); @@ -571,7 +554,7 @@ // * @param tenantKey // * @param importHandleParam // */ -// private Map validInitImportData(boolean isError, int rowNo, Map map, List excelComments, int errorCount, int successCount, List> errorData, List initImportData, Long currentEmployeeId, String tenantKey, SalaryArchiveImportHandleParam importHandleParam) { +// private Map validInitImportData(boolean isError, int rowNo, Map map, List excelComments, int errorCount, int successCount, List> errorData, List initImportData, SalaryArchiveImportHandleParam importHandleParam) { // Long employeeId = Long.valueOf(Optional.ofNullable(map.get("employeeId")).orElse("0").toString()); // Optional optionalInitImport = initImportData.stream().filter(f -> f.getEmployeeId().equals(employeeId)).findFirst(); // @@ -653,7 +636,7 @@ // return validMap; // } // -// /** +// /** // * 校验单行数据 // * // * @param importType @@ -662,12 +645,10 @@ // * @param headers // * @param excelComments // * @param errorCount -// * @param currentEmployeeId -// * @param tenantKey // * @param importHandleParam // * @return // */ -// private boolean singleRowCheck(String importType, List allEmployeeIds, Map map, List headers, int effectiveTimeIndex, List excelComments, int errorCount, Long currentEmployeeId, String tenantKey, SalaryArchiveImportHandleParam importHandleParam) { +// private boolean singleRowCheck(String importType, List allEmployeeIds, Map map, List headers, int effectiveTimeIndex, List excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam) { // boolean isError = false; // // boolean isInit = importType.equals(SalaryArchiveImportTypeEnum.INIT.getValue()); @@ -682,7 +663,7 @@ // String userName = Optional.ofNullable(map.get(userNameI18n)).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) +// && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))).map(DataCollectionEmployee::getEmployeeId) // .collect(Collectors.toList()); // Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 && employeeSameIds.get(0) > 0 ? employeeSameIds.get(0) : null; // // 调薪和调整个税扣缴义务人的存在相同的取第一条 @@ -700,47 +681,44 @@ // // 免得失败后,会追加 00:00:00 // map.put(effectiveTimeI18n, effectiveTimeCellVal); // map.put("effectiveTime", effectiveTimeCellVal); -// LocalDate effectiveTime = SalaryDateUtil.checkDay(effectiveTimeCellVal) ? dateStrToLocalDate(effectiveTimeCellVal) : null; +// Date effectiveTime = SalaryDateUtil.checkDay(effectiveTimeCellVal) ? dateStrToLocalDate(effectiveTimeCellVal) : null; // // 3.个税扣缴义务人 // String taxAgentCellVal = Optional.ofNullable(map.get(taxAgentI18n)).orElse("").toString(); // // 用于初始化导入的同一个人的记录校验 // map.put("taxAgent", taxAgentCellVal); -// Optional optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getName().equals(taxAgentCellVal)).findFirst(); -// Long taxAgentId = optionalTaxAgent.map(TaxAgentListDTO::getId).orElse(null); +// Optional optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getName().equals(taxAgentCellVal)).findFirst(); +// Long taxAgentId = optionalTaxAgent.map(TaxAgent::getId).orElse(null); // // 4.调整原因 // String adjustReason = ""; // if (isTaxAgentAdjust) { // // 4.调整原因[个税扣缴义务人] -// adjustReason = SalaryArchiveTaxAgentAdjustReasonEnum.getValueByDefaultLabel(Optional.ofNullable(map.get(adjustReasonI18n)).orElse("").toString(), currentEmployeeId, tenantKey); +// adjustReason = SalaryArchiveTaxAgentAdjustReasonEnum.getValueByDefaultLabel(Optional.ofNullable(map.get(adjustReasonI18n)).orElse("").toString()); // } else if (isSalaryItemAdjust) { // // 4.调整原因[薪资项目] -// adjustReason = SalaryArchiveItemAdjustReasonEnum.getValueByDefaultLabel(Optional.ofNullable(map.get(adjustReasonI18n)).orElse("").toString(), currentEmployeeId, tenantKey); +// adjustReason = SalaryArchiveItemAdjustReasonEnum.getValueByDefaultLabel(Optional.ofNullable(map.get(adjustReasonI18n)).orElse("").toString()); // } // // 构建薪资档案 // -// SalaryArchivePO finalSalaryArchive = buildSalaryArchive(isInit, currentEmployeeId, importHandleParam); +// SalaryArchivePO finalSalaryArchive = buildSalaryArchive(isInit, employeeId, importHandleParam); // for (int j = 0; j < headers.size(); j++) { -// Map header = headers.get(j); -// Object key = header.get("key"); -// if (key == null) { -// continue; -// } -// String cellVal = Optional.ofNullable(map.get(key.toString())).orElse("").toString(); +// String key = headers.get(j); +// +// String cellVal = Optional.ofNullable(map.get(key)).orElse("").toString(); // // boolean isEmpty = StringUtils.isEmpty(cellVal) && -// (userNameI18n.equals(key.toString()) +// (userNameI18n.equals(key) // // 个税扣缴义务人列判空(初始化导入或调整个税扣缴义务人) -// || (taxAgentI18n.equals(key.toString()) && (isInit || isTaxAgentAdjust)) -// || effectiveTimeI18n.equals(key.toString()) +// || (taxAgentI18n.equals(key) && (isInit || isTaxAgentAdjust)) +// || effectiveTimeI18n.equals(key) // // 调整原因列判空(调薪或调整个税扣缴义务人) -// || (adjustReasonI18n.equals(key.toString()) && (isTaxAgentAdjust || isSalaryItemAdjust))); +// || (adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust))); // // 判空 // if (isEmpty) { // salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100577, "不能为空"), errorCount + 1, errorCount + 1, j, j); // isError = true; // } // // 1.姓名列处理 -// if (!isEmpty && userNameI18n.equals(key.toString())) { +// if (!isEmpty && userNameI18n.equals(key)) { // if (CollectionUtils.isEmpty(employeeSameIds) || employeeSameIds.size() > 1) { // salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100578, "员工信息不能为空且不可重复(姓名与部门同时确认唯一)"), errorCount + 1, errorCount + 1, j, j); // isError = true; @@ -753,15 +731,14 @@ // isError = true; // } // // 2.个税扣缴义务人列处理(初始化导入或调整个税扣缴义务人) -// } else if (!isEmpty && taxAgentI18n.equals(key.toString()) && (isInit || isTaxAgentAdjust)) { -// isError = handleTaxAgent(isError, isInit, effectiveTimeIndex, excelComments, errorCount, j, currentEmployeeId, tenantKey, -// taxAgentId, effectiveTime, finalSalaryArchive, adjustReason, importHandleParam); +// } else if (!isEmpty && taxAgentI18n.equals(key) && (isInit || isTaxAgentAdjust)) { +// isError = handleTaxAgent(isError, isInit, effectiveTimeIndex, excelComments, errorCount, j, taxAgentId, effectiveTime, finalSalaryArchive, adjustReason, importHandleParam); // // 3.生效时间处理 -// } else if (!isEmpty && effectiveTimeI18n.equals(key.toString()) && effectiveTime == null) { +// } else if (!isEmpty && effectiveTimeI18n.equals(key) && effectiveTime == null) { // 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)) { +// } else if (!isEmpty && adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust) && StringUtils.isEmpty(adjustReason)) { // salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100591, "调整原因不存在"), errorCount + 1, errorCount + 1, j, j); // isError = true; // // 5.薪资项目列处理(初始化导入或调薪) @@ -770,269 +747,265 @@ // if (effectiveTime == null || finalSalaryArchive == null || !(isInit || isSalaryItemAdjust)) { // continue; // } -// isError = handleSalaryItem(isError, isInit, effectiveTimeIndex, excelComments, errorCount, j, currentEmployeeId, tenantKey, -// effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key.toString(), cellVal, map); +// isError = handleSalaryItem(isError, isInit, effectiveTimeIndex, excelComments, errorCount, j, +// effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key, cellVal, map); // // } // } // 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() +// +// private SalaryArchivePO buildSalaryArchive(boolean isInit, 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() +// .employeeId(employeeId) +// .createTime(importHandleParam.getNowTime()) +// .updateTime(importHandleParam.getNowTime()) +// .creator((long) user.getUID()) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build(); +// importHandleParam.getSalaryArchiveSaves().add(salaryArchive); +// } +// return salaryArchive; +// } +// +// /** +// * 个税扣缴义务人处理 +// * +// * @param isError +// * @param excelComments +// * @param errorCount +// * @param j +// * @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 taxAgentId, Date 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) { +// // 当前已经生效的时间 +// Date currentEffectiveTime = effectiveTaxAgent.getEffectiveTime(); +// // 1.1 如果早于<当前已生效 +// if (effectiveTime.before(currentEffectiveTime)) { +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex); +// isError = true; +// isBeforeError = true; +// // 1.2 如果等于当前已生效 +// } else if (effectiveTime.equal(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.after(currentEffectiveTime) && !effectiveTime.after(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.after(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.equals(effectiveTaxAgent.getEffectiveTime())) { +// importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds().add(effectiveTaxAgent.getId()); +// } +// if (ineffectiveTaxAgent != null && effectiveTime.after(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; -//// } -//// +// .salaryArchiveId(finalSalaryArchive.getId()) +// .employeeId(finalSalaryArchive.getEmployeeId()) +// .taxAgentId(taxAgentId) +// .effectiveTime(effectiveTime) +// .adjustReason(StringUtils.isEmpty(taxAgentAdjustReason) ? SalaryArchiveTaxAgentAdjustReasonEnum.INIT.getValue() : taxAgentAdjustReason) +// .operator((long) user.getUID()) +// .operateTime(importHandleParam.getNowTime()) +// .createTime(importHandleParam.getNowTime()) +// .updateTime(importHandleParam.getNowTime()) +// .creator((long) user.getUID()) +// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) +// .build()); +// } +// } +// return isError; +// } +// +// /** +// * 薪资项目处理 +// * +// * @param isError +// * @param excelComments +// * @param errorCount +// * @param j +// * @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, +// Date 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) { +// // 当前已经生效的时间 +// Date currentEffectiveTime = effectiveSalaryItem.getEffectiveTime(); +// // 1.1 如果早于<当前已生效 +// if (effectiveTime.before(currentEffectiveTime)) { +// salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期"), errorCount + 1, errorCount + 1, effectiveTimeIndex, effectiveTimeIndex); +// isError = true; +// isBeforeError = true; +// // 1.2 如果等于当前已生效 +// } else if (effectiveTime.equals(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 Date dateStrToLocalDate(String effectiveTime) { +// Date localDate = null; +// try { +// if (effectiveTime.contains("/")) { +// SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); +// localDate = format.parse(effectiveTime); +// } else if (effectiveTime.contains("-")) { +// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); +// localDate = format.parse(effectiveTime); +// } +// } catch (Exception e) { +// localDate = null; +// } +// +// return localDate; +// } +// // private List getEffectiveItemList(Collection salaryItemIds) { // // 没有薪资项目时,给个不存在的,否则加载所有不合理 // salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; @@ -1157,61 +1130,56 @@ // 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, 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> partitionSalaryArchiveIds = Lists.partition(salaryArchiveIds, 1000); +// for (List partitions : partitionSalaryArchiveIds) { +// salaryArchiveTaxAgentMapper.deleteBySalaryArchiveId(partitions); +// 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); +// } +// } //}