List<Attendance> list = attendanceDao.selectAllAttendance(map);
Map<String,Map<String,Map<String,List<Attendance>>>> codeMap =
new HashMap<String,Map<String,Map<String,List<Attendance>>>>();
for(Attendance attendance :list){
String code=attendance.getCode();
Map<String,Map<String,List<Attendance>>> dateMap=null;
if(codeMap.containsKey(code)){
dateMap=codeMap.get(code);
}else{
dateMap=new HashMap<String,Map<String,List<Attendance>>>();
}
String ym=attendance.getYearflg()+"-"+attendance.getMonthflg();
String ymd=attendance.getYearflg()+"-"+attendance.getMonthflg()+"-"+attendance.getDayflg();
Map<String,List<Attendance>> map2 = null;
if(dateMap.containsKey(ym)){
map2 = dateMap.get(ym);
}else{
map2 = new HashMap<String,List<Attendance>>();
}
List<Attendance> attendanceList=null;
if(dateMap.containsKey(ymd)){
/*DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String attendanceTime = format1.format(attendance.getAttendanceTime());
if(ymd.equals(attendanceTime)){
}*/
attendanceList=map2.get(ymd);
}else{
attendanceList=new ArrayList();
}
attendanceList.add(attendance);
map2.put(ymd, attendanceList);
dateMap.put(ym, map2);
codeMap.put(code, dateMap);
}
//得到code下的数据
Set<Map.Entry<String, Map<String, Map<String,List<Attendance>>>>> set = codeMap.entrySet();
Iterator<Map.Entry<String, Map<String, Map<String,List<Attendance>>>>> i = set.iterator();
while(i.hasNext()) { //循环code
Entry e = i.next();
Map<String, Map<String,List<Attendance>>> mapvv = (Map<String, Map<String,List<Attendance>>>) e.getValue();
Set<Entry<String, Map<String,List<Attendance>>>> s = mapvv.entrySet();
Iterator<Entry<String, Map<String,List<Attendance>>>> inner = s.iterator();
List<String> dateList = new ArrayList<String>();
boolean flag=false;//是否存在出勤状态false为新增
while(inner.hasNext()){//得到月份下的数据
int j=0;
Entry e2 = inner.next();
Map<String,List<Attendance>> mapvv2 = (Map<String, List<Attendance>>) e2.getValue();
Set<Entry<String,List<Attendance>>> s2 = mapvv2.entrySet();
Iterator<Entry<String,List<Attendance>>> inner2 = s2.iterator();
while(inner2.hasNext()) { //得到年月日的数据
j++;
List listt = (List)inner2.next().getValue();
Iterator li = listt.iterator();
while(li.hasNext()) {//详细的数据
/********************得到月出勤状态**************************/
Attendance attendance = (Attendance)li.next();
}
}
}
}
封装获取MAP
最新推荐文章于 2021-12-25 10:31:00 发布