| | |
| | | } |
| | | } 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()); |
| | |
| | | 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); |