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

修改通知去重复

parent 825d5e06
......@@ -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
......@@ -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
protected void updateBefore(MettingRecordEntity entity, Context context) throws AppException {
super.updateBefore(entity, context);
checkStartAndEndTime(entity);
/*
Boolean bool = checkExistStartMeetTime(entity);
if (bool) {
throw new AppException("当前会议室该时段已经存在等待或进行中的会议,请选择其它时间段!");
}
*/
//判断是否是手动结束会议
MettingRecordEntity mettingRecordEntity = this.get(entity.getId());
if (mettingRecordEntity.getMeetStatus() == MeetStatusEnum.进行中.getValue() && entity.getMeetStatus() == MeetStatusEnum.已结束.getValue()) {
......@@ -242,12 +181,10 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
mettingRecordQuery.setIdList(Arrays.asList(ids));
List<MettingRecordEntity> mettingRecordEntities = this.find(mettingRecordQuery);
log.info("删除会议记录:{}", mettingRecordEntities.size());
mettingRecordEntities.forEach(entity -> {
if (entity.getMeetStatus() == MeetStatusEnum.进行中.getValue()) {
throw new AppException("会议进行中,无法删除");
throw new AppException(String.format("%s会议进行中,无法删除!", entity.getMeetName()));
}
UploadDeviceReq uploadDeviceReq = new UploadDeviceReq();
RoomEntity roomEntity = roomService.get(entity.getRoomId(), context);
if (!ObjectUtils.isEmpty(roomEntity)) {
......@@ -270,6 +207,63 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
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) {
Calendar date = Calendar.getInstance();
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