Commit c9586076 authored by 赵啸非's avatar 赵啸非

修改通知去重复

parent 825d5e06
...@@ -82,45 +82,7 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -82,45 +82,7 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
} }
}*/ }*/
private Boolean checkExistStartMeetTime(MettingRecordEntity entity) {
boolean bool = false;
Date meetTimeStart = entity.getMeetTimeStart();
Date meetTimeEnd = entity.getMeetTimeEnd();
MettingRecordQuery mettingRecordQuery = new MettingRecordQuery();
//mettingRecordQuery.setMeetStatus(MeetStatusEnum.等待中.getValue());
mettingRecordQuery.setMeetStatusList(Arrays.asList(MeetStatusEnum.等待中.getValue(), MeetStatusEnum.进行中.getValue()));
mettingRecordQuery.setRoomId(entity.getRoomId());
//查询当前日期是否存在会议室占用
mettingRecordQuery.setMeetDate(entity.getMeetDate());
//判断选定的时间段 是否已经存在 时间段 求交集
List<MettingRecordEntity> list = this.find(mettingRecordQuery);
//校验当前时间段中是否已经存在未开始的会议
if (!entity.newEntity()) {
//更新时间段判断 排除已经存在的
list = list.stream().filter(f -> f.getId() != entity.getId()).collect(Collectors.toList());
}
if (!ObjectUtils.isEmpty(list)) {
//校验时间段是否有重合
for (MettingRecordEntity mettingRecord : list) {
//格式化分钟
Date meetTimeStart1 = DateUtil.parseDateTime(DateUtil.format(mettingRecord.getMeetTimeStart(), "yyyy-MM-dd HH:mm") + ":00");
Date meetTimeEnd1 = DateUtil.parseDateTime(DateUtil.format(mettingRecord.getMeetTimeEnd(), "yyyy-MM-dd HH:mm") + ":00");
boolean in = belongCalendar(meetTimeStart, meetTimeStart1, meetTimeEnd1);
boolean in1 = belongCalendar(meetTimeEnd, meetTimeStart1, meetTimeEnd1);
if (in || in1) {
bool = true;
log.info("meetTimeStart:{},meetTimeEnd:{}, meetTimeStart1:{}, meetTimeEnd1:{}",
DateUtil.date(meetTimeStart).toTimeStr(), DateUtil.date(meetTimeEnd).toTimeStr(),
DateUtil.date(meetTimeStart1).toTimeStr(), DateUtil.date(meetTimeEnd1).toTimeStr());
break;
}
}
}
return bool;
}
/* @Override /* @Override
...@@ -187,37 +149,14 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -187,37 +149,14 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
} }
/**
* 检测会议开始与结束时间
*
* @param entity
*/
private void checkStartAndEndTime(MettingRecordEntity entity) {
Date meetTimeStart = entity.getMeetTimeStart();
Date meetTimeEnd = entity.getMeetTimeEnd();
if (!ObjectUtils.isEmpty(meetTimeStart) && !ObjectUtils.isEmpty(meetTimeEnd)) {
//开始时间不能大于结束时间
int compare = DateUtil.compare(meetTimeStart, meetTimeEnd);
if (compare > 0) {
throw new AppException("会议开始时间不能大于结束时间!");
}
}
}
@Override @Override
protected void updateBefore(MettingRecordEntity entity, Context context) throws AppException { protected void updateBefore(MettingRecordEntity entity, Context context) throws AppException {
super.updateBefore(entity, context); super.updateBefore(entity, context);
checkStartAndEndTime(entity); checkStartAndEndTime(entity);
/*
Boolean bool = checkExistStartMeetTime(entity); Boolean bool = checkExistStartMeetTime(entity);
if (bool) { if (bool) {
throw new AppException("当前会议室该时段已经存在等待或进行中的会议,请选择其它时间段!"); throw new AppException("当前会议室该时段已经存在等待或进行中的会议,请选择其它时间段!");
} }
*/
//判断是否是手动结束会议 //判断是否是手动结束会议
MettingRecordEntity mettingRecordEntity = this.get(entity.getId()); MettingRecordEntity mettingRecordEntity = this.get(entity.getId());
if (mettingRecordEntity.getMeetStatus() == MeetStatusEnum.进行中.getValue() && entity.getMeetStatus() == MeetStatusEnum.已结束.getValue()) { if (mettingRecordEntity.getMeetStatus() == MeetStatusEnum.进行中.getValue() && entity.getMeetStatus() == MeetStatusEnum.已结束.getValue()) {
...@@ -242,12 +181,10 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -242,12 +181,10 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
mettingRecordQuery.setIdList(Arrays.asList(ids)); mettingRecordQuery.setIdList(Arrays.asList(ids));
List<MettingRecordEntity> mettingRecordEntities = this.find(mettingRecordQuery); List<MettingRecordEntity> mettingRecordEntities = this.find(mettingRecordQuery);
log.info("删除会议记录:{}", mettingRecordEntities.size()); log.info("删除会议记录:{}", mettingRecordEntities.size());
mettingRecordEntities.forEach(entity -> { mettingRecordEntities.forEach(entity -> {
if (entity.getMeetStatus() == MeetStatusEnum.进行中.getValue()) { if (entity.getMeetStatus() == MeetStatusEnum.进行中.getValue()) {
throw new AppException("会议进行中,无法删除"); throw new AppException(String.format("%s会议进行中,无法删除!", entity.getMeetName()));
} }
UploadDeviceReq uploadDeviceReq = new UploadDeviceReq(); UploadDeviceReq uploadDeviceReq = new UploadDeviceReq();
RoomEntity roomEntity = roomService.get(entity.getRoomId(), context); RoomEntity roomEntity = roomService.get(entity.getRoomId(), context);
if (!ObjectUtils.isEmpty(roomEntity)) { if (!ObjectUtils.isEmpty(roomEntity)) {
...@@ -270,6 +207,63 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -270,6 +207,63 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
super.removeAfter(ids, context, result); super.removeAfter(ids, context, result);
} }
/**
* 检测会议开始与结束时间
*
* @param entity
*/
private void checkStartAndEndTime(MettingRecordEntity entity) {
Date meetTimeStart = entity.getMeetTimeStart();
Date meetTimeEnd = entity.getMeetTimeEnd();
if (!ObjectUtils.isEmpty(meetTimeStart) && !ObjectUtils.isEmpty(meetTimeEnd)) {
//开始时间不能大于结束时间
int compare = DateUtil.compare(meetTimeStart, meetTimeEnd);
if (compare > 0) {
throw new AppException("会议开始时间不能大于结束时间!");
}
}
}
private Boolean checkExistStartMeetTime(MettingRecordEntity entity) {
boolean bool = false;
Date meetTimeStart = entity.getMeetTimeStart();
Date meetTimeEnd = entity.getMeetTimeEnd();
MettingRecordQuery mettingRecordQuery = new MettingRecordQuery();
//mettingRecordQuery.setMeetStatus(MeetStatusEnum.等待中.getValue());
mettingRecordQuery.setMeetStatusList(Arrays.asList(MeetStatusEnum.等待中.getValue(), MeetStatusEnum.进行中.getValue()));
mettingRecordQuery.setRoomId(entity.getRoomId());
//查询当前日期是否存在会议室占用
mettingRecordQuery.setMeetDate(entity.getMeetDate());
//判断选定的时间段 是否已经存在 时间段 求交集
List<MettingRecordEntity> list = this.find(mettingRecordQuery);
//校验当前时间段中是否已经存在未开始的会议
if (!entity.newEntity()) {
//更新时间段判断 排除已经存在的
list = list.stream().filter(f -> f.getId() != entity.getId()).collect(Collectors.toList());
}
if (!ObjectUtils.isEmpty(list)) {
//校验时间段是否有重合
for (MettingRecordEntity mettingRecord : list) {
//格式化分钟
Date meetTimeStart1 = DateUtil.parseDateTime(DateUtil.format(mettingRecord.getMeetTimeStart(), "yyyy-MM-dd HH:mm") + ":00");
Date meetTimeEnd1 = DateUtil.parseDateTime(DateUtil.format(mettingRecord.getMeetTimeEnd(), "yyyy-MM-dd HH:mm") + ":00");
boolean in = belongCalendar(meetTimeStart, meetTimeStart1, meetTimeEnd1);
boolean in1 = belongCalendar(meetTimeEnd, meetTimeStart1, meetTimeEnd1);
if (in || in1) {
bool = true;
log.info("meetTimeStart:{},meetTimeEnd:{}, meetTimeStart1:{}, meetTimeEnd1:{}",
DateUtil.date(meetTimeStart).toTimeStr(), DateUtil.date(meetTimeEnd).toTimeStr(),
DateUtil.date(meetTimeStart1).toTimeStr(), DateUtil.date(meetTimeEnd1).toTimeStr());
break;
}
}
}
return bool;
}
public boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) { public boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
Calendar date = Calendar.getInstance(); Calendar date = Calendar.getInstance();
date.setTime(nowTime); date.setTime(nowTime);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment