Commit 1de6f89b48070ea8699eabbf0074e07ae8bc763c

Authored by 徐烜
2 parents 05e6889a c2efac08

Merge branch 'minhang' of http://222.66.0.204:8090//panzhaov5/bsth_control into minhang

src/main/java/com/bsth/repository/StationRepository.java
... ... @@ -40,10 +40,17 @@ public interface StationRepository extends BaseRepository<Station, Integer> {
40 40 /*@Query(value = "SELECT s.b_jwpoints,s.id FROM bsth_c_station s where s.station_name like ?1"
41 41 , nativeQuery=true)
42 42 List<Object[]> findStationName(String stationName);*/
43   - @Query(value = " SELECT t.b_jwpoints,t.id FROM (" +
  43 + /*@Query(value = " SELECT t.b_jwpoints,t.id FROM (" +
44 44 " SELECT b.id,b.b_jwpoints,b.station_name,a.directions FROM (" +
45 45 " SELECT s.station,s.station_name,s.directions FROM bsth_c_stationroute s where s.destroy = 0 and s.directions = ?1) a " +
46 46 " LEFT JOIN bsth_c_station b on a.station = b. id) t where t.station_name LIKE ?2"
  47 + , nativeQuery=true)*/
  48 + @Query(value = " SELECT t.b_jwpoints,t.id FROM (" +
  49 + " SELECT b.id,b.b_jwpoints,b.station_name,a.directions FROM (" +
  50 + " SELECT s.station,s.station_name,s.directions FROM bsth_c_stationroute s where s.destroy = 0 and s.directions = ?1) a " +
  51 + " LEFT JOIN " +
  52 + " (SELECT r.id,r.b_jwpoints,r.station_name from bsth_c_station r where r.destroy = 0 and r.station_name LIKE ?2 ) " +
  53 + " b on a.station = b. id) t where t.station_name LIKE ?2 "
47 54 , nativeQuery=true)
48 55 List<Object[]> findStationName(Integer dir , String stationName);
49 56  
... ... @@ -101,18 +108,24 @@ public interface StationRepository extends BaseRepository&lt;Station, Integer&gt; {
101 108 "y = ?9 , " +
102 109 "b_polygon_grid = ST_GeomFromText(?10) , " +
103 110 "g_polygon_grid = ST_GeomFromText(?11) , " +
104   - "destroy = ?12 , " +
105   - "radius = ?13 , " +
106   - "shapes_type = ?14 , " +
107   - "versions = ?15 , " +
108   - "descriptions = ?16 " +
109   - " WHERE id = ?17 ", nativeQuery=true)
  111 + /*"destroy = ?12 , " +*/
  112 + "radius = ?12 , " +
  113 + "shapes_type = ?13 , " +
  114 + "versions = ?14 , " +
  115 + "descriptions = ?15 " +
  116 + " WHERE id = ?16 ", nativeQuery=true)
110 117 public void stationUpdate(String stationCod,String stationName,String roadCoding,String dbType,String bJwpoints,
  118 +
  119 + Float gLonx,Float gLaty,Float x,Float y, String bPolygonGrid,String gPolygonGrid,
  120 +
  121 + Integer radius,String shapesType, Integer versions,String descriptions,Integer stationId);
  122 +
  123 + /*public void stationUpdate(String stationCod,String stationName,String roadCoding,String dbType,String bJwpoints,
111 124  
112 125 Float gLonx,Float gLaty,Float x,Float y, String bPolygonGrid,String gPolygonGrid,
113 126  
114 127 Integer destroy, Integer radius,String shapesType, Integer versions,String descriptions,Integer stationId);
115   -
  128 + */
116 129  
117 130 @Query(value = "select st_astext(g_polygon_grid) as g_polygon_grid, shapes_type,concat(g_lonx, ' ', g_laty) as g_center_point ,radius, station_cod,station_name from bsth_c_station where station_cod=?1", nativeQuery = true)
118 131 public Object[][] bufferAera(String stationCode);
... ...
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
... ... @@ -331,17 +331,18 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
331 331 rs.put("msg", "发送C0响应指令到车载设备失败,但该操作已经被系统记录!");
332 332  
333 333 pilotReport.reply(d80);
  334 +
  335 + // 通知页面
  336 + Map<String, Object> sockMap = new HashMap<>();
  337 + sockMap.put("fn", "d80Confirm");
  338 + sockMap.put("id", d80.getId());
  339 + sockMap.put("lineId", d80.getData().getLineId());
  340 + socketHandler.sendMessageToLine(d80.getData().getLineId().toString(), JSON.toJSONString(sockMap));
334 341 }
335 342 } catch (Exception e) {
336 343 logger.error("80响应出现异常...", e);
337 344 rs.put("status", ResponseCode.SUCCESS);
338 345 }
339   - // 通知页面
340   - Map<String, Object> sockMap = new HashMap<>();
341   - sockMap.put("fn", "d80Confirm");
342   - sockMap.put("id", d80.getId());
343   - sockMap.put("lineId", d80.getData().getLineId());
344   - socketHandler.sendMessageToLine(d80.getData().getLineId().toString(), JSON.toJSONString(sockMap));
345 346  
346 347 return rs;
347 348 }
... ...
src/main/java/com/bsth/service/impl/StationServiceImpl.java
... ... @@ -930,7 +930,8 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
930 930 Float x = map.get("x").equals("") ? null : Float.parseFloat(map.get("x").toString());
931 931 Float y = map.get("y").equals("") ? null : Float.parseFloat(map.get("y").toString());
932 932 // 更新
933   - repository.stationUpdate(stationCod, zdmc, roadCoding, dbType, bJwpoints, gLonx, gLaty, x, y, bPloygonGrid, gPloygonGrid, destroy, radius, shapesType, versions, descriptions, stationId);
  933 + /*repository.stationUpdate(stationCod, zdmc, roadCoding, dbType, bJwpoints, gLonx, gLaty, x, y, bPloygonGrid, gPloygonGrid, destroy, radius, shapesType, versions, descriptions, stationId);*/
  934 + repository.stationUpdate(stationCod, zdmc, roadCoding, dbType, bJwpoints, gLonx, gLaty, x, y, bPloygonGrid, gPloygonGrid, radius, shapesType, versions, descriptions, stationId);
