Commit 38ef3a7ca231d191abece33d50bcab96c0f3e0f4
Merge branch 'minhang' of http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
8 changed files
with
183 additions
and
26 deletions
src/main/java/com/bsth/service/oil/impl/DlbServiceImpl.java
| @@ -48,6 +48,7 @@ import com.bsth.service.impl.BaseServiceImpl; | @@ -48,6 +48,7 @@ import com.bsth.service.impl.BaseServiceImpl; | ||
| 48 | import com.bsth.service.oil.DlbService; | 48 | import com.bsth.service.oil.DlbService; |
| 49 | import com.bsth.service.realcontrol.ScheduleRealInfoService; | 49 | import com.bsth.service.realcontrol.ScheduleRealInfoService; |
| 50 | import com.bsth.util.Arith; | 50 | import com.bsth.util.Arith; |
| 51 | +import com.bsth.util.BatchSaveUtils; | ||
| 51 | 52 | ||
| 52 | @Service | 53 | @Service |
| 53 | public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbService{ | 54 | public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbService{ |
| @@ -245,8 +246,8 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS | @@ -245,8 +246,8 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS | ||
| 245 | List<Cdl> cdyList=cdlRepository.obtainCdl(); | 246 | List<Cdl> cdyList=cdlRepository.obtainCdl(); |
| 246 | //从排班表中计算出行驶的总里程 | 247 | //从排班表中计算出行驶的总里程 |
| 247 | List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq,"","","",""); | 248 | List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq,"","","",""); |
| 248 | - List<Ylb> addList=new ArrayList<Ylb>(); | ||
| 249 | - List<Ylb> updateList=new ArrayList<Ylb>(); | 249 | + List<Dlb> addList=new ArrayList<Dlb>(); |
| 250 | + List<Dlb> updateList=new ArrayList<Dlb>(); | ||
| 250 | for(int x=0;x<listpb.size();x++){ | 251 | for(int x=0;x<listpb.size();x++){ |
| 251 | String type="add"; | 252 | String type="add"; |
| 252 | boolean sfdc=false; | 253 | boolean sfdc=false; |
| @@ -332,12 +333,11 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS | @@ -332,12 +333,11 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS | ||
| 332 | t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString()); | 333 | t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString()); |
| 333 | t.setRq(sdf.parse(rq)); | 334 | t.setRq(sdf.parse(rq)); |
| 334 | t.setCreatetime(new Date()); | 335 | t.setCreatetime(new Date()); |
| 335 | - /*if(type.equals("add")){ | 336 | + if(type.equals("add")){ |
| 336 | addList.add(t); | 337 | addList.add(t); |
| 337 | }else{ | 338 | }else{ |
| 338 | updateList.add(t); | 339 | updateList.add(t); |
| 339 | - }*/ | ||
| 340 | - repository.save(t); | 340 | + } |
| 341 | newMap.put("status", ResponseCode.SUCCESS); | 341 | newMap.put("status", ResponseCode.SUCCESS); |
| 342 | } catch (ParseException e) { | 342 | } catch (ParseException e) { |
| 343 | // TODO Auto-generated catch block | 343 | // TODO Auto-generated catch block |
| @@ -346,20 +346,30 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS | @@ -346,20 +346,30 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS | ||
| 346 | } | 346 | } |
| 347 | } | 347 | } |
| 348 | } | 348 | } |
| 349 | - /* try { | 349 | + try { |
| 350 | if(addList.size()>0){ | 350 | if(addList.size()>0){ |
| 351 | - new BatchSaveUtils<Ylb>().saveList(addList, Ylb.class); | 351 | + try{ |
| 352 | + new BatchSaveUtils<Dlb>().saveList(addList, Dlb.class); | ||
| 353 | + } catch (Exception e) { | ||
| 354 | + // TODO: handle exception | ||
| 355 | + if(e.getMessage().indexOf("PK_DLB_UK")>0){ | ||
| 356 | + newMap.put("fage", "存在相同数据,数据已经过滤"); | ||
| 357 | + logger.info("获取:存在相同数据,数据已经过滤"); | ||
| 358 | + } | ||
| 359 | + } | ||
| 352 | } | 360 | } |
| 353 | 361 | ||
| 354 | if(updateList.size()>0){ | 362 | if(updateList.size()>0){ |
| 355 | - | 363 | + for (int i = 0; i < updateList.size(); i++) { |
| 364 | + repository.save(updateList.get(i)); | ||
| 365 | + } | ||
| 356 | } | 366 | } |
| 357 | newMap.put("status", ResponseCode.SUCCESS); | 367 | newMap.put("status", ResponseCode.SUCCESS); |
| 358 | } | 368 | } |
| 359 | catch (Exception e) { | 369 | catch (Exception e) { |
| 360 | // TODO: handle exception | 370 | // TODO: handle exception |
| 361 | newMap.put("status", ResponseCode.ERROR); | 371 | newMap.put("status", ResponseCode.ERROR); |
| 362 | - }*/ | 372 | + } |
| 363 | return newMap; | 373 | return newMap; |
| 364 | } | 374 | } |
| 365 | 375 |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| @@ -875,7 +875,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -875,7 +875,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 875 | double ksgl=Arith.add(culateMieageService.culateKsgl(lists),culateMieageService.culateJccgl(lists)); | 875 | double ksgl=Arith.add(culateMieageService.culateKsgl(lists),culateMieageService.culateJccgl(lists)); |
| 876 | map.put("ksgl",ksgl); | 876 | map.put("ksgl",ksgl); |
| 877 | map.put("realMileage", Arith.add(yygl ,ksgl)); | 877 | map.put("realMileage", Arith.add(yygl ,ksgl)); |
| 878 | - map.put("jhbc", culateMieageService.culateJhgl(scheduleRealInfos)); | 878 | + map.put("jhbc", culateMieageService.culateJhbc(scheduleRealInfos,"")); |
| 879 | map.put("cjbc", culateMieageService.culateLbbc(lists)); | 879 | map.put("cjbc", culateMieageService.culateLbbc(lists)); |
| 880 | map.put("ljbc", culateMieageService.culateLjbc(lists, "")); | 880 | map.put("ljbc", culateMieageService.culateLjbc(lists, "")); |
| 881 | int sjbc =culateMieageService.culateLjbc(lists, "")+culateMieageService.culateSjbc(lists, ""); | 881 | int sjbc =culateMieageService.culateLjbc(lists, "")+culateMieageService.culateSjbc(lists, ""); |
| @@ -2674,8 +2674,18 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -2674,8 +2674,18 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 2674 | } | 2674 | } |
| 2675 | for (int i = 0; i < newList.size(); i++) { | 2675 | for (int i = 0; i < newList.size(); i++) { |
| 2676 | ScheduleRealInfo t1 = newList.get(i); | 2676 | ScheduleRealInfo t1 = newList.get(i); |
| 2677 | + String reamrks1=t1.getRemarks()==null?"":t1.getRemarks(); | ||
| 2678 | + if(reamrks1.length()>5){ | ||
| 2679 | + t1.setRemarks(reamrks1.substring(0, 5)); | ||
| 2680 | + t1.setRemark(reamrks1); | ||
| 2681 | + } | ||
| 2677 | for (int j = 0; j < list.size(); j++) { | 2682 | for (int j = 0; j < list.size(); j++) { |
| 2678 | ScheduleRealInfo t2 = list.get(j); | 2683 | ScheduleRealInfo t2 = list.get(j); |
| 2684 | + String reamrks2=t2.getRemarks()==null?"":t2.getRemarks(); | ||
| 2685 | + if(reamrks2.length()>5){ | ||
| 2686 | + t2.setRemarks(reamrks2.substring(0, 5)); | ||
| 2687 | + t2.setRemark(reamrks2); | ||
| 2688 | + } | ||
| 2679 | if (t1.getId() == t2.getId()) { | 2689 | if (t1.getId() == t2.getId()) { |
| 2680 | t1 = t2; | 2690 | t1 = t2; |
| 2681 | } | 2691 | } |
| @@ -3989,7 +3999,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3989,7 +3999,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3989 | } | 3999 | } |
| 3990 | tempMap.put("fcsjk" + x, fcsjk); | 4000 | tempMap.put("fcsjk" + x, fcsjk); |
| 3991 | tempMap.put("fcsjm" + x, fcsjm); | 4001 | tempMap.put("fcsjm" + x, fcsjm); |
| 3992 | - tempMap.put("remarks" + x, schedule.getRemarks() != null ? schedule.getRemarks() : ""); | 4002 | + tempMap.put("remarks" + x, schedule.getRemark() != null ? schedule.getRemark() : ""); |
| 3993 | 4003 | ||
| 3994 | size++; | 4004 | size++; |
| 3995 | } | 4005 | } |
| @@ -4084,7 +4094,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -4084,7 +4094,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 4084 | double ksgl=Arith.add(culateMieageService.culateKsgl(lists),culateMieageService.culateJccgl(lists)); | 4094 | double ksgl=Arith.add(culateMieageService.culateKsgl(lists),culateMieageService.culateJccgl(lists)); |
| 4085 | map.put("ksgl",ksgl); | 4095 | map.put("ksgl",ksgl); |
| 4086 | map.put("realMileage", Arith.add(yygl ,ksgl)); | 4096 | map.put("realMileage", Arith.add(yygl ,ksgl)); |
| 4087 | - map.put("jhbc", culateMieageService.culateJhgl(scheduleRealInfos)); | 4097 | + map.put("jhbc", culateMieageService.culateJhbc(scheduleRealInfos,"")); |
| 4088 | map.put("cjbc", culateMieageService.culateLbbc(lists)); | 4098 | map.put("cjbc", culateMieageService.culateLbbc(lists)); |
| 4089 | map.put("ljbc", culateMieageService.culateLjbc(lists, "")); | 4099 | map.put("ljbc", culateMieageService.culateLjbc(lists, "")); |
| 4090 | int sjbc =culateMieageService.culateLjbc(lists, "")+culateMieageService.culateSjbc(lists, ""); | 4100 | int sjbc =culateMieageService.culateLjbc(lists, "")+culateMieageService.culateSjbc(lists, ""); |
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
| @@ -864,12 +864,14 @@ public class ReportServiceImpl implements ReportService{ | @@ -864,12 +864,14 @@ public class ReportServiceImpl implements ReportService{ | ||
| 864 | //查询时间里程 | 864 | //查询时间里程 |
| 865 | String sqlPc=" (SELECT jhlc,fcsj,bcsj,bc_type,lp,xl_dir,ists,2 as xh FROM " | 865 | String sqlPc=" (SELECT jhlc,fcsj,bcsj,bc_type,lp,xl_dir,ists,2 as xh FROM " |
| 866 | + " bsth_c_s_ttinfo_detail where ttinfo ='"+ttinfo+"' and " | 866 | + " bsth_c_s_ttinfo_detail where ttinfo ='"+ttinfo+"' and " |
| 867 | - + " fcsj <='"+minfcsj+"' and bc_type!='in' and bc_type!='out' and bc_type!='ldks') " | 867 | + + " fcsj <='"+minfcsj+"' and bc_type!='in' and bc_type!='out' and bc_type!='ldks'" |
| 868 | + + " and bc_type !='region') " | ||
| 868 | + " union " | 869 | + " union " |
| 869 | + " (SELECT jhlc,fcsj,bcsj,bc_type,lp,xl_dir,ists,1 as xh FROM " | 870 | + " (SELECT jhlc,fcsj,bcsj,bc_type,lp,xl_dir,ists,1 as xh FROM " |
| 870 | + " bsth_c_s_ttinfo_detail where ttinfo ='"+ttinfo+"' and " | 871 | + " bsth_c_s_ttinfo_detail where ttinfo ='"+ttinfo+"' and " |
| 871 | - + " fcsj > '"+minfcsj+"' and bc_type!='in' and bc_type!='out' and bc_type!='ldks') " | ||
| 872 | - + " order by xl_dir, xh, fcsj"; | 872 | + + " fcsj > '"+minfcsj+"' and bc_type!='in' and bc_type!='out' and bc_type!='ldks' " |
| 873 | + + " and bc_type !='region') " | ||
| 874 | + + " order by xl_dir, xh, lp,fcsj"; | ||
| 873 | Map<String, Object> map=new HashMap<String,Object>(); | 875 | Map<String, Object> map=new HashMap<String,Object>(); |
| 874 | List<Map<String, Object>> list= jdbcTemplate.query(sqlPc, | 876 | List<Map<String, Object>> list= jdbcTemplate.query(sqlPc, |
| 875 | new RowMapper<Map<String, Object>>(){ | 877 | new RowMapper<Map<String, Object>>(){ |
| @@ -923,13 +925,17 @@ public class ReportServiceImpl implements ReportService{ | @@ -923,13 +925,17 @@ public class ReportServiceImpl implements ReportService{ | ||
| 923 | Map<String, Object> tempMap = new HashMap<String, Object>(); | 925 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 924 | List<Map<String, Object>> list2 = keyMap.get(key); | 926 | List<Map<String, Object>> list2 = keyMap.get(key); |
| 925 | List<Integer> cjs = new ArrayList<Integer>(); | 927 | List<Integer> cjs = new ArrayList<Integer>(); |
| 928 | + List<Integer> fcsj_s = new ArrayList<Integer>(); | ||
| 929 | + List<Integer> fcsj_x = new ArrayList<Integer>(); | ||
| 926 | int sxsj = 0, xxsj = 0, sxtssj = 0, xxtssj = 0; | 930 | int sxsj = 0, xxsj = 0, sxtssj = 0, xxtssj = 0; |
| 927 | int sxbc = 0, xxbc = 0, sxtsbc = 0, xxtsbc = 0; | 931 | int sxbc = 0, xxbc = 0, sxtsbc = 0, xxtsbc = 0; |
| 928 | int temp = 24*60+1, zcj = 0; | 932 | int temp = 24*60+1, zcj = 0; |
| 929 | boolean ists = false; | 933 | boolean ists = false; |
| 934 | + String lpname=""; | ||
| 930 | for(Map<String, Object> m : list2){ | 935 | for(Map<String, Object> m : list2){ |
| 931 | String[] split = m.get("fcsj").toString().split(":"); | 936 | String[] split = m.get("fcsj").toString().split(":"); |
| 932 | int fcsj = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]); | 937 | int fcsj = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]); |
| 938 | + | ||
| 933 | int xlDir = Integer.valueOf(m.get("dir").toString()); | 939 | int xlDir = Integer.valueOf(m.get("dir").toString()); |
| 934 | int bcsj = Integer.valueOf(m.get("bcsj").toString()); | 940 | int bcsj = Integer.valueOf(m.get("bcsj").toString()); |
| 935 | if(temp >= fcsj){ | 941 | if(temp >= fcsj){ |
| @@ -937,28 +943,68 @@ public class ReportServiceImpl implements ReportService{ | @@ -937,28 +943,68 @@ public class ReportServiceImpl implements ReportService{ | ||
| 937 | ists = false; | 943 | ists = false; |
| 938 | } | 944 | } |
| 939 | if(xlDir == 0){ | 945 | if(xlDir == 0){ |
| 946 | + fcsj_s.add(fcsj); | ||
| 940 | sxsj += bcsj; | 947 | sxsj += bcsj; |
| 941 | sxbc ++; | 948 | sxbc ++; |
| 942 | - if(ists){ | ||
| 943 | - sxtssj += fcsj - temp; | 949 | + if(!ists){ |
| 950 | + if(lpname.equals("")){ | ||
| 951 | + lpname=m.get("lp").toString(); | ||
| 952 | + }else{ | ||
| 953 | + if(lpname.equals(m.get("lp").toString())){ | ||
| 954 | + sxtssj += (fcsj+bcsj) - temp; | ||
| 955 | + } | ||
| 956 | + } | ||
| 944 | sxtsbc++; | 957 | sxtsbc++; |
| 945 | } | 958 | } |
| 946 | } else { | 959 | } else { |
| 960 | + fcsj_x.add(fcsj); | ||
| 947 | xxsj += bcsj; | 961 | xxsj += bcsj; |
| 948 | xxbc ++; | 962 | xxbc ++; |
| 949 | - if(ists){ | ||
| 950 | - xxtssj += fcsj - temp; | 963 | + |
| 964 | + if(!ists){ | ||
| 965 | + | ||
| 966 | + if(lpname.equals("")){ | ||
| 967 | + lpname=m.get("lp").toString(); | ||
| 968 | + }else{ | ||
| 969 | + if(lpname.equals(m.get("lp").toString())){ | ||
| 970 | + xxtssj += (fcsj+bcsj) - temp; | ||
| 971 | + } | ||
| 972 | + } | ||
| 951 | xxtsbc++; | 973 | xxtsbc++; |
| 952 | } | 974 | } |
| 953 | } | 975 | } |
| 954 | - if(temp < fcsj){ | 976 | + /*if(temp < fcsj){ |
| 955 | cjs.add(fcsj - temp); | 977 | cjs.add(fcsj - temp); |
| 956 | temp = fcsj; | 978 | temp = fcsj; |
| 957 | - } | 979 | + }*/ |
| 958 | if(m.get("ists").toString().trim().equals("1")){ | 980 | if(m.get("ists").toString().trim().equals("1")){ |
| 959 | ists = true; | 981 | ists = true; |
| 982 | + }else{ | ||
| 983 | + ists=false; | ||
| 960 | } | 984 | } |
| 961 | } | 985 | } |
| 986 | + Collections.sort(fcsj_s); | ||
| 987 | + int fcsjs=0; | ||
| 988 | + for (int i = 0; i < fcsj_s.size(); i++) { | ||
| 989 | + if(i==0){ | ||
| 990 | + fcsjs =fcsj_s.get(i); | ||
| 991 | + }else{ | ||
| 992 | + cjs.add(fcsj_s.get(i)-fcsjs); | ||
| 993 | + fcsjs=fcsj_s.get(i); | ||
| 994 | + } | ||
| 995 | + | ||
| 996 | + } | ||
| 997 | + Collections.sort(fcsj_x); | ||
| 998 | + int fcsjx=0; | ||
| 999 | + for (int i = 0; i < fcsj_x.size(); i++) { | ||
| 1000 | + if(i==0){ | ||
| 1001 | + fcsjx =fcsj_x.get(i); | ||
| 1002 | + }else{ | ||
| 1003 | + cjs.add(fcsj_x.get(i)-fcsjx); | ||
| 1004 | + fcsjx =fcsj_x.get(i); | ||
| 1005 | + } | ||
| 1006 | + | ||
| 1007 | + } | ||
| 962 | Collections.sort(cjs); | 1008 | Collections.sort(cjs); |
| 963 | for(int i : cjs){ | 1009 | for(int i : cjs){ |
| 964 | zcj += i; | 1010 | zcj += i; |
src/main/java/com/bsth/service/schedule/rules/shiftloop/GidFbFcnoFunction.java
0 → 100644
| 1 | +package com.bsth.service.schedule.rules.shiftloop; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.schedule.TTInfoDetail; | ||
| 4 | +import org.kie.api.runtime.rule.AccumulateFunction; | ||
| 5 | + | ||
| 6 | +import java.io.*; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 时刻表路牌下的分班班次发车顺序号。 | ||
| 10 | + */ | ||
| 11 | +public class GidFbFcnoFunction implements AccumulateFunction { | ||
| 12 | + @Override | ||
| 13 | + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + @Override | ||
| 17 | + public void writeExternal(ObjectOutput out) throws IOException { | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + protected static class GidFbInfoData implements Externalizable { | ||
| 21 | + public Integer fbfcno; | ||
| 22 | + public TTInfoDetail ttInfoDetail; | ||
| 23 | + | ||
| 24 | + public GidFbInfoData() {} | ||
| 25 | + | ||
| 26 | + @Override | ||
| 27 | + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | ||
| 28 | + fbfcno = (Integer) in.readObject(); | ||
| 29 | + ttInfoDetail = (TTInfoDetail) in.readObject(); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + @Override | ||
| 33 | + public void writeExternal(ObjectOutput out) throws IOException { | ||
| 34 | + out.writeObject(fbfcno); | ||
| 35 | + out.writeObject(ttInfoDetail); | ||
| 36 | + } | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + @Override | ||
| 40 | + public Serializable createContext() { | ||
| 41 | + return new GidFbInfoData(); | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + @Override | ||
| 45 | + public void init(Serializable context) throws Exception { | ||
| 46 | + GidFbInfoData gidFbInfoData = (GidFbInfoData) context; | ||
| 47 | + gidFbInfoData.fbfcno = 999; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + @Override | ||
| 51 | + public void accumulate(Serializable context, Object value) { | ||
| 52 | + GidFbInfoData gidFbInfoData = (GidFbInfoData) context; | ||
| 53 | + TTInfoDetail ttInfoDetail = (TTInfoDetail) value; | ||
| 54 | + | ||
| 55 | + // 1块路牌有多个分班班次,取最早的时间作为起始分班班次发车顺序号 | ||
| 56 | + if (ttInfoDetail.getIsFB()) { | ||
| 57 | + if (ttInfoDetail.getFcno() <= gidFbInfoData.fbfcno) { | ||
| 58 | + gidFbInfoData.fbfcno = ttInfoDetail.getFcno(); | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + @Override | ||
| 64 | + public void reverse(Serializable serializable, Object o) throws Exception { | ||
| 65 | + | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + @Override | ||
| 69 | + public boolean supportsReverse() { | ||
| 70 | + return false; | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + @Override | ||
| 74 | + public Class<?> getResultType() { | ||
| 75 | + return Integer.class; | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + @Override | ||
| 79 | + public Object getResult(Serializable context) throws Exception { | ||
| 80 | + GidFbInfoData gidFbInfoData = (GidFbInfoData) context; | ||
| 81 | + | ||
| 82 | + return gidFbInfoData.fbfcno; | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | +} |
src/main/java/com/bsth/service/schedule/rules/shiftloop/readme.txt deleted
100644 → 0
src/main/resources/rules/functions.drl
| @@ -3,6 +3,7 @@ package com.bsth.service.schedule; | @@ -3,6 +3,7 @@ package com.bsth.service.schedule; | ||
| 3 | import accumulate com.bsth.service.schedule.rules.ttinfo2.ErrorBcCountFunction ecount; | 3 | import accumulate com.bsth.service.schedule.rules.ttinfo2.ErrorBcCountFunction ecount; |
| 4 | import accumulate com.bsth.service.schedule.rules.shiftloop.GidsCountFunction gidscount; | 4 | import accumulate com.bsth.service.schedule.rules.shiftloop.GidsCountFunction gidscount; |
| 5 | import accumulate com.bsth.service.schedule.rules.shiftloop.GidFbTimeFunction gidfbtime; | 5 | import accumulate com.bsth.service.schedule.rules.shiftloop.GidFbTimeFunction gidfbtime; |
| 6 | +import accumulate com.bsth.service.schedule.rules.shiftloop.GidFbFcnoFunction gidfbfcno; | ||
| 6 | import accumulate com.bsth.service.schedule.rules.ttinfo.LpInfoResultsFunction lpinforesult; | 7 | import accumulate com.bsth.service.schedule.rules.ttinfo.LpInfoResultsFunction lpinforesult; |
| 7 | import accumulate com.bsth.service.schedule.rules.ttinfo.MinRuleQyrqFunction minruleqyrq; | 8 | import accumulate com.bsth.service.schedule.rules.ttinfo.MinRuleQyrqFunction minruleqyrq; |
| 8 | import accumulate com.bsth.service.schedule.rules.validate.ValidRepeatBcFunction vrb; | 9 | import accumulate com.bsth.service.schedule.rules.validate.ValidRepeatBcFunction vrb; |
| 9 | \ No newline at end of file | 10 | \ No newline at end of file |
src/main/resources/rules/plan.drl
| @@ -224,6 +224,7 @@ declare TTInfo_gid_stat | @@ -224,6 +224,7 @@ declare TTInfo_gid_stat | ||
| 224 | maxFcno: Integer // 最大发车顺序号 | 224 | maxFcno: Integer // 最大发车顺序号 |
| 225 | 225 | ||
| 226 | fbTime: LocalTime // 分班时间 | 226 | fbTime: LocalTime // 分班时间 |
| 227 | + fbfcno: Integer // 分班发车顺序号 | ||
| 227 | end | 228 | end |
| 228 | 229 | ||
| 229 | rule "calcu_TTInfo_gid_stat" | 230 | rule "calcu_TTInfo_gid_stat" |
| @@ -234,6 +235,7 @@ rule "calcu_TTInfo_gid_stat" | @@ -234,6 +235,7 @@ rule "calcu_TTInfo_gid_stat" | ||
| 234 | $gids: List() from accumulate ($ttd: TTInfoDetail() from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), gidscount($ttd)) | 235 | $gids: List() from accumulate ($ttd: TTInfoDetail() from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), gidscount($ttd)) |
| 235 | $gid: String() from $gids | 236 | $gid: String() from $gids |
| 236 | $fbtime_str: String() from accumulate ($ttd: TTInfoDetail(lp.id.toString() == $gid) from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), gidfbtime($ttd)) | 237 | $fbtime_str: String() from accumulate ($ttd: TTInfoDetail(lp.id.toString() == $gid) from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), gidfbtime($ttd)) |
| 238 | + $fbfcno: Integer() from accumulate ($ttd: TTInfoDetail(lp.id.toString() == $gid) from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), gidfbfcno($ttd)) | ||
| 237 | $maxfcno: Double() from accumulate ($ttd: TTInfoDetail(lp.id.toString() == $gid) from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), max($ttd.getFcno())) | 239 | $maxfcno: Double() from accumulate ($ttd: TTInfoDetail(lp.id.toString() == $gid) from tTInfoDetailRepository.findByTtinfoId(Long.parseLong($ttInfoId)), max($ttd.getFcno())) |
| 238 | then | 240 | then |
| 239 | TTInfo_gid_stat ttInfo_gid_stat = new TTInfo_gid_stat(); | 241 | TTInfo_gid_stat ttInfo_gid_stat = new TTInfo_gid_stat(); |
| @@ -243,11 +245,12 @@ rule "calcu_TTInfo_gid_stat" | @@ -243,11 +245,12 @@ rule "calcu_TTInfo_gid_stat" | ||
| 243 | 245 | ||
| 244 | ttInfo_gid_stat.setMaxFcno($maxfcno.intValue()); | 246 | ttInfo_gid_stat.setMaxFcno($maxfcno.intValue()); |
| 245 | ttInfo_gid_stat.setFbTime(fcsjTime($fbtime_str)); | 247 | ttInfo_gid_stat.setFbTime(fcsjTime($fbtime_str)); |
| 248 | + ttInfo_gid_stat.setFbfcno($fbfcno); | ||
| 246 | 249 | ||
| 247 | insert(ttInfo_gid_stat); | 250 | insert(ttInfo_gid_stat); |
| 248 | 251 | ||
| 249 | -// log.info("xlid={},ttid={},gid={},maxfcno={},fbtime={}", | ||
| 250 | -// $xlId, $ttInfoId, $gid, ttInfo_gid_stat.getMaxFcno(), ttInfo_gid_stat.getFbTime()); | 252 | +// log.info("xlid={},ttid={},gid={},maxfcno={},fbtime={},fbfcno={}", |
| 253 | +// $xlId, $ttInfoId, $gid, ttInfo_gid_stat.getMaxFcno(), ttInfo_gid_stat.getFbTime(), ttInfo_gid_stat.getFbfcno()); | ||
| 251 | 254 | ||
| 252 | end | 255 | end |
| 253 | 256 | ||
| @@ -304,7 +307,10 @@ rule "calcu_TTInfoDetail_Wraps" | @@ -304,7 +307,10 @@ rule "calcu_TTInfoDetail_Wraps" | ||
| 304 | 307 | ||
| 305 | LocalTime fcsj = fcsjTime(ttInfoDetail.getFcsj()); | 308 | LocalTime fcsj = fcsjTime(ttInfoDetail.getFcsj()); |
| 306 | LocalTime fbsj = ttInfo_gid_stat.getFbTime(); | 309 | LocalTime fbsj = ttInfo_gid_stat.getFbTime(); |
| 307 | - ttInfoDetail_wrap.setIsFb(fbsj == null ? false : (fcsj.isEqual(fbsj) || fcsj.isAfter(fbsj))); | 310 | + Integer fbfcno = ttInfo_gid_stat.getFbfcno(); |
| 311 | + // 不用时间判定,因为有的路牌,后面的班次都是凌晨的,时间反而比分班时间早,不合理,所以使用发车顺序号做第二次比较 | ||
| 312 | +// ttInfoDetail_wrap.setIsFb(fbsj == null ? false : (fcsj.isEqual(fbsj) || fcsj.isAfter(fbsj))); | ||
| 313 | + ttInfoDetail_wrap.setIsFb(fbsj == null ? false : ttInfoDetail.getFcno() >= fbfcno); | ||
| 308 | 314 | ||
| 309 | ttInfoDetail_wrap.setSelf(ttInfoDetail); | 315 | ttInfoDetail_wrap.setSelf(ttInfoDetail); |
| 310 | 316 |
src/main/resources/static/pages/forms/statement/scheduleDaily.html
| @@ -594,7 +594,7 @@ | @@ -594,7 +594,7 @@ | ||
| 594 | <td>{{obj.slow0}} | 594 | <td>{{obj.slow0}} |
| 595 | 595 | ||
| 596 | </td> | 596 | </td> |
| 597 | - <td colspan="2"></td> | 597 | + <td colspan="2" title="{{obj.remark}}">{{obj.remarks}}</td> |
| 598 | {{if (i+1)%3 == 0}} | 598 | {{if (i+1)%3 == 0}} |
| 599 | <td> </td> | 599 | <td> </td> |
| 600 | </tr> | 600 | </tr> |