Commit 91f214b32992fd23d1d22baa5ac033ece39405fa

Authored by 李强
1 parent b5db7075

bsthlq <2519941818@qq.com>

src/main/resources/static/pages/base/timesmodel/bctz.html
@@ -18,9 +18,10 @@ @@ -18,9 +18,10 @@
18 <table class="table table-striped table-bordered table-hover table-checkable" id="datatable_bctz"> 18 <table class="table table-striped table-bordered table-hover table-checkable" id="datatable_bctz">
19 <thead> 19 <thead>
20 <tr role="row" class="heading"> 20 <tr role="row" class="heading">
21 - <th width="33%">路牌</th>  
22 - <th width="33%">当前班次数</th>  
23 - <th width="33%">调整班次数</th> 21 + <th width="25%">路牌编码</th>
  22 + <th width="25%">路牌名称</th>
  23 + <th width="25%">当前班次数</th>
  24 + <th width="25%">调整班次数</th>
24 </tr> 25 </tr>
25 </thead> 26 </thead>
26 <tbody></tbody> 27 <tbody></tbody>
@@ -40,13 +41,16 @@ @@ -40,13 +41,16 @@
40 {{each list as obj i }} 41 {{each list as obj i }}
41 <tr role="row" class="filter"> 42 <tr role="row" class="filter">
42 <td> 43 <td>
43 - <input type="text" readonly class="form-control form-filter input-sm" name="lpname_{{i+1}}" value="{{obj.lpNo}}"> 44 + <input type="text" readonly class="form-control form-filter input-sm" name="lpno_{{i+1}}" value="{{obj.lpNo}}">
  45 + </td>
  46 + <td>
  47 + <input type="text" readonly class="form-control form-filter input-sm" name="lpname_{{i+1}}" value="{{obj.lpName}}">
