From 18f76dbbacb12c8d14bb6fcf5863d7da8b527a2c Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Sun, 27 Apr 2025 15:03:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=B8=BF=E4=BB=95=E8=BE=BE=20=E8=B0=83?= =?UTF-8?q?=E8=96=AA=E9=99=90=E5=88=B6=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bo/SalaryArchiveExcelBO.java | 10 +++---- .../salaryarchive/bo/SalaryArchiveItemBO.java | 27 ++++++++++++++----- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index d32117615..6c2c94fb7 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -853,12 +853,12 @@ public class SalaryArchiveExcelBO extends Service { } // 定薪列表调薪 } else if (importHandleParam.isSalaryItemAdjust()) { - SalaryItemAdjustValidDTO salaryItemAdjustValid = SalaryArchiveItemBO.handleSalaryItemAdjustValid(effectiveSalaryItem, effectiveBeforeSalaryItem, ineffectiveSalaryItem, effectiveTime, importHandleParam.getToday(), cellVal, importHandleParam.getSalaryArchiveItemDelSalaryItemIds()); + SalaryItemAdjustValidDTO salaryItemAdjustValid = SalaryArchiveItemBO.handleSalaryItemAdjustValid(effectiveSalaryItem, effectiveBeforeSalaryItem, ineffectiveSalaryItem, effectiveTime, importHandleParam.getToday(), cellVal, importHandleParam.getSalaryArchiveItemDelSalaryItemIds(), effectiveList); if (salaryItemAdjustValid.isBefore()) { - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowindex + key + salaryItemNoBeforeCurrentEffectiveTime); - excelComments.add(errorMessageMap); - isError = true; + // Map errorMessageMap = Maps.newHashMap(); + // errorMessageMap.put("message", rowindex + key + salaryItemNoBeforeCurrentEffectiveTime); + // excelComments.add(errorMessageMap); + // isError = true; } else if (salaryItemAdjustValid.isSame()) { // Map errorMessageMap = Maps.newHashMap(); // errorMessageMap.put("message", rowindex + key + salaryItemAdjustNoSame); diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveItemBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveItemBO.java index 0a321fa0e..b3c45e20f 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveItemBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveItemBO.java @@ -7,9 +7,11 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @Description: 薪资档案-薪资项目 @@ -361,7 +363,8 @@ public class SalaryArchiveItemBO { Date saveEffectiveTime, Date today, String adjustValue, - List salaryArchiveItemDelIds) { + List salaryArchiveItemDelIds, + List effectiveList) { boolean isBefore = false; boolean isSame = false; @@ -374,11 +377,15 @@ public class SalaryArchiveItemBO { isBefore = true; // 1.2 如果等于当前已生效 } else if (saveEffectiveTime.equals(effectiveTime)) { - if (effectiveBeforeSalaryItem != null && effectiveBeforeSalaryItem.getItemValue().equals(adjustValue)) { - isSame = true; - } - if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(adjustValue)) { - isSameIneffective = true; + // if (effectiveBeforeSalaryItem != null && effectiveBeforeSalaryItem.getItemValue().equals(adjustValue)) { + // isSame = true; + // } + // if (ineffectiveSalaryItem != null && ineffectiveSalaryItem.getItemValue().equals(adjustValue)) { + // isSameIneffective = true; + // } + List needDelIds = effectiveList.stream().filter(archiveItem -> archiveItem.getEffectiveTime().equals(saveEffectiveTime)).map(SalaryArchiveItemPO::getId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(needDelIds)) { + salaryArchiveItemDelIds.addAll(needDelIds); } // 1.3 如果>已经生效且<=今天 } else if (saveEffectiveTime.after(effectiveTime) && !saveEffectiveTime.after(today)) { @@ -403,6 +410,14 @@ public class SalaryArchiveItemBO { if (!isError && ineffectiveSalaryItem != null && saveEffectiveTime.after(today)) { salaryArchiveItemDelIds.add(ineffectiveSalaryItem.getId()); } + + // isBefore=true并且调薪生效日如果和已有数据生效日期重合,删除 + if (isBefore == true) { + List needDelIds = effectiveList.stream().filter(archiveItem -> archiveItem.getEffectiveTime().equals(saveEffectiveTime)).map(SalaryArchiveItemPO::getId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(needDelIds)) { + salaryArchiveItemDelIds.addAll(needDelIds); + } + } return SalaryItemAdjustValidDTO.builder() .isBefore(isBefore) .isSame(isSame)