Commit 168352fcd6e3e5ab0953c96a4b5f487c9870d3d3

Authored by 潘钊
2 parents 791d1557 bd01e897

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

src/main/java/com/bsth/entity/oil/Ylxxb.java
... ... @@ -45,6 +45,9 @@ public class Ylxxb {
45 45 @Transient
46 46 private String fgsname;
47 47  
  48 + @Transient
  49 + private Double zjzl;
  50 +
48 51  
49 52 public Integer getId() {
50 53 return id;
... ... @@ -184,5 +187,13 @@ public class Ylxxb {
184 187 public void setFgsname(String fgsname) {
185 188 this.fgsname = fgsname;
186 189 }
  190 + public Double getZjzl() {
  191 + return zjzl;
  192 + }
  193 + public void setZjzl(Double zjzl) {
  194 + this.zjzl = zjzl;
  195 + }
  196 +
  197 +
187 198  
188 199 }
... ...
src/main/java/com/bsth/repository/oil/YlxxbRepository.java
... ... @@ -20,7 +20,7 @@ public interface YlxxbRepository extends BaseRepository<Ylxxb, Integer>{
20 20 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nylx=?2 and gsdm like %?3%",nativeQuery=true)
21 21 List<Ylxxb> obtainYlxx(String rq,int nylx,String gsdm);
22 22  
23   - @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and ssgs=?2",nativeQuery=true)
  23 + @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and gsdm=?2",nativeQuery=true)
24 24 List<Ylxxb> checkYlxx(String rq,String gs);
25 25  
26 26 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true)
... ...
src/main/java/com/bsth/service/impl/StationServiceImpl.java
... ... @@ -335,7 +335,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
335 335 arg0.setDestroy(destroy);
336 336 // 版本号
337 337 arg0.setVersions(versions);
338   - /*arg0.setbJwpoints(bJwpoints);*/
  338 + arg0.setbJwpoints(bJwpoints);
339 339 // 插入站点信息
340 340 repository.save(arg0);
341 341  
... ...
src/main/java/com/bsth/service/oil/impl/CwjyServiceImpl.java
... ... @@ -31,6 +31,7 @@ import com.bsth.repository.oil.CwjyRepository;
31 31 import com.bsth.repository.oil.YlxxbRepository;
32 32 import com.bsth.service.impl.BaseServiceImpl;
33 33 import com.bsth.service.oil.CwjyService;
  34 +import com.bsth.util.Arith;
34 35 import com.bsth.util.PageHelper;
35 36 import com.bsth.util.PageObject;
36 37  
... ... @@ -314,7 +315,19 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
314 315 return t;
315 316 }
316 317 });
317   -
  318 + List<Ylxxb> list= ylxxbRepository.checkYlxx(rq, gsdm);
  319 + for (int i = 0; i < yList.size(); i++) {
  320 + Ylxxb t=yList.get(i);
  321 + Double zjzl=0.0;
  322 + for (int j = 0; j < list.size(); j++) {
  323 + Ylxxb y=list.get(j);
  324 + if(t.getNbbm().equals(y.getNbbm())){
  325 + zjzl=Arith.add(zjzl, y.getJzl());
  326 + }
  327 +
  328 + }
  329 + t.setZjzl(zjzl);
  330 + }
318 331 return yList;
319 332 }
320 333  
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -266,7 +266,44 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
266 266 List<Ylb> ylListBe =repository.listMaxRqJcsx(rq, gsbm, fgsbm, line, nbbm);
267 267 List<Cyl> clyList = cylRepository.obtainCyl(nbbm,gsbm);
268 268 // 从排班表中计算出行驶的总里程
269   - List<Map<String, Object>> listpb = scheduleRealInfoService.yesterdayDataList(line, rq, gsbm, fgsbm, "", nbbm);
  269 + List<Map<String, Object>> listpb =new ArrayList<Map<String, Object>>();
  270 + List<Map<String, Object>> listpbs=scheduleRealInfoService.yesterdayDataList(line, rq, gsbm, fgsbm, "", nbbm);
  271 +
  272 + String sxtj=map2.get("sxtj").toString();
  273 + if(sxtj.equals("0")){
  274 + listpb=listpbs;
  275 + }else{
  276 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, line,nbbm);
  277 + List<String> stringList=new ArrayList<String>();
  278 + for (int i = 0; i < objectLists.size(); i++) {
  279 + String clbm=objectLists.get(i)[0].toString();
  280 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  281 + //一车一单
  282 + if(sxtj.equals("1")){
  283 + if(cs==1){
  284 + stringList.add(clbm);
  285 + }
  286 + }
  287 + //一车多单
  288 + if(sxtj.equals("2")){
  289 + if(cs>1){
  290 + stringList.add(clbm);
  291 + }
  292 + }
  293 + }
  294 +
  295 + for (int i = 0; i < stringList.size(); i++) {
  296 + String strNbbm=stringList.get(i);
  297 + for (int j = 0; j < listpbs.size(); j++) {
  298 + Map<String, Object> map = listpbs.get(j);
  299 + String mapNbbm=map.get("clZbh").toString();
  300 + if(strNbbm.equals(mapNbbm)){
  301 + listpb.add(map);
  302 + }
  303 + }
  304 + }
  305 + }
  306 +
270 307 List<Ylb> addList = new ArrayList<Ylb>();
271 308 List<Ylb> updateList = new ArrayList<Ylb>();
272 309 String ins="";
... ... @@ -443,15 +480,53 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
443 480 List<Cyl> cylList = cylRepository.obtainCyl(nbbm,gsbm);
444 481 // 指定日期YLB信息
445 482 List<Ylb> ylbList =new ArrayList<Ylb>();
  483 + List<Ylb> ylbLists =new ArrayList<Ylb>();