44 </td> 48 </td>
45 <td> 49 <td>
46 <input type="text" readonly class="form-control form-filter input-sm" name="dqbc_{{i+1}}" value="{{obj.bcs}}"> 50 <input type="text" readonly class="form-control form-filter input-sm" name="dqbc_{{i+1}}" value="{{obj.bcs}}">
47 </td> 51 </td>
48 <td> 52 <td>
49 - <input type="number" class="form-control form-filter input-sm" name="{{i+1}}" value="{{obj.bcs}}"> 53 + <input type="number" class="form-control form-filter input-sm" name="{{i+1}}" value="{{obj.bcs}}" min="0">
50 </td> 54 </td>
51 </tr> 55 </tr>
52 {{/each}} 56 {{/each}}
@@ -57,230 +61,239 @@ @@ -57,230 +61,239 @@
57 {{/if}} 61 {{/if}}
58 </script> 62 </script>
59 <script type="text/javascript"> 63 <script type="text/javascript">
60 -$('#tzbc_mobal').on('tzbcMobal.show', function(e,obj,cardata,bf){  
61 - setTimeout(function(){  
62 - // 加载延迟200毫秒显示mobal  
63 - $('#tzbc_mobal').modal({show : true,backdrop: 'static', keyboard: false});  
64 - },200);  
65 - // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。  
66 - $('#tzbc_mobal').on('show.bs.modal', function () {  
67 - // 把数据填充到模版中  
68 - var tbodyHtml = template('bctz_temp',{list:cardata});  
69 - // 把渲染好的模版html文本追加到表格中  
70 - $('#datatable_bctz tbody').html(tbodyHtml);  
71 - });  
72 - // 获取表单元素  
73 - var form = $('#tzbcForm');  
74 - // 错误提示元素  
75 - var tzbcAlert = $('#tzbcAlert', form);  
76 - // 下一步点击事件  
77 - $('#tzbcnext').on('click', function() {  
78 - form.submit();// 表单提交  
79 - });  
80 - // 表单验证  
81 - form.validate({  
82 - errorElement : 'span',  
83 - errorClass : 'help-block help-block-error',  
84 - focusInvalid : false,  
85 - rules : {  
86 - },  
87 - invalidHandler : function(event, validator) {  
88 - tzbcAlert.show();  
89 - App.scrollTo(reladplusname, -200);  
90 - },  
91 - highlight : function(element) {  
92 - $(element).closest('.form-group').addClass('has-error');  
93 - },  
94 - unhighlight : function(element) {  
95 - $(element).closest('.form-group').removeClass('has-error');  
96 - },  
97 - success : function(label) {  
98 - label.closest('.form-group').removeClass('has-error');  
99 - },  
100 - submitHandler : function(f) {  
101 - // 1、 获取表单内容,并序列化  
102 - var params = form.serializeJSON();  
103 - var dataMap = obj.configuration.dataMap;  
104 - // 2、 调整路牌对应的班次总数  
105 - updFormParams(params);  
106 - // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据  
107 - obj.data(bf.tzsmbcsj01(bf.setbcsAndfcno(tzbcDate()),  
108 - obj.configuration.dataMap.smbcsjArr,  
109 - obj.configuration.dataMap.ccsjArr,  
110 - obj.configuration.dataMap.cclcArr,  
111 - obj.configuration.dataMap.qdzArr,  
112 - obj.configuration.dataMap.lbsj,dataMap));  
113 - // 3、记录早操.并保存历史班次数据  
114 - obj.addHistory();  
115 - // 5、隐藏错误提示  
116 - tzbcAlert.hide();  
117 - // 6、隐藏 reladplus_mobal 弹出层  
118 - $('#tzbc_mobal').modal('hide');  
119 - }  
120 - });  
121 -  
122 - /**  
123 - * @description : (TODO) 调整路牌对应的班次总数.  
124 - *  
125 - * ❀ 根据路牌对应班次的数值,把路牌对应的当前班次总数修改成调整后的班次总数,并转为数值类型以及把空值转为0.  
126 - *  
127 - * @params : [p--表单序列化对象].  
128 - */  
129 - function updFormParams(p) {  
130 - for(var i= 0;i<cardata.length;i++) {  
131 - if(p[i+1] != undefined) {  
132 - if(p[i+1]=='')  
133 - cardata[i].tzbc = 0;  
134 - else  
135 - cardata[i].tzbc = parseInt(p[i+1]); 64 +$('#tzbc_mobal').on('tzbcMobal.show', function(e,obj,cardata,bf,error){
  65 + if(obj != null && obj !='' && bf != null && bf!='' && cardata.length>0){
  66 + // 延迟200毫秒显示mobal
  67 + setTimeout(function(){$('#tzbc_mobal').modal({show : true,backdrop: 'static', keyboard: false});},200);
  68 + // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
  69 + $('#tzbc_mobal').on('show.bs.modal', function () {
  70 + // 把数据填充到模版中
  71 + var tbodyHtml = template('bctz_temp',{list:cardata});
  72 + // 把渲染好的模版html文本追加到表格中
  73 + $('#datatable_bctz tbody').html(tbodyHtml);
  74 + });
  75 + // 获取表单元素
  76 + var form = $('#tzbcForm');
  77 + // 错误提示元素
  78 + var tzbcAlert = $('#tzbcAlert', form);
  79 + // 下一步点击事件
  80 + $('#tzbcnext').on('click', function() {
  81 + form.submit();// 表单提交
  82 + });
  83 + // 表单验证
  84 + form.validate({
  85 + errorElement : 'span',
  86 + errorClass : 'help-block help-block-error',
  87 + focusInvalid : false,
  88 + rules : {
  89 + },
  90 + invalidHandler : function(event, validator) {
  91 + tzbcAlert.show();
  92 + App.scrollTo(reladplusname, -200);
  93 + },
  94 + highlight : function(element) {
  95 + $(element).closest('.form-group').addClass('has-error');
  96 + },
  97 + unhighlight : function(element) {
  98 + $(element).closest('.form-group').removeClass('has-error');
  99 + },
  100 + success : function(label) {
  101 + label.closest('.form-group').removeClass('has-error');
  102 + },
  103 + submitHandler : function(f) {
  104 + // 1、 获取表单内容,并序列化
  105 + var params = form.serializeJSON();
  106 + var dataMap = obj.configuration.dataMap;
  107 + // 2、 调整路牌对应的班次总数
  108 + updFormParams(params);
  109 + // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据.
  110 + var jar = bf.tzsmbcsj01(bf.setbcsAndfcno(tzbcDate()),
  111 + obj.configuration.dataMap.smbcsjArr,
  112 + obj.configuration.dataMap.ccsjArr,
  113 + obj.configuration.dataMap.cclcArr,
  114 + obj.configuration.dataMap.qdzArr,
  115 + obj.configuration.dataMap.lbsj,dataMap);
  116 + obj.data(bf.addjcclcbc01(obj.configuration.taskTypes,jar,dataMap,
  117 + obj.configuration.stopAraay,obj.configuration.dataMap.map));
  118 + // 3、记录早操.并保存历史班次数据
  119 + obj.addHistory();
  120 + // 5、隐藏错误提示
  121 + tzbcAlert.hide();
  122 + // 6、隐藏 reladplus_mobal 弹出层
  123 + $('#tzbc_mobal').modal('hide');
  124 + }
  125 + });
  126 +
  127 + /**
  128 + * @description : (TODO) 调整路牌对应的班次总数.
  129 + *
  130 + * ❀ 根据路牌对应班次的数值,把路牌对应的当前班次总数修改成调整后的班次总数,并转为数值类型以及把空值转为0.
  131 + *
  132 + * @params : [p--表单序列化对象].
  133 + */
  134 + function updFormParams(p) {
  135 + for(var i= 0;i<cardata.length;i++) {
  136 + if(p[i+1] != undefined) {
  137 + if(p[i+1]=='')
  138 + cardata[i].tzbc = 0;
  139 + else
  140 + cardata[i].tzbc = parseInt(p[i+1]);
  141 + }
136 } 142 }
137 } 143 }
138 - }  
139 -  
140 - /**  
141 - * @description : (TODO)调整班次.  
142 - *  
143 - * @return : 返回一个数组.这里返回的是一个调整完班次数后的数组.  
144 - */  
145 - function tzbcDate() {  
146 - // 1、获取当前所有的班次数.  
147 - var dr = obj.getDataArray(),  
148 - result = new Array();// 定义返回数组对象.  
149 - // 2、遍历路牌对应的班次总数.  
150 - for(var i = 0 ; i<cardata.length;i++) {  
151 - var zcbcsz = new Array(),// 定义当前路牌下的正常班次数组.  
152 - zwlbbcsz = new Array(),// 定义当前路牌下的早晚例保、吃饭班次数组.  
153 - jccbcs = 0,// 进出场班次数.这个值是为了计算总班次数时除去时间为空的班次  
154 - jccbcsz = new Array();// 定义当前路牌下的进出场班次数组.  
155 - // 3、遍历当前所有的班次数.  
156 - for(var j = 0 ;j<dr.length;j++) {  
157 - // 4、判断当前遍历的班次是否属于当前路牌对应的班次数组对象.  
158 - if(cardata[i].lpNo == dr[j].parent && dr[j].bcsj>0 ){  
159 - // 5、把当前班次添加到上序定义的不同班次数组中.  
160 - if(dr[j].bcType =='bd' || dr[j].bcType=='lc' || dr[j].bcType =='cf')  
161 - zwlbbcsz.push(dr[j]);// 添加到早晚例保、吃饭班次数组中.  
162 - else if(dr[j].bcType=='in' || dr[j].bcType =='out')  
163 - jccbcs++;  
164 - else  
165 - zcbcsz.push(dr[j]);// 添加到正常班次数组.  
166 - }  
167 - if(cardata[i].lpNo == dr[j].parent && (dr[j].bcType=='in' || dr[j].bcType =='out')) {  
168 - jccbcsz.push(dr[j]);// 添加到进出场班次数组中. 144 +
  145 + /**
  146 + * @description : (TODO)调整班次.
  147 + *
  148 + * @return : 返回一个数组.这里返回的是一个调整完班次数后的数组.
  149 + */
  150 + function tzbcDate() {
  151 + // 1、获取当前所有的班次数.
  152 + var dr = obj.getDataArray(),
  153 + result = new Array();// 定义返回数组对象.
  154 + // 2、遍历路牌对应的班次总数.
  155 + for(var i = 0 ; i<cardata.length;i++) {
  156 + var zcbcsz = new Array(),// 定义当前路牌下的正常班次数组.
  157 + zwlbbcsz = new Array(),// 定义当前路牌下的早晚例保、吃饭班次数组.
  158 + jccbcs = 0,// 进出场班次数.这个值是为了计算总班次数时除去时间为空的班次
  159 + jccbcsz = new Array();// 定义当前路牌下的进出场班次数组.
  160 + // 3、遍历当前所有的班次数.
  161 + for(var j = 0 ;j<dr.length;j++) {
  162 + // 4、判断当前遍历的班次是否属于当前路牌对应的班次数组对象.
  163 + if(cardata[i].lpNo == dr[j].parent && dr[j].bcsj>0 ){
  164 + // 5、把当前班次添加到上序定义的不同班次数组中.
  165 + if(dr[j].bcType =='bd' || dr[j].bcType=='lc' || dr[j].bcType =='cf')
  166 + zwlbbcsz.push(dr[j]);// 添加到早晚例保、吃饭班次数组中.
  167 + else if(dr[j].bcType=='in' || dr[j].bcType =='out')
  168 + jccbcs++;
  169 + else
  170 + zcbcsz.push(dr[j]);// 添加到正常班次数组.
  171 + }
  172 + if(cardata[i].lpNo == dr[j].parent && (dr[j].bcType=='in' || dr[j].bcType =='out')) {
  173 + jccbcsz.push(dr[j]);// 添加到进出场班次数组中.
  174 + }
169 } 175 }
170 - }  
171 - // 6、调整班次  
172 - result = result.concat(tcbcgz(bf.pxarr(zcbcsz),cardata[i].tzbc,zwlbbcsz,bf.pxarr(jccbcsz),jccbcs,cardata[i])); 176 + // 6、调整班次
  177 + result = result.concat(tcbcgz(bf.pxarr(zcbcsz),cardata[i].tzbc,zwlbbcsz,bf.pxarr(jccbcsz),jccbcs,cardata[i]));
  178 + }
  179 + return result;
173 } 180 }
174 - return result;  
175 - }  
176 -  
177 - /**  
178 - * @description : (TODO)  
179 - *  
180 - * @params : [ar-- 当前路牌下的正常班次数组;num--当前路牌对应的班次总数;qa--当前路牌下的早晚例保、吃饭班次数组,ja--当前路牌下的进出场班次数组]  
181 - *  
182 - * @return : 返回一个数组.这里返回一个根据班次总数调整过车班次数组  
183 - */  
184 - function tcbcgz(ar,num,qa,ja,jccbcs,cara) {  
185 - var rsbcA = new Array();  
186 - if(ar.length>0) {  
187 - var ra_ = new Array();  
188 - var _dx = num-jccbcs;// 班次总数值 - 进出时间大于零的班次 = 正常班次数  
189 - var lastbcsjStr = ar[ar.length-1].ARRIVALTIME;// 标记调整班次之前最后一个班次的达到时间  
190 - var fcno_ = Math.abs(ar.length+jccbcs-num),// 调整班次差  
191 - tempS = '';// 标记调整班次是添加还是剔除[jq--剔除;add--添加]  
192 - var fxdm = bf.dirDmToIndex(ar[ar.length-1].xlDir);// 标记调整班次之前最后一个班次的方向  
193 - // 如果调整班次差是成对的,那么方向一致.否则改变方向  
194 - if(fcno_%2!=0)  
195 - fxdm = bf.getfx(1,fxdm);// 改变方向  
196 - // 如果当前路牌的班次总数大于等于调整后的班次总数则截取班次,反之添加班次  
197 - if(ar.length>=_dx) {  
198 - ra_ = ar.splice(0,_dx);// 截取班次数(这里从下标0开始截取到 对应的班次总数值)  
199 - tempS = 'jq';  
200 - }else if(ar.length<_dx) {  
201 - var tzsj_ = obj.configuration.dataMap.ztjxA[fxdm],sh = ar[ar.length-1];  
202 - var startTime = new Date();  
203 - var strArray = sh.ARRIVALTIME.split(':');  
204 - startTime.setHours(parseInt(strArray[0]));  
205 - startTime.setMinutes(parseInt(strArray[1]) + tzsj_);  
206 - bf.addbc(obj,sh,startTime,tzsj_,sh.fcno + 1,ar,_dx - ar.length);  
207 - ra_ = ar;  
208 - tempS = 'add';  
209 - }  
210 - rsbcA = tzsj(ra_,qa,ja,lastbcsjStr,fcno_,tempS,fxdm);  
211 - }else if(ar.length==0) {  
212 - rsbcA = bf.addlpbc(obj,bf,cara.lpNo,num); 181 +
  182 + /**
  183 + * @description : (TODO)
  184 + *
  185 + * @params : [ar-- 当前路牌下的正常班次数组;num--当前路牌对应的班次总数;qa--当前路牌下的早晚例保、吃饭班次数组,ja--当前路牌下的进出场班次数组]
  186 + *
  187 + * @return : 返回一个数组.这里返回一个根据班次总数调整过车班次数组
  188 + */
  189 + function tcbcgz(ar,num,qa,ja,jccbcs,cara) {
  190 + var rsbcA = new Array();
  191 + if(ar.length>0) {
  192 + var ra_ = new Array();
  193 + var _dx = num-jccbcs;// 班次总数值 - 进出时间大于零的班次 = 正常班次数
  194 + var lastbcsjStr = ar[ar.length-1].ARRIVALTIME;// 标记调整班次之前最后一个班次的达到时间
  195 + var fcno_ = Math.abs(ar.length+jccbcs-num),// 调整班次差
  196 + tempS = '';// 标记调整班次是添加还是剔除[jq--剔除;add--添加]
  197 + var fxdm = bf.dirDmToIndex(ar[ar.length-1].xlDir);// 标记调整班次之前最后一个班次的方向
  198 + // 如果调整班次差是成对的,那么方向一致.否则改变方向
  199 + if(fcno_%2!=0)
  200 + fxdm = bf.getfx(1,fxdm);// 改变方向
  201 + // 如果当前路牌的班次总数大于等 于调整后的班次总数则截取班次,反之添加班次
  202 + if(ar.length>=_dx) {
  203 + ra_ = ar.splice(0,_dx);// 截取班次数(这里从下标0开始截取到 对应的班次总数值)
  204 + tempS = 'jq';
  205 + }else if(ar.length<_dx) {
  206 + var sh = ar[ar.length-1];
  207 + var cctag = bf.dirDmToIndex(ar[ar.length-1].xlDir);// 标记调整班次之前最后一个班次的方向
  208 + cctag = bf.getfx(1,cctag);// 改变方向
  209 + var startTime = new Date();
  210 + var strArray = sh.ARRIVALTIME.split(':');
  211 + startTime.setHours(parseInt(strArray[0]));
  212 + startTime.setMinutes(parseInt(strArray[1]));
  213 + var tzjx = bf.isgfsjd01(startTime,obj.configuration.dataMap) ? obj.configuration.dataMap.gftzsj[cctag] : obj.configuration.dataMap.dgtzsj[cctag];
  214 + startTime.setMinutes(parseInt(strArray[1]) + tzjx);
  215 + bf.addbc(obj , sh , startTime , tzjx, (sh.fcno + 1),ar, (_dx - ar.length));
  216 + ra_ = ar;
  217 + tempS = 'add';
  218 + }
  219 + // rsbcA = tzsj(ra_,qa,ja,lastbcsjStr,fcno_,tempS,fxdm);
  220 + rsbcA = ra_;
  221 + }else if(ar.length==0) {
  222 + rsbcA = bf.addlpbc(obj,bf,cara.lpNo,num);
  223 + }
  224 + return rsbcA;
213 } 225 }
214 - return rsbcA;  
215 - }  
216 -  
217 - /**  
218 - * @description : (TODO) 调整时间  
219 - *  
220 - * @params : [a1-- 当前路牌下的正常班次数组;a2--当前路牌下的早晚例保、吃饭班次数组;a3--当前路牌下的进出场班次数组]  
221 - *  
222 - * @return : 返回一个数组.这里返回的是一个调整时间后的班次数组  
223 - */  
224 - function tzsj(a1,a2,a3,sjstr,fcno_,tempS,fxdm) {  
225 - return a1.concat(jsjclc(a1[a1.length-1].ARRIVALTIME,a2,a3,sjstr,fcno_,tempS,fxdm));  
226 - }  
227 -  
228 - /**  
229 - * @description : (TODO)调整进出场、离场班次  
230 - *  
231 - * @params : [st--当前路牌最后一个班次的到达时间;ar--当前路牌下的早晚例保、吃饭班次数组,pa--当前路牌下的进出场班次数组]  
232 - *  
233 - * @return  
234 - */  
235 - function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) {  
236 - // 1、修改进出场班次.  
237 - for(var p = 0;p<pa.length;p++) {  
238 - // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次  
239 - if(pa[p].fcsj == sjstr && pa[p].bcType =='in') {  
240 - pa[p].fcsj = st;  
241 - pa[p].bcsj = obj.configuration.dataMap.ccsjArr[fxdm];  
242 - pa[p].xlDir = obj.configuration.dataMap.dira[fxdm];  
243 - var _s = bf.getDateTime(st);  
244 - var _tt = new Date(_s);  
245 - _tt.setMinutes(_tt.getMinutes()+pa[p].bcsj);  
246 - var ddsjStr = bf.getTimeStr(_tt);  
247 - pa[p].ARRIVALTIME = ddsjStr;  
248 - if(tempS =='add')  
249 - pa[p].fcno = pa[p].fcno+fcno_;  
250 - else if(tempS =='jq')  
251 - pa[p].fcno = pa[p].fcno-fcno_;  
252 - }  
253 - // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次  
254 - if((bf.getDateTime(pa[p].ARRIVALTIME)-bf.getDateTime(st))/60000 > pa[p].bcsj) {  
255 - console.log('{' + pa[p].lpNo + '----' + pa[p].ARRIVALTIME + '----' + st + '}');  
256 - console.log('修改进出场班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');  
257 - pa.splice(p,1);  
258 - } 226 +
  227 + /**
  228 + * @description : (TODO) 调整时间
  229 + *
  230 + * @params : [a1-- 当前路牌下的正常班次数组;a2--当前路牌下的早晚例保、吃饭班次数组;a3--当前路牌下的进出场班次数组]
  231 + *
  232 + * @return : 返回一个数组.这里返回的是一个调整时间后的班次数组
  233 + */
  234 + function tzsj(a1,a2,a3,sjstr,fcno_,tempS,fxdm) {
  235 + return a1.concat(jsjclc(a1[a1.length-1].ARRIVALTIME,a2,a3,sjstr,fcno_,tempS,fxdm));
259 } 236 }
260 - // 2、修改晚例保班次.  
261 - for(var i = 0 ; i<ar.length;i++) {  
262 - // A)、修改离场班次属性值  
263 - if(ar[i].bcType=='lc') {  
264 - ar[i].fcsj = ddsjStr;  
265 - ar[i].xlDir = obj.configuration.dataMap.dira[fxdm];  
266 - var _lcs = bf.getDateTime(ddsjStr);  
267 - var _lctt = new Date(_lcs);  
268 - _lctt.setMinutes(_lctt.getMinutes()+ar[i].bcsj);  
269 - ar[i].ARRIVALTIME = bf.getTimeStr(_lctt);  
270 - if(tempS =='add')  
271 - ar[i].fcno = ar[i].fcno+fcno_;  
272 - else if(tempS =='jq')  
273 - ar[i].fcno = ar[i].fcno-fcno_; 237 +
  238 + /**
  239 + * @description : (TODO)调整进出场、离场班次
  240 + *
  241 + * @params : [st--当前路牌最后一个班次的到达时间;ar--当前路牌下的早晚例保、吃饭班次数组,pa--当前路牌下的进出场班次数组]
  242 + *
  243 + * @return
  244 + */
  245 + function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) {
  246 + // 1、修改进出场班次.
  247 + for(var p = 0;p<pa.length;p++) {
  248 + // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次
  249 + if(pa[p].fcsj == sjstr && pa[p].bcType =='in') {
  250 + pa[p].fcsj = st;
  251 + pa[p].bcsj = obj.configuration.dataMap.ccsjArr[fxdm];
  252 + pa[p].xlDir = obj.configuration.dataMap.dira[fxdm];
  253 + var _s = bf.getDateTime(st);
  254 + var _tt = new Date(_s);
  255 + _tt.setMinutes(_tt.getMinutes()+pa[p].bcsj);
  256 + var ddsjStr = bf.getTimeStr(_tt);
  257 + pa[p].ARRIVALTIME = ddsjStr;
  258 + if(tempS =='add')
  259 + pa[p].fcno = pa[p].fcno+fcno_;
  260 + else if(tempS =='jq')
  261 + pa[p].fcno = pa[p].fcno-fcno_;
  262 + }
  263 + // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次
  264 + if((bf.getDateTime(pa[p].ARRIVALTIME)-bf.getDateTime(st))/60000 > pa[p].bcsj) {
  265 + console.log('{' + pa[p].lpNo + '----' + pa[p].ARRIVALTIME + '----' + st + '}');
  266 + console.log('修改进出场班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');
  267 + pa.splice(p,1);
  268 + }
274 } 269 }
275 - // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次  
276 - if(bf.getDateTime(ar[i].ARRIVALTIME)>bf.getDateTime(st) && ar[i].bcType!='lc') {  
277 - console.log('{' + ar[i].lpNo + '----' + ar[i].ARRIVALTIME + '----' + st + '}')  
278 - console.log('修改晚例保班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');  
279 - ar.splice(i,1); 270 + // 2、修改晚例保班次.
  271 + for(var i = 0 ; i<ar.length;i++) {
  272 + // A)、修改离场班次属性值
  273 + if(ar[i].bcType=='lc') {
  274 + ar[i].fcsj = ddsjStr;
  275 + ar[i].xlDir = obj.configuration.dataMap.dira[fxdm];
  276 + var _lcs = bf.getDateTime(ddsjStr);
  277 + var _lctt = new Date(_lcs);
  278 + _lctt.setMinutes(_lctt.getMinutes()+ar[i].bcsj);
  279 + ar[i].ARRIVALTIME = bf.getTimeStr(_lctt);
  280 + if(tempS =='add')
  281 + ar[i].fcno = ar[i].fcno+fcno_;
  282 + else if(tempS =='jq')
  283 + ar[i].fcno = ar[i].fcno-fcno_;
  284 + }
  285 + // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次
  286 + if(bf.getDateTime(ar[i].ARRIVALTIME)>bf.getDateTime(st) && ar[i].bcType!='lc') {
  287 + console.log('{' + ar[i].lpNo + '----' + ar[i].ARRIVALTIME + '----' + st + '}')
  288 + console.log('修改晚例保班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');
  289 + ar.splice(i,1);
  290 + }
280 } 291 }
281 - }  
282 - // 3、合并进出场、例保班次,并返回.  
283 - return pa.concat(ar);  
284 - } 292 + // 3、合并进出场、例保班次,并返回.
  293 + return pa.concat(ar);
  294 + }
  295 + } else{
  296 + error.show('参数异常!','【 obj:' + obj + ' , cardata:' + cardata + ' , bf:' + bf + '】');
  297 + }
285 }); 298 });
286 </script> 299 </script>
287 \ No newline at end of file 300 \ No newline at end of file
src/main/resources/static/pages/base/timesmodel/gantt.html
@@ -87,7 +87,7 @@ @@ -87,7 +87,7 @@
87 </li> 87 </li>
88 <li> 88 <li>
89 <a href="javascript:" class="tool-action aboutread"> 89 <a href="javascript:" class="tool-action aboutread">
90 - <i class="fa fa-arrows-v"></i>&nbsp;调整班次 90 + <i class="fa fa-arrows-v"></i>&nbsp;班次调整
91 </a> 91 </a>
92 </li> 92 </li>
93 </ul> 93 </ul>
@@ -116,4 +116,5 @@ @@ -116,4 +116,5 @@
116 <script src="/pages/base/timesmodel/js/ContextJS/js/context.js"></script> 116 <script src="/pages/base/timesmodel/js/ContextJS/js/context.js"></script>
117 <script src="/pages/base/timesmodel/js/base-fun.js"></script> 117 <script src="/pages/base/timesmodel/js/base-fun.js"></script>
118 <script src="/pages/base/timesmodel/js/d3.relationshipgraph.js"></script> 118 <script src="/pages/base/timesmodel/js/d3.relationshipgraph.js"></script>
  119 +<script src="/pages/base/timesmodel/js/errorinfo.js"></script>
