|
@@ -41,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -419,9 +420,13 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void tomorrowExamPlanRemind() {
|
|
|
|
|
|
+ public void tomorrowExamPlanRemind(String day) {
|
|
LocalDate tomorrowDate = LocalDate.now().plusDays(1);
|
|
LocalDate tomorrowDate = LocalDate.now().plusDays(1);
|
|
- List<ExamRoomStudentRelation> tomorrowExamStudents = examRoomStudentRelationDao.getTomorrowExamStudents(tomorrowDate.toString());
|
|
|
|
|
|
+ String tomorrowDateStr = tomorrowDate.toString();
|
|
|
|
+ if(StringUtils.isNotBlank(day)){
|
|
|
|
+ tomorrowDateStr = day;
|
|
|
|
+ }
|
|
|
|
+ List<ExamRoomStudentRelation> tomorrowExamStudents = examRoomStudentRelationDao.getTomorrowExamStudents(tomorrowDateStr);
|
|
if(CollectionUtils.isEmpty(tomorrowExamStudents)){
|
|
if(CollectionUtils.isEmpty(tomorrowExamStudents)){
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -447,12 +452,12 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
}
|
|
}
|
|
teacherExamRoomsMap.get(examRoom.getMainTeacherUserId()).add(examRoom);
|
|
teacherExamRoomsMap.get(examRoom.getMainTeacherUserId()).add(examRoom);
|
|
if(StringUtils.isNotBlank(examRoom.getAssistantTeacherUserIdList())){
|
|
if(StringUtils.isNotBlank(examRoom.getAssistantTeacherUserIdList())){
|
|
- Set<Integer> ateacherIds = Arrays.stream(examRoom.getAssistantTeacherUserIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toSet());
|
|
|
|
- for (Integer ateacherId : ateacherIds) {
|
|
|
|
- if(!teacherExamRoomsMap.containsKey(ateacherId)){
|
|
|
|
- teacherExamRoomsMap.put(ateacherId, new ArrayList<>());
|
|
|
|
|
|
+ Set<Integer> assistantTeacherIds = Arrays.stream(examRoom.getAssistantTeacherUserIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toSet());
|
|
|
|
+ for (Integer assistantTeacherId : assistantTeacherIds) {
|
|
|
|
+ if(!teacherExamRoomsMap.containsKey(assistantTeacherId)){
|
|
|
|
+ teacherExamRoomsMap.put(assistantTeacherId, new ArrayList<>());
|
|
}
|
|
}
|
|
- teacherExamRoomsMap.get(ateacherId).add(examRoom);
|
|
|
|
|
|
+ teacherExamRoomsMap.get(assistantTeacherId).add(examRoom);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -472,17 +477,20 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
examDayStr, examTimeStr.toString());
|
|
examDayStr, examTimeStr.toString());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ String tomorrowDayStr=tomorrowDate.format(DateTimeFormatter.ofPattern("MM月dd日"));
|
|
Map<Integer, String> idTeacherPhoneMap = this.getMap("sys_user", "id_", "phone_", new ArrayList(teacherExamRoomsMap.keySet()), Integer.class, String.class);
|
|
Map<Integer, String> idTeacherPhoneMap = this.getMap("sys_user", "id_", "phone_", new ArrayList(teacherExamRoomsMap.keySet()), Integer.class, String.class);
|
|
for (Map.Entry<Integer, List<ExamRoom>> teacherRoomEntry : teacherExamRoomsMap.entrySet()) {
|
|
for (Map.Entry<Integer, List<ExamRoom>> teacherRoomEntry : teacherExamRoomsMap.entrySet()) {
|
|
String teacherPhone = idTeacherPhoneMap.get(teacherRoomEntry.getKey());
|
|
String teacherPhone = idTeacherPhoneMap.get(teacherRoomEntry.getKey());
|
|
Date examStartTime = teacherRoomEntry.getValue().stream().min(Comparator.comparing(ExamRoom::getExamStartTime)).get().getExamStartTime();
|
|
Date examStartTime = teacherRoomEntry.getValue().stream().min(Comparator.comparing(ExamRoom::getExamStartTime)).get().getExamStartTime();
|
|
- String examStartTimeStr = DateUtil.dateToString(examStartTime, "MM月dd日 HH时mm分");
|
|
|
|
|
|
+ String examStartTimeStr = DateUtil.dateToString(examStartTime, "HH时mm分");
|
|
|
|
+ Date examEndTime = teacherRoomEntry.getValue().stream().max(Comparator.comparing(ExamRoom::getExamEndTime)).get().getExamEndTime();
|
|
|
|
+ String examEndTimeStr = DateUtil.dateToString(examEndTime, "HH时mm分");
|
|
int examRoomNum = teacherRoomEntry.getValue().size();
|
|
int examRoomNum = teacherRoomEntry.getValue().size();
|
|
Map<Integer, String> phoneMap = new HashMap<>();
|
|
Map<Integer, String> phoneMap = new HashMap<>();
|
|
phoneMap.put(teacherRoomEntry.getKey(), teacherPhone);
|
|
phoneMap.put(teacherRoomEntry.getKey(), teacherPhone);
|
|
sysMessageService.batchSendMessage(MessageTypeEnum.BEFORE_EXAM_TEACHER_REMIND_SMS,
|
|
sysMessageService.batchSendMessage(MessageTypeEnum.BEFORE_EXAM_TEACHER_REMIND_SMS,
|
|
phoneMap, null, 0, null, YimeiSmsPlugin.PLUGIN_NAME,
|
|
phoneMap, null, 0, null, YimeiSmsPlugin.PLUGIN_NAME,
|
|
- examStartTimeStr, examRoomNum);
|
|
|
|
|
|
+ tomorrowDayStr, examStartTimeStr, examEndTimeStr, examRoomNum);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|