封装获取MAP

来源:互联网 发布:财务审批流程软件 编辑:程序博客网 时间:2024/06/07 02:58

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();                                  }             }        }                    }