119 <script src="/pages/base/timesmodel/js/gantt.js"></script> 120 <script src="/pages/base/timesmodel/js/gantt.js"></script>
120 \ No newline at end of file 121 \ No newline at end of file
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
@@ -426,9 +426,11 @@ var BaseFun = function() { @@ -426,9 +426,11 @@ var BaseFun = function() {
426 lpbc_.push(rsjar[x]); 426 lpbc_.push(rsjar[x]);
427 } 427 }
428 } 428 }
429 - baseF.addcfbc01(lpbc_,dataMap,map);  
430 // 按照发车序号顺序排序. 429 // 按照发车序号顺序排序.
431 lpbc_.sort(function(a,b){return a.fcno-b.fcno}); 430 lpbc_.sort(function(a,b){return a.fcno-b.fcno});
  431 + baseF.addcfbc01(lpbc_,dataMap,map);
  432 + // 按照发车序号顺序排序.
  433 + // lpbc_.sort(function(a,b){return a.fcno-b.fcno});
432 var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map); 434 var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map);
433 bcs = baseF.updfcno01(tt,bcs); 435 bcs = baseF.updfcno01(tt,bcs);
434 // debugger; 436 // debugger;
@@ -453,12 +455,17 @@ var BaseFun = function() { @@ -453,12 +455,17 @@ var BaseFun = function() {
453 455
454 addcfbc01 : function(lpbcar,dataMap,map) { 456 addcfbc01 : function(lpbcar,dataMap,map) {
455 var gs = 0 ,sicftag = true; 457 var gs = 0 ,sicftag = true;
456 - for(var g = 0 ; g <lpbcar.length;g++ ) {  
457 - gs = gs + lpbcar[g].bcsj + lpbcar[g].STOPTIME;  
458 - if(lpbcar[g].STOPTIME==0 && g!=0 && g!=(lpbcar.length-1)) { 458 + for(var g = 0 ; g <lpbcar.length-1;g++ ) {
  459 + if( parseInt((baseF.getDateTime(lpbcar[g+1].fcsj) - baseF.getDateTime(lpbcar[g].ARRIVALTIME))/60000) > 80
  460 + && lpbcar[g].STOPTIME==0 ) {
459 lpbcar[g].isfb = 1; 461 lpbcar[g].isfb = 1;
460 - sicftag = false;  
461 } 462 }
  463 + /*gs = gs + lpbcar[g].bcsj + lpbcar[g].STOPTIME;
  464 + if(lpbcar[g].STOPTIME==0 && g>0 && g<(lpbcar.length-1)) {
  465 + debugger;
  466 + lpbcar[g].isfb = 1;
  467 + sicftag = false;
  468 + }*/
462 } 469 }
463 /*if(sicftag) { 470 /*if(sicftag) {
464 for(var j = 0 ; j <lpbcar.length;j ++ ) { 471 for(var j = 0 ; j <lpbcar.length;j ++ ) {
@@ -1940,8 +1947,10 @@ var BaseFun = function() { @@ -1940,8 +1947,10 @@ var BaseFun = function() {
1940 kssj, 1947 kssj,
1941 obj.configuration.dataMap.pcxssjArr, 1948 obj.configuration.dataMap.pcxssjArr,
1942 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间 1949 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间
1943 - tzsj = obj.configuration.dataMap.ztjxA[cctag];  
1944 - var temptzsj = t == num-1 ? 0 : tzsj; 1950 + // tzsj = obj.configuration.dataMap.ztjxA[cctag];
  1951 + var tzjx = baseF.isgfsjd01(kssj,obj.configuration.dataMap) ? obj.configuration.dataMap.gftzsj[cctag] : obj.configuration.dataMap.dgtzsj[cctag];
  1952 + var temptzsj = ((t == num-1) ? 0 : tzsj);
  1953 + /*var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;*/
1945 jsonArray.push(baseF.getbcObj( kssj, 1954 jsonArray.push(baseF.getbcObj( kssj,
1946 _xxsj, 1955 _xxsj,
1947 carArray, 1956 carArray,
@@ -1954,7 +1963,7 @@ var BaseFun = function() { @@ -1954,7 +1963,7 @@ var BaseFun = function() {
1954 obj.configuration.dataMap.zdzArr[cctag], 1963 obj.configuration.dataMap.zdzArr[cctag],
1955 null,temptzsj,0)); 1964 null,temptzsj,0));
1956 // kssj = new Date(kssj.setMinutes(kssj.getMinutes() + temptzsj)); 1965 // kssj = new Date(kssj.setMinutes(kssj.getMinutes() + temptzsj));
1957 - kssj.setMinutes(kssj.getMinutes() + temptzsj) 1966 + kssj.setMinutes(kssj.getMinutes() + tzjx)
1958 } 1967 }
1959 lastObj.STOPTIME = 10; 1968 lastObj.STOPTIME = 10;
1960 }, 1969 },
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
@@ -229,7 +229,7 @@ $(&#39;.updownread&#39;).on(&#39;click&#39;,function() { @@ -229,7 +229,7 @@ $(&#39;.updownread&#39;).on(&#39;click&#39;,function() {
229 /************************************************************************************************************************************************/ 229 /************************************************************************************************************************************************/
230 230
231 /** 231 /**
232 - * @description : (TODO) 调整班次点击事件 232 + * @description : (TODO) 班次调整点击事件
233 * 233 *
234 * @status OK. 234 * @status OK.
235 ************************************************************************************************************************************************/ 235 ************************************************************************************************************************************************/
@@ -417,31 +417,6 @@ $(&#39;.editlp&#39;).on(&#39;click&#39;,function() { @@ -417,31 +417,6 @@ $(&#39;.editlp&#39;).on(&#39;click&#39;,function() {
417 }); 417 });
418 /************************************************************************************************************************************************/ 418 /************************************************************************************************************************************************/
419 419
420 -/**  
421 - * @description : (TODO)获取路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间)  
422 - *  
423 - * @params : [a1--班次数组;a2--路牌数组]  
424 - *  
425 - * @return : 返回一个数组.这里返回的是一个封装的每个路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间、班次时间为0的班次)  
426 - ************************************************************************************************************************************************/  
427 -var getbczs = function (a1,a2) {  
428 - var array = new Array();  
429 - // 1、遍历路牌数组  
430 - for(var i = 0;i<a2.length;i++) {  
431 - var bcs = 0;  
432 - // 2、遍历班次数组  
433 - for(var j =0;j<a1.length;j++) {  
434 - // 3、判断当前班次j是否属于当前路牌i下,除去早晚例保班次、吃饭时间、班次时间为0的班次  
435 - if(a1[j].parent == a2[i].lpA.lpNo && a1[j].bcType!='bd' && a1[j].bcType!='lc' && a1[j].bcType!='cf' && a1[j].bcsj>0)  
436 - bcs++;  
437 - }  
438 - // 4、把每个路牌下的对应班次数一一封装在一起,并添加到返回数组里边  
439 - array.push({lpNo:a2[i].lpA.lpNo,bcs:bcs});  
440 - }  
441 - return array;  
442 -}  
443 -/************************************************************************************************************************************************/  
444 -  
445 420
446 /** 421 /**
447 * d3动画过度 422 * d3动画过度
@@ -937,6 +912,44 @@ var RelationshipGraph = function () { @@ -937,6 +912,44 @@ var RelationshipGraph = function () {
937 return dataArray; 912 return dataArray;
938 } 913 }
939 }, { 914 }, {
  915 + /**
  916 + * @description : (TODO) 获取路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间)
  917 + *
  918 + * @params : [a1--班次数组;a2--路牌数组]
  919 + *
  920 + * @return : 返回一个数组.这里返回的是一个封装的每个路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间、班次时间为0的班次)
  921 + **/
  922 + key : 'getbczs',
  923 + value : function getbczs(a1,a2,dataMap) {
  924 + // 定义返回数组.
  925 + var array = new Array();
  926 + // 判断参数数组长度大于〇,dataMap不能为空.
  927 + if(a1.length>0 && a2.length>0 && dataMap!=null && dataMap!='') {
  928 + // 遍历路牌数组
  929 + for(var i = 0 ;i < a2.length ; i++) {
  930 + // 定义当前路牌下班次数,初始化为0.
  931 + var bcs = 0;
  932 + // 遍历班次数组
  933 + for(var j = 0 ; j < a1.length ; j++) {
  934 + // 判断当前班次j是否属于当前路牌i下,除去早晚例保班次、吃饭时间、班次时间为0的班次
  935 + if(a1[j].parent == a2[i].lpA.lpNo &&
  936 + a1[j].bcType != dataMap.bcTypeArr.bd &&
  937 + a1[j].bcType != dataMap.bcTypeArr.lc &&
  938 + a1[j].bcType != dataMap.bcTypeArr.cf &&
  939 + a1[j].bcsj > 0) {
  940 + bcs++;
  941 + }
  942 + }
  943 + // 把每个路牌下的对应班次数一一封装在一起,并添加到返回数组里边
  944 + array.push({lpNo : a2[i].lpA.lpNo , lpName:a2[i].lpA.lpName , bcs:bcs});
  945 + }
  946 + }else {
  947 + error.show('参数异常!','【 a1:' + a1 + ' , a2:' + a2 + ' , dataMap:' + dataMap + '】');
  948 + // console.log("您传入的参数异常!【 a1:" + a1 + ", a2:" + a2 + ", dataMap:" + dataMap);
  949 + }
  950 + return array;
  951 + }
  952 + }, {
940 key : 'addHistory' , 953 key : 'addHistory' ,
941 value : function addHistory() { 954 value : function addHistory() {
942 historyArray.push({'data':JSON.stringify(this.getDataArray()),'granph':JSON.stringify(this.configuration)}); 955 historyArray.push({'data':JSON.stringify(this.getDataArray()),'granph':JSON.stringify(this.configuration)});
@@ -1409,7 +1422,7 @@ var RelationshipGraph = function () { @@ -1409,7 +1422,7 @@ var RelationshipGraph = function () {
1409 } 1422 }
1410 }, { 1423 }, {
1411 /** 1424 /**
1412 - * @description : (TODO) 调整班次函数. 1425 + * @description : (TODO) 班次调整函数.
1413 * 1426 *
1414 * @status OK. 1427 * @status OK.
1415 * */ 1428 * */
@@ -1418,7 +1431,9 @@ var RelationshipGraph = function () { @@ -1418,7 +1431,9 @@ var RelationshipGraph = function () {
1418 // 弹出层mobal页面 1431 // 弹出层mobal页面
1419 $.get('/pages/base/timesmodel/bctz.html', function(m){ 1432 $.get('/pages/base/timesmodel/bctz.html', function(m){
1420 $(pjaxContainer).append(m); 1433 $(pjaxContainer).append(m);
1421 - $('#tzbc_mobal').trigger('tzbcMobal.show',[$_GlobalGraph,getbczs($_GlobalGraph.getDataArray(),yAxisYArray),BaseFun]); 1434 + // 获取各路牌下的班次数
  1435 + var lpbcs = $_GlobalGraph.getbczs($_GlobalGraph.getDataArray() , yAxisYArray , $_GlobalGraph.configuration.dataMap);
  1436 + $('#tzbc_mobal').trigger('tzbcMobal.show',[$_GlobalGraph , lpbcs , BaseFun , ErrorInfo]);
1422 }); 1437 });
1423 } 1438 }
1424 1439