Collections.sort(returnList,new CpmObDimNewComparator()); /** * 新的维度排序 * * @author zhangjun * */ class CpmObDimNewComparator implements Comparator { public int compare(Object element1, Object element2) { QualityMaintenanceForm s1 = (QualityMaintenanceForm) element1; QualityMaintenanceForm s2 = (QualityMaintenanceForm) element2; if(s1.getOrderid()==null || s2.getOrderid()==null){ String d1 = s1.getStartdate(); String d2 = s2.getStartdate(); String e1 = s1.getEnddate(); String e2 = s2.getEnddate(); if(d1==null || d2==null){ return -2; } if(d1.compareTo(d2) > 0){ return 2; }else if(d1.compareTo(d2)==0){ String t1 = s1.getTimeStr(); String t2 = s2.getTimeStr(); if(e1 == null || e2 == null){ return -1; } if(e1.compareTo(e2)>0){ return 1; }else if(e1.compareTo(e2) ==0){ if(t1 == null || t2 == null){ return -1; } if(t1.compareTo(t2) > 0){ return 1; }else if(t1.compareTo(t2)==0){ return 0; }else if(t1.compareTo(t2)<0) { return -1; } return 0; }else if(e1.compareTo(e2)<0){ return -1; } return 0; }else if(d1.compareTo(d2)<0){ return -2; } return -3; } int o1 = s1.getOrderid().intValue(); int o2 = s2.getOrderid().intValue(); String d1 = s1.getStartdate(); String d2 = s2.getStartdate(); String e1 = s1.getEnddate(); String e2 = s2.getEnddate(); if (o1 > o2) { return 3; } else if (o1 == o2) { if(d1==null || d2==null){ return -2; } if(d1.compareTo(d2) > 0){ return 2; }else if(d1.compareTo(d2)==0){ String t1 = s1.getTimeStr(); String t2 = s2.getTimeStr(); if(e1 == null || e2 == null){ return -1; } if(e1.compareTo(e2)>0){ return 1; }else if(e1.compareTo(e2) ==0){ if(t1 == null || t2 == null){ return -1; } if(t1.compareTo(t2) > 0){ return 1; }else if(t1.compareTo(t2)==0){ return 0; }else if(t1.compareTo(t2)<0) { return -1; } return 0; }else if(e1.compareTo(e2)<0){ return -1; } return 0; }else if(d1.compareTo(d2)<0){ return -2; } } return -3; } }