934 935 // 站点路由Id
935 936 Integer stationRouteId = map.get("stationRouteId").equals("") ? null : Integer.parseInt(map.get("stationRouteId").toString());
936 937 StationRoute resultS = routeRepository.findOne(stationRouteId);
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -3714,7 +3714,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3714 3714 List<ScheduleRealInfo> list3 = this.realScheduleList(line, date);
3715 3715  
3716 3716 Map<String, Object> nMap=new HashMap<String, Object>();
3717   - nMap.put("date", date);
  3717 + nMap.put("date", xlName+date);
3718 3718 nMap.put("jls", list1.get(0).get("jls"));
3719 3719 nMap.put("sjgl", list1.get(0).get("sjgl"));
3720 3720 for (Map<String, Object> m : list1) {
... ...
src/main/resources/static/pages/base/line/add.html
... ... @@ -228,7 +228,14 @@
228 228 </div>
229 229 </div>
230 230 <!-- 是否营运 END -->
231   -
  231 + <!-- 权证车辆数 START -->
  232 + <div class="col-md-6">
  233 + <label class="control-label col-md-5"> 权证车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  234 + <div class="col-md-4">
  235 + <input type="text" class="form-control" name="warrantCar" id="warrantCarInput" placeholder="权证车辆数">
  236 + </div>
  237 + </div>
  238 + <!-- 权证车辆数 END -->
232 239  
233 240 </div>
234 241 <!-- 表单分组组件 form-group END -->
... ...
src/main/resources/static/pages/base/line/details.html
... ... @@ -220,7 +220,14 @@
220 220 </div>
221 221 </div>
222 222 <!-- 是否营运 END -->
223   -
  223 + <!-- 权证车辆数 START -->
  224 + <div class="col-md-6">
  225 + <label class="control-label col-md-5"> 权证车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  226 + <div class="col-md-4">
  227 + <input type="text" class="form-control" name="warrantCar" id="warrantCarInput" placeholder="权证车辆数">
  228 + </div>
  229 + </div>
  230 + <!-- 权证车辆数 END -->
224 231  
225 232 </div>
226 233 <!-- 表单分组组件 form-group END -->
... ...
src/main/resources/static/pages/base/line/edit.html
... ... @@ -43,7 +43,7 @@
43 43 <!-- 表单内容 START -->
44 44 <div class="form-body">
45 45 <input type="hidden" name="id" id="lineId">
46   -
  46 + <input type="hidden" name="inUse" id="inUse">
47 47 <!-- 表单分组组件 form-group START -->
48 48 <div class="form-group">
49 49 <!-- 线路编码 (* 必填项) START -->
... ... @@ -229,7 +229,14 @@
229 229 </div>
230 230 <!-- 是否营运 END -->
231 231  
232   -
  232 + <!-- 权证车辆数 START -->
  233 + <div class="col-md-6">
  234 + <label class="control-label col-md-5"> 权证车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  235 + <div class="col-md-4">
  236 + <input type="text" class="form-control" name="warrantCar" id="warrantCarInput" placeholder="权证车辆数">
  237 + </div>
  238 + </div>
  239 + <!-- 权证车辆数 END -->
233 240 </div>
234 241 <!-- 表单分组组件 form-group END -->
235 242 <!-- 表单分组组件 form-group START -->
... ...
src/main/resources/static/pages/base/line/js/line-add-form.js
... ... @@ -116,6 +116,7 @@ $(function(){
116 116 'carSumNumber' : {number : true,digits : true,maxlength: 8},// 车辆总数 必须输入合法的数字(负数,小数)。必须输入整数。最大长度.
117 117 'hvacCarNumber' : {number : true,digits : true,maxlength: 8},// 空调车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。 最大长度.
118 118 'ordCarNumber' : {number : true,digits : true,maxlength: 8},// 普通车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。最大长度.
  119 + 'warrantCar' : {number : true,digits : true,maxlength: 8},
119 120 'history' : {maxlength: 200},// 线路沿革 输入长度最多是 200 的字符串(汉字算一个字符)。
120 121 'descriptions' : {maxlength: 200}// 描述/说明 输入长度最多是 200 的字符串(汉字算一个字符)。
121 122 },
... ...
src/main/resources/static/pages/base/line/js/line-edit-form.js
... ... @@ -171,6 +171,7 @@
171 171 'carSumNumber' : {number : true,digits : true,maxlength: 8},// 车辆总数 必须输入合法的数字(负数,小数)。必须输入整数。最大长度.
172 172 'hvacCarNumber' : {number : true,digits : true,maxlength: 8},// 空调车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。 最大长度.
173 173 'ordCarNumber' : {number : true,digits : true,maxlength: 8},// 普通车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。最大长度.
  174 + 'warrantCar' : {number : true,digits : true,maxlength: 8},
174 175 'history' : {maxlength: 200},// 线路沿革 输入长度最多是 200 的字符串(汉字算一个字符)。
175 176 'descriptions' : {maxlength: 200}// 描述/说明 输入长度最多是 200 的字符串(汉字算一个字符)。
176 177 },
... ...
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
... ... @@ -459,8 +459,8 @@ var BaseFun = function() {
459 459 var markAfterGs = baseF.getSumWorkTime(tList , dataMap, saa);
460 460 var gsDx = parseFloat((markAfterGs - bzgs).toFixed(2));
461 461 lpbc.sort(function(m,n){return m.fcno-n.fcno});
462   - if(isOff) {
463   - if(gsDx > 1.5) {
  462 + if(gsDx > 1.5) {
  463 + if(isOff) {
464 464 var hoursDx = parseFloat((gsDx - 1.5).toFixed(2));
465 465 // console.log(gsDx , hoursDx ,Math.ceil(hoursDx*60));
466 466 var minueDx = Math.ceil(hoursDx*60);
... ... @@ -471,14 +471,15 @@ var BaseFun = function() {
471 471 lpbc.splice( (s+1) , bs*2);
472 472 }else {
473 473 lpbc.splice( s , bs*2);
  474 + lpbc[s-bs*2 +1].isfb = 1;
  475 + lpbc[s-bs*2 +1].STOPTIME = 0;
474 476 }
475 477 break;
476 478 }
477 479 }
  480 + }else {
478 481  
479 482 }
480   - }else {
481   -
482 483 }
483 484 },
484 485  
... ... @@ -762,7 +763,11 @@ var BaseFun = function() {
762 763 * 相同班型下的日平均工时满足 参数的日平均工时 范围在 [10分钟]内浮动.
763 764 *
764 765 *
765   - * 第七步 确定吃饭时间.
  766 + * 第七步 确定吃饭时间(吃时间初步定位20分钟). 一般情况下
  767 + *
  768 + * 早餐 :10:15以后到12:30之间用餐的12:30是指用餐结束时间哦.
  769 + *
  770 + * 午餐 :一般在18:00以后在19:00以前.
766 771 *
767 772 * 第八步 确定进出场、早晚例保时间.
768 773 *
... ... @@ -771,19 +776,19 @@ var BaseFun = function() {
771 776 BXPplaceClassesTime02 : function(saa , cara , map , seMap , dataMap) {
772 777  
773 778 // 第一步 根据表单中的参数得到所有路牌下的班次数[从各路牌下的第一个班次发车时间 到 营运结束时间点并且是连续的班次数].
774   - var jsonArray = baseF.GetByArgusInitAllLpDownedBcCollections(saa , cara , map , seMap , dataMap);
  779 + var allLMapBc = baseF.GetByArgusInitAllLpDownedBcCollections(saa , cara , map , seMap , dataMap);
  780 +
  781 + // return {'json':jsonArray,'bxrcgs':null};
775 782  
776 783 // 第二步 纵向调整
777   - baseF.evenStartDepartSpace(jsonArray , dataMap);
  784 + baseF.evenStartDepartSpace(allLMapBc , dataMap);
778 785  
779 786 // 第三步 剔除首末班车以外的班次,并确认首末班车.
780   - var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(jsonArray , dataMap);
  787 + var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(allLMapBc , dataMap);
781 788  
782 789 // 第四步 横向调整
783 790 baseF.resizeByPitStopTime(cara , markArray , dataMap);
784 791  
785   - // return {'json':markArray,'bxrcgs':null};
786   -
787 792 /**
788 793 * 第五步 把班型合理的分配到各个路牌上.
789 794 *
... ... @@ -793,11 +798,140 @@ var BaseFun = function() {
793 798 */
794 799 // 切割班型/人次/配车数 字符串 为 数组对象.
795 800 var list = baseF.getBxRcListCollection(map.bxrc);
  801 +
796 802 // 把班型分配到对应的具体路牌上.
797 803 baseF.bxAlloTotLp(list,cara);
  804 +
798 805 // 第六步 抽车来满足工时.
799 806 var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map);
800   - return {'json':baseF.addjcclcbc01(cara,tempA,dataMap,saa,map),'bxrcgs':null};
  807 +
  808 + // 第七步 确定吃饭时间.
  809 + baseF.markeEatTime(list , tempA , cara , saa , dataMap ,map);
  810 +
  811 +
  812 + baseF.resizeByPitStopTime(cara , tempA , dataMap);
  813 + baseF.updfcno01(tempA,0);
  814 + // return {'json':tempA,'bxrcgs':null};
  815 + // 确定进出场、早晚例保时间.并返回班次数组集合
  816 + return {'json':baseF.addInOutFieldBc(cara,tempA,dataMap,saa,map),'bxrcgs':null};
  817 + },
  818 +
  819 + markeEatTime : function(list , markArray , cara , saa , dataMap ,map) {
  820 + var cfddDm = parseInt(map.cfdd);
  821 + var mLen = markArray.length,cLen=cara.length,sLen =list.length ;
  822 + if(mLen<=0 || cLen<=0 || sLen<=0)
  823 + return false;
  824 + for(var c = 0 ; c<cLen ; c++) {
  825 + var lpNo=cara[c].lpNo,lpType;
  826 + for(var s = 0 ; s<sLen;s++ ) {
  827 + if(list[s].sslp[0].lpNo==lpNo) {
  828 + lpType = list[s].type;
  829 + break;
  830 + }
  831 + }
  832 + if(lpType=='五工二休')
  833 + continue;
  834 + var lpbcArray = new Array();
  835 + for(var m = 0 ; m < mLen; m++) {
  836 + if(markArray[m].lpNo==lpNo)
  837 + lpbcArray.push(markArray[m]);
  838 + }
  839 + lpbcArray.sort(function(a,b){return a.fcint - b.fcint});
  840 + baseF.isHaveBc(baseF.getDateTime('10:15') , baseF.getDateTime('12:15'),lpbcArray,cfddDm ,dataMap , cara[c] ,map, markArray, 0);
  841 + //baseF.isHaveBc(baseF.getDateTime('18:00') , baseF.getDateTime('19:00'),lpbcArray,cfddDm ,dataMap , cara[c] ,map, markArray, 1);
  842 + }
  843 + },
  844 +
  845 + isHaveBc : function(kssj , jssj , bcArray,cfddDm , dataMap , lpObj , map, markArray , cfIndex) {
  846 + var canCf = new Array(), countTzsj = 0, isLast = new Array();
  847 + for(var b = 0 ; b<bcArray.length;b++) {
  848 + var bcddsj = baseF.getDateTime(bcArray[b].ARRIVALTIME);
  849 + if(bcddsj<=jssj) {
  850 + countTzsj += bcArray[b].STOPTIME;
  851 + canCf.push(bcArray[b]);
  852 + }
  853 + /*if(bcddsj>= kssj && bcddsj<=jssj) {
  854 + countTzsj += bcArray[b].STOPTIME;
  855 + canCf.push(bcArray[b]);
  856 + }
  857 + if(bcddsj < kssj)
  858 + isLast.push(bcArray[b]);*/
  859 + }
  860 + if(canCf.length>0) {
  861 + console.log('countTzsj:' + countTzsj + 'length:' + canCf.length);
  862 + var fxDm = baseF.dirDmToIndex(canCf[canCf.length-1].xlDir);
  863 + // console.log(countTzsj , canCf[canCf.length-1].fcsj);
  864 + if(cfddDm == fxDm && canCf.length>2) {
  865 + var tzdx = canCf[canCf.length-2].STOPTIME - dataMap.zwcArr[cfIndex];
  866 + canCf[canCf.length-2].STOPTIME = tzdx >= 0 ? tzdx : 0;
  867 + var obj = baseF.getbcObj(
  868 + baseF.getDateTime(canCf[canCf.length-2].ARRIVALTIME),dataMap.zwcArr[cfIndex],lpObj,dataMap.bcTypeArr.cf,
  869 + dataMap.dira[cfddDm], canCf[canCf.length-1].fcno+1 , 0 , map , 0 , null , null , null , 0 , 0);
  870 + markArray.push(obj);
  871 + if(tzdx<0) {
  872 + // canCf[canCf.length-1].STOPTIME = 0;
  873 + var fcsj = baseF.getDateTime(canCf[canCf.length-2].ARRIVALTIME);
  874 + fcsj.setMinutes(fcsj.getMinutes() + canCf[canCf.length-2].STOPTIME + dataMap.zwcArr[cfIndex]);
  875 + canCf[canCf.length-1].fcsj = baseF.getTimeStr(fcsj);
  876 + fcsj.setMinutes(fcsj.getMinutes() + canCf[canCf.length-1].bcsj);
  877 + canCf[canCf.length-1].ARRIVALTIME = baseF.getTimeStr(fcsj);
  878 + }
  879 + }else {
  880 + var obj = baseF.getbcObj(
  881 + baseF.getDateTime(canCf[canCf.length-1].ARRIVALTIME),dataMap.zwcArr[cfIndex],lpObj,dataMap.bcTypeArr.cf,
  882 + dataMap.dira[cfddDm], canCf[canCf.length-1].fcno+1 , 0 , map , 0 , null , null , null , 0 , 0);
  883 + markArray.push(obj);
  884 +
  885 + }
  886 + }
  887 + /*if(canCf.length>0) {
  888 + var fxDm = baseF.dirDmToIndex(canCf[canCf.length-1].xlDir);
  889 + // console.log(countTzsj , canCf[canCf.length-1].fcsj);
  890 + if(cfddDm == fxDm && canCf.length>2) {
  891 + var tzdx = canCf[canCf.length-2].STOPTIME - dataMap.zwcArr[cfIndex];
  892 + canCf[canCf.length-2].STOPTIME = tzdx >= 0 ? tzdx : 0;
  893 + var obj = baseF.getbcObj(
  894 + baseF.getDateTime(canCf[canCf.length-2].ARRIVALTIME),dataMap.zwcArr[cfIndex],lpObj,dataMap.bcTypeArr.cf,
  895 + dataMap.dira[cfddDm], canCf[canCf.length-1].fcno+1 , 0 , map , 0 , null , null , null , 0 , 0);
  896 + markArray.push(obj);
  897 + if(tzdx<0) {
  898 + // canCf[canCf.length-1].STOPTIME = 0;
  899 + var fcsj = baseF.getDateTime(canCf[canCf.length-2].ARRIVALTIME);
  900 + fcsj.setMinutes(fcsj.getMinutes() + canCf[canCf.length-2].STOPTIME + dataMap.zwcArr[cfIndex]);
  901 + canCf[canCf.length-1].fcsj = baseF.getTimeStr(fcsj);
  902 + fcsj.setMinutes(fcsj.getMinutes() + canCf[canCf.length-1].bcsj);
  903 + canCf[canCf.length-1].ARRIVALTIME = baseF.getTimeStr(fcsj);
  904 + }
  905 + }else {
  906 + var obj = baseF.getbcObj(
  907 + baseF.getDateTime(canCf[canCf.length-1].ARRIVALTIME),dataMap.zwcArr[cfIndex],lpObj,dataMap.bcTypeArr.cf,
  908 + dataMap.dira[cfddDm], canCf[canCf.length-1].fcno+1 , 0 , map , 0 , null , null , null , 0 , 0);
  909 + markArray.push(obj);
  910 +
  911 + }
  912 + }else if(isLast.length>0) {
  913 + var fxDm = baseF.dirDmToIndex(isLast[isLast.length-1].xlDir);
  914 + if(cfddDm ==fxDm && canCf.length>2) {
  915 + var tzdx = canCf[canCf.length-2].STOPTIME - dataMap.zwcArr[cfIndex];
  916 + canCf[canCf.length-2].STOPTIME = tzdx >= 0 ? tzdx : 0;
  917 + var obj = baseF.getbcObj(
  918 + baseF.getDateTime(isLast[isLast.length-2].ARRIVALTIME),dataMap.zwcArr[cfIndex],lpObj,dataMap.bcTypeArr.cf,
  919 + dataMap.dira[cfddDm], isLast[isLast.length-1].fcno+1 , 0 , map , 0 , null , null , null , 0 , 0);
  920 + markArray.push(obj);
  921 + if(tzdx<0) {
  922 + var fcsj = baseF.getDateTime(isLast[isLast.length-2].ARRIVALTIME);
  923 + fcsj.setMinutes(fcsj.getMinutes() + isLast[isLast.length-2].STOPTIME + dataMap.zwcArr[cfIndex]);
  924 + isLast[isLast.length-1].fcsj = baseF.getTimeStr(fcsj);
  925 + fcsj.setMinutes(fcsj.getMinutes() +isLast[isLast.length-1].bcsj);
  926 + isLast[isLast.length-1].ARRIVALTIME = baseF.getTimeStr(fcsj);
  927 + }
  928 + }else {
  929 + var obj = baseF.getbcObj(
  930 + baseF.getDateTime(isLast[isLast.length-1].ARRIVALTIME),dataMap.zwcArr[cfIndex],lpObj,dataMap.bcTypeArr.cf,
  931 + dataMap.dira[cfddDm], isLast[isLast.length-1].fcno+1 , 0 , map , 0 , null , null , null , 0 , 0);
  932 + markArray.push(obj);
  933 + }
  934 + }*/
801 935 },
802 936  
803 937 /**
... ... @@ -1084,6 +1218,7 @@ var BaseFun = function() {
1084 1218 if(len_>0 && bcCount > 0) {
1085 1219 // 定义该时间区间内的发车间隙.
1086 1220 var _fcjx = parseInt(Math.ceil(zzsj/bcCount));
  1221 + console.log(_fcjx);
1087 1222 if(tagboolean) {
1088 1223 if(_fcjx>gfmaxfcjx)
1089 1224 _fcjx = 20;
... ... @@ -1091,7 +1226,6 @@ var BaseFun = function() {
1091 1226 if(_fcjx>dgmaxfcjx)
1092 1227 _fcjx = dgmaxfcjx;
1093 1228 }
1094   - // console.log(_fcjx);
1095 1229 // 定义修改班次的起始时间点.
1096 1230 var fcnosj = new Date(kssj);
1097 1231 for(var l = 0 ; l< len_ ; l++) {
... ... @@ -1154,8 +1288,10 @@ var BaseFun = function() {
1154 1288 var sslpbcA = new Array();
1155 1289 for(var j =0 ; j < tLen ; j++) {
1156 1290 // 判断当期遍历的班次是否属于当前的路牌.如果是则添加到当前的路牌班次数组集合.
1157   - if(tempa[j].lpNo == cara[t].lpNo)
  1291 + if(tempa[j].lpNo == cara[t].lpNo) {
  1292 + tempa[j].fcint = baseF.getDateTime(tempa[j].fcsj).getTime();
1158 1293 sslpbcA.push(tempa[j]);
  1294 + }
1159 1295 }
1160 1296 if(sslpbcA.length > 0) {
1161 1297 // 按发车时间顺序排序.
... ... @@ -1178,35 +1314,51 @@ var BaseFun = function() {
1178 1314 baseF.dirDmToIndex(sslpbcA[r].xlDir));
1179 1315 normmintzsj = xxsj*0.1;
1180 1316 normmaxtzsj = xxsj*0.15;
  1317 + var flag = false;
1181 1318 // 如果小于零
1182   - if(dxmin <= 0 && sslpbcA[r].isfb ==0 ) {
  1319 + if(dxmin < 0 && sslpbcA[r].isfb ==0) {
1183 1320 // 根据不同时段的停站时间.重新赋值停站时间.
1184   - dxmin = flag ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  1321 + if(sslpbcA[r].bcType=='normal' && sslpbcA[r+1].bcType =='normal')
  1322 + dxmin = flag ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  1323 + else
  1324 + dxmin = 0;
  1325 + flag = true;
  1326 + }else if(dxmin==0){
  1327 + dxmin = 0;
  1328 + flag = true;
1185 1329 }else {
1186 1330 // 如果 大于等于低谷最大停站时间 并且 小于等于三小时.则把低谷最大停站时间 作为 停站时间.
1187   - if(dxmin >= dgmaxtzsj && dxmin < 180) {
  1331 + if(dxmin >= dgmaxtzsj && dxmin < 180 && sslpbcA[r].isfb==0) {
1188 1332 dxmin = dgmaxtzsj;
  1333 + flag = true;
1189 1334 // 如果大于零 并且 小于等于行业标准的最小停站时间
1190 1335 }else if(dxmin > 0 && dxmin <= normmintzsj ) {
1191 1336 // dxmin = dxmin;
  1337 + flag = true;
1192 1338 // 如果大于行业标准的最小停站时间 并且 小于等于行业标准的最大停站时间
1193 1339 }else if(dxmin > normmintzsj && dxmin <= normmaxtzsj ) {
1194 1340 // dxmin = dxmin;
  1341 + flag = true;
1195 1342 // 如果大于行业标准的最大停站时间 并且 小于低谷最大停站时间
1196 1343 }else if(dxmin > normmaxtzsj && dxmin < dgmaxtzsj ) {
1197 1344 // dxmin = dxmin;
  1345 + flag = true;
  1346 + }else if (dxmin >= 180){
  1347 + dxmin = 0;
1198 1348 }
1199 1349 }
1200   - // 修改当前班次的停站时间.
1201   - sslpbcA[r].STOPTIME = parseInt(dxmin) ;
1202   - // 当前班次的到达时间 + 停站时间 作为下一个班次的发车时间.
1203   - dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
1204   - // 修改下一个班次的发车时间.
1205   - sslpbcA[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
1206   - // 下一个班次的发车时间 + 行驶时间 作为下一个班次的到达时间.
1207   - dqbcddsj.setMinutes(dqbcddsj.getMinutes() + sslpbcA[r+1].bcsj);
1208   - // 修改下一个班次的到达时间.
1209   - sslpbcA[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);
  1350 + if(flag) {
  1351 + // 修改当前班次的停站时间.
  1352 + sslpbcA[r].STOPTIME = parseInt(dxmin) ;
  1353 + // 当前班次的到达时间 + 停站时间 作为下一个班次的发车时间.
  1354 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
  1355 + // 修改下一个班次的发车时间.
  1356 + sslpbcA[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
  1357 + // 下一个班次的发车时间 + 行驶时间 作为下一个班次的到达时间.
  1358 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + sslpbcA[r+1].bcsj);
  1359 + // 修改下一个班次的到达时间.
  1360 + sslpbcA[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);
  1361 + }
1210 1362 }
1211 1363 }
1212 1364 }
... ... @@ -1297,10 +1449,19 @@ var BaseFun = function() {
1297 1449 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/
1298 1450 var rsjar = baseF.tzsztest(cara,jar3,dataMap);
1299 1451 // return {'json':rsjar,'bxrcgs':bxrcgs};
1300   - return {'json':baseF.addjcclcbc01(cara,rsjar,dataMap,saa,map),'bxrcgs':bxrcgs};
  1452 + return {'json':baseF.addInOutFieldBc(cara,rsjar,dataMap,saa,map),'bxrcgs':bxrcgs};
1301 1453 },
1302 1454  
1303   - addjcclcbc01 : function(cara,rsjar,dataMap,saa,map) {
  1455 + /**
  1456 + * @description (TODO) 添加进出场班次.
  1457 + * @param cara 路牌
  1458 + * @param rsjar 班次集合数组
  1459 + * @param dataMap dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  1460 + * @param saa 封装的一些 停站时间、周转时间、行驶时间、行驶里程等.
  1461 + * @param map 表单参数对象.
  1462 + *
  1463 + */
  1464 + addInOutFieldBc : function(cara,rsjar,dataMap,saa,map) {
1304 1465 var resultJA = new Array(),bcs = 0;
1305 1466 for(var m = 0 ; m < cara.length; m++) {
1306 1467 // 获取路牌编号.
... ... @@ -1319,7 +1480,7 @@ var BaseFun = function() {
1319 1480 lpbc_.sort(function(a,b){return a.fcno-b.fcno});
1320 1481 baseF.addcfbc01(lpbc_,dataMap,map);
1321 1482 // 按照发车序号顺序排序.
1322   - // lpbc_.sort(function(a,b){return a.fcno-b.fcno});
  1483 + lpbc_.sort(function(a,b){return a.fcno-b.fcno});
1323 1484 var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map);
1324 1485 bcs = baseF.updfcno01(tt,bcs);
1325 1486 resultJA = resultJA.concat(tt);
... ... @@ -1344,8 +1505,8 @@ var BaseFun = function() {
1344 1505 addcfbc01 : function(lpbcar,dataMap,map) {
1345 1506 var gs = 0 ,sicftag = true;
1346 1507 for(var g = 0 ; g <lpbcar.length-1;g++ ) {
1347   - if( parseInt((baseF.getDateTime(lpbcar[g+1].fcsj) - baseF.getDateTime(lpbcar[g].ARRIVALTIME))/60000) > 80
1348   - && lpbcar[g].STOPTIME==0 ) {
  1508 + if( parseInt((baseF.getDateTime(lpbcar[g+1].fcsj) - baseF.getDateTime(lpbcar[g].ARRIVALTIME))/60000) > 180
  1509 + && lpbcar[g].STOPTIME==0 && lpbcar[g].bcType =='normal' ) {
1349 1510 lpbcar[g].isfb = 1;
1350 1511 }
1351 1512 /*gs = gs + lpbcar[g].bcsj + lpbcar[g].STOPTIME;
... ... @@ -1767,25 +1928,7 @@ var BaseFun = function() {
1767 1928 dqbcfcsj,dataMap.ccsjArr[fxdm],car,dataMap.bcTypeArr.out,
1768 1929 dataMap.dira[fxdm],2,dataMap.cclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 出场班次
1769 1930 fcno ++;
1770   - }/*else if(b > 0 && b < bc.length-1){
1771   - var jcbckssj = baseF.getDateTime(bc[b].ARRIVALTIME)
1772   - var ccbckssj = baseF.getDateTime(bc[b+1].fcsj)
1773   - var dx = parseInt((ccbckssj - jcbckssj)/60000);
1774   - if(bc[b].STOPTIME==0) {
1775   - // bc[b].STOPTIME = 0;
1776   - //console.log(bc[b].fcno);
1777   - var fcno_ = bc[b].fcno + 2;
1778   - stas = true;
1779   - // console.log(bc[b],bc[b+1],b);
1780   - result.push(baseF.getbcObj(
1781   - jcbckssj,dataMap.jcsjArr[fxdm],car,dataMap.bcTypeArr.in_,
1782   - dataMap.dira[fxdm],fcno_++,dataMap.jclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 进场班次
1783   - var ccfx = baseF.dirDmToIndex(bc[b+1].xlDir);
1784   - result.push(baseF.getbcObj(
1785   - ccbckssj,dataMap.ccsjArr[ccfx],car,dataMap.bcTypeArr.out,
1786   - dataMap.dira[ccfx],fcno_++,dataMap.cclcArr[ccfx],gatps,0,dataMap.qdzArr[ccfx],null,null,0,0));// 出场班次
1787   - }
1788   - }*/else if(b==bc.length-1){
  1931 + }else if(b==bc.length-1){
1789 1932 var fcno_ = dxfno + 2;
1790 1933 var qdbcddsj = baseF.getDateTime(bc[b].ARRIVALTIME);
1791 1934 result.push(baseF.getbcObj(
... ...
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
... ... @@ -968,7 +968,7 @@ var RelationshipGraph = function () {
968 968 for(var z = 0 ;z < tza.length;z++) {
969 969 if(tza[z].lpNo == lpNo && tza[z].bcsj >0 ) {
970 970 timeNum = timeNum + tza[z].bcsj + tza[z].STOPTIME;
971   - if( tza[z].bcType !='bd' && tza[z].bcType !='lc' ) {
  971 + if( tza[z].bcType !='bd' && tza[z].bcType !='lc' && tza[z].bcType !='cf') {
972 972 tempNum ++;
973 973 }
974 974 }
... ... @@ -983,32 +983,6 @@ var RelationshipGraph = function () {
983 983 $(textNodes[1]).text("总班次:"+(tempNum));
984 984 // $_this.pptjbx($("."+className).children("rect")[2],zgs*1,lpNo,$_this);
985 985 }
986   - /*for(var a=0;a<array.length;a++) {
987   - debugger;
988   - var tempNum = 0,timeNum = 0,lpNo = '';
989   - for(var g = 0 ; g <gdata.length;g++) {
990   - var temp_i = parseInt(d3.select(gdata[g]).attr('y'))-this.configuration.offsetY;
991   - if(temp_i<array[a] && temp_i>minValue) {
992   - var parentNodeCName = d3.select(gdata[g]).attr('id'),
993   - // nodes = d3.selectAll('text[parent-node='+ parentNodeCName +']')[0]
994   - $_d = d3.select(gdata[g]).data()[0];
995   - lpNo = $_d.lpNo;
996   - timeNum = timeNum + parseInt($_d.STOPTIME) + parseInt($_d.bcsj);
997   - if($_d.bcType!='bd' && $_d.bcType!='lc' && $_d.bcType!='cf' && $_d.bcsj>0)
998   - tempNum++;
999   - }
1000   - }
1001   - minValue = array[a];
1002   - var className = 'statis_container_' + array[a];
1003   - var textNodes = $("."+className).children("text");
1004   - var hours = parseInt(timeNum/60);
1005   - var mimus = timeNum%60,zgs = hours + (mimus==0? "": "." + mimus);
1006   - var zgs = parseFloat((timeNum/60).toFixed(2));
1007   - var zgs = timeNum;
1008   - $(textNodes[0]).text("总工时:" + zgs);
1009   - $(textNodes[1]).text("总班次:"+(tempNum));
1010   - $_this.pptjbx($("."+className).children("rect")[2],zgs*1,lpNo,$_this);
1011   - }*/
1012 986 }
1013 987  
1014 988 }, {
... ... @@ -3027,7 +3001,9 @@ var RelationshipGraph = function () {
3027 3001 nowDate.setMinutes(parseInt(tm.min)+d.bcsj);// 10.3.1、设置分钟.
3028 3002 // 9.1.4、修改当前班次的到达时间.
3029 3003 d.ARRIVALTIME = BaseFun.getTimeStr(nowDate);
3030   - d.STOPTIME = d.isfb ==1 ? 0 : parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000);
  3004 + d.STOPTIME = d.isfb == 1 ? 0 : parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000);
  3005 + // parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000)
  3006 +
3031 3007 /**
3032 3008 * 9.2、修改元素沿X轴方向的X坐标属性值.
3033 3009 *
... ... @@ -3144,6 +3120,38 @@ var RelationshipGraph = function () {
3144 3120 }
3145 3121 }
3146 3122 }else {
  3123 + var dataMap = $_GlobalGraph.configuration.dataMap;
  3124 + // 定义是否高峰
  3125 + var flag = BaseFun.isPeakTimeScope(BaseFun.getDateTime(nodeContext.lastData.fcsj) , dataMap);
  3126 + // 定义当前班次方向下标代码[0代表上行;1代表下行].
  3127 + var cctag = BaseFun.dirDmToIndex(nodeContext.lastData.xlDir);
  3128 + // 获取行驶时间.
  3129 + var xxsj = BaseFun.getByDirTravelTime(dataMap.zgfsjd , dataMap.wgfsjd , nowDate, dataMap.pcxssjArr , dataMap.gfxxsjArr , cctag);
  3130 + var normmintzsj = xxsj*0.1,normmaxtzsj = xxsj*0.15;
  3131 + // 如果小于零
  3132 + if(dxMinues <= 0 && nodeContext.lastData.isfb ==0 ) {
  3133 + // 根据不同时段的停站时间.重新赋值停站时间.
  3134 + dxmin = flag ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  3135 + }else {
  3136 + // 如果 大于等于低谷最大停站时间 并且 小于等于三小时.则把低谷最大停站时间 作为 停站时间.
  3137 + if(dxMinues >= dataMap.dgmaxtzsj && dxMinues < 180) {
  3138 + dxMinues = dataMap.dgmaxtzsj;
  3139 + // 如果大于零 并且 小于等于行业标准的最小停站时间
  3140 + }else if(dxMinues > 0 && dxMinues <= normmintzsj ) {
  3141 + // dxmin = dxmin;
  3142 + // 如果大于行业标准的最小停站时间 并且 小于等于行业标准的最大停站时间
  3143 + }else if(dxMinues > normmintzsj && dxMinues <= normmaxtzsj ) {
  3144 + // dxmin = dxmin;
  3145 + // 如果大于行业标准的最大停站时间 并且 小于低谷最大停站时间
  3146 + }else if(dxMinues > normmaxtzsj && dxMinues < dataMap.dgmaxtzsj ) {
  3147 + // dxmin = dxmin;
  3148 + }else if (dxMinues >= 180){
  3149 + dxMinues = 0;
  3150 + }
  3151 + }
  3152 + // 修改当前班次的停站时间.
  3153 + // nodeContext.lastData.STOPTIME = dxMinues;
  3154 + // d.STOPTIME = parseInt(dxmin) ;
3147 3155 /**
3148 3156 * 11.2.1、如果是正常班次
3149 3157 *
... ... @@ -3370,11 +3378,41 @@ var RelationshipGraph = function () {
3370 3378 }
3371 3379 }
3372 3380 }else {
  3381 + var dxMinues = parseInt((BaseFun.getDateTime(d.fcsj) - BaseFun.getDateTime(_obj.lastData.ARRIVALTIME)) / 60000);
3373 3382 /**
3374 3383 * 1.5.6、修改上个元素班次与当前班次的停站时间和text元素的文本属性值.
3375 3384 *
3376 3385 **/
3377   - _obj.lastData.STOPTIME = parseInt((BaseFun.getDateTime(d.fcsj) - BaseFun.getDateTime(_obj.lastData.ARRIVALTIME)) / 60000);
  3386 + var dataMap = $_GlobalGraph.configuration.dataMap;
  3387 + // 定义是否高峰
  3388 + var flag = BaseFun.isPeakTimeScope(BaseFun.getDateTime(nodeContext.lastData.fcsj) , dataMap);
  3389 + // 定义当前班次方向下标代码[0代表上行;1代表下行].
  3390 + var cctag = BaseFun.dirDmToIndex(nodeContext.lastData.xlDir);
  3391 + // 获取行驶时间.
  3392 + var xxsj = BaseFun.getByDirTravelTime(dataMap.zgfsjd , dataMap.wgfsjd , nowDate, dataMap.pcxssjArr , dataMap.gfxxsjArr , cctag);
  3393 + var normmintzsj = xxsj*0.1,normmaxtzsj = xxsj*0.15;
  3394 + // 如果小于零
  3395 + if(dxMinues <= 0 && nodeContext.lastData.isfb ==0 ) {
  3396 + // 根据不同时段的停站时间.重新赋值停站时间.
  3397 + dxmin = flag ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  3398 + }else {
  3399 + // 如果 大于等于低谷最大停站时间 并且 小于等于三小时.则把低谷最大停站时间 作为 停站时间.
  3400 + if(dxMinues >= dataMap.dgmaxtzsj && dxMinues < 180) {
  3401 + dxMinues = dataMap.dgmaxtzsj;
  3402 + // 如果大于零 并且 小于等于行业标准的最小停站时间
  3403 + }else if(dxMinues > 0 && dxMinues <= normmintzsj ) {
  3404 + // dxmin = dxmin;
  3405 + // 如果大于行业标准的最小停站时间 并且 小于等于行业标准的最大停站时间
  3406 + }else if(dxMinues > normmintzsj && dxMinues <= normmaxtzsj ) {
  3407 + // dxmin = dxmin;
  3408 + // 如果大于行业标准的最大停站时间 并且 小于低谷最大停站时间
  3409 + }else if(dxMinues > normmaxtzsj && dxMinues < dataMap.dgmaxtzsj ) {
  3410 + // dxmin = dxmin;
  3411 + }else if (dxMinues >= 180){
  3412 + dxMinues = 0;
  3413 + }
  3414 + }
  3415 + _obj.lastData.STOPTIME = dxMinues;
3378 3416 for(var t = 0 ; t < _obj.lastTextNodes.length ;t++) {
3379 3417 var nowTextNode = d3.select(_obj.lastTextNodes[t]);
3380 3418 if(nowTextNode.attr('text-type')=='gap')
... ...
src/main/resources/static/pages/forms/mould/countByBus1.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/mould/countByBus2.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/mould/countByLine.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleDaily.html
... ... @@ -70,7 +70,7 @@ word-wrap: break-word;
70 70 <table class="table table-bordered table-hover table-checkable" id="forms">
71 71 <thead>
72 72 <tr>
73   - <th colspan="40">线路调度日报</th>
  73 + <th colspan="40"><lable id="xlmc"></lable>线路调度日报</th>
74 74 </tr>
75 75 <tr>
76 76 <td rowspan="3"><span >路线名</span></td>
... ... @@ -407,6 +407,7 @@ word-wrap: break-word;
407 407 layer.msg("请选择时间");
408 408 return;
409 409 }
  410 + $("#xlmc").html(xlName);
410 411 $("#ddrbBody").height($(window).height()-100);
411 412 $("c").html("全日");
412 413 $("#export").removeAttr("disabled");
... ...