From f9d83ae75f8c911c1c05304f8131fc222579768a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 10:09:34 +0800
Subject: [PATCH] fix(hrm): 已清除的排班日期重新排班时报唯一键冲突
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmEmployeeScheduleServiceImpl.java | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmEmployeeScheduleServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmEmployeeScheduleServiceImpl.java
index 15f64c2..a29e80b 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmEmployeeScheduleServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmEmployeeScheduleServiceImpl.java
@@ -153,7 +153,11 @@
}
} else {
if (existing == null) {
- employeeScheduleMapper.insert(BeanUtils.toBean(reqVO, HrmEmployeeScheduleDO.class));
+ // 璇ュ憳宸ヨ鏃ユ湡鍙兘鏄箣鍓嶈娓呴櫎锛堥�昏緫鍒犻櫎锛夌殑鎺掔彮锛屽敮涓�绱㈠紩涓嶅惈 deleted锛岀洿鎺� insert 浼氭挒鍞竴閿�
+ if (employeeScheduleMapper.reviveDeletedSchedule(reqVO.getEmployeeId(), reqVO.getDate(),
+ reqVO.getShiftId(), reqVO.getRemark()) == 0) {
+ employeeScheduleMapper.insert(BeanUtils.toBean(reqVO, HrmEmployeeScheduleDO.class));
+ }
} else {
existing.setShiftId(reqVO.getShiftId());
existing.setRemark(reqVO.getRemark());
@@ -222,6 +226,12 @@
continue;
}
if (existing == null) {
+ // 宸茶娓呴櫎锛堥�昏緫鍒犻櫎锛夌殑鏃ユ湡鐩存帴 insert 浼氭挒鍞竴绱㈠紩锛屼紭鍏堝娲绘棫琛�
+ if (employeeScheduleMapper.reviveDeletedSchedule(employee.getId(), date,
+ reqVO.getShiftId(), null) > 0) {
+ itemCount++;
+ continue;
+ }
HrmEmployeeScheduleDO schedule = new HrmEmployeeScheduleDO();
schedule.setEmployeeId(employee.getId());
schedule.setDate(date);
--
Gitblit v1.9.3