Commit 26abb4f911607fb23713fa191dc5c53aeb0f98ba

Authored by panzh
1 parent e53f80dc

update...

src/main/java/com/bsth/data/schedule/ScheduleComparator.java
... ... @@ -9,12 +9,10 @@ import java.util.HashMap;
9 9 import java.util.Map;
10 10  
11 11 /**
12   - *
13   - * @ClassName: ScheduleComparator
14   - * @Description: TODO(实际班次排序器)
15 12 * @author PanZhao
16   - * @date 2016年8月15日 下午1:53:28
17   - *
  13 + * @ClassName: ScheduleComparator
  14 + * @Description: TODO(实际班次排序器)
  15 + * @date 2016年8月15日 下午1:53:28
18 16 */
19 17 public class ScheduleComparator {
20 18  
... ... @@ -26,71 +24,62 @@ public class ScheduleComparator {
26 24 }*/
27 25  
28 26  
29   - static Map<String, Integer> bcTypeOrderMap = new HashMap<>();
  27 + static Map<String, Integer> bcTypeOrderMap = new HashMap<>();
30 28  
31   - static{
32   - bcTypeOrderMap.put("out", 0);
33   - bcTypeOrderMap.put("normal", 1);
34   - bcTypeOrderMap.put("region", 2);
35   - bcTypeOrderMap.put("major", 3);
36   - bcTypeOrderMap.put("venting", 4);
37   - bcTypeOrderMap.put("ldks", 5);
38   - bcTypeOrderMap.put("in", 6);
39   - }
40   -
41   - public static class FCSJ implements Comparator<ScheduleRealInfo>{
  29 + static {
  30 + bcTypeOrderMap.put("out", 0);
  31 + bcTypeOrderMap.put("normal", 1);
  32 + bcTypeOrderMap.put("region", 2);
  33 + bcTypeOrderMap.put("major", 3);
  34 + bcTypeOrderMap.put("venting", 4);
  35 + bcTypeOrderMap.put("ldks", 5);
  36 + bcTypeOrderMap.put("in", 6);
  37 + }
42 38  
43   - @Override
44   - public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
45   - int diff = (int) (s1.getFcsjT() - s2.getFcsjT());
46   - return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
47   - }
48   - }
  39 + public static class FCSJ implements Comparator<ScheduleRealInfo> {
49 40  
50   - private static int typeOrder(String bcType){
51   - return bcTypeOrderMap.get(bcType)!=null?bcTypeOrderMap.get(bcType):0;
52   - }
  41 + @Override
  42 + public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
  43 + int diff = (int) (s1.getFcsjT() - s2.getFcsjT());
  44 + return diff != 0 ? diff : typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
  45 + }
  46 + }
  47 +
  48 + private static int typeOrder(String bcType) {
  49 + return bcTypeOrderMap.get(bcType) != null ? bcTypeOrderMap.get(bcType) : 0;
  50 + }
53 51  
54   - public static class DFSJ implements Comparator<ScheduleRealInfo>{
  52 + public static class DFSJ implements Comparator<ScheduleRealInfo> {
55 53  
56 54 static Logger logger = LoggerFactory.getLogger(DFSJ.class);
57 55  
58   - @Override
59   - public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
60   - try{
  56 + @Override
  57 + public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
  58 + try {
  59 + int diff;
  60 + if (!s2.isSflj() && !s1.isSflj()) {
  61 + diff = (int) (s1.getFcsjT() - s2.getFcsjT());
61 62  
62   - if(!s1.getXlBm().equals(s2.getXlBm()) || !s1.getLpName().equals(s2.getLpName())){
63   - int diff = (int) (s1.getDfsjT() - s2.getDfsjT());
64   - return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
65   - }
66   - else{
67   - /**
68   - * 按时刻表发车顺序号
69   - */
70   - Integer fc1 = s1.getFcno();
71   - Integer fc2 = s2.getFcno();
72   - if(null != fc1 && null != fc2){
73   - return fc1.intValue()==fc2.intValue()?0:fc1.intValue()-fc2.intValue();
74   - }
75   - else{
76   - int diff = (int) (s1.getDfsjT() - s2.getDfsjT());
77   - return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
78   - }
  63 + } else {
  64 + diff = (int) (s1.getDfsjT() - s2.getDfsjT());
79 65 }
80   - }catch (Exception e){
  66 +
  67 + return diff != 0 ? diff : typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
  68 +
  69 + } catch (Exception e) {
81 70 logger.error("排序异常", e);
82   - return s1.getDfsjT() - s2.getDfsjT() > 0?1:-1;
  71 + return s1.getDfsjT() - s2.getDfsjT() > 0 ? 1 : -1;
83 72 }
84   - }
85   - }
  73 + }
  74 + }
86 75  
87   - public static class DFSJ2 implements Comparator<ScheduleRealInfo>{
  76 + public static class DFSJ2 implements Comparator<ScheduleRealInfo> {
88 77  
89 78  
90 79 @Override
91 80 public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
92 81 int diff = (int) (s1.getDfsjT() - s2.getDfsjT());
93   - return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
  82 + return diff != 0 ? diff : typeOrder(s1.getBcType()) - typeOrder(s2.getBcType());
94 83 }
95 84 }
96 85 }
... ...