From 73a46a2d0c3f11c8eb14f3af0a7f1fc5fe60b82e Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 11 Feb 2026 11:26:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E8=A1=8C=E6=98=AF=E5=90=A6=E5=B7=B2=E5=A4=B1=E8=B4=A5=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 isRowAlreadyFailed 方法用于检查行是否已在失败列表中 - 通过比较员工ID、调动日期、调动前部门ID、调动后部门ID判断行的唯一性 - 在 StaffTransferImportFailureVO 中添加 deptIdBefore 和 deptIdAfter 字段 - 使用 Stream API 的 anyMatch 方法实现高效的匹配判断 Co-Authored-By: Claude Sonnet 4.5 --- .../domain/vo/StaffTransferImportFailureVO.java | 8 ++++++++ .../impl/CcdiStaffTransferImportServiceImpl.java | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/vo/StaffTransferImportFailureVO.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/vo/StaffTransferImportFailureVO.java index 7a3139c..af8fd35 100644 --- a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/vo/StaffTransferImportFailureVO.java +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/vo/StaffTransferImportFailureVO.java @@ -29,6 +29,14 @@ public class StaffTransferImportFailureVO implements Serializable { @Schema(description = "员工姓名") private String staffName; + /** 调动前部门ID */ + @Schema(description = "调动前部门ID") + private Long deptIdBefore; + + /** 调动后部门ID */ + @Schema(description = "调动后部门ID") + private Long deptIdAfter; + /** 调动类型 */ @Schema(description = "调动类型") private String transferType; diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiStaffTransferImportServiceImpl.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiStaffTransferImportServiceImpl.java index 86da3ea..141004f 100644 --- a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiStaffTransferImportServiceImpl.java +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiStaffTransferImportServiceImpl.java @@ -373,4 +373,20 @@ public class CcdiStaffTransferImportServiceImpl implements ICcdiStaffTransferImp return existingStaffIds; } + + /** + * 检查某行数据是否已在失败列表中 + * + * @param excel Excel数据 + * @param failures 失败记录列表 + * @return true-已失败,false-未失败 + */ + private boolean isRowAlreadyFailed(CcdiStaffTransferExcel excel, + List failures) { + return failures.stream() + .anyMatch(f -> f.getStaffId().equals(excel.getStaffId()) + && Objects.equals(f.getTransferDate(), excel.getTransferDate()) + && Objects.equals(f.getDeptIdBefore(), excel.getDeptIdBefore()) + && Objects.equals(f.getDeptIdAfter(), excel.getDeptIdAfter())); + } }