Commit 825d5e06 authored by 赵啸非's avatar 赵啸非

修改通知去重复

parent bf32f372
...@@ -55,7 +55,7 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -55,7 +55,7 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
private RoomDeviceService roomDeviceService; private RoomDeviceService roomDeviceService;
@Autowired @Autowired
private BasicSetService basicSetService; private BasicSetService basicSetService;
/*
@Override @Override
protected void validData(MettingRecordEntity entity, Context context) throws AppException { protected void validData(MettingRecordEntity entity, Context context) throws AppException {
super.validData(entity, context); super.validData(entity, context);
...@@ -64,47 +64,13 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -64,47 +64,13 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
if (!ObjectUtils.isEmpty(meetTimeStart) && !ObjectUtils.isEmpty(meetTimeEnd)) { if (!ObjectUtils.isEmpty(meetTimeStart) && !ObjectUtils.isEmpty(meetTimeEnd)) {
//开始时间不能大于结束时间 //开始时间不能大于结束时间
int compare = DateUtil.compare(meetTimeStart, meetTimeEnd); int compare = DateUtil.compare(meetTimeStart, meetTimeEnd);
if(compare>0){ if (compare > 0) {
throw new AppException("会议开始时间不能大于结束时间!"); throw new AppException("会议开始时间不能大于结束时间!");
} }
MettingRecordQuery mettingRecordQuery = new MettingRecordQuery(); Boolean bool = checkExistStartMeetTime(entity);
//mettingRecordQuery.setMeetStatus(MeetStatusEnum.等待中.getValue()); if (bool) {
mettingRecordQuery.setMeetStatusList(Arrays.asList(MeetStatusEnum.等待中.getValue(), MeetStatusEnum.进行中.getValue())); throw new AppException("当前会议室该时段已经存在等待或进行中的会议,请选择其它时间段!");
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)) {
//校验时间段是否有重合
boolean bool = false;
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");
// DateRange range1 = DateUtil.range(meetTimeStart, meetTimeEnd, DateField.MINUTE);
//DateRange range2 = DateUtil.range(meetTimeStart1, meetTimeEnd1, DateField.MINUTE);
boolean in = belongCalendar(meetTimeStart, meetTimeStart1, meetTimeEnd1);
boolean in1 = belongCalendar(meetTimeEnd, meetTimeStart1, meetTimeEnd1);
// Boolean aBoolean = checkTimesHasOverlap(meetTimeStart, 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;
}
}
if (bool) {
throw new AppException("当前会议室该时段已经存在等待或进行中的会议,请选择其它时间段!");
}
} }
} }
UploadDeviceReq uploadDeviceReq = new UploadDeviceReq(); UploadDeviceReq uploadDeviceReq = new UploadDeviceReq();
...@@ -114,6 +80,46 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -114,6 +80,46 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
uploadDeviceReq.setAction("refreshMetting"); uploadDeviceReq.setAction("refreshMetting");
messageFeign.downMsg(uploadDeviceReq); messageFeign.downMsg(uploadDeviceReq);
} }
}*/
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;
} }
...@@ -150,6 +156,12 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -150,6 +156,12 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
@Override @Override
protected void saveBefore(MettingRecordEntity entity, Context context) throws AppException { protected void saveBefore(MettingRecordEntity entity, Context context) throws AppException {
super.saveBefore(entity, context); super.saveBefore(entity, context);
checkStartAndEndTime(entity);
Boolean bool = checkExistStartMeetTime(entity);
if (bool) {
throw new AppException("当前会议室该时段已经存在等待或进行中的会议,请选择其它时间段!");
}
int compare = DateUtil.compare(new Date(), entity.getMeetTimeEnd()); int compare = DateUtil.compare(new Date(), entity.getMeetTimeEnd());
if (compare > 0) { if (compare > 0) {
...@@ -168,17 +180,44 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -168,17 +180,44 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
UploadDeviceReq uploadDeviceReq = new UploadDeviceReq(); UploadDeviceReq uploadDeviceReq = new UploadDeviceReq();
uploadDeviceReq.setDeviceCodeList(Arrays.asList(roomDeviceEntity.getDeviceCode())); uploadDeviceReq.setDeviceCodeList(Arrays.asList(roomDeviceEntity.getDeviceCode()));
uploadDeviceReq.setAction("refreshMetting"); uploadDeviceReq.setAction("refreshMetting");
log.info("refreshMetting send msg :{}", roomDeviceEntity.getDeviceCode()); log.info("refreshMetting send deviceList :{}", JSON.toJSONString(Arrays.asList(roomDeviceEntity.getDeviceCode())));
messageFeign.downMsg(uploadDeviceReq); messageFeign.downMsg(uploadDeviceReq);
} }
} }
} }
/**
* 检测会议开始与结束时间
*
* @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);
/*
Boolean bool = checkExistStartMeetTime(entity);
if (bool) {
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()) {
...@@ -186,10 +225,11 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -186,10 +225,11 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
UploadDeviceReq uploadDeviceReq = new UploadDeviceReq(); UploadDeviceReq uploadDeviceReq = new UploadDeviceReq();
RoomEntity roomEntity = roomService.get(mettingRecordEntity.getRoomId(), context); RoomEntity roomEntity = roomService.get(mettingRecordEntity.getRoomId(), context);
if (!ObjectUtils.isEmpty(roomEntity)) { if (!ObjectUtils.isEmpty(roomEntity)) {
uploadDeviceReq.setDeviceCodeList(roomDeviceService.find(new RoomDeviceQuery().roomId(roomEntity.getId())).stream().map(i -> i.getDeviceCode()).collect(Collectors.toList())); List<String> deviceList = roomDeviceService.find(new RoomDeviceQuery().roomId(roomEntity.getId())).stream().map(i -> i.getDeviceCode()).collect(Collectors.toList());
uploadDeviceReq.setDeviceCodeList(deviceList);
uploadDeviceReq.setAction("refreshMetting"); uploadDeviceReq.setAction("refreshMetting");
Rest<String> rest = messageFeign.downMsg(uploadDeviceReq); Rest<String> rest = messageFeign.downMsg(uploadDeviceReq);
log.info("手动结束会议记录后发送消息:{}", JSON.toJSONString(rest)); log.info("手动结束会议记录后发送消息:{}", JSON.toJSONString(deviceList));
} }
} }
} }
...@@ -204,7 +244,7 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec ...@@ -204,7 +244,7 @@ public class MettingRecordServiceImpl extends AbstractCRUDServiceImpl<MettingRec
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("会议进行中,无法删除");
} }
......
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