446 484 List<Ylb> iterator2=new ArrayList<Ylb>();
447 485 if(xlbm.equals("")){
448   - ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
  486 + ylbLists=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
449 487 iterator2=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm,jcsx");
450 488 }else{
451   - ylbList=repository.obtainYl_eq(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
  489 + ylbLists=repository.obtainYl_eq(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
452 490 iterator2=repository.obtainYl_eq(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm,jcsx");
453 491 }
454 492  
  493 + // 从排班表中计算出行驶的总里程
  494 +
  495 + String sxtj=map.get("sxtj").toString();
  496 + if(sxtj.equals("0")){
  497 + ylbList=ylbLists;
  498 + }else{
  499 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  500 + List<String> stringList=new ArrayList<String>();
  501 + for (int i = 0; i < objectLists.size(); i++) {
  502 + String clbm=objectLists.get(i)[0].toString();
  503 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  504 + //一车一单
  505 + if(sxtj.equals("1")){
  506 + if(cs==1){
  507 + stringList.add(clbm);
  508 + }
  509 + }
  510 + //一车多单
  511 + if(sxtj.equals("2")){
  512 + if(cs>1){
  513 + stringList.add(clbm);
  514 + }
  515 + }
  516 + }
  517 +
  518 + for (int i = 0; i < stringList.size(); i++) {
  519 + String strNbbm=stringList.get(i);
  520 + for (int j = 0; j < ylbLists.size(); j++) {
  521 + Ylb y = ylbLists.get(j);
  522 + String mapNbbm=y.getNbbm();
  523 + if(strNbbm.equals(mapNbbm)){
  524 + ylbList.add(y);
  525 + }
  526 + }
  527 + }
  528 + }
  529 +
455 530 for (int i=0;i<ylbList.size();i++) {
456 531 Ylb ylb = ylbList.get(i);
457 532 // 判断是否已经计算过
... ...
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
... ... @@ -529,11 +529,8 @@ public class CulateMileageServiceImpl implements CulateMileageService{
529 529 if(!scheduleRealInfo.isSflj()){
530 530 if (scheduleRealInfo.getBcType().equals("in")
531 531 || scheduleRealInfo.getBcType().equals("out")|| scheduleRealInfo.getBcType().equals("ldks")) {
532   - double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
533   - if(jhlcOrig-scheduleRealInfo.getJhlc()>0){
  532 + if(!scheduleRealInfo.isSflj()){
534 533 jcclc =Arith.add(jcclc, scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
535   - }else{
536   - jcclc =Arith.add(jcclc, scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
537 534 }
538 535 }
539 536 }
... ...
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
... ... @@ -44,22 +44,24 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
44 44 try {
45 45 // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1
46 46 File file = dataToolsService.uploadFile(filename, filedata);
47   - Workbook workbook = Workbook.getWorkbook(file);
48   - Sheet sheet = workbook.getSheet(0);
49   -
50   - File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls");
51   - WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal);
52   - WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0);
53   - for (int i = 0; i < sheet.getRows(); i++) {
54   - Cell[] cells = sheet.getRow(i);
55   - for (int j = 0; j < cells.length; j++) {
56   - writableSheet.addCell(new Label(j, i, cells[j].getContents()));
57   - }
58   - }
59   - writableWorkbook.write();
60   - writableWorkbook.close();
  47 +// Workbook workbook = Workbook.getWorkbook(file);
  48 +// Sheet sheet = workbook.getSheet(0);
  49 +//
  50 +// File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls");
  51 +// WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal);
  52 +// WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0);
  53 +// for (int i = 0; i < sheet.getRows(); i++) {
  54 +// Cell[] cells = sheet.getRow(i);
  55 +// for (int j = 0; j < cells.length; j++) {
  56 +// writableSheet.addCell(new Label(j, i, cells[j].getContents()));
  57 +// }
  58 +// }
  59 +// writableWorkbook.write();
  60 +// writableWorkbook.close();
  61 +//
  62 +// return fileCal;
61 63  
62   - return fileCal;
  64 + return file;
63 65  
64 66 } catch (Exception exp) {
65 67 throw new ScheduleException(exp);
... ...
src/main/java/com/bsth/util/ReportUtils.java
... ... @@ -47,10 +47,12 @@ public class ReportUtils {
47 47 POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
48 48 sourcePath));
49 49 HSSFWorkbook wb = new HSSFWorkbook(fs);
50   - Map<String, Object> m = (Map<String, Object>)tArray[0];
51   - if(m.containsKey("sheetName") && m.get("sheetName")!=null
52   - && m.get("sheetName").toString().trim().length()!=0)
53   - wb.setSheetName(0, m.get("sheetName").toString());
  50 + if(tArray.length != 0 && tArray[0] instanceof java.util.Map){
  51 + Map<String, Object> m = (Map<String, Object>)tArray[0];
  52 + if(m.containsKey("sheetName") && m.get("sheetName")!=null
  53 + && m.get("sheetName").toString().trim().length()!=0)
  54 + wb.setSheetName(0, m.get("sheetName").toString());
  55 + }
54 56 HSSFSheet sheet = wb.getSheetAt(0);
55 57 HSSFRow row;
56 58 HSSFCell cell = null;
... ...
src/main/resources/fatso/handle_real_ctl.js
... ... @@ -17,7 +17,7 @@ var pName = &#39;bsth_control&#39;
17 17 , path = process.cwd()
18 18 //根目录
19 19 , root = path.substr(0, path.indexOf(separator + 'src'+separator+'main'))
20   - , workspace = root.substr(0, root.indexOf(separator + pName))
  20 + , workspace = root.substr(0, root.lastIndexOf(separator + pName))
21 21 //临时目录
22 22 , dest = (workspace + separator + pName + '@fatso_copy')//.replace(/\//g, '\\')
23 23 , _static = separator + 'src'+separator+'main'+separator+'resources'+separator+'static';
... ...
src/main/resources/fatso/start.js
... ... @@ -22,7 +22,7 @@ var excludes = [&#39;scheduleApp&#39;, &#39;trafficManage&#39;, &#39;control&#39;]
22 22 ,path = process.cwd()
23 23 //根目录
24 24 ,root = path.substr(0, path.indexOf(separator + 'src'+separator+'main'))
25   - ,workspace = root.substr(0, root.indexOf(separator + pName))
  25 + ,workspace = root.substr(0, root.lastIndexOf(separator + pName))
26 26 //临时目录
27 27 ,dest = (workspace + separator + pName+'@fatso_copy')
28 28 ,_static = separator + 'src'+separator+'main'+separator+'resources'+separator+'static'
... ...
src/main/resources/static/pages/base/timesmodel/gantt.html
... ... @@ -71,6 +71,11 @@
71 71 </a>
72 72 </li>
73 73 <li>
  74 + <a href="javascript:" class="tool-action editlp">
  75 + <i class="fa fa-pencil"></i>&nbsp;修改路牌
  76 + </a>
  77 + </li>
  78 + <li>
74 79 <a href="javascript:" class="tool-action addlp">
75 80 <i class="fa fa-plus"></i>&nbsp;添加路牌
76 81 </a>
... ...
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
... ... @@ -58,7 +58,7 @@ var BaseFun = function() {
58 58 var array = new Array();
59 59 if(len>0) {
60 60 for(var y = 0; y<len; y++) {
61   - array.push({lp:null,lpNo:y+1,lpName:y+1,lpType:'普通路牌'});//添加一个路牌对象
  61 + array.push({lp:null,lpNo:y+1, parent :y+1, lpName:y+1,lpType:'普通路牌'});//添加一个路牌对象
62 62 };
63 63 }
64 64 return array;
... ... @@ -325,11 +325,9 @@ var BaseFun = function() {
325 325 },
326 326  
327 327 BXPplaceClassesTime01 : function(saa,cara,map,seMap,dataMap,lpNoA) {
328   - var allJsonD = baseF.plgfbc(saa,cara,map,seMap,dataMap);
329   - var jsonArray = baseF.tzsmbcsj01(baseF.setbcsAndfcno(allJsonD),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj),lpNoA,dataMap;
  328 + var jsonArray = baseF.plgfbc(saa,cara,map,seMap,dataMap);
330 329 var list = baseF.splitBxRc(map.bxrc);
331 330 baseF.fprclp01(list,cara);
332   - console.log(list);
333 331 var bxrclist = list.data;
334 332 var rs = new Array(),bxrcgs= new Array();
335 333 // 遍历已分配好路牌的班型人次数组.
... ... @@ -350,18 +348,33 @@ var BaseFun = function() {
350 348 // 遍历班次数.
351 349 for(var i =0 ; i <jsonArray.length; i++) {
352 350 // 判断当期遍历的班次是否属于当前的路牌.
353   - if(jsonArray[i].lpNo == lpNo)
  351 + if(jsonArray[i].lpNo == lpNo) {
  352 + jsonArray[i].lpName = bxrclist[x].type + '_' + lpNo ;
354 353 lpbc.push(jsonArray[i]);
  354 + }
  355 +
  356 + }
  357 + for(var l = 0 ; l <cara.length;l++ ) {
  358 + if(cara[l].lpNo == lpNo) {
  359 + cara[l].lpName = bxrclist[x].type + '_' + lpNo ;
  360 + }
355 361 }
356 362 // 按照发车序号顺序排序.
357 363 lpbc.sort(function(a,b){return b.fcno-a.fcno});
358 364 // 调整班次数.也就是说调整工时.
359   - baseF.tzlpgs01(lpbc,hoursV,map,dataMap,lpNo,saa);
360   - rs = rs.concat(lpbc);
  365 + rs = rs.concat(baseF.tzlpgs01(lpbc,hoursV,map,dataMap,lpNo,saa,bxrclist[x].type,lpNo,cara.length));
361 366 }
362 367 }
363   - var jar = baseF.tzsmbcsj01(baseF.setbcsAndfcno(rs),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj),lpNoA,dataMap;
364   - //var jar = baseF.tzsmbcsj(baseF.setbcsAndfcno(rs),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj),lpNoA,dataMap;
  368 + var jar01 = baseF.tzsmbcsj01(
  369 + baseF.setbcsAndfcno(
  370 + baseF.tzsztest(cara,
  371 + baseF.tzsmbcsj01(baseF.setbcsAndfcno(rs),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap),
  372 + dataMap)),
  373 + dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);
  374 + baseF.jhfcjx01(jar01,dataMap);
  375 + var jar = baseF.tzsmbcsj01(
  376 + baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)),
  377 + dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);
365 378 var resultJA = new Array();
366 379 for(var m = 0 ; m < cara.length; m++) {
367 380 // 获取路牌编号.
... ... @@ -369,17 +382,140 @@ var BaseFun = function() {
369 382 // 定义路牌下的所有班次.
370 383 var lpbc_ = new Array();
371 384 // 遍历班次数.
372   - for(var j =0 ; j <jar.length; j++) {
  385 + for(var x =0 ; x <jar.length; x++) {
373 386 // 判断当期遍历的班次是否属于当前的路牌.
374   - if(jar[j].lpNo == lpNo_)
375   - lpbc_.push(jar[j]);
  387 + if(jar[x].lpNo == lpNo_) {
  388 + delete jar[x].fcint;
  389 + lpbc_.push(jar[x]);
  390 + }
376 391 }
377 392 // 按照发车序号顺序排序.
378 393 lpbc_.sort(function(a,b){return a.fcno-b.fcno});
379 394 resultJA = resultJA.concat(baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map));
380   - // resultJA = resultJA.concat(lpbc_);
381 395 }
382   - return {'json':resultJA,'bxrcgs':null};
  396 + return {'json':resultJA,'bxrcgs':bxrcgs};
  397 + },
  398 +
  399 + tzsztest : function(cara,tempa,dataMap) {
  400 + var jsrs = new Array();
  401 + for(var t = 0 ; t < cara.length; t++) {
  402 + var sslpbcA = new Array();
  403 + for(var j =0 ; j <tempa.length; j++) {
  404 + // 判断当期遍历的班次是否属于当前的路牌.
  405 + if(tempa[j].lpNo == cara[t].lpNo)
  406 + sslpbcA.push(tempa[j]);
  407 + }
  408 + sslpbcA.sort(function(a,b){return a.fcno-b.fcno});
  409 + baseF.isbczt(sslpbcA,dataMap);
  410 + baseF.istccf(sslpbcA,dataMap);
  411 + baseF.tztzsjInit01(sslpbcA,dataMap);
  412 + jsrs = jsrs.concat(sslpbcA);
  413 + }
  414 + return jsrs;
  415 + },
  416 +
  417 + isbczt : function(ar,dataMap) {
  418 + for(var r = 0 ; r< ar.length-1;r++) {
  419 + if(ar[r].bcType==dataMap.bcTypeArr.cf)
  420 + continue;
  421 + if(ar[r].xlDir == ar[r+1].xlDir) {
  422 + ar.splice(r, 1);
  423 + r--;
  424 + }
  425 +
  426 + }
  427 + },
  428 +
  429 + istccf : function(ar,dataMap) {
  430 + for(var r = 0 ; r < ar.length;r++) {
  431 + if(ar[r].bcType==dataMap.bcTypeArr.cf){
  432 + if(r == ar.length-1){
  433 + ar.splice(r, 1);
  434 + break;
  435 + }else {
  436 + var xbcsj = baseF.getDateTime(ar[r+1].fcsj);
  437 + if(dataMap.wgfsjd[0].st <= xbcsj && xbcsj <= dataMap.wgfsjd[0].ed) {
  438 + ar.splice(r, 1);
  439 + r--;
  440 + }
  441 + }
  442 + }
  443 + }
  444 +
  445 + },
  446 +
  447 + tztzsjInit01 : function(ar,dataMap) {
  448 + for(var r = 0 ; r< ar.length-1;r++) {
  449 + var sgbcfcsj = baseF.getDateTime(ar[r+1].fcsj),dqbcddsj = baseF.getDateTime(ar[r].ARRIVALTIME);
  450 + var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000);
  451 + if(dxmin<0 || ar[r].STOPTIME<0) {
  452 + var cctag = baseF.dirDmToIndex(ar[r].xlDir);
  453 + dxmin = ar[r].bcType == dataMap.bcTypeArr.cf ? 0 : baseF.isgfsjd01(baseF.getDateTime(ar[r].fcsj),dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  454 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
  455 + ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
  456 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj);
  457 + ar[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);
  458 + /*sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - dxmin);
  459 + ar[r].ARRIVALTIME = baseF.getTimeStr(sgbcfcsj);
  460 + sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - ar[r].bcsj);
  461 + ar[r].fcsj = baseF.getTimeStr(sgbcfcsj);*/
  462 + }
  463 + ar[r].STOPTIME = dxmin>180 ? 0 : dxmin;
  464 + }
  465 + },
  466 +
  467 + /**
  468 + * @description : (TODO) 均匀发车间隙
  469 + *
  470 + * @params : [arr--某个方向下的班次数组;dir--方向;zzsj--周转时间]
  471 + *
  472 + * @return : 返回一个数组.这里返回的是调整过后 发车间距均匀的班次数组
  473 + **/
  474 + jhfcjx01 : function(bcArr,dataMap) {
  475 + if(bcArr.length<=0)
  476 + return;
  477 + var dirA = dataMap.dira;
  478 + for(var d = 0 ; d < dirA.length; d++) {
  479 + var fxdm = dirA[d],fxbc = new Array();
  480 + var cctag = baseF.dirDmToIndex(fxdm);
  481 + for(var b = 0;b<bcArr.length ; b++) {
  482 + bcArr[b].fcint = baseF.getDateTime(bcArr[b].fcsj).getTime();
  483 + if(bcArr[b].xlDir == fxdm)
  484 + fxbc.push(bcArr[b]);
  485 + }
  486 + var kssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].kssj),// 开始时间.
  487 + jssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].jssj);// 结束时间.
  488 + fxbc.sort(function(m,n){return m.fcint - n.fcint});
  489 + while(kssj<=jssj) {
  490 + var tagboolean = baseF.isgfsjd01(kssj,dataMap);
  491 + var zzsj = tagboolean ? dataMap.zzsj.gfzzsj : dataMap.zzsj.dgzzsj;
  492 + if(!tagboolean){
  493 + var temp = new Date();
  494 + temp.setHours(kssj.getHours());
  495 + temp.setMinutes(kssj.getMinutes()+zzsj);
  496 + var sjdbcArr = baseF.getObjRegion(kssj,temp,fxbc,dataMap);
  497 + var len_ = sjdbcArr.length;
  498 + var bcCount = baseF.getlpNum(sjdbcArr);// 定长度
  499 + if(len_>0 && bcCount > 0) {
  500 + var _fcjx = parseInt(Math.ceil(zzsj/bcCount));
  501 + var fcnosj = new Date(kssj);
  502 + for(var l = 0 ; l< len_ ; l++) {
  503 + sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj);
  504 + var _xxsj = baseF.getxssj(dataMap.zgfsjd,
  505 + dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr,
  506 + dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));// 获取行驶时间
  507 + sjdbcArr[l].bcsj = _xxsj;
  508 + var ddsj = new Date();
  509 + ddsj.setHours(fcnosj.getHours());
  510 + ddsj.setMinutes(fcnosj.getMinutes()+_xxsj);
  511 + sjdbcArr[l].ARRIVALTIME = baseF.getTimeStr(ddsj);
  512 + fcnosj.setMinutes(fcnosj.getMinutes() + _fcjx);
  513 + }
  514 + }
  515 + }
  516 + kssj = new Date(kssj.setMinutes(kssj.getMinutes() + zzsj));
  517 + }
  518 + }
