fix(schedules): 解决重复排班数据问题
- 根据时间查询现有排班记录并删除重复数据 - 在保存新排班前清理已存在的相同时间段排班 - 同步删除关联的排班项目记录确保数据一致性
This commit is contained in:
+12
@@ -1,6 +1,7 @@
|
|||||||
package com.renkang.emergency.service.impl;
|
package com.renkang.emergency.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
@@ -177,6 +178,17 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
|
|||||||
emergencySchedules.setId(StrUtil.isNotEmpty(daySchedules.getSchedulesId()) ? daySchedules.getSchedulesId() : null);
|
emergencySchedules.setId(StrUtil.isNotEmpty(daySchedules.getSchedulesId()) ? daySchedules.getSchedulesId() : null);
|
||||||
emergencySchedules.setCenterId(StrUtil.isNotEmpty(dto.getCenterId()) ? dto.getCenterId() : null);
|
emergencySchedules.setCenterId(StrUtil.isNotEmpty(dto.getCenterId()) ? dto.getCenterId() : null);
|
||||||
if (daySchedules.getSchedulesId() == null) {
|
if (daySchedules.getSchedulesId() == null) {
|
||||||
|
//根据时间查询排班id
|
||||||
|
LambdaQueryWrapper<EmergencySchedules> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(EmergencySchedules::getSchedulesTime, daySchedules.getTime());
|
||||||
|
queryWrapper.eq(EmergencySchedules::getCenterId, dto.getCenterId());
|
||||||
|
queryWrapper.eq(EmergencySchedules::getDelFlag, 0);
|
||||||
|
List<EmergencySchedules> list = this.list(queryWrapper);
|
||||||
|
if(CollectionUtil.isNotEmpty(list)){
|
||||||
|
Set<String> schedulesIds = list.stream().map(EmergencySchedules::getId).collect(Collectors.toSet());
|
||||||
|
this.remove(new LambdaQueryWrapper<EmergencySchedules>().in(EmergencySchedules::getId, schedulesIds));
|
||||||
|
itemService.remove(new LambdaQueryWrapper<EmergencySchedulesItem>().in(EmergencySchedulesItem::getSchedulesId, schedulesIds));
|
||||||
|
}
|
||||||
this.save(emergencySchedules);
|
this.save(emergencySchedules);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user