/**
* 中午12點30定時推送邏輯:
*
* 下午排班和上午排班不同的進行推送
*
* @author Qcl
* @version v1.1
* @throws ParseException
*/
//@Test
public void test1() throws ParseException{
int flag = 1;
List<Room> rooms = (List<Room>) roomRepository.findAll();
List<Schedule> scheduleList = null;
List<Schedule> scheduleList2 = null;
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Map<Integer, Integer> map2 = new HashMap<Integer, Integer>();
Map<Integer, Integer> pushMap = new HashMap<Integer, Integer>();
for(Room room : rooms){
scheduleList = scheduleRepository.findByRoom_idAndFlagAndEffectdate(room.getId(), 0, stringToDate(formatDate(new Date(), "yyyy-MM-dd"), "yyyy-MM-dd"));
scheduleList2 = scheduleRepository.findByRoom_idAndFlagAndEffectdate(room.getId(), 1, stringToDate(formatDate(new Date(), "yyyy-MM-dd"), "yyyy-MM-dd"));
map.put(room.getId(), 99999);
map2.put(room.getId(), 99999);
if(scheduleList.size() > 0){
map.put(room.getId(), scheduleList.get(0).getUser().getId());
}
if(scheduleList2.size() > 0){
map2.put(room.getId(), scheduleList2.get(0).getUser().getId());
}
if(!map2.containsValue(map.get(room.getId()))){
pushMap.put(room.getId(), map2.get(room.getId()));
}
}
System.out.println(pushMap.size());
/**
* 迭代器遍歷map
*/
Iterator<Entry<Integer, Integer>> it = pushMap.entrySet().iterator();
while(it.hasNext()){
Entry<Integer, Integer> entry = ((Iterator<Entry<Integer, Integer>>) it).next();
int k = entry.getKey();
Integer v = entry.getValue();
/*
* 知識點:增強for循環無法修改map內容,會報java.util.ConcurrentModificationException異常
* 迭代器迭代時,使用迭代器iterator.remove()不會有問題
*/
/*if(v == null){
it.remove();
}*/
String room_name = roomRepository.findOne(k).getName();
String user_name = userRepository.findOne(v).getName();
if(user_name == null){
user_name = "醫生不顯示";
}
System.out.println(room_name + " => " + user_name);
}
/**
* 增強for循環遍歷map
*/
for(Map.Entry<Integer, Integer> entry : pushMap.entrySet()){
int k = entry.getKey();
Integer v = entry.getValue();
String room_name = roomRepository.findOne(k).getName();
String user_name = userRepository.findOne(v).getName();
if(user_name == null){
user_name = "醫生不顯示";
}
System.out.println(room_name + " => " + user_name);
}
}
Map的比較與遍歷
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.