383 519 },
384 520  
385 521 /**
... ... @@ -395,7 +531,7 @@ var BaseFun = function() {
395 531 var fcno = 0,dxfno = 0,stas = false;
396 532 for(var b = 0 ; b < bc.length;b++) {
397 533 var fxdm = baseF.dirDmToIndex(bc[b].xlDir);
398   - var car = {'lp':bc[b].lp, 'lpNo':bc[b].lpNo, 'lpName':bc[b].lpName, 'lpType':bc[b].lpType};
  534 + var car = {'lp':bc[b].lp, 'lpNo':bc[b].lpNo, 'lpName':bc[b].lpName, 'lpType':bc[b].lpType };
399 535 if(b==0) {
400 536 var dqbcfcsj = baseF.getDateTime(bc[b].fcsj);
401 537 result.push(baseF.getbcObj(
... ... @@ -432,20 +568,10 @@ var BaseFun = function() {
432 568 * @param [arr--当前路牌下的班次数组;gs--当前路牌的总工时;dataMap--参数信息;lpNo--路牌编码;saa--参数信息]
433 569 *
434 570 * */
435   - tzlpgs01 : function(arr,gs,map,dataMap,lpNo,saa) {
  571 + tzlpgs01 : function(arr,gs,map,dataMap,lpNo,saa,type,lpNo,cla) {
436 572 // 定义当前路牌的进场时间、早晚例保时间.
437 573 var jczwsj = saa[0].lbsj*2 + dataMap.ccsjArr[baseF.dirDmToIndex(arr[0].xlDir)] +
438 574 dataMap.jcsjArr[baseF.dirDmToIndex(arr[arr.length-1].xlDir)];
439   - // 定义开始、结束时间.
440   - //var st = null , ed = null;
441   - // 根据路牌编码依次轮流取高峰之间和晚高峰之后的时间段.
442   - /*if(lpNo%2!=0) {
443   - st = dataMap.gfzjsjd[0].st;
444   - ed = dataMap.gfzjsjd[0].ed;
445   - }else {
446   - st = dataMap.wgfzhsjd[0].st;
447   - ed = dataMap.wgfzhsjd[0].ed;
448   - }*/
449 575 // 定义路牌总工时.第一次切高峰之间和晚高峰之后的班次.
450 576 var lpdqzgs = parseFloat(((baseF.getlpzgs(arr) + jczwsj)/60).toFixed(2));
451 577 while(lpdqzgs>gs) {
... ... @@ -453,31 +579,66 @@ var BaseFun = function() {
453 579 // 得到当前路牌下的发车时间.
454 580 var dqbcfcsj = baseF.getDateTime(arr[t].fcsj);
455 581 // 判断时间范围.
456   - if(!baseF.isgfsjd01(dqbcfcsj,dataMap)) {
  582 + if(!baseF.issplice(dqbcfcsj,dataMap,type,lpNo,cla)) {
457 583 arr.splice(t,1);
458 584 break;
459 585 }
460 586 }
461 587 lpdqzgs = parseFloat(((baseF.getlpzgs(arr) + jczwsj)/60).toFixed(2));
462 588 }
463   - // 判断总工时是否大于班型对应的工时.
464   - /*if(lpdqzgs>gs) {
465   - // 定义相差值.
466   - var dx = parseFloat((lpdqzgs - gs).toFixed(2));
467   - // 定义圈数.
468   - var qs = Math.round(dx*60/70);
469   - for(var t = 0 ; t<arr.length;t++) {
470   - // 得到当前路牌下的发车时间.
471   - var dqbcfcsj = baseF.getDateTime(arr[t].fcsj);
472   - // 判断时间范围.
473   - if(dqbcfcsj>st && dqbcfcsj<ed) {
474   - arr[t-1].STOPTIME = 0;
475   - // 切割.
476   - arr.splice(t,qs*2);
477   - break;
  589 + for(var c = 0 ; c<arr.length;c++) {
  590 + var cfsjbc = baseF.getDateTime(arr[c].fcsj);
  591 + if(dataMap.gfzjsjd[0].st <= cfsjbc && cfsjbc <= dataMap.gfzjsjd[0].ed && arr[c].bcType == dataMap.bcTypeArr.cf )
  592 + gfzjst = baseF.getDateTime(arr[c].ARRIVALTIME);
  593 + }
  594 + gfzjst == null ? dataMap.gfzjsjd[0].st : gfzjst;
  595 + var gfzjbc = new Array(),wgfbc = new Array(),zgfbc = new Array();
  596 + for(var a = 0 ; a<arr.length;a++) {
  597 + var tmkssj = baseF.getDateTime(arr[a].fcsj)
  598 + if(gfzjst <= tmkssj && tmkssj <= dataMap.gfzjsjd[0].ed)
  599 + gfzjbc.push(arr[a]);
  600 + else if(dataMap.wgfsjd[0].st <= tmkssj && tmkssj <= dataMap.wgfsjd[0].ed)
  601 + wgfbc.push(arr[a]);
  602 + else
  603 + zgfbc.push(arr[a]);
  604 + }
  605 + gfzjbc.sort(function(a,b){return a.fcno-b.fcno});
  606 + wgfbc.sort(function(a,b){return a.fcno-b.fcno});
  607 + if(gfzjbc[gfzjbc.length-1].xlDir == wgfbc[0].xlDir)
  608 + gfzjbc.splice(gfzjbc.length-1,1);
  609 + if(type!='五工二休') {
  610 + var gfzjst = null;
  611 + var dxmin = parseInt((baseF.getDateTime(wgfbc[0].fcsj) - baseF.getDateTime(gfzjbc[gfzjbc.length-1].ARRIVALTIME))/60000);
  612 + var addmin = parseInt(dxmin/gfzjbc.length);
  613 + for(var g = 0 ;g < gfzjbc.length;g++) {
  614 + if(gfzjbc[g].bcType != dataMap.bcTypeArr.cf)
  615 + gfzjbc[g].STOPTIME = gfzjbc[g].STOPTIME + addmin;
  616 + if(g==0) {
  617 + continue;
  618 + }else {
  619 + var tempd = baseF.getDateTime(gfzjbc[g-1].ARRIVALTIME);
  620 + tempd.setMinutes(tempd.getMinutes() + gfzjbc[g-1].STOPTIME);
  621 + gfzjbc[g].fcsj = baseF.getTimeStr(tempd);
  622 + tempd.setMinutes(tempd.getMinutes() + gfzjbc[g].bcsj);
  623 + gfzjbc[g].ARRIVALTIME = baseF.getTimeStr(tempd);
478 624 }
479 625 }
480   - }*/
  626 + gfzjbc[gfzjbc.length-1].STOPTIME = parseInt((baseF.getDateTime(wgfbc[0].fcsj) - baseF.getDateTime(gfzjbc[gfzjbc.length-1].ARRIVALTIME))/60000);
  627 + }
  628 + return gfzjbc.concat(wgfbc).concat(zgfbc);
  629 + },
  630 +
  631 + issplice : function (kssj,dataMap,type,lpNo,cla){
  632 + var tag = false;
  633 + if(type=='五工二休' || lpNo <Math.round(cla/2)) {
  634 + if((dataMap.zgfsjd[0].st <=kssj && kssj<= dataMap.zgfsjd[0].ed ) ||
  635 + ( dataMap.wgfsjd[0].st <= kssj && kssj <= dataMap.wgfsjd[0].ed))
  636 + tag = true;
  637 + }else {
  638 + if(dataMap.zgfsjd[0].ed >= kssj || kssj >= dataMap.wgfsjd[0].st)
  639 + tag = true;
  640 + }
  641 + return tag;
481 642 },
482 643  
483 644 /**
... ... @@ -966,6 +1127,15 @@ var BaseFun = function() {
966 1127 return tag;
967 1128 },
968 1129  
  1130 + getcfdd : function(value,dirc) {
  1131 + var inv;
  1132 + if(value =='allYes')
  1133 + inv = parseInt(dirc);
  1134 + else
  1135 + inv = parseInt(value);
  1136 + return inv;
  1137 + },
  1138 +
969 1139 plgfbc : function(saa , cara , map, seMap ,dataMap) {
970 1140 var len = cara.length,rs = new Array();
971 1141 var lbsj = map.lb=='' ? 0:parseInt(map.lb);
... ... @@ -982,14 +1152,16 @@ var BaseFun = function() {
982 1152 while(kssj<=endTime) {
983 1153 cctag = map.linePlayType=='1' ? 0 : baseF.getfx(fxTagDm,cctag);
984 1154 fxTagDm = 1;
  1155 + var cfdd = baseF.getcfdd(map.cfdd,cctag);
985 1156 if(kssj> new Date (baseF.getCFDate(10,30)) &&
986   - kssj<new Date (baseF.getCFDate(12,0)) && $_cfn<1 ) {
  1157 + kssj<new Date (baseF.getCFDate(11,30)) && $_cfn<1 && cfdd == cctag) {
987 1158 $_cfn++;
988 1159 rs.push(baseF.getbcObj(
989 1160 kssj,dataMap.zwcArr[0],cara[c],dataMap.bcTypeArr.cf,
990 1161 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 午餐班次
991 1162 }else if(kssj> new Date (baseF.getCFDate(18,30)) &&
992   - kssj<new Date (baseF.getCFDate(20,0)) && $_cfw<1 ) {
  1163 + kssj<new Date (baseF.getCFDate(19,30)) && $_cfw<1 && cfdd == cctag &&
  1164 + parseInt((endTime-kssj)/60000) > parseInt(dataMap.zwcArr[1])) {
993 1165 $_cfw++;
994 1166 rs.push(baseF.getbcObj(
995 1167 kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf,
... ... @@ -1009,8 +1181,7 @@ var BaseFun = function() {
1009 1181 return rs;
1010 1182 },
1011 1183  
1012   - isgfsjd01 : function(kssj,dataMap) {
1013   -
  1184 + isgfsjd01 : function(kssj,dataMap,type) {
1014 1185 var tag = false;
1015 1186 if((dataMap.zgfsjd[0].st <=kssj && kssj<= dataMap.zgfsjd[0].ed ) || ( dataMap.wgfsjd[0].st <= kssj && kssj <= dataMap.wgfsjd[0].ed))
1016 1187 tag = true;
... ... @@ -1178,8 +1349,8 @@ var BaseFun = function() {
1178 1349 *
1179 1350 * @return : 返回一个数组对象。这里返回的是时刻表明细数据
1180 1351 **/
1181   - tzsmbcsj01 : function(list,smbcsj,sj,cl,zd,lbsj) {
1182   - var _obj = baseF.getsxAndxxbc(list);
  1352 + tzsmbcsj01 : function(list,smbcsj,sj,cl,zd,lbsj,dm) {
  1353 + var _obj = baseF.getsxAndxxbc(list,dm);
1183 1354 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj ,_obj.xxbc);// 剔除上行不在时间范围内的班次
1184 1355 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 剔除下行不在时间范围内的班次
1185 1356 baseF.dzsmsj(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj,_obj.xxbc);// 调整上行首末班车时间
... ... @@ -1191,7 +1362,7 @@ var BaseFun = function() {
1191 1362 if(baseF.isDelete(baseF.getDateTime(kssj),
1192 1363 baseF.getDateTime(jssj),
1193 1364 baseF.getDateTime(ar[s].fcsj))) {
1194   - var tempa = ar.concat(ppar),sslpA = new Array();
  1365 + /*var tempa = ar.concat(ppar),sslpA = new Array();
1195 1366 for(var r = 0 ; r<tempa.length;r++) {
1196 1367 if(tempa[r].lpNo == ar[s].lpNo)
1197 1368 sslpA.push(tempa[r]);
... ... @@ -1211,7 +1382,7 @@ var BaseFun = function() {
1211 1382 break;
1212 1383 }
1213 1384 }
1214   - }
  1385 + }*/
1215 1386 ar.splice(s, 1);
1216 1387 s--;
1217 1388 }
... ... @@ -1331,15 +1502,19 @@ var BaseFun = function() {
1331 1502 return tag;
1332 1503 },
1333 1504  
1334   - getsxAndxxbc : function(json) {
  1505 + getsxAndxxbc : function(json,dataMap) {
1335 1506 var upArray = new Array(),downArray = new Array(),qt = new Array();
1336 1507 for(var j = 0 ; j< json.length ; j++) {
1337   - if(json[j].bcType=='normal' || json[j].bcType=='region') {
  1508 + //json[j].fcint = baseF.getDateTime(json[j].fcsj).getTime();
  1509 + if(json[j].bcType== dataMap.bcTypeArr.normal ||
  1510 + json[j].bcType== dataMap.bcTypeArr.region ||
  1511 + json[j].bcType== dataMap.bcTypeArr.major ||
  1512 + json[j].bcType== dataMap.bcTypeArr.venting) {
1338 1513 if(json[j].xlDir == 'relationshipGraph-up')
1339 1514 upArray.push(json[j]);
1340 1515 else if(json[j].xlDir == 'relationshipGraph-down')
1341 1516 downArray.push(json[j]);
1342   - }else {
  1517 + }else if(json[j].bcType == dataMap.bcTypeArr.cf) {
1343 1518 qt.push(json[j]);
1344 1519 }
1345 1520 }
... ... @@ -1676,24 +1851,26 @@ var BaseFun = function() {
1676 1851 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + _xxsj);
1677 1852 xgbc.ARRIVALTIME = baseF.getTimeStr(dqbcddsj);// 修改下个班次的到达时间
1678 1853 },
1679   - getObjRegion : function(t1,t2,arr) {
  1854 + getObjRegion : function(t1,t2,arr,dataMap) {
1680 1855 var _r = new Array();
1681 1856 for(var p= 0; p<arr.length ; p++) {
1682 1857 var _t = baseF.getDateTime(arr[p].fcsj);
1683   - if(_t >= t1 && _t <= t2)
  1858 + if(_t >= t1 && _t <= t2 && arr[p].bcType != dataMap.bcTypeArr.cf )
1684 1859 _r.push(arr[p]);
1685 1860 }
1686   - /*return baseF.sortDirArray(_r);*/
1687 1861 return _r.sort(function(a,b){return a.fcno-b.fcno});
1688 1862 },
1689 1863  
1690   - getlpNum : function(arr) {
1691   - var array = new Array();
1692   - for(var r = 0 ; r < arr.length ; r++) {
1693   - if(array.indexOf(arr[r].lpNo)<0)
1694   - array.push(arr[r].lpNo);
  1864 + getlpNum : function(sz) {
  1865 + var temparray = new Array(),len_ = 0;
  1866 + for(var r = 0 ; r <sz.length ; r++) {
  1867 + if(temparray.indexOf(sz[r].lpNo)<0){
  1868 + temparray.push(sz[r].lpNo);
  1869 + }
1695 1870 }
1696   - return (array.length-1);
  1871 + len_ = temparray.length;
  1872 + temparray = null;
  1873 + return len_;
1697 1874 },
1698 1875 /**
1699 1876 * @description : (TODO)更新进场与离场班次
... ...
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
... ... @@ -219,11 +219,11 @@ $(&#39;.updownread&#39;).on(&#39;click&#39;,function() {
219 219 // 执行选择框关闭函数.
220 220 RelationshipGraph.gClose();
221 221 // 执行均匀发车间隙函数.
222   - RelationshipGraph.updownread();
  222 + RelationshipGraph.updownread01();
223 223 });
224 224 }else {
225 225 // 执行均匀发车间隙函数
226   - RelationshipGraph.updownread();
  226 + RelationshipGraph.updownread01();
227 227 }
228 228 });
229 229 /************************************************************************************************************************************************/
... ... @@ -245,17 +245,46 @@ $(&#39;.aboutread&#39;).on(&#39;click&#39;,function() {
245 245 layer.closeAll();
246 246 // 执行选择框关闭函数.
247 247 RelationshipGraph.gClose();
248   - // 执行均匀发车间隙函数.
  248 + // 执行调整班次函数.
249 249 RelationshipGraph.aboutread();
250 250 });
251 251 }else {
252   - // 执行均匀发车间隙函数
  252 + // 执行调整班次函数
253 253 RelationshipGraph.aboutread();
254 254 }
255 255 });
256 256 /************************************************************************************************************************************************/
257 257  
258 258 /**
  259 + * @description : (TODO) 修改路牌点击事件
  260 + *
  261 + * @status OK.
  262 + ************************************************************************************************************************************************/
  263 +$('.editlp').on('click',function() {
  264 + // 判断选择框是否存在.
  265 + if(RelationshipGraph.getFlagIndex()>0) {
  266 + // 关闭所有提示弹出层.
  267 + layer.closeAll();
  268 + layer.confirm('您正处于【批量班次操作】过程中...是否确定退出当前操作进行【修改路牌】!', {
  269 + btn : [ '确认提示并提交', '取消' ]
  270 + },function () {
  271 + // 关闭所有提示弹出层.
  272 + layer.closeAll();
  273 + // 执行选择框关闭函数.
  274 + RelationshipGraph.gClose();
  275 + // 执行修改路牌函数.
  276 + RelationshipGraph.editlpEvents();
  277 + });
  278 + }else {
  279 + // 执行修改路牌函数
  280 + RelationshipGraph.editlpEvents();
  281 + }
  282 +});
  283 +/************************************************************************************************************************************************/
  284 +
  285 +
  286 +
  287 +/**
259 288 * @description : (TODO) 监听保存数据事件.
260 289 *
261 290 * @status OK.
... ... @@ -438,7 +467,7 @@ var createTooltip = function createTooltip(self) {
438 467 count = keys.length,
439 468 rows = [];
440 469 var showKeys = self.configuration.showKeys;
441   - var hiddenKeys = ['_PRIVATE_' ,'PARENTCOLOR', 'SETNODECOLOR', 'SETNODESTROKECOLOR','lpNo','lpName','lp','lpType',
  470 + var hiddenKeys = ['_PRIVATE_' ,'PARENTCOLOR', 'SETNODECOLOR', 'SETNODESTROKECOLOR','lpNo','parent','lp','lpType',
442 471 'jhlc','tcc','ttinfo','xl','isfb','qdz','zdz','isSwitchXl','bz','bcs',/*'fcno'*/];
443 472 while (count--) {
444 473 var element = keys[count];
... ... @@ -459,7 +488,7 @@ var createTooltip = function createTooltip(self) {
459 488 changeKey = '停息时间:';
460 489 else if(element=='xlDir')
461 490 changeKey = '行驶方向:';
462   - else if(element=='parent')
  491 + else if(element=='lpName')
463 492 changeKey = '当前路牌:';
464 493 else if(element=='bcType')
465 494 changeKey = '班次类型:';
... ... @@ -607,7 +636,6 @@ var RelationshipGraph = function () {
607 636 .attr('height', this.configuration.height + this.configuration.heightMargin)
608 637 .attr('style', 'display: block')
609 638 .append('g').attr("class", "gantt-chart");
610   -
611 639 // 创建时间线性区域
612 640 var x = d3.time
613 641 .scale()
... ... @@ -1197,6 +1225,7 @@ var RelationshipGraph = function () {
1197 1225 $_GlobalGraph.configuration.taskTypes.push({'lp':null,'lpName':len+1,'lpNo':len+1,'lpType':'普通路牌'});
1198 1226 // 添加路牌编码
1199 1227 $_GlobalGraph.configuration.lpNoA.push(len+1);
  1228 + $_GlobalGraph.configuration.lpNameA.push(len+1);
1200 1229 // 修改图形高度
1201 1230 $_GlobalGraph.configuration.height = $_GlobalGraph.configuration.lpNoA.length*60 + 240;
1202 1231 // 修改初始化图形时间轴开始时间
... ... @@ -1226,6 +1255,43 @@ var RelationshipGraph = function () {
1226 1255 }
1227 1256 }
1228 1257 }, {
  1258 + key : 'updownread01',
  1259 + value : function updownread01() {
  1260 + // 1、获取所有班次数.
  1261 + var list = $_GlobalGraph.getDataArray();
  1262 + var dataMap = $_GlobalGraph.configuration.dataMap;
  1263 + var rsmap = BaseFun.getsxAndxxbc(list,dataMap);
  1264 + var cara = $_GlobalGraph.configuration.taskTypes;
  1265 + var jar01 = rsmap.qt.concat(rsmap.sxbc).concat(rsmap.xxbc);
  1266 + BaseFun.jhfcjx01(jar01,dataMap);
  1267 + var jar = BaseFun.tzsmbcsj01(
  1268 + BaseFun.setbcsAndfcno(BaseFun.tzsmbcsj01(BaseFun.setbcsAndfcno(BaseFun.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,dataMap.lbsj,dataMap)),
  1269 + dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,dataMap.lbsj,dataMap);
  1270 + var resultJA = new Array();
  1271 + for(var m = 0 ; m < cara.length; m++) {
  1272 + // 获取路牌编号.
  1273 + var lpNo_ = cara[m].lpNo;
  1274 + // 定义路牌下的所有班次.
  1275 + var lpbc_ = new Array();
  1276 + // 遍历班次数.
  1277 + for(var x =0 ; x <jar.length; x++) {
  1278 + // 判断当期遍历的班次是否属于当前的路牌.
  1279 + if(jar[x].lpNo == lpNo_)
  1280 + lpbc_.push(jar[x]);
  1281 + }
  1282 + // 按照发车序号顺序排序.
  1283 + lpbc_.sort(function(a,b){return a.fcno-b.fcno});
  1284 + resultJA = resultJA.concat(BaseFun.addjclbbc01(lpbc_,dataMap,dataMap.lbsj,dataMap.map));
  1285 + }
  1286 + // 删除图形.
  1287 + $('svg.svg-chart').remove();
  1288 + // 重新创建图形.
  1289 + var graph_ = d3.select('#ganttSvg').relationshipGraph($_GlobalGraph.configuration);
  1290 + // 根据数据重新渲染图形.
  1291 + graph_.data(resultJA);
  1292 + $_GlobalGraph = graph_;
  1293 + }
  1294 + }, {
1229 1295 key : 'updownread',
1230 1296 value : function updownread() {
1231 1297 //var index = layer.load(1, {shade: [0.1,'#fff'] });//0.1透明度的白色背景
... ... @@ -1337,6 +1403,15 @@ var RelationshipGraph = function () {
1337 1403 }
1338 1404  
1339 1405 }, {
  1406 + key : 'editlpEvents',
  1407 + value : function() {
  1408 + // 弹出层mobal页面
  1409 + $.get('/pages/base/timesmodel/editlp.html', function(m){
  1410 + $(pjaxContainer).append(m);
  1411 + $('#editlp_mobal').trigger('editlpMobal.show',[$_GlobalGraph,BaseFun]);
  1412 + });
  1413 + }
  1414 + }, {
1340 1415 key : 'checkAdd',
1341 1416 value : function checkAdd() {
1342 1417 var xl = $_GlobalGraph.configuration.dataMap.map.lineName.split('_');
... ... @@ -1483,7 +1558,8 @@ var RelationshipGraph = function () {
1483 1558 * */
1484 1559 key : 'setYValue',
1485 1560 value : function setYValue(obj) {
1486   - return $_GlobalGraph.configuration.y(obj.parent) + $_GlobalGraph.configuration.offsetY;
  1561 + /*return $_GlobalGraph.configuration.y(obj.parent) + $_GlobalGraph.configuration.offsetY;*/
  1562 + return $_GlobalGraph.configuration.y(obj.lpName) + $_GlobalGraph.configuration.offsetY;
1487 1563 }
1488 1564 }, {
1489 1565 /**
... ... @@ -1710,7 +1786,8 @@ var RelationshipGraph = function () {
1710 1786 * */
1711 1787 key : 'setCirclecyV',
1712 1788 value : function setCirclecyV(obj) {
1713   - return $_GlobalGraph.configuration.y(obj.parent) + $_GlobalGraph.configuration.offsetY + 12;
  1789 + /*return $_GlobalGraph.configuration.y(obj.parent) + $_GlobalGraph.configuration.offsetY + 12;*/
  1790 + return $_GlobalGraph.configuration.y(obj.lpName) + $_GlobalGraph.configuration.offsetY + 12;
1714 1791 }
1715 1792 }, {
1716 1793 /**
... ... @@ -1865,7 +1942,9 @@ var RelationshipGraph = function () {
1865 1942 * */
1866 1943 key : 'setText04YV',
1867 1944 value : function setText04YV(obj) {
1868   - return $_GlobalGraph.configuration.y(obj.parent) + $_GlobalGraph.configuration.offsetY + 16;
  1945 + /*return $_GlobalGraph.configuration.y(obj.parent) + $_GlobalGraph.configuration.offsetY + 16;*/
  1946 + return $_GlobalGraph.configuration.y(obj.lpName) +$_GlobalGraph.configuration.offsetY + 16;
  1947 +
1869 1948 }
1870 1949 }, {
1871 1950 /**
... ...
src/main/resources/static/pages/base/timesmodel/js/gantt.js
... ... @@ -32,7 +32,6 @@
32 32 });
33 33 $('.tipso-animation').tipso('show');
34 34 setTimeout(function(){$('.tipso-animation').tipso('hide');},4000);
35   - console.log(map);
36 35 //debugger;
37 36 // 1、定义开始与结束时间点字符串.
38 37 var seMap = getStartAndEndDate(map);
... ... @@ -379,7 +378,7 @@
379 378 ra.push(arr[i].lpNo);
380 379 name.push(arr[i].lpName);
381 380 }
382   - return {'lpNoA':ra,'lpNameA':name};
  381 + return {'lpNoA':ra,'lpNameA':name,};
383 382 }
384 383 /**
385 384 * @description : (TODO) 获取甘特图参数配置信息.
... ...
src/main/resources/static/pages/base/timesmodel/tepms/bctype_temp.html
... ... @@ -267,8 +267,8 @@
267 267 <div class="col-md-5">
268 268 <select type="text" class="form-control" name="cfdd" id="cfddSelect">
269 269 <option value="">请选择...</option>
270   - <option value="{{map.line.startStationName}}">{{map.line.startStationName}}</option>
271   - <option value="{{map.line.endStationName}}">{{map.line.endStationName}}</option>
  270 + <option value="0">{{map.line.startStationName}}</option>
  271 + <option value="1">{{map.line.endStationName}}</option>
272 272 <option value="allYes">起终点站都可以</option>
273 273 </select>
274 274 </div>
... ...
src/main/resources/static/pages/forms/statement/waybill.html
... ... @@ -263,14 +263,13 @@
263 263 });
264 264 jName = params[0].split("\\")[0];
265 265 jGh = params[0].split("\\")[1];
266   - var id = $("#"+params[1]).val();
  266 + var id = params[3];
267 267 $get('/realSchedule/MapById',{id:id},function(result){
268 268 result.scheduleDate = moment(result.scheduleDate).format("YYYY/MM/DD");
269 269 var ludan_1 = template('ludan_1',result);
270 270 // 把渲染好的模版html文本追加到表格中
271 271 $('#forms .ludan_1').html(ludan_1);
272 272 });
273   - console.log(params);
274 273 $get('/realSchedule/queryListWaybill',{jName:jName,clZbh:params[1],lpName:params[2],date:date,line:line},function(result){
275 274 getTime(result);
276 275 var ludan_2 = template('ludan_2',{list:result});
... ... @@ -336,7 +335,8 @@
336 335 <tr>
337 336 <td width="45%">{{obj[4]}}\{{obj[1]}}</td>
338 337 <td width="32%">{{obj[2]}}</td>
339   - <td width="23%">{{obj[3]}}<input type="hidden" id="{{obj[2]}}" value="{{obj[0]}}"></td>
  338 + <td width="20%">{{obj[3]}}</td>
  339 + <td width="3%" hidden="true">{{obj[0]}}</td>
340 340 </tr>
341 341 {{/each}}
342 342 {{if list.length == 0}}
... ... @@ -348,9 +348,11 @@
348 348 <script type="text/html" id="list_info_px">
349 349 {{each list as obj i}}
350 350 <tr>
  351 +
351 352 <td width="45%">{{obj.jName}}\{{obj.jGh}}</td>
352 353 <td width="32%">{{obj.clZbh}}</td>
353   - <td width="23%">{{obj.lpName}}<input type="hidden" id="{{obj.clZbh}}" value="{{obj.id}}"></td>
  354 + <td width="23%">{{obj.lpName}}</td>
  355 + <td hidden="true">{{obj.id}}</td>
354 356 </tr>
355 357 {{/each}}
356 358 {{if list.length == 0}}
... ...
src/main/resources/static/pages/oil/add.html
... ... @@ -259,7 +259,8 @@
259 259 return{nbbm: params.term,
260 260 gsbm:$('#ssgsdm').val(),
261 261 fgsbm:$('#fgsdm').val(),
262   - xlbm:$('#xlbm').val()};
  262 + xlbm:""
  263 + };
263 264 },
264 265 processResults: function (data) {
265 266 return {
... ...
src/main/resources/static/pages/oil/jyglList.html
... ... @@ -69,7 +69,7 @@
69 69 <th width="3%">油价</th>
70 70 <th width="4%">路单工号</th>
71 71 <th width="4%">备注</th>
72   - <th width="10%">操作</th>
  72 + <th width="10%">总加注量</th>
73 73 </tr>
74 74 <tr role="row" class="filter">
75 75 <td></td>
... ... @@ -160,7 +160,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
160 160 type="text" value="{{obj.bz}}" style=" width:45px" />
161 161 </td>
162 162 <td>
163   - <!--<a class="btn btn-sm blue btn-outline" onclick="editCyjy('{{obj.nbbm}}')" data-pjax><i class="fa fa-edit"></i> 编辑</a>-->
  163 + {{obj.zjzl}}
164 164 </td>
165 165 </tr>
166 166 {{/each}}
... ... @@ -200,7 +200,6 @@ $(function(){
200 200 params['fgsbm']=$("#jyglListFgsdmId").val();
201 201 params['rq']=$("#rq").val();
202 202 var i = layer.load(2);
203   - console.log(params);
204 203 $post('/cwjy/savejzl', params, function(){
205 204 layer.close(i);
206 205 var cells = $('tr.filter')[0].cells
... ... @@ -316,7 +315,7 @@ $(function(){
316 315 params['page'] = page;
317 316 params['rq']=$("#rq").val();
318 317  
319   - var i = 2;
  318 + var i = layer.load(2);;
320 319 /* var jyglGsdm=$("#jyglListGsdmId").val();
321 320 var jyglFgsdm=$("#jyglListFgsdmId").val();
322 321 if(jyglGsdm=="" || jyglGsdm==null){
... ... @@ -340,7 +339,6 @@ $(function(){
340 339 $.each(data, function(i, obj) {
341 340 obj.yyrq = $("#rq").val();
342 341 });
343   - console.log(data)
344 342 var bodyHtm = template('jygl_list_temp', {list: data});
345 343 $('#datatable_cwjy tbody').html(bodyHtm);
346 344 iCheckChange();
... ...
src/main/resources/static/pages/oil/list_ph.html
... ... @@ -229,7 +229,9 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
229 229 onafterpaste="this.value=this.value.replace(/[^(\d||/.)]/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')">
230 230 </td>
231 231 <td>
232   - {{obj.yh}}
  232 +
  233 + <input data-id="{{obj.id}}" href="javascript:;" class="in_carpark_yh"
  234 + type="text" value="{{obj.yh}}" style=" width:50px" disabled="true" readOnly="true" />
233 235 </td>
234 236 <td>
235 237 <select data-id="{{obj.id}}" class="in_carpark_rylx" style=" width:80px" >
... ... @@ -319,7 +321,6 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
319 321 }
320 322 });
321 323  
322   -
323 324 //保存
324 325 $("#saveButton").on('click',function(){
325 326 var ylArray = [];
... ... @@ -627,9 +628,83 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
627 628 });
628 629 // startOptJzylLink($('#ll_oil_list .in_carpark_jzyl'));
629 630 // startOptShylLink($('#ll_oil_list .in_carpark_shyl'));
  631 + $('input').on('input propertychange',function(){
  632 + var id=$(this).data('id');
  633 + var jzl =$('.in_carpark_jzl[data-id='+id+']', '#ll_oil_list').html();
  634 + if(jzl=="" || jzl ==null){
  635 + jzl=0;
  636 + }
  637 + var czyl=$('.in_carpark_czyl[data-id='+id+']', '#ll_oil_list').val();
  638 + if(czyl=="" || czyl==null){
  639 + czyl=0;
  640 + }
  641 + var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();
  642 + if(jzyl=="" || jzyl==null){
  643 + jzyl=0;
  644 + }
  645 +
  646 + var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();
  647 + if(sh=="" || sh==null){
  648 + sh=0;
  649 + }
  650 + var addNum=accAdd(jzl,czyl);
  651 + var subNum=accAdd(jzyl,sh);
  652 + var sub=numSubtr(addNum*1000,subNum*1000);
  653 + var subValue=0;
  654 + if(sub/1000>=0){
  655 + subValue=sub/1000;
  656 + }
  657 + $('.in_carpark_yh[data-id='+id+']', '#ll_oil_list').val(subValue);
  658 +
  659 + });
630 660 });
631 661 }
  662 +
  663 + //页面计算防止精度丢失
  664 + var accAdd = function (a, b) {
  665 + var c, d, e;
  666 + try {
  667 + c = a.toString().split(".")[1].length;
  668 + } catch (f) {
  669 + c = 0;
  670 + }
  671 + try {
  672 + d = b.toString().split(".")[1].length;
  673 + } catch (f) {
  674 + d = 0;
  675 + }
  676 + return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
  677 + };
632 678  
  679 + var numSubtr = function (a, b) {
  680 + var c, d, e;
  681 + try {
  682 + c = a.toString().split(".")[1].length;
  683 + } catch (f) {
  684 + c = 0;
  685 + }
  686 + try {
  687 + d = b.toString().split(".")[1].length;
  688 + } catch (f) {
  689 + d = 0;
  690 + }
  691 + return e = Math.pow(10, Math.max(c, d)), (a * e - b * e) / e;
  692 + };
  693 +
  694 + function mul(a, b) {
  695 + var c = 0,
  696 + d = a.toString(),
  697 + e = b.toString();
  698 + try {
  699 + c += d.split(".")[1].length;
  700 + } catch (f) {
  701 + }
  702 + try {
  703 + c += e.split(".")[1].length;
  704 + } catch (f) {
  705 + }
  706 + return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
  707 + }
633 708 //改变状态
634 709 function startOptJzylLink(es) {
635 710 es.editable({
... ...