Commit 236e8f16ba0b8023364db9417645f2a78e2c33f0

Authored by 娄高锋
2 parents a7c322c4 37f94c0d

Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into minhang

Showing 28 changed files with 1565 additions and 650 deletions
src/main/java/com/bsth/controller/LineController.java
@@ -77,6 +77,22 @@ public class LineController extends BaseController<Line, Integer> { @@ -77,6 +77,22 @@ public class LineController extends BaseController<Line, Integer> {
77 return service.save(t); 77 return service.save(t);
78 } 78 }
79 79
  80 + /**
  81 + *
  82 + * 更改
  83 + *
  84 + */
  85 + @RequestMapping(value="/update", method = RequestMethod.POST)
  86 + public Map<String, Object> update(Line l){
  87 + Map<String, Object> map = new HashMap<>();
  88 + if((l.getId().toString().length()) > 6 || service.lineCodeVerification(l.getLineCode()).equals("true") ) {
  89 +
  90 + map.put("status", ResponseCode.ERROR);
  91 + return map;
  92 + }
  93 + return service.save(l);
  94 + }
  95 +
80 @RequestMapping(value ="/findById" , method = RequestMethod.GET) 96 @RequestMapping(value ="/findById" , method = RequestMethod.GET)
81 Line findByID(@RequestParam(defaultValue = "id") Integer id){ 97 Line findByID(@RequestParam(defaultValue = "id") Integer id){
82 return service.findById(id); 98 return service.findById(id);
src/main/java/com/bsth/controller/realcontrol/summary/FastAndSlowController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol.summary;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.data.summary.entity.FastAndSlow;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * 快慢误点统计
  10 + * Created by panzhao on 2017/10/24.
  11 + */
  12 +@RestController
  13 +@RequestMapping("/summary/fastAndSlow")
  14 +public class FastAndSlowController extends BaseController<FastAndSlow, Long> {
  15 +}
src/main/java/com/bsth/data/schedule/SchAttrCalculator.java
@@ -221,7 +221,8 @@ public class SchAttrCalculator { @@ -221,7 +221,8 @@ public class SchAttrCalculator {
221 for (ScheduleRealInfo sch : list) { 221 for (ScheduleRealInfo sch : list) {
222 //如果是出站既出场,忽略出场班次 222 //如果是出站既出场,忽略出场班次
223 if (outConfig == 2 && sch.getBcType().equals("out") 223 if (outConfig == 2 && sch.getBcType().equals("out")
224 - && (!limitPark || park.equals(sch.getQdzCode()))) 224 + && (!limitPark || park.equals(sch.getQdzCode()))
  225 + && (sch.getBcsj()==0 || sch.getJhlcOrig().intValue()==0))
225 continue; 226 continue;
226 227
227 //忽略烂班 228 //忽略烂班
@@ -259,7 +260,8 @@ public class SchAttrCalculator { @@ -259,7 +260,8 @@ public class SchAttrCalculator {
259 for (ScheduleRealInfo sch : list) { 260 for (ScheduleRealInfo sch : list) {
260 //如果是出站既出场,忽略出场班次 261 //如果是出站既出场,忽略出场班次
261 if (outConfig == 2 && isInout(sch) 262 if (outConfig == 2 && isInout(sch)
262 - && (!limitPark || park.equals(sch.getQdzCode()) || park.equals(sch.getZdzCode()))) 263 + && (!limitPark || park.equals(sch.getQdzCode()) || park.equals(sch.getZdzCode()))
  264 + && (sch.getBcsj()==0 || sch.getJhlcOrig().intValue()==0))
263 continue; 265 continue;
264 266
265 //忽略烂班 267 //忽略烂班
src/main/java/com/bsth/data/summary/entity/FastAndSlow.java 0 → 100644
  1 +package com.bsth.data.summary.entity;
  2 +
  3 +import javax.persistence.Column;
  4 +import javax.persistence.Entity;
  5 +import javax.persistence.Id;
  6 +import javax.persistence.Table;
  7 +
  8 +/**
  9 + * 快慢误点
  10 + * Created by panzhao on 2017/10/24.
  11 + */
  12 +@Entity
  13 +@Table(name = "z_calc_fast_slow")
  14 +public class FastAndSlow {
  15 +
  16 + /**
  17 + * 班次ID
  18 + */
  19 + @Id
  20 + @Column(name = "s_id")
  21 + private Long id;
  22 +
  23 + /**
  24 + * 发车站点
  25 + */
  26 + private String stationName;
  27 +
  28 + /**
  29 + * 日期
  30 + */
  31 + @Column(name = "rq")
  32 + private String rq;
  33 +
  34 + /**
  35 + * 上下行
  36 + */
  37 + private int upDown;
  38 +
  39 + /**
  40 + * 计发时间
  41 + * HH:mm
  42 + */
  43 + private String fcsj;
  44 +
  45 + /**
  46 + * 待发时间
  47 + * HH:mm
  48 + */
  49 + private String dfsj;
  50 +
  51 + /**
  52 + * 实际发车时间
  53 + * HH:mm
  54 + */
  55 + private String fcsjActual;
  56 +
  57 + /**
  58 + * 计发快误点
  59 + */
  60 + private int fcsjFast;
  61 +
  62 + /**
  63 + * 计发慢误点
  64 + */
  65 + private int fcsjSlow;
  66 +
  67 + /**
  68 + * 待发快误点
  69 + */
  70 + private int dfsjFast;
  71 +
  72 + /**
  73 + * 待发慢误点
  74 + */
  75 + private int dfsjSlow;
  76 +
  77 + /**
  78 + * 计划终点时间
  79 + */
  80 + private String zdsj;
  81 +
  82 + /**
  83 + * 待发终点时间
  84 + */
  85 + private String zdsjDf;
  86 +
  87 + /**
  88 + * 实际终点时间
  89 + */
  90 + private String zdsjActual;
  91 +
  92 + /**
  93 + * 计发终点快误点
  94 + */
  95 + private int zdsjFast;
  96 +
  97 + /**
  98 + * 计发终点慢误点
  99 + */
  100 + private int zdsjSlow;
  101 +
  102 + /**
  103 + * 待发终点快误点
  104 + */
  105 + private int zdsjDfFast;
  106 +
  107 + /**
  108 + * 待发终点慢误点
  109 + */
  110 + private int zdsjDfSlow;
  111 +
  112 + @Column(name = "line_code")
  113 + private String lineCode;
  114 +
  115 + private Long t;
  116 +
  117 + public String getStationName() {
  118 + return stationName;
  119 + }
  120 +
  121 + public void setStationName(String stationName) {
  122 + this.stationName = stationName;
  123 + }
  124 +
  125 + public String getRq() {
  126 + return rq;
  127 + }
  128 +
  129 + public void setRq(String rq) {
  130 + this.rq = rq;
  131 + }
  132 +
  133 + public int getUpDown() {
  134 + return upDown;
  135 + }
  136 +
  137 + public void setUpDown(int upDown) {
  138 + this.upDown = upDown;
  139 + }
  140 +
  141 + public String getFcsj() {
  142 + return fcsj;
  143 + }
  144 +
  145 + public void setFcsj(String fcsj) {
  146 + this.fcsj = fcsj;
  147 + }
  148 +
  149 + public String getDfsj() {
  150 + return dfsj;
  151 + }
  152 +
  153 + public void setDfsj(String dfsj) {
  154 + this.dfsj = dfsj;
  155 + }
  156 +
  157 + public String getFcsjActual() {
  158 + return fcsjActual;
  159 + }
  160 +
  161 + public void setFcsjActual(String fcsjActual) {
  162 + this.fcsjActual = fcsjActual;
  163 + }
  164 +
  165 + public int getFcsjFast() {
  166 + return fcsjFast;
  167 + }
  168 +
  169 + public void setFcsjFast(int fcsjFast) {
  170 + this.fcsjFast = fcsjFast;
  171 + }
  172 +
  173 + public int getFcsjSlow() {
  174 + return fcsjSlow;
  175 + }
  176 +
  177 + public void setFcsjSlow(int fcsjSlow) {
  178 + this.fcsjSlow = fcsjSlow;
  179 + }
  180 +
  181 + public int getDfsjFast() {
  182 + return dfsjFast;
  183 + }
  184 +
  185 + public void setDfsjFast(int dfsjFast) {
  186 + this.dfsjFast = dfsjFast;
  187 + }
  188 +
  189 + public int getDfsjSlow() {
  190 + return dfsjSlow;
  191 + }
  192 +
  193 + public void setDfsjSlow(int dfsjSlow) {
  194 + this.dfsjSlow = dfsjSlow;
  195 + }
  196 +
  197 + public String getZdsj() {
  198 + return zdsj;
  199 + }
  200 +
  201 + public void setZdsj(String zdsj) {
  202 + this.zdsj = zdsj;
  203 + }
  204 +
  205 + public String getZdsjDf() {
  206 + return zdsjDf;
  207 + }
  208 +
  209 + public void setZdsjDf(String zdsjDf) {
  210 + this.zdsjDf = zdsjDf;
  211 + }
  212 +
  213 + public String getZdsjActual() {
  214 + return zdsjActual;
  215 + }
  216 +
  217 + public void setZdsjActual(String zdsjActual) {
  218 + this.zdsjActual = zdsjActual;
  219 + }
  220 +
  221 + public int getZdsjFast() {
  222 + return zdsjFast;
  223 + }
  224 +
  225 + public void setZdsjFast(int zdsjFast) {
  226 + this.zdsjFast = zdsjFast;
  227 + }
  228 +
  229 + public int getZdsjSlow() {
  230 + return zdsjSlow;
  231 + }
  232 +
  233 + public void setZdsjSlow(int zdsjSlow) {
  234 + this.zdsjSlow = zdsjSlow;
  235 + }
  236 +
  237 + public int getZdsjDfFast() {
  238 + return zdsjDfFast;
  239 + }
  240 +
  241 + public void setZdsjDfFast(int zdsjDfFast) {
  242 + this.zdsjDfFast = zdsjDfFast;
  243 + }
  244 +
  245 + public int getZdsjDfSlow() {
  246 + return zdsjDfSlow;
  247 + }
  248 +
  249 + public void setZdsjDfSlow(int zdsjDfSlow) {
  250 + this.zdsjDfSlow = zdsjDfSlow;
  251 + }
  252 +
  253 + public String getLineCode() {
  254 + return lineCode;
  255 + }
  256 +
  257 + public void setLineCode(String lineCode) {
  258 + this.lineCode = lineCode;
  259 + }
  260 +
  261 + public Long getId() {
  262 + return id;
  263 + }
  264 +
  265 + public void setId(Long id) {
  266 + this.id = id;
  267 + }
  268 +
  269 + public Long getT() {
  270 + return t;
  271 + }
  272 +
  273 + public void setT(Long t) {
  274 + this.t = t;
  275 + }
  276 +}
src/main/java/com/bsth/data/summary/repository/FastAndSlowRepository.java 0 → 100644
  1 +package com.bsth.data.summary.repository;
  2 +
  3 +import com.bsth.data.summary.entity.FastAndSlow;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by panzhao on 2017/10/24.
  9 + */
  10 +@Repository
  11 +public interface FastAndSlowRepository extends BaseRepository<FastAndSlow, Long> {
  12 +}
src/main/java/com/bsth/data/summary/service/FastAndSlowService.java 0 → 100644
  1 +package com.bsth.data.summary.service;
  2 +
  3 +import com.bsth.data.summary.entity.FastAndSlow;
  4 +import com.bsth.service.BaseService;
  5 +
  6 +/**
  7 + * Created by panzhao on 2017/10/24.
  8 + */
  9 +public interface FastAndSlowService extends BaseService<FastAndSlow, Long>{
  10 +}
src/main/java/com/bsth/data/summary/service/impl/FastAndSlowServiceImpl.java 0 → 100644
  1 +package com.bsth.data.summary.service.impl;
  2 +
  3 +import com.bsth.data.summary.entity.FastAndSlow;
  4 +import com.bsth.data.summary.service.FastAndSlowService;
  5 +import com.bsth.service.impl.BaseServiceImpl;
  6 +import org.springframework.stereotype.Service;
  7 +
  8 +/**
  9 + * Created by panzhao on 2017/10/24.
  10 + */
  11 +@Service
  12 +public class FastAndSlowServiceImpl extends BaseServiceImpl<FastAndSlow, Long> implements FastAndSlowService {
  13 +}
src/main/java/com/bsth/repository/StationRouteRepository.java
@@ -287,7 +287,7 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int @@ -287,7 +287,7 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int
287 List<Map<String, String>> findAllLineWithYgc(); 287 List<Map<String, String>> findAllLineWithYgc();
288 288
289 @Modifying 289 @Modifying
290 - @Query(value="update bsth_c_stationroute set directions = case directions when 1 then 0 when 0 then 1 end where line_code = ?1 ", nativeQuery=true) 290 + @Query(value="update bsth_c_stationroute set directions = case directions when 1 then 0 when 0 then 1 end where line = ?1 ", nativeQuery=true)
291 public void stationRouteDir(Integer line); 291 public void stationRouteDir(Integer line);
292 292
293 @Modifying 293 @Modifying
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
@@ -355,79 +355,84 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen @@ -355,79 +355,84 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
355 @Override 355 @Override
356 public Map<String, Object> findDirective(String nbbm, int dType, int page, int size) { 356 public Map<String, Object> findDirective(String nbbm, int dType, int page, int size) {
357 Map<String, Object> rsMap = new HashMap<>(); 357 Map<String, Object> rsMap = new HashMap<>();
358 - List<Directive> list = new ArrayList<>();  
359 -  
360 - switch (dType) {  
361 - case -1:  
362 - //所有指令  
363 - list = new ArrayList<>(dayOfDirectives.all());  
364 - break;  
365 - case 0:  
366 - //调度指令  
367 - Collection<D60> dptArray = dayOfDirectives.all60();  
368 - for (D60 d60 : dptArray) {  
369 - if (d60.isDispatch())  
370 - list.add(d60);  
371 - }  
372 - break;  
373 - case 1:  
374 - //运营指令  
375 - Collection<D60> yyArray = dayOfDirectives.all60();  
376 - for (D60 d60 : yyArray) {  
377 - if (d60 != null && d60.getData().getDispatchInstruct() == (short) 0x03  
378 - && !d60.isDispatch())  
379 - list.add(d60);  
380 - }  
381 - break;  
382 - case 2:  
383 - //线路切换指令  
384 - list.addAll(dayOfDirectives.all64());  
385 - break;  
386 - case 3:  
387 - //消息短语  
388 - Collection<D60> dyArray = dayOfDirectives.all60();  
389 - for (D60 d60 : dyArray) {  
390 - if (d60 != null && d60.getData().getDispatchInstruct() == (short) 0x00  
391 - && !d60.isDispatch())  
392 - list.add(d60);  
393 - }  
394 - break;  
395 - } 358 + try{
  359 + List<Directive> list = new ArrayList<>();
  360 +
  361 + switch (dType) {
  362 + case -1:
  363 + //所有指令
  364 + list = new ArrayList<>(dayOfDirectives.all());
  365 + break;
  366 + case 0:
  367 + //调度指令
  368 + Collection<D60> dptArray = dayOfDirectives.all60();
  369 + for (D60 d60 : dptArray) {
  370 + if (d60.isDispatch())
  371 + list.add(d60);
  372 + }
  373 + break;
  374 + case 1:
  375 + //运营指令
  376 + Collection<D60> yyArray = dayOfDirectives.all60();
  377 + for (D60 d60 : yyArray) {
  378 + if (d60 != null && d60.getData().getDispatchInstruct() == (short) 0x03
  379 + && !d60.isDispatch())
  380 + list.add(d60);
  381 + }
  382 + break;
  383 + case 2:
  384 + //线路切换指令
  385 + list.addAll(dayOfDirectives.all64());
  386 + break;
  387 + case 3:
  388 + //消息短语
  389 + Collection<D60> dyArray = dayOfDirectives.all60();
  390 + for (D60 d60 : dyArray) {
  391 + if (d60 != null && d60.getData().getDispatchInstruct() == (short) 0x00
  392 + && !d60.isDispatch())
  393 + list.add(d60);
  394 + }
  395 + break;
  396 + }
396 397
397 - // 时间倒序  
398 - Collections.sort(list, new DayOfDirectives.DComparator());  
399 - if (StringUtils.isNotBlank(nbbm)) {  
400 - String deviceId = BasicData.deviceId2NbbmMap.inverse().get(nbbm);  
401 - //按车辆过滤  
402 - List<Directive> subList = new ArrayList<>();  
403 - for (Directive d : list) {  
404 - if (d.getDeviceId().equals(deviceId)) {  
405 - subList.add(d); 398 + // 时间倒序
  399 + Collections.sort(list, new DayOfDirectives.DComparator());
  400 + if (StringUtils.isNotBlank(nbbm)) {
  401 + String deviceId = BasicData.deviceId2NbbmMap.inverse().get(nbbm);
  402 + //按车辆过滤
  403 + List<Directive> subList = new ArrayList<>();
  404 + for (Directive d : list) {
  405 + if (d.getDeviceId().equals(deviceId)) {
  406 + subList.add(d);
  407 + }
406 } 408 }
  409 + list = subList;
407 } 410 }
408 - list = subList;  
409 - }  
410 411
411 - int count = list.size();  
412 - // 分页  
413 - int s = page * size, e = s + size; 412 + int count = list.size();
  413 + // 分页
  414 + int s = page * size, e = s + size;
414 415
415 - if (e > count)  
416 - e = count; 416 + if (e > count)
  417 + e = count;
417 418
418 - List<Directive> rs = list.subList(s, e); 419 + List<Directive> rs = list.subList(s, e);
419 420
420 - // 时间格式化,车辆自编号转换  
421 - for (Directive d : rs) {  
422 - if (d.getTimeHHmm() == null)  
423 - d.setTimeHHmm(fmtHHmm.print(d.getTimestamp()));  
424 - if (d.getNbbm() == null)  
425 - d.setNbbm(BasicData.deviceId2NbbmMap.get(d.getDeviceId()));  
426 - } 421 + // 时间格式化,车辆自编号转换
  422 + for (Directive d : rs) {
  423 + if (d.getTimeHHmm() == null)
  424 + d.setTimeHHmm(fmtHHmm.print(d.getTimestamp()));
  425 + if (d.getNbbm() == null)
  426 + d.setNbbm(BasicData.deviceId2NbbmMap.get(d.getDeviceId()));
  427 + }
427 428
428 - rsMap.put("list", rs);  
429 - rsMap.put("totalPages", count % size == 0 ? (count / size - 1) : count / size);  
430 - rsMap.put("page", page); 429 + rsMap.put("list", rs);
  430 + rsMap.put("totalPages", count % size == 0 ? (count / size - 1) : count / size);
  431 + rsMap.put("page", page);
  432 + }catch (Exception e){
  433 + logger.error("", e);
  434 + throw e;
  435 + }
431 return rsMap; 436 return rsMap;
432 } 437 }
433 438
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -246,7 +246,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -246,7 +246,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
246 246
247 schedule.setDfsjAll(dfsj); 247 schedule.setDfsjAll(dfsj);
248 schedule.setDfAuto(false); 248 schedule.setDfAuto(false);
249 - schedule.setRemarks(remarks); 249 + if("1".equals(opType))
  250 + schedule.setRemarks(remarks);
250 251
251 List<ScheduleRealInfo> ts = new ArrayList<>(); 252 List<ScheduleRealInfo> ts = new ArrayList<>();
252 ts.add(schedule); 253 ts.add(schedule);
@@ -3742,6 +3743,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3742,6 +3743,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3742 Double jcyl = 0.0; 3743 Double jcyl = 0.0;
3743 Double yh = 0.0; 3744 Double yh = 0.0;
3744 Double jzl = 0.0; 3745 Double jzl = 0.0;
  3746 + Double zlc=0.0;
3745 List<Ylb> listYlb = ylbRepository.queryListYlb(fcrq, s.getClZbh(), s.getjGh(),xlbm); 3747 List<Ylb> listYlb = ylbRepository.queryListYlb(fcrq, s.getClZbh(), s.getjGh(),xlbm);
3746 List<Dlb> listDlb = dlbRepository.queryListDlb(fcrq, s.getClZbh(), s.getjGh(),xlbm); 3748 List<Dlb> listDlb = dlbRepository.queryListDlb(fcrq, s.getClZbh(), s.getjGh(),xlbm);
3747 if(listYlb.size()>0){ 3749 if(listYlb.size()>0){
@@ -3752,6 +3754,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3752,6 +3754,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3752 jcyl=Arith.add(jcyl, y.getJzyl()); 3754 jcyl=Arith.add(jcyl, y.getJzyl());
3753 yh =Arith.add(yh ,y.getYh()); 3755 yh =Arith.add(yh ,y.getYh());
3754 jzl =Arith.add(jzl, y.getJzl()); 3756 jzl =Arith.add(jzl, y.getJzl());
  3757 + zlc =Arith.add(zlc, y.getZlc());
3755 } 3758 }
3756 }else{ 3759 }else{
3757 type=1; 3760 type=1;
@@ -3761,6 +3764,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3761,6 +3764,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3761 jcyl=Arith.add(jcyl, d.getJzcd()); 3764 jcyl=Arith.add(jcyl, d.getJzcd());
3762 yh =Arith.add(yh ,d.getHd()); 3765 yh =Arith.add(yh ,d.getHd());
3763 jzl =Arith.add(jzl, d.getCdl()); 3766 jzl =Arith.add(jzl, d.getCdl());
  3767 + zlc =Arith.add(zlc, d.getZlc());
3764 } 3768 }
3765 } 3769 }
3766 3770
@@ -3771,7 +3775,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3771,7 +3775,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3771 map.put("ccyl", ccyl); 3775 map.put("ccyl", ccyl);
3772 map.put("jcyl", jcyl); 3776 map.put("jcyl", jcyl);
3773 map.put("type", type); 3777 map.put("type", type);
3774 - 3778 + map.put("zlc", zlc);
3775 map.put("xlName", s.getXlName()); 3779 map.put("xlName", s.getXlName());
3776 map.put("clZbh", s.getClZbh()); 3780 map.put("clZbh", s.getClZbh());
3777 map.put("plate", BasicData.nbbmCompanyPlateMap.get(s.getClZbh())); 3781 map.put("plate", BasicData.nbbmCompanyPlateMap.get(s.getClZbh()));
src/main/java/com/bsth/service/report/CulateMileageService.java
@@ -13,12 +13,16 @@ public interface CulateMileageService { @@ -13,12 +13,16 @@ public interface CulateMileageService {
13 13
14 List<Map<String,Object>> jobLjqk(List<ScheduleRealInfo> lists); 14 List<Map<String,Object>> jobLjqk(List<ScheduleRealInfo> lists);
15 double culateLjgl(List<ScheduleRealInfo> lists); 15 double culateLjgl(List<ScheduleRealInfo> lists);
  16 + double culateLjgl_(List<ScheduleRealInfo> lists,String item);
16 int culateLjbc(List<ScheduleRealInfo> lists,String item); 17 int culateLjbc(List<ScheduleRealInfo> lists,String item);
17 18
18 double culateJhgl(List<ScheduleRealInfo> lists); 19 double culateJhgl(List<ScheduleRealInfo> lists);
  20 + double culateJhgl_(List<ScheduleRealInfo> lists,String item);
  21 +
19 int culateJhbc(List<ScheduleRealInfo> lists,String item); 22 int culateJhbc(List<ScheduleRealInfo> lists,String item);
20 23
21 double culateSjgl(List<ScheduleRealInfo> lists); 24 double culateSjgl(List<ScheduleRealInfo> lists);
  25 + double culateSjgl_(List<ScheduleRealInfo> lists,String item);
22 int culateSjbc(List<ScheduleRealInfo> lists,String item); 26 int culateSjbc(List<ScheduleRealInfo> lists,String item);
23 27
24 double culateKsgl(List<ScheduleRealInfo> lists); 28 double culateKsgl(List<ScheduleRealInfo> lists);
@@ -32,8 +36,9 @@ public interface CulateMileageService { @@ -32,8 +36,9 @@ public interface CulateMileageService {
32 36
33 Map<String, Object> culateDjg(List<ScheduleRealInfo> lists,String line); 37 Map<String, Object> culateDjg(List<ScheduleRealInfo> lists,String line);
34 38
  39 + Map<String, Object> culateWdbcs(List<ScheduleRealInfo> lists);
35 40
36 - 41 + int culateDtfzbc(List<ScheduleRealInfo> lists,String type,String status,String item);
37 //以下计算方法供新报表使用 42 //以下计算方法供新报表使用
38 Map<String, Double> culateSjlcMap(List<ScheduleRealInfo> lists);//计划内营运and计划外营运 43 Map<String, Double> culateSjlcMap(List<ScheduleRealInfo> lists);//计划内营运and计划外营运
39 44
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
@@ -261,6 +261,108 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -261,6 +261,108 @@ public class CulateMileageServiceImpl implements CulateMileageService{
261 } 261 }
262 262
263 @Override 263 @Override
  264 + public double culateLjgl_(List<ScheduleRealInfo> lists,String item) {
  265 + // TODO Auto-generated method stub
  266 + double ljgl=0;
  267 + for (int i = 0; i < lists.size(); i++) {
  268 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  269 + if (!isInOut(scheduleRealInfo)) {
  270 + if(!scheduleRealInfo.isDestroy()){
  271 + String time = "";
  272 + if (scheduleRealInfo.getFcsjActual() != null) {
  273 + time = scheduleRealInfo.getFcsjActual();
  274 + }
  275 + if (time.equals("")) {
  276 + if (scheduleRealInfo.getDfsj() != null) {
  277 + time = scheduleRealInfo.getDfsj();
  278 + }
  279 + }
  280 + if(!time.equals("")){
  281 + String[] fcsjStr = time.split(":");
  282 + long fcsj = Long.parseLong(fcsjStr[0]) * 60 + Long.parseLong(fcsjStr[1]);
  283 + if(scheduleRealInfo.isSflj()){
  284 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  285 + if(childTaskPlans.isEmpty()){
  286 + if(item.equals("zgf")){
  287 + if(fcsj>=zgf1 && fcsj<=zgf2){
  288 + ljgl=Arith.add(ljgl,scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  289 + }
  290 + }
  291 + if(item.equals("wgf")){
  292 + if(fcsj>=wgf1 && fcsj<=wgf2){
  293 + ljgl=Arith.add(ljgl,scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  294 + }
  295 + }
  296 + }else{
  297 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  298 + while (it.hasNext()) {
  299 + ChildTaskPlan childTaskPlan = it.next();
  300 + if(childTaskPlan.getMileageType().equals("service")){
  301 + if (!childTaskPlan.isDestroy()) {
  302 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  303 + if(item.equals("zgf")){
  304 + if(fcsj>=zgf1 && fcsj<=zgf2){
  305 + ljgl=Arith.add(ljgl,jhgl);
  306 + }
  307 + }
  308 + if(item.equals("wgf")){
  309 + if(fcsj>=wgf1 && fcsj<=wgf2){
  310 + ljgl=Arith.add(ljgl,jhgl);
  311 + }
  312 + }
  313 + }
  314 + }
  315 + }
  316 + }
  317 + }else{
  318 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  319 + if(childTaskPlans.isEmpty()){
  320 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  321 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  322 + double zjlc=Arith.sub(jhlc, jhlcOrig);
  323 + if(zjlc>0){
  324 + if(item.equals("zgf")){
  325 + if(fcsj>=zgf1 && fcsj<=zgf2){
  326 + ljgl=Arith.add(zjlc, ljgl);
  327 + }
  328 + }
  329 + if(item.equals("wgf")){
  330 + if(fcsj>=wgf1 && fcsj<=wgf2){
  331 + ljgl=Arith.add(zjlc, ljgl);
  332 + }
  333 + }
  334 + }
  335 + }else{
  336 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  337 + while (it.hasNext()) {
  338 + ChildTaskPlan childTaskPlan = it.next();
  339 + if("service".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){
  340 + if (!childTaskPlan.isDestroy()) {
  341 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  342 + if(item.equals("zgf")){
  343 + if(fcsj>=zgf1 && fcsj<=zgf2){
  344 + ljgl=Arith.add(ljgl,jhgl);
  345 + }
  346 + }
  347 + if(item.equals("wgf")){
  348 + if(fcsj>=wgf1 && fcsj<=wgf2){
  349 + ljgl=Arith.add(ljgl,jhgl);
  350 + }
  351 + }
  352 + }
  353 + }
  354 + }
  355 + }
  356 + }
  357 + }
  358 + }
  359 +
  360 + }
  361 + }
  362 + return ljgl;
  363 + }
  364 +
  365 + @Override
264 public double culateLjgl(List<ScheduleRealInfo> lists) { 366 public double culateLjgl(List<ScheduleRealInfo> lists) {
265 // TODO Auto-generated method stub 367 // TODO Auto-generated method stub
266 double ljgl=0; 368 double ljgl=0;
@@ -368,6 +470,32 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -368,6 +470,32 @@ public class CulateMileageServiceImpl implements CulateMileageService{
368 } 470 }
369 return jhgl; 471 return jhgl;
370 } 472 }
  473 +
  474 + @Override
  475 + public double culateJhgl_(List<ScheduleRealInfo> lists,String item) {
  476 + // TODO Auto-generated method stub
  477 + double jhgl=0;
  478 + for (int i = 0; i < lists.size(); i++) {
  479 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  480 + if (!isInOut(scheduleRealInfo)) {
  481 + if(!scheduleRealInfo.isSflj()){
  482 + String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
  483 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  484 + if(item.equals("zgf")){
  485 + if(fcsj>=zgf1 && fcsj<=zgf2){
  486 + jhgl=Arith.add(jhgl,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  487 + }
  488 + }
  489 + if(item.equals("wgf")){
  490 + if(fcsj>=wgf1 && fcsj<=wgf2){
  491 + jhgl=Arith.add(jhgl,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  492 + }
  493 + }
  494 + }
  495 + }
  496 + }
  497 + return jhgl;
  498 + }
371 499
372 @Override 500 @Override
373 public int culateJhbc(List<ScheduleRealInfo> lists,String item) { 501 public int culateJhbc(List<ScheduleRealInfo> lists,String item) {
@@ -434,6 +562,85 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -434,6 +562,85 @@ public class CulateMileageServiceImpl implements CulateMileageService{
434 } 562 }
435 return sjgl; 563 return sjgl;
436 } 564 }
  565 +
  566 + @Override
  567 + public double culateSjgl_(List<ScheduleRealInfo> lists, String item) {
  568 + // TODO Auto-generated method stub
  569 + double sjgl = 0;
  570 + for (int i = 0; i < lists.size(); i++) {
  571 + ScheduleRealInfo scheduleRealInfo = lists.get(i);
  572 + if (!isInOut(scheduleRealInfo)) {
  573 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  574 + if (!scheduleRealInfo.isSflj()) {
  575 + String time = "";
  576 + if (scheduleRealInfo.getFcsjActual() != null) {
  577 + time = scheduleRealInfo.getFcsjActual();
  578 + }
  579 + if (time.equals("")) {
  580 + if (scheduleRealInfo.getDfsj() != null) {
  581 + time = scheduleRealInfo.getDfsj();
  582 + }
  583 + }
  584 + if (!time.equals("")) {
  585 + String[] fcsjStr = time.split(":");
  586 + long fcsj = Long.parseLong(fcsjStr[0]) * 60 + Long.parseLong(fcsjStr[1]);
  587 + if (childTaskPlans.isEmpty()) {
  588 + if (!scheduleRealInfo.isDestroy()) {
  589 + double jhlcOrig = scheduleRealInfo.getJhlcOrig() == null ? 0
  590 + : scheduleRealInfo.getJhlcOrig();
  591 + double jhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  592 +
  593 + if(item.equals("zgf")){
  594 + if(fcsj>=zgf1 && fcsj<=zgf2){
  595 + if (jhlc - jhlcOrig > 0) {
  596 + sjgl = Arith.add(sjgl, jhlcOrig);
  597 + } else {
  598 + sjgl = Arith.add(sjgl, jhlc);
  599 + }
  600 + }
  601 + }
  602 + if(item.equals("wgf")){
  603 + if(fcsj>=wgf1 && fcsj<=wgf2){
  604 + if (jhlc - jhlcOrig > 0) {
  605 + sjgl = Arith.add(sjgl, jhlcOrig);
  606 + } else {
  607 + sjgl = Arith.add(sjgl, jhlc);
  608 + }
  609 + }
  610 + }
  611 +
  612 +
  613 + }
  614 + } else {
  615 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  616 + while (it.hasNext()) {
  617 + ChildTaskPlan childTaskPlan = it.next();
  618 + if (childTaskPlan.getMileageType().equals("service")
  619 + && "正常".equals(childTaskPlan.getType1())) {
  620 + if (!childTaskPlan.isDestroy()) {
  621 + Float jhgl = childTaskPlan.getMileage() == null ? 0
  622 + : childTaskPlan.getMileage();
  623 +
  624 + if(item.equals("zgf")){
  625 + if(fcsj>=zgf1 && fcsj<=zgf2){
  626 + sjgl = Arith.add(sjgl, jhgl);
  627 + }
  628 + }
  629 + if(item.equals("wgf")){
  630 + if(fcsj>=wgf1 && fcsj<=wgf2){
  631 + sjgl = Arith.add(sjgl, jhgl);
  632 + }
  633 + }
  634 + }
  635 + }
  636 + }
  637 + }
  638 + }
  639 + }
  640 + }
  641 + }
  642 + return sjgl;
  643 + }
437 644
438 @Override 645 @Override
439 public int culateSjbc(List<ScheduleRealInfo> lists,String item) { 646 public int culateSjbc(List<ScheduleRealInfo> lists,String item) {
@@ -592,6 +799,108 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -592,6 +799,108 @@ public class CulateMileageServiceImpl implements CulateMileageService{
592 return jcclc; 799 return jcclc;
593 } 800 }
594 801
  802 +
  803 + @Override
  804 + public int culateDtfzbc(List<ScheduleRealInfo> lists,String type,String status,String item){
  805 + int bc=0;
  806 + for (int i = 0; i < lists.size(); i++) {
  807 + ScheduleRealInfo s=lists.get(i);
  808 + if(s.getBcType().equals(type)){
  809 + if(status.equals("jh")){
  810 + String fcsjs=s.getFcsj();
  811 + String[] fcsjStr = fcsjs.split(":");
  812 + long fcsj = Long.parseLong(fcsjStr[0]) * 60 + Long.parseLong(fcsjStr[1]);
  813 + if(item.equals("zgf")){
  814 + if(fcsj>zgf1&&fcsj<zgf2)
  815 + bc++;
  816 +
  817 + }else if(item.equals("wgf")){
  818 + if(fcsj>wgf1&&fcsj<wgf2)
  819 + bc++;
  820 + }else{
  821 + bc++;
  822 + }
  823 + }else{
  824 + if(s.getFcsjActual()!=null){
  825 + if(!s.isDestroy()){
  826 + String fcsjs=s.getFcsjActual();
  827 + String[] fcsjStr = fcsjs.split(":");
  828 + long fcsj = Long.parseLong(fcsjStr[0]) * 60 + Long.parseLong(fcsjStr[1]);
  829 + if(item.equals("zgf")){
  830 + if(fcsj>zgf1&&fcsj<zgf2)
  831 + bc++;
  832 + }else if(item.equals("wgf")){
  833 + if(fcsj>wgf1&&fcsj<wgf2)
  834 + bc++;
  835 + }else{
  836 + bc++;
  837 + }
  838 + }
  839 + }
  840 +
  841 + }
  842 + }
  843 + }
  844 +
  845 + return bc;
  846 + }
  847 + @Override
  848 + public Map<String, Object> culateWdbcs(List<ScheduleRealInfo> lists){
  849 + int sxk=0,sxkzgf=0,sxkwgf=0,sxm=0,sxmzgf=0,sxmwgf=0,xxk=0,
  850 + xxkzgf=0,xxkwgf=0,xxm=0,xxmzgf=0,xxmwgf=0;
  851 + for (int i = 0; i < lists.size(); i++) {
  852 + ScheduleRealInfo s=lists.get(i);
  853 + if(s.getFcsjActual()!=null){
  854 + String xlDir=s.getXlDir();
  855 + String fcsjs=s.getFcsj();
  856 + String[] fcsjStr = fcsjs.split(":");
  857 + long fcsj = Long.parseLong(fcsjStr[0]) * 60 + Long.parseLong(fcsjStr[1]);
  858 + String fcsjActuals=s.getFcsjActual();
  859 + String[] fcsjActualsStr = fcsjActuals.split(":");
  860 + long fcsjActual = Long.parseLong(fcsjActualsStr[0]) * 60 + Long.parseLong(fcsjActualsStr[1]);
  861 +
  862 + if("0".equals(xlDir)){
  863 +
  864 + if(fcsj-fcsjActual>1){
  865 + sxk++;
  866 + if(fcsj>zgf1&&fcsj<zgf2)
  867 + sxkzgf++;
  868 + if(fcsj>wgf1&&fcsj<wgf2)
  869 + sxkwgf++;
  870 + }
  871 + if(fcsjActual-fcsj>3){
  872 + sxm++;
  873 + if(fcsj>zgf1&&fcsj<zgf2)
  874 + sxmzgf++;
  875 + if(fcsj>wgf1&&fcsj<wgf2)
  876 + sxmwgf++;
  877 + }
  878 + }else{
  879 + if(fcsj-fcsjActual>1){
  880 + xxk++;
  881 + if(fcsj>zgf1&&fcsj<zgf2)
  882 + xxkzgf++;
  883 + if(fcsj>wgf1&&fcsj<wgf2)
  884 + xxkwgf++;
  885 + }
  886 + if(fcsjActual-fcsj>3){
  887 + xxm++;
  888 + if(fcsj>zgf1&&fcsj<zgf2)
  889 + xxmzgf++;
  890 + if(fcsj>wgf1&&fcsj<wgf2)
  891 + xxmwgf++;
  892 + }
  893 + }
  894 + }
  895 + }
  896 + Map<String, Object> m=new HashMap<String,Object>();
  897 + m.put("sxk", sxk);m.put("sxkzgf",sxkzgf );m.put("sxkwgf", sxkwgf);
  898 + m.put("sxm",sxm );m.put("sxmzgf", sxmzgf);m.put("sxmwgf", sxmwgf);
  899 + m.put("xxk", xxk);m.put("xxkzgf", xxkzgf);m.put("xxkwgf", xxkwgf);
  900 + m.put("xxm", xxm);m.put("xxmzgf", xxmzgf);m.put("xxmwgf", xxmwgf);
  901 + return m;
  902 + }
  903 +
595 @Override 904 @Override
596 public double culateJhJccgl(List<ScheduleRealInfo> lists) { 905 public double culateJhJccgl(List<ScheduleRealInfo> lists) {
597 // TODO Auto-generated method stub 906 // TODO Auto-generated method stub
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
@@ -1909,16 +1909,43 @@ public class ReportServiceImpl implements ReportService{ @@ -1909,16 +1909,43 @@ public class ReportServiceImpl implements ReportService{
1909 } 1909 }
1910 1910
1911 List<ScheduleRealInfo> sList=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date); 1911 List<ScheduleRealInfo> sList=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date);
1912 - Map<String, Object> newMap=new HashMap<String,Object>(); 1912 + Map<String, Object> newMap=culateService.culateWdbcs(sList);
1913 newMap.put("jhbc", culateService.culateJhbc(sList,"")); 1913 newMap.put("jhbc", culateService.culateJhbc(sList,""));
  1914 + newMap.put("jhbczgf", culateService.culateJhbc(sList,"zgf"));
  1915 + newMap.put("jhbcwgf", culateService.culateJhbc(sList,"wgf"));
1914 newMap.put("jhgl", culateService.culateJhgl(sList)); 1916 newMap.put("jhgl", culateService.culateJhgl(sList));
  1917 + newMap.put("jhglzgf", culateService.culateJhgl_(sList,"zgf"));
  1918 + newMap.put("jhglwgf", culateService.culateJhgl_(sList,"wgf"));
  1919 +
1915 newMap.put("sjbc", culateService.culateSjbc(sList,"")); 1920 newMap.put("sjbc", culateService.culateSjbc(sList,""));
  1921 + newMap.put("sjbczgf", culateService.culateSjbc(sList,"zgf"));
  1922 + newMap.put("sjbcwgf", culateService.culateSjbc(sList,"wgf"));
1916 newMap.put("sjgl", culateService.culateSjgl(sList)); 1923 newMap.put("sjgl", culateService.culateSjgl(sList));
  1924 + newMap.put("sjglzgf", culateService.culateSjgl_(sList,"zgf"));
  1925 + newMap.put("sjglwgf", culateService.culateSjgl_(sList,"wgf"));
  1926 +
1917 newMap.put("lbgl", culateService.culateLbgl(sList)); 1927 newMap.put("lbgl", culateService.culateLbgl(sList));
1918 newMap.put("lbbc", culateService.culateLbbc(sList)); 1928 newMap.put("lbbc", culateService.culateLbbc(sList));
1919 newMap.put("ljgl", culateService.culateLjgl(sList)); 1929 newMap.put("ljgl", culateService.culateLjgl(sList));
  1930 + newMap.put("ljglzgf", culateService.culateLjgl_(sList,"zgf"));
  1931 + newMap.put("ljglwgf", culateService.culateLjgl_(sList,"wgf"));
  1932 +
1920 newMap.put("ljbc", culateService.culateLjbc(sList,"")); 1933 newMap.put("ljbc", culateService.culateLjbc(sList,""));
1921 newMap.put("ksgl", culateService.culateKsgl(sList)); 1934 newMap.put("ksgl", culateService.culateKsgl(sList));
  1935 +
  1936 + newMap.put("jhfbbc",culateService.culateDtfzbc(sList, "venting", "jh", ""));
  1937 + newMap.put("jhfbbczgf",culateService.culateDtfzbc(sList, "venting", "jh", "zgf"));
  1938 + newMap.put("jhfbbcwgf",culateService.culateDtfzbc(sList, "venting", "jh", "wgf"));
  1939 + newMap.put("sjfbbc",culateService.culateDtfzbc(sList, "venting", "sj", ""));
  1940 + newMap.put("sjfbbczgf",culateService.culateDtfzbc(sList, "venting", "sj", "zgf"));
  1941 + newMap.put("sjfbbcwgf",culateService.culateDtfzbc(sList, "venting", "sj", "wgf"));
  1942 +
  1943 + newMap.put("jhdtbc",culateService.culateDtfzbc(sList, "major", "jh", ""));
  1944 + newMap.put("jhdtbczgf",culateService.culateDtfzbc(sList, "major", "jh", "zgf"));
  1945 + newMap.put("jhdtbcwgf",culateService.culateDtfzbc(sList, "major", "jh", "wgf"));
  1946 + newMap.put("sjdtbc",culateService.culateDtfzbc(sList, "major", "sj", ""));
  1947 + newMap.put("sjdtbczgf",culateService.culateDtfzbc(sList, "major", "sj", "zgf"));
  1948 + newMap.put("sjdtbcwgf",culateService.culateDtfzbc(sList, "major", "sj", "wgf"));
1922 return newMap; 1949 return newMap;
1923 } 1950 }
1924 @Override 1951 @Override
src/main/resources/static/index.html
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="zh"> 2 <html lang="zh">
3 <head> 3 <head>
4 - <meta name="renderer" content="webkit" />  
5 - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />  
6 - <meta charset="UTF-8">  
7 - <title>调度系统</title>  
8 -  
9 - <meta http-equiv="Pragma" content="no-cache">  
10 - <meta http-equiv="Cache-control" content="no-cache">  
11 - <meta http-equiv="Cache" content="no-cache">  
12 -  
13 - <!-- Font Awesome 图标字体 -->  
14 - <link  
15 - href="/metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css"  
16 - rel="stylesheet" type="text/css" />  
17 - <!-- Bootstrap style -->  
18 - <link href="/metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css"  
19 - rel="stylesheet" type="text/css" />  
20 - <!-- jsTree 数插件 -->  
21 - <link  
22 - href="/metronic_v4.5.4/plugins/jstree/dist/themes/default/style.min.css"  
23 - rel="stylesheet" type="text/css" />  
24 - <!-- MULTI-select 多选下拉框美化 -->  
25 - <link  
26 - href="/metronic_v4.5.4/plugins/jquery-multi-select/css/multi-select.css"  
27 - rel="stylesheet" type="text/css" />  
28 -  
29 - <!-- editable -->  
30 - <link  
31 - href="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/css/bootstrap-editable.css"  
32 - rel="stylesheet" type="text/css" />  
33 - <!-- METRONIC style -->  
34 - <link href="/metronic_v4.5.4/layout4/css/themes/light.min.css"  
35 - rel="stylesheet" type="text/css" id="style_color" />  
36 - <link href="/metronic_v4.5.4/css/components.css" rel="stylesheet"  
37 - type="text/css" />  
38 - <link href="/metronic_v4.5.4/css/plugins.css" rel="stylesheet"  
39 - type="text/css" />  
40 - <link href="/metronic_v4.5.4/layout4/css/layout.min.css"  
41 - rel="stylesheet" type="text/css" />  
42 - <link href="/metronic_v4.5.4/layout4/css/custom.min.css"  
43 - rel="stylesheet" type="text/css" />  
44 - <!-- select2 下拉框插件 -->  
45 - <link href="/metronic_v4.5.4/plugins/select2/css/select2.min.css"  
46 - rel="stylesheet" type="text/css" />  
47 - <link  
48 - href="/metronic_v4.5.4/plugins/select2/css/select2-bootstrap.min.css"  
49 - rel="stylesheet" type="text/css" />  
50 - <!-- layer 弹层 插件 -->  
51 - <link href="/assets/plugins/layer-v2.4/layer/skin/layer.css"  
52 - rel="stylesheet" type="text/css" />  
53 - <!-- fileinput 上传 插件 -->  
54 - <link href="/assets/plugins/fileinput/css/fileinput.min.css"  
55 - rel="stylesheet" type="text/css" />  
56 - <!-- iCheck 单选框和复选框 -->  
57 - <link href="/metronic_v4.5.4/plugins/icheck/skins/all.css"  
58 - rel="stylesheet" type="text/css" />  
59 - <!-- 日期控件 -->  
60 - <link  
61 - href="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css"  
62 - rel="stylesheet" type="text/css" />  
63 - <!-- table 表格控件 -->  
64 - <link rel="stylesheet"  
65 - href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css"  
66 - type="text/css" />  
67 - <link href="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css" rel="stylesheet" type="text/css"/>  
68 - <!-- handsontable样式 -->  
69 - <link rel="stylesheet"  
70 - href="/assets/bower_components/handsontable/dist/handsontable.full.css" />  
71 - <!-- sweetalert样式 -->  
72 - <link rel="stylesheet"  
73 - href="/assets/bower_components/sweetalert/dist/sweetalert.css" />  
74 - <!-- schedule计划调度AngularJS模块主css -->  
75 - <link rel="stylesheet" href="/pages/scheduleApp/module/common/main.css"  
76 - type="text/css" />  
77 -  
78 - <!-- CSS动画 -->  
79 - <link  
80 - href="/metronic_v4.5.4/plugins/tipso/css/animate.css"  
81 - rel="stylesheet" type="text/css" />  
82 -  
83 - <!-- 提示工具样式 -->  
84 - <link  
85 - href="/metronic_v4.5.4/plugins/tipso/css/tipso.css"  
86 - rel="stylesheet" type="text/css" />  
87 -  
88 - <style type="text/css">  
89 - .searchForm {  
90 -  
91 - }  
92 -  
93 - .searchForm .form-group .control-label {  
94 - padding-right: 0px;  
95 - text-align: right;  
96 - margin-top: 7px;  
97 - }  
98 -  
99 - .searchForm .form-group>div {  
100 - padding-left: 10px;  
101 - padding-right: 0px;  
102 - }  
103 -  
104 - .searchForm .row>div {  
105 - padding-left: 0px;  
106 - padding-right: 0px;  
107 - padding: 5px 0 5px 0;  
108 - width: 270px;  
109 - display: inline-block;  
110 - }  
111 -  
112 - .searchForm .form-actions {  
113 -  
114 - }  
115 -  
116 - tr.row-active td {  
117 - border-bottom: 1px solid blue !important;  
118 - color: blue;  
119 - }  
120 -  
121 - .ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection  
122 - {  
123 - font-size: 14px;  
124 - }  
125 -  
126 - .ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection  
127 - {  
128 - padding: 6px 26px;  
129 - }  
130 -  
131 - .ms-container .ms-list {  
132 - height: 306px;  
133 - }  
134 -  
135 - .ms-container .ms-selectable,.ms-container .ms-selection {  
136 - width: 47%;  
137 - }  
138 -  
139 - .ms-container {  
140 - width: 470px;  
141 - margin: auto;  
142 - }  
143 -  
144 - .multi-custom-header-left {  
145 - text-align: center;  
146 - padding: 7px;  
147 - color: #3B3F51;  
148 - }  
149 -  
150 - .multi-custom-header-right {  
151 - text-align: center;  
152 - padding: 7px;  
153 - font-weight: bold;  
154 - color: #36C6D3;  
155 - }  
156 -  
157 - .mt-element-list .list-simple.mt-list-container ul>.mt-list-item>.list-item-content  
158 - {  
159 - padding: 0 55px 0 0px;  
160 - }  
161 -  
162 - .mt-element-list .list-simple.mt-list-container ul>.mt-list-item {  
163 - padding: 3.3px 0;  
164 - }  
165 -  
166 - #route-container {  
167 - display: none;  
168 - }  
169 -  
170 - .page-content.active {  
171 - display: block !important;  
172 - }  
173 -  
174 - .page-header.navbar .page-logo .logo-default {  
175 - margin: 0;  
176 - }  
177 -  
178 - .page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle  
179 - {  
180 - background-color: #284a99;  
181 - }  
182 -  
183 - .page-header.navbar .page-logo {  
184 - padding-right: 10px;  
185 - }  
186 -  
187 - .page-logo .logo-default.logo-default-text {  
188 - font-weight: 600;  
189 - color: white !important;  
190 - margin-top: 19px !important;  
191 - font-size: 24px;  
192 - text-decoration: none;  
193 - }  
194 -  
195 - .page-logo .logo-default.logo-default-text:HOVER {  
196 - color: #dedede !important;  
197 - }  
198 - </style>  
199 -  
200 - <!-- ocLazyLoading载入文件的位置 -->  
201 - <link id="ng_load_plugins_before" /> 4 +<meta name="renderer" content="webkit" />
  5 +<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  6 +<meta charset="UTF-8">
  7 +<title>调度系统</title>
  8 +
  9 +<meta http-equiv="Pragma" content="no-cache">
  10 +<meta http-equiv="Cache-control" content="no-cache">
  11 +<meta http-equiv="Cache" content="no-cache">
  12 +
  13 +<!-- Font Awesome 图标字体 -->
  14 +<link
  15 + href="/metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css"
  16 + rel="stylesheet" type="text/css" />
  17 +<!-- Bootstrap style -->
  18 +<link href="/metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css"
  19 + rel="stylesheet" type="text/css" />
  20 +<!-- jsTree 数插件 -->
  21 +<link
  22 + href="/metronic_v4.5.4/plugins/jstree/dist/themes/default/style.min.css"
  23 + rel="stylesheet" type="text/css" />
  24 +<!-- MULTI-select 多选下拉框美化 -->
  25 +<link
  26 + href="/metronic_v4.5.4/plugins/jquery-multi-select/css/multi-select.css"
  27 + rel="stylesheet" type="text/css" />
  28 +
  29 +<!-- editable -->
  30 +<link
  31 + href="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/css/bootstrap-editable.css"
  32 + rel="stylesheet" type="text/css" />
  33 +<!-- METRONIC style -->
  34 +<link href="/metronic_v4.5.4/layout4/css/themes/light.min.css"
  35 + rel="stylesheet" type="text/css" id="style_color" />
  36 +<link href="/metronic_v4.5.4/css/components.css" rel="stylesheet"
  37 + type="text/css" />
  38 +<link href="/metronic_v4.5.4/css/plugins.css" rel="stylesheet"
  39 + type="text/css" />
  40 +<link href="/metronic_v4.5.4/layout4/css/layout.min.css"
  41 + rel="stylesheet" type="text/css" />
  42 +<link href="/metronic_v4.5.4/layout4/css/custom.min.css"
  43 + rel="stylesheet" type="text/css" />
  44 +<!-- select2 下拉框插件 -->
  45 +<link href="/metronic_v4.5.4/plugins/select2/css/select2.min.css"
  46 + rel="stylesheet" type="text/css" />
  47 +<link
  48 + href="/metronic_v4.5.4/plugins/select2/css/select2-bootstrap.min.css"
  49 + rel="stylesheet" type="text/css" />
  50 +<!-- layer 弹层 插件 -->
  51 +<link href="/assets/plugins/layer-v2.4/layer/skin/layer.css"
  52 + rel="stylesheet" type="text/css" />
  53 +<!-- fileinput 上传 插件 -->
  54 +<link href="/assets/plugins/fileinput/css/fileinput.min.css"
  55 + rel="stylesheet" type="text/css" />
  56 +<!-- iCheck 单选框和复选框 -->
  57 +<link href="/metronic_v4.5.4/plugins/icheck/skins/all.css"
  58 + rel="stylesheet" type="text/css" />
  59 +<!-- 日期控件 -->
  60 +<link
  61 + href="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css"
  62 + rel="stylesheet" type="text/css" />
  63 +<!-- table 表格控件 -->
  64 +<link rel="stylesheet"
  65 + href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css"
  66 + type="text/css" />
  67 +<link href="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css" rel="stylesheet" type="text/css"/>
  68 +<!-- handsontable样式 -->
  69 +<link rel="stylesheet"
  70 + href="/assets/bower_components/handsontable/dist/handsontable.full.css" />
  71 +<!-- sweetalert样式 -->
  72 +<link rel="stylesheet"
  73 + href="/assets/bower_components/sweetalert/dist/sweetalert.css" />
  74 +<!-- schedule计划调度AngularJS模块主css -->
  75 +<link rel="stylesheet" href="/pages/scheduleApp/module/common/main.css"
  76 + type="text/css" />
  77 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" merge="plugins"/>
  78 +
  79 +<!-- CSS动画 -->
  80 +<link
  81 + href="/metronic_v4.5.4/plugins/tipso/css/animate.css"
  82 + rel="stylesheet" type="text/css" />
  83 +
  84 +<!-- 提示工具样式 -->
  85 +<link
  86 + href="/metronic_v4.5.4/plugins/tipso/css/tipso.css"
  87 + rel="stylesheet" type="text/css" />
  88 +
  89 +<style type="text/css">
  90 +.searchForm {
  91 +
  92 +}
  93 +
  94 +.searchForm .form-group .control-label {
  95 + padding-right: 0px;
  96 + text-align: right;
  97 + margin-top: 7px;
  98 +}
  99 +
  100 +.searchForm .form-group>div {
  101 + padding-left: 10px;
  102 + padding-right: 0px;
  103 +}
  104 +
  105 +.searchForm .row>div {
  106 + padding-left: 0px;
  107 + padding-right: 0px;
  108 + padding: 5px 0 5px 0;
  109 + width: 270px;
  110 + display: inline-block;
  111 +}
  112 +
  113 +.searchForm .form-actions {
  114 +
  115 +}
  116 +
  117 +tr.row-active td {
  118 + border-bottom: 1px solid blue !important;
  119 + color: blue;
  120 +}
  121 +
  122 +.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection
  123 + {
  124 + font-size: 14px;
  125 +}
  126 +
  127 +.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection
  128 + {
  129 + padding: 6px 26px;
  130 +}
  131 +
  132 +.ms-container .ms-list {
  133 + height: 306px;
  134 +}
  135 +
  136 +.ms-container .ms-selectable,.ms-container .ms-selection {
  137 + width: 47%;
  138 +}
  139 +
  140 +.ms-container {
  141 + width: 470px;
  142 + margin: auto;
  143 +}
  144 +
  145 +.multi-custom-header-left {
  146 + text-align: center;
  147 + padding: 7px;
  148 + color: #3B3F51;
  149 +}
  150 +
  151 +.multi-custom-header-right {
  152 + text-align: center;
  153 + padding: 7px;
  154 + font-weight: bold;
  155 + color: #36C6D3;
  156 +}
  157 +
  158 +.mt-element-list .list-simple.mt-list-container ul>.mt-list-item>.list-item-content
  159 + {
  160 + padding: 0 55px 0 0px;
  161 +}
  162 +
  163 +.mt-element-list .list-simple.mt-list-container ul>.mt-list-item {
  164 + padding: 3.3px 0;
  165 +}
  166 +
  167 +#route-container {
  168 + display: none;
  169 +}
  170 +
  171 +.page-content.active {
  172 + display: block !important;
  173 +}
  174 +
  175 +.page-header.navbar .page-logo .logo-default {
  176 + margin: 0;
  177 +}
  178 +
  179 +.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle
  180 + {
  181 + background-color: #284a99;
  182 +}
  183 +
  184 +.page-header.navbar .page-logo {
  185 + padding-right: 10px;
  186 +}
  187 +
  188 +.page-logo .logo-default.logo-default-text {
  189 + font-weight: 600;
  190 + color: white !important;
  191 + margin-top: 19px !important;
  192 + font-size: 24px;
  193 + text-decoration: none;
  194 +}
  195 +
  196 +.page-logo .logo-default.logo-default-text:HOVER {
  197 + color: #dedede !important;
  198 +}
  199 +
  200 + body,.page-content-wrapper,#pjax-container{
  201 + height: 100%;
  202 + }
  203 + html{
  204 + height: 90%;
  205 + }
  206 + .page-container{
  207 + height: 100%;
  208 + }
  209 +</style>
  210 +
  211 +<!-- ocLazyLoading载入文件的位置 -->
  212 +<link id="ng_load_plugins_before" />
202 213
203 </head> 214 </head>
204 <body 215 <body
205 - class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo page-sidebar-fixed">  
206 -<div class="page-header navbar navbar-fixed-top"  
207 - style="background: linear-gradient(to bottom, #124e78, #125688);">  
208 - <div class="page-header-inner ">  
209 - <!-- LOGO -->  
210 - <div class="page-logo">  
211 - <a href="index.html" class="logo-default logo-default-text">  
212 - 闵行公交调度系统 </a>  
213 - <div class="menu-toggler sidebar-toggler"></div>  
214 - </div>  
215 - <!-- END LOGO -->  
216 - <a href="javascript:;" class="menu-toggler responsive-toggler"  
217 - data-toggle="collapse" data-target=".navbar-collapse"> </a>  
218 - <div class="page-top">  
219 - <div class="top-menu">  
220 - <ul class="nav navbar-nav pull-right">  
221 - <!-- 信息通知区 -->  
222 - <li  
223 - class="dropdown dropdown-extended dropdown-notification dropdown-dark"  
224 - id="header_notification_bar"><a href="javascript:;"  
225 - class="dropdown-toggle" data-toggle="dropdown"  
226 - data-hover="dropdown" data-close-others="true"> <i  
227 - class="fa fa-bell"></i> <span class="badge badge-success"> 216 + class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo page-sidebar-fixed">
  217 + <div class="page-header navbar navbar-fixed-top"
  218 + style="background: linear-gradient(to bottom, #124e78, #125688);">
  219 + <div class="page-header-inner ">
  220 + <!-- LOGO -->
  221 + <div class="page-logo">
  222 + <a href="index.html" class="logo-default logo-default-text">
  223 + 闵行公交调度系统 </a>
  224 + <div class="menu-toggler sidebar-toggler"></div>
  225 + </div>
  226 + <!-- END LOGO -->
  227 + <a href="javascript:;" class="menu-toggler responsive-toggler"
  228 + data-toggle="collapse" data-target=".navbar-collapse"> </a>
  229 + <div class="page-top">
  230 + <div class="top-menu">
  231 + <ul class="nav navbar-nav pull-right">
  232 + <!-- 信息通知区 -->
  233 + <li
  234 + class="dropdown dropdown-extended dropdown-notification dropdown-dark"
  235 + id="header_notification_bar"><a href="javascript:;"
  236 + class="dropdown-toggle" data-toggle="dropdown"
  237 + data-hover="dropdown" data-close-others="true"> <i
  238 + class="fa fa-bell"></i> <span class="badge badge-success">
228 0 </span> 239 0 </span>
229 - </a>  
230 - <ul class="dropdown-menu" style="max-width: 345px; width: 345px;">  
231 - <li class="external">  
232 - <h3>  
233 - 今日 <span class="bold">0 条</span> 通知  
234 - </h3> <a href="javascript:;">查看全部</a>  
235 - </li>  
236 - <li>  
237 - <ul class="dropdown-menu-list scroller" style="height: 250px;"  
238 - data-handle-color="#637283">  
239 - </ul>  
240 - </li>  
241 - </ul></li>  
242 - <li class="dropdown dropdown-user dropdown-dark"><a  
243 - href="javascript:;" class="dropdown-toggle"  
244 - data-toggle="dropdown" data-hover="dropdown"  
245 - data-close-others="true"> <span id="indexTopUName"  
246 - class="username username-hide-on-mobile"  
247 - style="vertical-align: middle;"> <i class="fa fa-user"></i></span>  
248 - </a>  
249 - <ul class="dropdown-menu dropdown-menu-default">  
250 - <li><a href="javascript:;"> <i class="fa fa-user"></i>  
251 - 我的信息  
252 - </a></li>  
253 - <li><a href="javascript:;" id="changePWD"> <i  
254 - class="fa fa-unlock-alt"></i> 修改密码  
255 - </a></li>  
256 - <li class="divider"></li>  
257 - <li><a href="javascript:;"> <i class="fa fa-lock"></i>  
258 - 锁屏  
259 - </a></li>  
260 - <li><a href="/logout"> <i class="fa fa-key"></i> 注销登陆  
261 - </a></li>  
262 - </ul></li>  
263 - </ul>  
264 - </div>  
265 - </div>  
266 - </div>  
267 -</div>  
268 -<div class="page-container">  
269 - <div class="page-sidebar-wrapper">  
270 - <div class="page-sidebar navbar-collapse collapse">  
271 - <ul class="page-sidebar-menu page-sidebar-menu-fixed"  
272 - data-keep-expanded="false" data-auto-scroll="true"  
273 - data-slide-speed="200" id="leftMenuSidebar">  
274 - </ul>  
275 - </div>  
276 - </div>  
277 - <div class="page-content-wrapper">  
278 - <div id="pjax-container" class="page-content"></div>  
279 -  
280 - <div id="route-container">  
281 - <div ng-app="ScheduleApp">  
282 - <div ng-controller="ScheduleAppController">  
283 -  
284 - <!-- loading widget -->  
285 - <div id="loadingWidget" class="flyover mask" loading-widget>  
286 - <div class="alert alert-info">  
287 - <strong>载入中......</strong>  
288 - </div>  
289 - </div>  
290 -  
291 - <div ui-view class="uv"></div>  
292 - </div>  
293 - </div>  
294 - </div>  
295 - </div>  
296 -</div>  
297 -  
298 -<script id="menu_list_temp" type="text/html"> 240 + </a>
  241 + <ul class="dropdown-menu" style="max-width: 345px; width: 345px;">
  242 + <li class="external">
  243 + <h3>
  244 + 今日 <span class="bold">0 条</span> 通知
  245 + </h3> <a href="javascript:;">查看全部</a>
  246 + </li>
  247 + <li>
  248 + <ul class="dropdown-menu-list scroller" style="height: 250px;"
  249 + data-handle-color="#637283">
  250 + </ul>
  251 + </li>
  252 + </ul></li>
  253 + <li class="dropdown dropdown-user dropdown-dark"><a
  254 + href="javascript:;" class="dropdown-toggle"
  255 + data-toggle="dropdown" data-hover="dropdown"
  256 + data-close-others="true"> <span id="indexTopUName"
  257 + class="username username-hide-on-mobile"
  258 + style="vertical-align: middle;"> <i class="fa fa-user"></i></span>
  259 + </a>
  260 + <ul class="dropdown-menu dropdown-menu-default">
  261 + <li><a href="javascript:;"> <i class="fa fa-user"></i>
  262 + 我的信息
  263 + </a></li>
  264 + <li><a href="javascript:;" id="changePWD"> <i
  265 + class="fa fa-unlock-alt"></i> 修改密码
  266 + </a></li>
  267 + <li class="divider"></li>
  268 + <li><a href="javascript:;"> <i class="fa fa-lock"></i>
  269 + 锁屏
  270 + </a></li>
  271 + <li><a href="/logout"> <i class="fa fa-key"></i> 注销登陆
  272 + </a></li>
  273 + </ul></li>
  274 + </ul>
  275 + </div>
  276 + </div>
  277 + </div>
  278 + </div>
  279 + <div class="page-container">
  280 + <div class="page-sidebar-wrapper">
  281 + <div class="page-sidebar navbar-collapse collapse">
  282 + <ul class="page-sidebar-menu page-sidebar-menu-fixed"
  283 + data-keep-expanded="false" data-auto-scroll="true"
  284 + data-slide-speed="200" id="leftMenuSidebar">
  285 + </ul>
  286 + </div>
  287 + </div>
  288 + <div class="page-content-wrapper">
  289 + <div id="pjax-container" class="page-content"></div>
  290 +
  291 + <div id="route-container">
  292 + <div ng-app="ScheduleApp">
  293 + <div ng-controller="ScheduleAppController">
  294 +
  295 + <!-- loading widget -->
  296 + <div id="loadingWidget" class="flyover mask" loading-widget>
  297 + <div class="alert alert-info">
  298 + <strong>载入中......</strong>
  299 + </div>
  300 + </div>
  301 +
  302 + <div ui-view class="uv"></div>
  303 + </div>
  304 + </div>
  305 + </div>
  306 + </div>
  307 + </div>
  308 +
  309 + <script id="menu_list_temp" type="text/html">
299 {{each list as group i}} 310 {{each list as group i}}
300 <li class="heading"> 311 <li class="heading">
301 <h3 class="uppercase">{{group.name}}</h3> 312 <h3 class="uppercase">{{group.name}}</h3>
@@ -327,83 +338,83 @@ @@ -327,83 +338,83 @@
327 {{/each}} 338 {{/each}}
328 339
329 </script> 340 </script>
330 -<script> 341 + <script>
331 delete window.require; 342 delete window.require;
332 delete window.exports; 343 delete window.exports;
333 delete window.module; 344 delete window.module;
334 </script> 345 </script>
335 -<!-- jQuery -->  
336 -<script src="/metronic_v4.5.4/plugins/jquery.min.js" data-exclude=1></script>  
337 -<!-- bootstrap -->  
338 -<script src="/metronic_v4.5.4/plugins/bootstrap/js/bootstrap.min.js"  
339 - data-exclude=1></script>  
340 -<script src="/pages/forms/statement/js/jquery.autocompleter.js"></script>  
341 -<script src="/pages/forms/statement/js/jquery.PrintArea.js"></script>  
342 -<!-- MTRONIC JS -->  
343 -<script src="/metronic_v4.5.4/scripts/app.min.js" data-exclude=1></script>  
344 -<script src="/metronic_v4.5.4/layout4/scripts/layout.min.js"  
345 - data-exclude=1></script>  
346 -<!-- 虚拟滚动条 -->  
347 -<script  
348 - src="/metronic_v4.5.4/plugins/jquery-slimscroll/jquery.slimscroll.min.js"></script>  
349 -<!-- jsTree 树插件 -->  
350 -<script src="/metronic_v4.5.4/plugins/jstree/dist/jstree.min.js"></script>  
351 -<!-- bootstrap-hover-dropDown -->  
352 -<script  
353 - src="/metronic_v4.5.4/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js"></script>  
354 -<!-- jquery.validate 表单验证 -->  
355 -<script  
356 - src="/metronic_v4.5.4/plugins/jquery-validation/js/jquery.validate.min.js"></script>  
357 -<script  
358 - src="/metronic_v4.5.4/plugins/jquery-validation/js/localization/messages_zh.js"></script>  
359 -<!-- 向导式插件 -->  
360 -<script  
361 - src="/metronic_v4.5.4//plugins/bootstrap-wizard/jquery.bootstrap.wizard.min.js"></script>  
362 -<!-- iCheck 单选框和复选框 -->  
363 -<script src="/metronic_v4.5.4/plugins/icheck/icheck.min.js"></script>  
364 -<!-- select2 下拉框 -->  
365 -<script src="/metronic_v4.5.4/plugins/select2/js/select2.full.min.js"></script>  
366 -<!-- MULTI SELECT 多选下拉框 -->  
367 -<script  
368 - src="/metronic_v4.5.4/plugins/jquery-multi-select/js/jquery.multi-select.js"></script>  
369 -<!-- editable.js -->  
370 -<script  
371 - src="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/js/bootstrap-editable.min.js"></script>  
372 -<!-- PJAX -->  
373 -<script src="/assets/plugins/jquery.pjax.js"></script>  
374 -<!-- layer 弹层 -->  
375 -<script src="/assets/plugins/layer-v2.4/layer/layer.js" data-exclude=1></script>  
376 -<!-- fileinput 上传 -->  
377 -<script src="/assets/plugins/fileinput/canvas-to-blob.min.js"></script>  
378 -<script src="/assets/plugins/fileinput/purify.min.js"></script>  
379 -<script src="/assets/plugins/fileinput/sortable.min.js"></script>  
380 -<script src="/assets/plugins/fileinput/fileinput.min.js"></script>  
381 -<script src="/assets/plugins/fileinput/fileinput_locale_zh.js"></script>  
382 -<!-- jquery.purl URL解析 -->  
383 -<script src="/assets/plugins/purl.js"></script>  
384 -<!-- jquery.serializejson JSON序列化插件 -->  
385 -<script src="/assets/plugins/jquery.serializejson.js"></script>  
386 -<!-- art-template 模版引擎 -->  
387 -<script src="/assets/plugins/template.js"></script>  
388 -<!-- jquery.pageinator 分页 -->  
389 -<script src="/assets/plugins/jqPaginator.min.js"></script>  
390 -<!-- moment.js 日期处理类库 -->  
391 -<script src="/assets/plugins/moment-with-locales.js"></script>  
392 -  
393 -<script src="/assets/plugins/pinyin.js"></script>  
394 -<!-- 日期控件 -->  
395 -<script  
396 - src="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js"></script>  
397 -<!-- 表格控件 -->  
398 -<script src="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js"></script>  
399 -<!-- 统计图控件 -->  
400 -<!--<script src="/assets/global/getEchart.js"></script>  
401 -<script src="/assets/global/echarts.js"></script> -->  
402 -<script src="/assets/js/common.js"></script>  
403 -<script src="/assets/js/dictionary.js"></script>  
404 -<!-- tipso JS -->  
405 -<script src="/metronic_v4.5.4/plugins/tipso/js/tipso.js"></script>  
406 -<script data-exclude=1> 346 + <!-- jQuery -->
  347 + <script src="/metronic_v4.5.4/plugins/jquery.min.js" data-exclude=1></script>
  348 + <!-- bootstrap -->
  349 + <script src="/metronic_v4.5.4/plugins/bootstrap/js/bootstrap.min.js"
  350 + data-exclude=1></script>
  351 + <script src="/pages/forms/statement/js/jquery.autocompleter.js"></script>
  352 + <script src="/pages/forms/statement/js/jquery.PrintArea.js"></script>
  353 + <!-- MTRONIC JS -->
  354 + <script src="/metronic_v4.5.4/scripts/app.min.js" data-exclude=1></script>
  355 + <script src="/metronic_v4.5.4/layout4/scripts/layout.min.js"
  356 + data-exclude=1></script>
  357 + <!-- 虚拟滚动条 -->
  358 + <script
  359 + src="/metronic_v4.5.4/plugins/jquery-slimscroll/jquery.slimscroll.min.js"></script>
  360 + <!-- jsTree 树插件 -->
  361 + <script src="/metronic_v4.5.4/plugins/jstree/dist/jstree.min.js"></script>
  362 + <!-- bootstrap-hover-dropDown -->
  363 + <script
  364 + src="/metronic_v4.5.4/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js"></script>
  365 + <!-- jquery.validate 表单验证 -->
  366 + <script
  367 + src="/metronic_v4.5.4/plugins/jquery-validation/js/jquery.validate.min.js"></script>
  368 + <script
  369 + src="/metronic_v4.5.4/plugins/jquery-validation/js/localization/messages_zh.js"></script>
  370 + <!-- 向导式插件 -->
  371 + <script
  372 + src="/metronic_v4.5.4//plugins/bootstrap-wizard/jquery.bootstrap.wizard.min.js"></script>
  373 + <!-- iCheck 单选框和复选框 -->
  374 + <script src="/metronic_v4.5.4/plugins/icheck/icheck.min.js"></script>
  375 + <!-- select2 下拉框 -->
  376 + <script src="/metronic_v4.5.4/plugins/select2/js/select2.full.min.js"></script>
  377 + <!-- MULTI SELECT 多选下拉框 -->
  378 + <script
  379 + src="/metronic_v4.5.4/plugins/jquery-multi-select/js/jquery.multi-select.js"></script>
  380 + <!-- editable.js -->
  381 + <script
  382 + src="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/js/bootstrap-editable.min.js"></script>
  383 + <!-- PJAX -->
  384 + <script src="/assets/plugins/jquery.pjax.js"></script>
  385 + <!-- layer 弹层 -->
  386 + <script src="/assets/plugins/layer-v2.4/layer/layer.js" data-exclude=1></script>
  387 + <!-- fileinput 上传 -->
  388 + <script src="/assets/plugins/fileinput/canvas-to-blob.min.js"></script>
  389 + <script src="/assets/plugins/fileinput/purify.min.js"></script>
  390 + <script src="/assets/plugins/fileinput/sortable.min.js"></script>
  391 + <script src="/assets/plugins/fileinput/fileinput.min.js"></script>
  392 + <script src="/assets/plugins/fileinput/fileinput_locale_zh.js"></script>
  393 + <!-- jquery.purl URL解析 -->
  394 + <script src="/assets/plugins/purl.js"></script>
  395 + <!-- jquery.serializejson JSON序列化插件 -->
  396 + <script src="/assets/plugins/jquery.serializejson.js"></script>
  397 + <!-- art-template 模版引擎 -->
  398 + <script src="/assets/plugins/template.js"></script>
  399 + <!-- jquery.pageinator 分页 -->
  400 + <script src="/assets/plugins/jqPaginator.min.js"></script>
  401 + <!-- moment.js 日期处理类库 -->
  402 + <script src="/assets/plugins/moment-with-locales.js"></script>
  403 +
  404 + <script src="/assets/plugins/pinyin.js"></script>
  405 + <!-- 日期控件 -->
  406 + <script
  407 + src="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js"></script>
  408 + <!-- 表格控件 -->
  409 + <script src="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js"></script>
  410 + <!-- 统计图控件 -->
  411 + <!--<script src="/assets/global/getEchart.js"></script>
  412 + <script src="/assets/global/echarts.js"></script> -->
  413 + <script src="/assets/js/common.js"></script>
  414 + <script src="/assets/js/dictionary.js"></script>
  415 + <!-- tipso JS -->
  416 + <script src="/metronic_v4.5.4/plugins/tipso/js/tipso.js"></script>
  417 + <script data-exclude=1>
407 //初始打开的片段地址 418 //初始打开的片段地址
408 var initFragment = "^_^initFragment^_^"; 419 var initFragment = "^_^initFragment^_^";
409 //静态文件目录 420 //静态文件目录
@@ -545,79 +556,82 @@ @@ -545,79 +556,82 @@
545 } 556 }
546 557
547 </script> 558 </script>
548 -<!-- d3 -->  
549 -<script src="/assets/js/d3.min.js" data-exclude=1></script>  
550 -<!-- webSocket JS -->  
551 -<script src="/assets/js/sockjs.min.js"></script>  
552 -  
553 -<!-- TODO:angularJS相关库 -->  
554 -  
555 -<!-- angularJS相关库 -->  
556 -<!-- 这个是基于angularjs 1.4.10修改的版本,主要是修改了history控制部分,用于兼容route和pjax的同时操作history的冲突 -->  
557 -<script src="/assets/js/angular.js" data-autocephaly=1></script>  
558 -<script src="/assets/bower_components/angular-i18n/angular-locale_zh-cn.js" data-autocephaly=1></script>  
559 -<script  
560 - src="/assets/bower_components/angular-resource/angular-resource.min.js"  
561 - data-exclude=1></script>  
562 -<script  
563 - src="/assets/bower_components/angular-sanitize/angular-sanitize.min.js"  
564 - data-exclude=1></script>  
565 -<script 559 + <!-- d3 -->
  560 + <script src="/assets/js/d3.min.js" data-exclude=1></script>
  561 + <!-- webSocket JS -->
  562 + <script src="/assets/js/sockjs.min.js"></script>
  563 +
  564 + <!-- TODO:angularJS相关库 -->
  565 +
  566 + <!-- angularJS相关库 -->
  567 + <!-- 这个是基于angularjs 1.4.10修改的版本,主要是修改了history控制部分,用于兼容route和pjax的同时操作history的冲突 -->
  568 + <script src="/assets/js/angular.js" data-autocephaly=1></script>
  569 + <script src="/assets/bower_components/angular-i18n/angular-locale_zh-cn.js" data-autocephaly=1></script>
  570 + <script
  571 + src="/assets/bower_components/angular-resource/angular-resource.min.js"
  572 + data-exclude=1></script>
  573 + <script
  574 + src="/assets/bower_components/angular-sanitize/angular-sanitize.min.js"
  575 + data-exclude=1></script>
  576 + <script
566 src="/assets/bower_components/angular-animate/angular-animate.min.js" 577 src="/assets/bower_components/angular-animate/angular-animate.min.js"
567 data-exclude=1></script> 578 data-exclude=1></script>
568 -<script  
569 - src="/assets/bower_components/angular-touch/angular-touch.min.js"  
570 - data-exclude=1></script>  
571 -<script  
572 - src="/assets/bower_components/angular-ui-router/release/angular-ui-router.min.js"  
573 - data-exclude=1></script>  
574 -<script  
575 - src="/assets/bower_components/oclazyload/dist/ocLazyLoad.min.js"  
576 - data-exclude=1></script>  
577 -<script  
578 - src="/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"  
579 - data-exclude=1></script>  
580 -<!-- handsontable相关js -->  
581 -<script  
582 - src="/assets/bower_components/handsontable/dist/handsontable.full.js"></script>  
583 -<script  
584 - src="/assets/bower_components/ngHandsontable/dist/ngHandsontable.js"></script>  
585 -<!-- sweetalert相关js -->  
586 -<script src="/assets/bower_components/sweetalert/dist/sweetalert.min.js"></script>  
587 -<script src="/assets/bower_components/ng-sweet-alert/ng-sweet-alert.js"></script>  
588 -  
589 -<!-- schedule计划调度AngularJS模块主JS -->  
590 -<script src="/pages/scheduleApp/module/common/main.js" data-exclude=1></script>  
591 -<script  
592 - src="/pages/scheduleApp/module/common/prj-common-globalservice.js"  
593 - data-exclude=1></script>  
594 -<script src="/pages/scheduleApp/module/common/prj-common-filter.js"  
595 - data-exclude=1></script>  
596 -<script src="/pages/scheduleApp/module/common/prj-common-directive.js"  
597 - data-exclude=1></script>  
598 -<script  
599 - src="/pages/scheduleApp/module/common/prj-common-ui-route-state.js"  
600 - data-exclude=1></script>  
601 -  
602 -<!-- 地图相关 -->  
603 -<!-- 百度 -->  
604 -<script  
605 - src="http://api.map.baidu.com/api?v=2.0&ak=IGGrr4UjwIYzatoCRFKEL8sT"  
606 - data-exclude=1></script>  
607 -<script  
608 - src="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.js"  
609 - data-exclude=1></script>  
610 -<script type="text/javascript"  
611 - src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"  
612 - data-exclude=1></script>  
613 -<script type="text/javascript"  
614 - src="http://api.map.baidu.com/library/RichMarker/1.2/src/RichMarker_min.js "  
615 - data-exclude=1></script>  
616 -<script src="/assets/js/baidu/TextIconOverlay.js" data-exclude=1></script>  
617 -<script src="/assets/js/baidu//MarkerClusterer.js" data-exclude=1></script>  
618 -<!-- 高德 -->  
619 -<script  
620 - src="http://webapi.amap.com/maps?v=1.3&key=16cb1c5043847e09ef9edafdd77befda"  
621 - data-exclude=1></script> 579 + <script
  580 + src="/assets/bower_components/angular-touch/angular-touch.min.js"
  581 + data-exclude=1></script>
  582 + <script
  583 + src="/assets/bower_components/angular-ui-router/release/angular-ui-router.min.js"
  584 + data-exclude=1></script>
  585 + <script
  586 + src="/assets/bower_components/oclazyload/dist/ocLazyLoad.min.js"
  587 + data-exclude=1></script>
  588 + <script
  589 + src="/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"
  590 + data-exclude=1></script>
  591 + <!-- handsontable相关js -->
  592 + <script
  593 + src="/assets/bower_components/handsontable/dist/handsontable.full.js"></script>
  594 + <script
  595 + src="/assets/bower_components/ngHandsontable/dist/ngHandsontable.js"></script>
  596 + <!-- sweetalert相关js -->
  597 + <script src="/assets/bower_components/sweetalert/dist/sweetalert.min.js"></script>
  598 + <script src="/assets/bower_components/ng-sweet-alert/ng-sweet-alert.js"></script>
  599 +
  600 + <!-- schedule计划调度AngularJS模块主JS -->
  601 + <script src="/pages/scheduleApp/module/common/main.js" data-exclude=1></script>
  602 + <script
  603 + src="/pages/scheduleApp/module/common/prj-common-globalservice.js"
  604 + data-exclude=1></script>
  605 + <script src="/pages/scheduleApp/module/common/prj-common-filter.js"
  606 + data-exclude=1></script>
  607 + <script src="/pages/scheduleApp/module/common/prj-common-directive.js"
  608 + data-exclude=1></script>
  609 + <script
  610 + src="/pages/scheduleApp/module/common/prj-common-ui-route-state.js"
  611 + data-exclude=1></script>
  612 +
  613 + <!-- 地图相关 -->
  614 + <!-- 百度 -->
  615 + <script
  616 + src="http://api.map.baidu.com/api?v=2.0&ak=IGGrr4UjwIYzatoCRFKEL8sT"
  617 + data-exclude=1></script>
  618 + <script
  619 + src="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.js"
  620 + data-exclude=1></script>
  621 + <script type="text/javascript"
  622 + src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"
  623 + data-exclude=1></script>
  624 + <script type="text/javascript"
  625 + src="http://api.map.baidu.com/library/RichMarker/1.2/src/RichMarker_min.js "
  626 + data-exclude=1></script>
  627 + <script src="/assets/js/baidu/TextIconOverlay.js" data-exclude=1></script>
  628 + <script src="/assets/js/baidu//MarkerClusterer.js" data-exclude=1></script>
  629 + <!-- 高德 -->
  630 + <script
  631 + src="http://webapi.amap.com/maps?v=1.3&key=16cb1c5043847e09ef9edafdd77befda"
  632 + data-exclude=1></script>
  633 +
  634 + <script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" merge="plugins"></script>
  635 +
622 </body> 636 </body>
623 </html> 637 </html>
624 \ No newline at end of file 638 \ No newline at end of file
src/main/resources/static/pages/base/line/js/line-edit-form.js
@@ -100,7 +100,6 @@ @@ -100,7 +100,6 @@
100 selectTemp(function(){ 100 selectTemp(function(){
101 /** 根据ID查询详细信息 */ 101 /** 根据ID查询详细信息 */
102 $get('/line/' + lineId ,null, function(result){ 102 $get('/line/' + lineId ,null, function(result){
103 - debugger;  
104 // 如果不为空 103 // 如果不为空
105 if(result) { 104 if(result) {
106 // 定义日期格式 105 // 定义日期格式
@@ -244,20 +243,6 @@ @@ -244,20 +243,6 @@
244 if(lineCode[0].id == lineId) { 243 if(lineCode[0].id == lineId) {
245 // 提交 244 // 提交
246 submit(); 245 submit();
247 - } else {  
248 - /*// 定义已有的线路编码  
249 - var oldCode = params.lineCode;  
250 - // 重新设置提交参数线路编码值  
251 - params.lineCode = lineId;  
252 - // 弹出选择框;确认则提交;取消则返回  
253 - layer.confirm('线路编码【'+oldCode+'】已存在!自动顺延为如下:<br>线路编码:'+lineId, {  
254 - btn : [ '确认提示并提交', '取消' ]  
255 - }, submit);  
256 - */  
257 - layer.open({  
258 - title: '消息提示'  
259 - ,content: '线路编码【'+params.lineCode+'】已存在,请重新输入编码!'  
260 - });  
261 } 246 }
262 } else { 247 } else {
263 // 提交 248 // 提交
@@ -267,16 +252,16 @@ @@ -267,16 +252,16 @@
267 // 提交 252 // 提交
268 function submit() { 253 function submit() {
269 // 添加数据 254 // 添加数据
270 - $post('/line', params, function(result) { 255 + $post('/line/update', params, function(result) {
271 // 如果返回结果不为空 256 // 如果返回结果不为空
272 if(result){ 257 if(result){
273 // 返回状态码为"SUCCESS" ,则添加成功;返回状态码为"ERROR" ,则添加失败 258 // 返回状态码为"SUCCESS" ,则添加成功;返回状态码为"ERROR" ,则添加失败
274 if(result.status=='SUCCESS') { 259 if(result.status=='SUCCESS') {
275 // 弹出添加成功提示消息 260 // 弹出添加成功提示消息
276 - layer.msg('添加成功...'); 261 + layer.msg('修改成功...');
277 } else if(result.status=='ERROR') { 262 } else if(result.status=='ERROR') {
278 // 弹出添加失败提示消息 263 // 弹出添加失败提示消息
279 - layer.msg('添加失败...'); 264 + layer.msg('修改失败...');
280 } 265 }
281 } 266 }
282 // 返回list.html页面 267 // 返回list.html页面
src/main/resources/static/pages/base/station/js/station-list-edit.js
@@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
7 */ 7 */
8 8
9 (function(){ 9 (function(){
  10 + // 关闭左侧栏
  11 + if (!$('body').hasClass('page-sidebar-closed')) {$('.menu-toggler.sidebar-toggler').click();}
10 // 获取参站点路由路ID 12 // 获取参站点路由路ID
11 var no = []; 13 var no = [];
12 no = $.url().param('no').split(","); 14 no = $.url().param('no').split(",");
src/main/resources/static/pages/electricity/list/list.html
@@ -190,7 +190,7 @@ @@ -190,7 +190,7 @@
190 190
191 </td> 191 </td>
192 <td> 192 <td>
193 - {{obj.jsy}} 193 + {{obj.jsy}}/{{obj.name}}
194 </td> 194 </td>
195 <td> 195 <td>
196 196
src/main/resources/static/pages/forms/mould/jobSummary.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/jobSummary.html
@@ -121,69 +121,9 @@ @@ -121,69 +121,9 @@
121 <td colspan="3">6:31~8:30</td> 121 <td colspan="3">6:31~8:30</td>
122 <td colspan="3">16:01~18:00</td> 122 <td colspan="3">16:01~18:00</td>
123 </tr> 123 </tr>
124 - <tr>  
125 - <td colspan="2">班次</td>  
126 - <td><label id="jhbc"></label></td>  
127 - <td><label id="sjbc"></label></td>  
128 - <td colspan="3">&nbsp;</td>  
129 - <td colspan="3">&nbsp;</td>  
130 - </tr>  
131 - <tr>  
132 - <td colspan="2">公里</td>  
133 - <td><label id="jhgl"></label></td>  
134 - <td><label id="sjgl"></label></td>  
135 - <td colspan="3">&nbsp;</td>  
136 - <td colspan="3">&nbsp;</td>  
137 - </tr>  
138 - <tr>  
139 - <td colspan="2">临加</td>  
140 - <td>&nbsp;</td>  
141 - <td><label id="sjljgl"></label></td>  
142 - <td colspan="3">&nbsp;</td>  
143 - <td colspan="3">&nbsp;</td>  
144 - </tr>  
145 - <tr>  
146 - <td colspan="2">上行快误点</td>  
147 - <td>&nbsp;</td>  
148 - <td>&nbsp;</td>  
149 - <td colspan="3">&nbsp;</td>  
150 - <td colspan="3">&nbsp;</td>  
151 - </tr>  
152 - <tr>  
153 - <td colspan="2">上行慢误点</td>  
154 - <td>&nbsp;</td>  
155 - <td>&nbsp;</td>  
156 - <td colspan="3">&nbsp;</td>  
157 - <td colspan="3">&nbsp;</td>  
158 - </tr>  
159 - <tr>  
160 - <td colspan="2">下行快误点</td>  
161 - <td>&nbsp;</td>  
162 - <td>&nbsp;</td>  
163 - <td colspan="3">&nbsp;</td>  
164 - <td colspan="3">&nbsp;</td>  
165 - </tr>  
166 - <tr>  
167 - <td colspan="2">下行慢误点</td>  
168 - <td>&nbsp;</td>  
169 - <td>&nbsp;</td>  
170 - <td colspan="3">&nbsp;</td>  
171 - <td colspan="3">&nbsp;</td>  
172 - </tr>  
173 - <tr>  
174 - <td colspan="2">放班班次</td>  
175 - <td>&nbsp;</td>  
176 - <td>&nbsp;</td>  
177 - <td colspan="3">&nbsp;</td>  
178 - <td colspan="3">&nbsp;</td>  
179 - </tr>  
180 - <tr>  
181 - <td colspan="2">调头班次</td>  
182 - <td>&nbsp;</td>  
183 - <td>&nbsp;</td>  
184 - <td colspan="3">&nbsp;</td>  
185 - <td colspan="3">&nbsp;</td>  
186 - </tr> 124 + <tbody class="list_xxsj">
  125 +
  126 + </tbody>
187 </table> 127 </table>
188 </div> 128 </div>
189 </div> 129 </div>
@@ -327,25 +267,16 @@ @@ -327,25 +267,16 @@
327 }) 267 })
328 268
329 $get('/report/jobLjqk',{line:line,date:date},function(result){ 269 $get('/report/jobLjqk',{line:line,date:date},function(result){
330 - var list_lbqk = template('list_ljqk',{list:result}); 270 + var list_ljqk = template('list_ljqk',{list:result});
331 // 把渲染好的模版html文本追加到表格中 271 // 把渲染好的模版html文本追加到表格中
332 - $('#forms .list_ljqk').html(list_lbqk); 272 + $('#forms .list_ljqk').html(list_ljqk);
333 }) 273 })
334 274
335 $get('/report/jobHzxx',{line:line,date:date},function(result){ 275 $get('/report/jobHzxx',{line:line,date:date},function(result){
336 - $("#jhbc").html(result.jhbc);  
337 - $("#sjbc").html(result.sjbc)  
338 - $("#jhgl").html(result.jhgl);  
339 - $("#sjgl").html(result.sjgl)  
340 - $("#sjljgl").html(result.ljgl);  
341 -  
342 - //临加  
343 - $("#ljbcs").html(result.ljbc);  
344 - $("#ljgls").html(result.ljgl)  
345 -  
346 - //烂班  
347 - $("#lbbcs").html(result.lbbc);  
348 - $("#lbgls").html(result.lbgl) 276 + console
  277 + var list_xxsj=template('list_xxsj',result);
  278 + $('#forms .list_xxsj').html(list_xxsj);
  279 +
349 }) 280 })
350 281
351 } 282 }
@@ -413,3 +344,69 @@ @@ -413,3 +344,69 @@
413 </tr> 344 </tr>
414 {{/if}} 345 {{/if}}
415 </script> 346 </script>
  347 +
  348 +<script type="text/html" id="list_xxsj">
  349 + <tr>
  350 + <td colspan="2">班次</td>
  351 + <td>{{jhbc}}</td>
  352 + <td>{{sjbc}}</td>
  353 + <td colspan="3">{{sjbczgf}}</td>
  354 + <td colspan="3">{{sjbcwgf}}</td>
  355 + </tr>
  356 + <tr>
  357 + <td colspan="2">公里</td>
  358 + <td>{{jhgl}}</td>
  359 + <td>{{sjgl}}</td>
  360 + <td colspan="3">{{sjglzgf}}</td>
  361 + <td colspan="3">{{sjglwgf}}</td>
  362 + </tr>
  363 + <tr>
  364 + <td colspan="2">临加</td>
  365 + <td>&nbsp;</td>
  366 + <td>{{ljgl}}</td>
  367 + <td colspan="3">{{ljglzgf}}</td>
  368 + <td colspan="3">{{ljglwgf}}</td>
  369 + </tr>
  370 + <tr>
  371 + <td colspan="2">上行快误点</td>
  372 + <td>&nbsp;</td>
  373 + <td>{{sxk}}</td>
  374 + <td colspan="3">{{sxkzgf}}</td>
  375 + <td colspan="3">{{sxkwgf}}</td>
  376 + </tr>
  377 + <tr>
  378 + <td colspan="2">上行慢误点</td>
  379 + <td></td>
  380 + <td>{{sxm}}</td>
  381 + <td colspan="3">{{sxmzgf}}</td>
  382 + <td colspan="3">{{sxmwgf}}</td>
  383 + </tr>
  384 + <tr>
  385 + <td colspan="2">下行快误点</td>
  386 + <td>&nbsp;</td>
  387 + <td>{{xxk}}</td>
  388 + <td colspan="3">{{xxkzgf}}</td>
  389 + <td colspan="3">{{xxkwgf}}</td>
  390 + </tr>
  391 + <tr>
  392 + <td colspan="2">下行慢误点</td>
  393 + <td>&nbsp;</td>
  394 + <td>{{xxm}}</td>
  395 + <td colspan="3">{{xxmzgf}}</td>
  396 + <td colspan="3">{{xxmwgf}}</td>
  397 + </tr>
  398 + <tr>
  399 + <td colspan="2">放班班次</td>
  400 + <td>{{jhfbbc}}</td>
  401 + <td>{{sjfbbc}}</td>
  402 + <td colspan="3">{{sjfbbczgf}}</td>
  403 + <td colspan="3">{{sjfbbcwgf}}</td>
  404 + </tr>
  405 + <tr>
  406 + <td colspan="2">调头班次</td>
  407 + <td>{{jhdtbc}}</td>
  408 + <td>{{sjdtbc}}</td>
  409 + <td colspan="3">{{sjdtbczgf}}</td>
  410 + <td colspan="3">{{sjdtbcwgf}}</td>
  411 + </tr>
  412 +</script>
src/main/resources/static/pages/oil/list_ph.html
@@ -1049,8 +1049,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -1049,8 +1049,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
1049 } 1049 }
1050 function moveDown(){ 1050 function moveDown(){
1051 var row=mouseInfo["row"]; 1051 var row=mouseInfo["row"];
1052 - var col=mouseInfo["col"];  
1053 - 1052 + var col=mouseInfo["col"];
1054 var key=moveArray[parseInt(row)+1][col]; 1053 var key=moveArray[parseInt(row)+1][col];
1055 if(document.getElementById(key)!=undefined) 1054 if(document.getElementById(key)!=undefined)
1056 { 1055 {
src/main/resources/static/pages/summary/fast_and_slow/data.html
1 <div class="ct_data_body_wrap"> 1 <div class="ct_data_body_wrap">
2 <div class="uk-card uk-card-default uk-card-body ct_rq_left"> 2 <div class="uk-card uk-card-default uk-card-body ct_rq_left">
3 - <ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100"  
4 - class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">  
5 - <li class="uk-active"><a href="#table_20171010">2017-10-10</a></li>  
6 - <li><a href="#table_20171011">2017-10-11</a></li>  
7 - <li><a href="#table_20171012">2017-10-12</a></li>  
8 - <li><a href="#table_20171013">2017-10-13</a></li>  
9 - <li><a href="#table_20171014">2017-10-14</a></li>  
10 - <li><a href="#table_20171015">2017-10-15</a></li>  
11 - <li><a href="#table_20171016">2017-10-16</a></li>  
12 - </ul> 3 + <ul uk-scrollspy-nav="closest: li; scroll: true; " class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon"></ul>
13 </div> 4 </div>
14 5
15 - <div class="uk-card uk-card-default uk-card-body ct_right_tables">  
16 - <div id="table_20171010">  
17 - <table> 6 + <div class="uk-card uk-card-default uk-card-body ct_right_tables" >
18 7
19 - </table>  
20 - </div>  
21 </div> 8 </div>
22 9
  10 + <script id="fast_and_slow_left_rq_temp" type="text/html">
  11 + {{each listMap as obj k}}
  12 + <li><a href="#table_{{k}}">{{k}}</a></li>
  13 + {{/each}}
  14 + </script>
  15 +
  16 + <script id="fast_and_slow_right_body_temp" type="text/html">
  17 + <div>
  18 + {{each listMap as obj k}}
  19 + <h2 id="table_{{k}}">{{k}}</h2>
  20 + <div class="data_table_wrap">
  21 + <table cellspacing="1" class="data_table">
  22 + <col />
  23 + <col width="14%"/>
  24 + <col width="4%"/>
  25 + <col width="6%"/>
  26 + <col width="6%"/>
  27 + <col width="6%"/>
  28 + <col width="5%"/>
  29 + <col width="5%"/>
  30 + <col width="5%"/>
  31 + <col width="5%"/>
  32 + <col width="6%"/>
  33 + <col width="6%"/>
  34 + <col width="6%"/>
  35 + <col width="5%"/>
  36 + <col width="5%"/>
  37 + <col width="5%"/>
  38 + <col width="5%"/>
  39 + <tr>
  40 + <td rowspan="3">序号</td>
  41 + <td rowspan="3">发车站点</td>
  42 + <td rowspan="3">方向</td>
  43 + <td colspan="7">发车时间</td>
  44 + <td colspan="7">到达时间</td>
  45 + </tr>
  46 + <tr>
  47 + <td rowspan="2">计划发车<br>时间</td>
  48 + <td rowspan="2">待发发车<br>时间</td>
  49 + <td rowspan="2">实际发车<br>时间</td>
  50 + <td colspan="2">计划</td>
  51 + <td colspan="2">待发</td>
  52 + <td rowspan="2">计划应到<br>时间</td>
  53 + <td rowspan="2">待发应到<br>时间</td>
  54 + <td rowspan="2">实际到达<br>时间</td>
  55 + <td colspan="2">计划</td>
  56 + <td colspan="2">待发</td>
  57 + </tr>
  58 + <tr>
  59 + <td>快</td>
  60 + <td>慢</td>
  61 + <td>快</td>
  62 + <td>慢</td>
  63 + <td>快</td>
  64 + <td>慢</td>
  65 + <td>快</td>
  66 + <td>慢</td>
  67 + </tr>
  68 + {{each listMap[k] as obj i}}
  69 + <tr>
  70 + <td>{{i+1}}</td>
  71 + <td>{{obj.stationName}}</td>
  72 + <td>{{obj.upDown==0?"上行":"下行"}}</td>
  73 + <td>{{obj.fcsj}}</td>
  74 + <td>{{obj.dfsj}}</td>
  75 + <td>{{obj.fcsjActual}}</td>
  76 + <td>{{obj.fcsjFast}}</td>
  77 + <td>{{obj.fcsjSlow}}</td>
  78 + <td>{{obj.dfsjFast}}</td>
  79 + <td>{{obj.dfsjSlow}}</td>
  80 + <td>{{obj.zdsj}}</td>
  81 + <td>{{obj.zdsjDf}}</td>
  82 + <td>{{obj.zdsjActual}}</td>
  83 + <td>{{obj.zdsjFast}}</td>
  84 + <td>{{obj.zdsjSlow}}</td>
  85 + <td>{{obj.zdsjDfFast}}</td>
  86 + <td>{{obj.zdsjDfSlow}}</td>
  87 + </tr>
  88 + {{/each}}
  89 + <tr>
  90 + <td rowspan="2">合计:</td>
  91 + <td colspan="8" class="count_col">上行(计划快误点:12 累计时间:50 待发快误点:15 累计时间:70)</td>
  92 + <td colspan="8" class="count_col">下行(计划快误点:12 累计时间:50 待发快误点:15 累计时间:70)</td>
  93 + </tr>
  94 + <tr>
  95 + <td colspan="8" class="count_col">上行(计划快误点:12 累计时间:50 待发快误点:15 累计时间:70)</td>
  96 + <td colspan="8" class="count_col">下行(计划快误点:12 累计时间:50 待发快误点:15 累计时间:70)</td>
  97 + </tr>
  98 + </table>
  99 + </div>
  100 + <br>
  101 + {{/each}}
  102 + </div>
  103 + </script>
23 <script> 104 <script>
24 (function () { 105 (function () {
25 - var wrap = '.ct_data_body_wrap'; 106 + var wrap = '.ct_data_body_wrap',
  107 + listMap;
26 108
27 $(wrap).on('init', function (e, data) { 109 $(wrap).on('init', function (e, data) {
28 e.stopPropagation(); 110 e.stopPropagation();
29 - console.log('data init'); 111 + listMap = data.listMap;
30 112
  113 + //左侧日期list
  114 + $('.ct_rq_left>ul',wrap).html(template('fast_and_slow_left_rq_temp', {listMap: listMap}));
  115 + //右侧
  116 + $('.ct_right_tables',wrap).html(template('fast_and_slow_right_body_temp', {listMap: listMap}));
31 }); 117 });
32 })(); 118 })();
33 </script> 119 </script>
src/main/resources/static/pages/summary/fast_and_slow/main.html
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 } 18 }
19 19
20 .ct_cont{ 20 .ct_cont{
21 - height: calc(100% - 35px); 21 + margin-top: 132px;
22 } 22 }
23 23
24 .ct_cont>div>div.uk-card{ 24 .ct_cont>div>div.uk-card{
@@ -94,16 +94,17 @@ @@ -94,16 +94,17 @@
94 width: 200px; 94 width: 200px;
95 display: inline-block; 95 display: inline-block;
96 vertical-align: top; 96 vertical-align: top;
97 - height: 99%;  
98 - height: calc(100% - 5px); 97 + height: calc(100% - 184px);
  98 + position: fixed;
  99 + left: 25px;
99 } 100 }
100 101
101 .ct_right_tables{ 102 .ct_right_tables{
102 width: calc(100% - 220px); 103 width: calc(100% - 220px);
103 display: inline-block; 104 display: inline-block;
104 - margin-left: 12px;  
105 - height: 99%;  
106 - height: calc(100% - 5px); 105 + margin-left: 232px;
  106 + padding: 25px;
  107 + margin-bottom: 18px;
107 } 108 }
108 109
109 .tm-nav>li a{ 110 .tm-nav>li a{
@@ -122,6 +123,50 @@ @@ -122,6 +123,50 @@
122 .uk-nav-default>li.uk-active>a { 123 .uk-nav-default>li.uk-active>a {
123 color: #222; 124 color: #222;
124 } 125 }
  126 +
  127 + .data_table_wrap{
  128 + min-width: 1170px;
  129 + }
  130 +
  131 + .ct_right_tables table{
  132 + background: #8c8c8c;
  133 + width: 100%;
  134 + text-align: center;
  135 + font-size: 14px;
  136 + table-layout: fixed;
  137 + }
  138 +
  139 + .ct_right_tables table td{
  140 + background: #fff;
  141 + height: 32px;
  142 + overflow: hidden;
  143 + text-overflow: ellipsis;
  144 + white-space: nowrap;
  145 + }
  146 +
  147 + .ct_right_tables table td.count_col{
  148 + text-align: left;
  149 + height: 40px;
  150 + text-indent:15px;
  151 + }
  152 +
  153 + .ct_right_tables table tr:nth-child(-n+3) td{
  154 + background: #ededed;
  155 + }
  156 +
  157 + .ct_right_tables table tr:nth-last-child(1) td,
  158 + .ct_right_tables table tr:nth-last-child(2) td{
  159 + background: #ededed;
  160 + }
  161 +
  162 + .ct_fixed_header{
  163 + position: fixed;
  164 + width: 100%;
  165 + top: 0;
  166 + background: #fff;
  167 + z-index: 2;
  168 + padding-top: 25px;
  169 + }
125 </style> 170 </style>
126 </head> 171 </head>
127 172
@@ -130,8 +175,8 @@ @@ -130,8 +175,8 @@
130 <div uk-spinner></div> 175 <div uk-spinner></div>
131 </div> 176 </div>
132 <div class="ct_page" style="display: none;"> 177 <div class="ct_page" style="display: none;">
133 - <h3 class="uk-heading-line uk-heading-bullet"><span>快慢误点统计</span></h3>  
134 - <div class="ct_cont" > 178 + <div class="ct_fixed_header">
  179 + <h3 class="uk-heading-line uk-heading-bullet"><span>快慢误点统计</span></h3>
135 <div class="ct_search_form_wrap"> 180 <div class="ct_search_form_wrap">
136 <form> 181 <form>
137 <div class="ct_field"> 182 <div class="ct_field">
@@ -169,11 +214,12 @@ @@ -169,11 +214,12 @@
169 <button class="uk-button uk-button-text" style="padding: 0 5px;">导出数据</button> 214 <button class="uk-button uk-button-text" style="padding: 0 5px;">导出数据</button>
170 </div> 215 </div>
171 <div class="ct_field ct_field_bottom"> 216 <div class="ct_field ct_field_bottom">
172 - <span uk-icon="icon: question" title="统计 “正常”、“区间”、“放站” 班次" uk-tooltip="pos: bottom"></span> 217 + <span uk-icon="icon: question" title="快1慢3不算误点,排除进出场班次" uk-tooltip="pos: bottom"></span>
173 </div> 218 </div>
174 </form> 219 </form>
175 </div> 220 </div>
176 - 221 + </div>
  222 + <div class="ct_cont" >
177 <div class="ct_cont_body"> 223 <div class="ct_cont_body">
178 </div> 224 </div>
179 </div> 225 </div>
@@ -210,10 +256,6 @@ @@ -210,10 +256,6 @@
210 $('.ct_cont_body').html(rs); 256 $('.ct_cont_body').html(rs);
211 }); 257 });
212 258
213 - //点击搜索按钮  
214 - $('.search', f).on('click', function () {  
215 - $('.ct_data_body_wrap').trigger('init');  
216 - });  
217 259
218 //日期选择框 260 //日期选择框
219 var fs='YYYY-MM-DD' 261 var fs='YYYY-MM-DD'
@@ -276,6 +318,43 @@ @@ -276,6 +318,43 @@
276 } 318 }
277 $('[name=lineCode_eq]', f).html(opts); 319 $('[name=lineCode_eq]', f).html(opts);
278 }); 320 });
  321 +
  322 + /**
  323 + * 点击搜索
  324 + */
  325 + $('.search', f).on('click', function () {
  326 + var data = f.serializeJSON();
  327 + if(!data.rq)
  328 + return UIkit.notification('你必须选择时间范围!', 'danger');
  329 +
  330 + var sDate = data.rq.substr(0, 10),
  331 + eDate = data.rq.substr(13);
  332 +
  333 + var params = {lineCode_eq: data.lineCode_eq, rq_ge: sDate, rq_le: eDate, order: 't'};
  334 + $.get('/summary/fastAndSlow/all', params, function (rs) {
  335 + //按日期分组
  336 + var listMap = groupBy(rs, 'rq');
  337 + $('.ct_data_body_wrap').trigger('init', {listMap: listMap});
  338 + });
  339 + });
  340 +
  341 + f.on('submit', function (e) {
  342 + return false;
  343 + });
  344 +
  345 + var groupBy = function (list, field) {
  346 + var rs = {},
  347 + key;
  348 + $.each(list, function () {
  349 + key = this[field];
  350 + if (!rs[key])
  351 + rs[key] = [];
  352 +
  353 + rs[key].push(this);
  354 + });
  355 +
  356 + return rs;
  357 + };
279 })(); 358 })();
280 </script> 359 </script>
281 </body> 360 </body>
src/main/resources/static/pages/summary/work_hours/list.html
@@ -262,8 +262,8 @@ @@ -262,8 +262,8 @@
262 } 262 }
263 263
264 //日期选择器 264 //日期选择器
265 - $('[name=rq_eq]', f).val('2017-10-10');  
266 - flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-10-16', minDate: '2017-07-01'}); 265 + $('[name=rq_eq]', f).val('2017-10-23');
  266 + flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-10-23', minDate: '2017-07-01'});
267 267
268 var comps; 268 var comps;
269 //构建公司级联下拉框 269 //构建公司级联下拉框
src/main/resources/static/real_control_v2/css/main.css
@@ -1736,4 +1736,22 @@ dl.active&gt;dd.disabled{ @@ -1736,4 +1736,22 @@ dl.active&gt;dd.disabled{
1736 color: #a6a6a6; 1736 color: #a6a6a6;
1737 text-indent: 7px; 1737 text-indent: 7px;
1738 padding-bottom: 5px; 1738 padding-bottom: 5px;
  1739 +}
  1740 +
  1741 +.cancel_link{
  1742 + font-size: 12px;
  1743 + margin-left: 15px;
  1744 + vertical-align: bottom;
  1745 + color: #8d8d8d;
  1746 + text-decoration: underline;
  1747 + position: absolute;
  1748 + right: 0;
  1749 +}
  1750 +
  1751 +.edit_link{
  1752 + font-size: 12px;
  1753 + margin-left: 15px;
  1754 + vertical-align: bottom;
  1755 + color: #ff2f2f;
  1756 + text-decoration: underline;
1739 } 1757 }
1740 \ No newline at end of file 1758 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/sys_mailbox.html
@@ -20,7 +20,8 @@ @@ -20,7 +20,8 @@
20 </h5> 20 </h5>
21 <code>{{t.fcsjActual}}</code> 21 <code>{{t.fcsjActual}}</code>
22 <div class="uk-button-group"> 22 <div class="uk-button-group">
23 - <a class="uk-button uk-button-mini uk-button-primary" >确定</a> 23 + <a class="uk-button uk-button-mini uk-button-primary" data-line="{{t.xlBm}}">确定</a>
  24 + <a class="cancel_link" data-id="{{t.id}}" data-line="{{t.xlBm}}"><i class="uk-icon-remove"></i> 撤销</a>
24 </div> 25 </div>
25 </div> 26 </div>
26 </script> 27 </script>
@@ -38,7 +39,9 @@ @@ -38,7 +39,9 @@
38 </h5> 39 </h5>
39 <code>{{t.zdsjActual}}</code> 40 <code>{{t.zdsjActual}}</code>
40 <div class="uk-button-group"> 41 <div class="uk-button-group">
41 - <a class="uk-button uk-button-mini uk-button-primary" >确定</a> 42 + <a class="uk-button uk-button-mini uk-button-primary" data-line="{{t.xlBm}}">确定</a>
  43 + <a class="edit_link" data-type="1" data-id="{{t.id}}" data-line="{{t.xlBm}}">编辑</a>
  44 + <a class="cancel_link" data-type="1" data-id="{{t.id}}" data-line="{{t.xlBm}}"><i class="uk-icon-remove"></i> 撤销</a>
42 </div> 45 </div>
43 </div> 46 </div>
44 </div> 47 </div>
src/main/resources/static/real_control_v2/js/line_schedule/context_menu.js
@@ -95,7 +95,7 @@ var gb_schedule_context_menu = (function () { @@ -95,7 +95,7 @@ var gb_schedule_context_menu = (function () {
95 sch: sch 95 sch: sch
96 }, modal_opts); 96 }, modal_opts);
97 }, 97 },
98 - cxsf: function (sch) { 98 + cxsf: function (sch, cb) {
99 if (!sch.fcsjActual) 99 if (!sch.fcsjActual)
100 return notify_err('车辆未实发,无法执行该操作!'); 100 return notify_err('车辆未实发,无法执行该操作!');
101 101
@@ -108,6 +108,8 @@ var gb_schedule_context_menu = (function () { @@ -108,6 +108,8 @@ var gb_schedule_context_menu = (function () {
108 notify_succ('撤销实发操作成功!'); 108 notify_succ('撤销实发操作成功!');
109 //calc 应发未发 109 //calc 应发未发
110 gb_schedule_table.calc_yfwf_num(sch.xlBm); 110 gb_schedule_table.calc_yfwf_num(sch.xlBm);
  111 +
  112 + cb && cb();
111 }); 113 });
112 }, '确认撤销实发'); 114 }, '确认撤销实发');
113 }, 115 },
@@ -176,7 +178,7 @@ var gb_schedule_context_menu = (function () { @@ -176,7 +178,7 @@ var gb_schedule_context_menu = (function () {
176 sch: sch 178 sch: sch
177 }, modal_opts); 179 }, modal_opts);
178 }, 180 },
179 - cxzx: function (sch) { 181 + cxzx: function (sch, cb) {
180 if (!sch.zdsjActual && !sch.fcsjActual) 182 if (!sch.zdsjActual && !sch.fcsjActual)
181 return notify_err('车辆未执行,无法撤销执行!'); 183 return notify_err('车辆未执行,无法撤销执行!');
182 184
@@ -187,6 +189,8 @@ var gb_schedule_context_menu = (function () { @@ -187,6 +189,8 @@ var gb_schedule_context_menu = (function () {
187 }, function (rs) { 189 }, function (rs) {
188 gb_schedule_table.updateSchedule(rs.ts); 190 gb_schedule_table.updateSchedule(rs.ts);
189 notify_succ('撤销执行成功!'); 191 notify_succ('撤销执行成功!');
  192 +
  193 + cb && cb();
190 }); 194 });
191 }, '确认撤销执行'); 195 }, '确认撤销执行');
192 }, 196 },
src/main/resources/static/real_control_v2/js/main.js
@@ -47,7 +47,7 @@ var gb_main_ep = new EventProxy(), @@ -47,7 +47,7 @@ var gb_main_ep = new EventProxy(),
47 $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); 47 $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
48 }, 1000); 48 }, 1000);
49 //弹出更新说明 49 //弹出更新说明
50 - //showUpdateDescription(); 50 + showUpdateDescription();
51 }); 51 });
52 52
53 function g_emit(id) { 53 function g_emit(id) {
@@ -168,8 +168,8 @@ var disabled_submit_btn = function (form) { @@ -168,8 +168,8 @@ var disabled_submit_btn = function (form) {
168 function showUpdateDescription() { 168 function showUpdateDescription() {
169 //更新说明 169 //更新说明
170 var updateDescription = { 170 var updateDescription = {
171 - date: '2017-09-28',  
172 - text: '<h5>1、修复了一个bug,该bug曾导致,出场时间设置为请求出场的线路,有几率早出场时间会误跳至分班班次!</h5>' 171 + date: '2017-10-25',
  172 + text: '<h5>1、修正了双击调整待发时,备注会被清空的bug。!</h5><h5>2、现在发车和到站信使可以撤销和编辑。</h5>'
173 }; 173 };
174 174
175 var storage = window.localStorage 175 var storage = window.localStorage
src/main/resources/static/real_control_v2/js/websocket/sch_websocket.js
@@ -218,9 +218,8 @@ var gb_sch_websocket = (function () { @@ -218,9 +218,8 @@ var gb_sch_websocket = (function () {
218 $(document).on('click', '.sys-mailbox .sys-note-42 .uk-button-primary', function (e) { 218 $(document).on('click', '.sys-mailbox .sys-note-42 .uk-button-primary', function (e) {
219 e.stopPropagation(); 219 e.stopPropagation();
220 $(this).parents('.sys-note-42').remove(); 220 $(this).parents('.sys-note-42').remove();
221 -  
222 var size = $(this).parents('.sys-mailbox').find('.sys-mail-item').length 221 var size = $(this).parents('.sys-mailbox').find('.sys-mail-item').length
223 - , lineCode = $(this).parents('li.line_schedule').data('id'); 222 + , lineCode = $(this).data('line');
224 223
225 $('#badge_untreated_num_' + lineCode).text(size); 224 $('#badge_untreated_num_' + lineCode).text(size);
226 }); 225 });
@@ -233,7 +232,7 @@ var gb_sch_websocket = (function () { @@ -233,7 +232,7 @@ var gb_sch_websocket = (function () {
233 var dl = gb_schedule_table.scroToDl(sch); 232 var dl = gb_schedule_table.scroToDl(sch);
234 //高亮 233 //高亮
235 gb_schedule_table.reset_drag_active_all(dl); 234 gb_schedule_table.reset_drag_active_all(dl);
236 - dl.addClass('relevance-active intimity'); 235 + dl.addClass('relevance-active intimity').find('dd:eq(5)').trigger('click');
237 }); 236 });
238 237
239 //80同意 238 //80同意
@@ -295,6 +294,41 @@ var gb_sch_websocket = (function () { @@ -295,6 +294,41 @@ var gb_sch_websocket = (function () {
295 gb_data_gps.deviceOffline(msg.gps); 294 gb_data_gps.deviceOffline(msg.gps);
296 } 295 }
297 296
  297 + /**
  298 + * 信号撤销
  299 + */
  300 + $(document).on('click','.sys-note-42 .cancel_link', function () {
  301 + var id = $(this).data('id'),
  302 + lineCode = $(this).data('line');
  303 +
  304 + var sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
  305 + if(!sch)
  306 + return;
  307 +
  308 + var confirmBtn = $(this).parent().find('.uk-button-primary');
  309 + var type = $(this).data('type');
  310 + var fun = type==1?gb_schedule_context_menu.cxzx:gb_schedule_context_menu.cxsf;
  311 +
  312 + fun(sch, function () {
  313 + confirmBtn.trigger('click');
  314 + });
  315 + });
  316 +
  317 + /**
  318 + * 到站信号修改
  319 + */
  320 + $(document).on('click', '.sys-note-42 .edit_link', function () {
  321 + var id = $(this).data('id'),
  322 + lineCode = $(this).data('line');
  323 +
  324 + var sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
  325 + if(!sch)
  326 + return;
  327 +
  328 + var nextSch = gb_schedule_table.getNextSch(sch);
  329 + gb_schedule_context_menu.dftz(nextSch);
  330 + });
  331 +
298 return { 332 return {
299 sock: function () { 333 sock: function () {
300 return schSock; 334 return schSock;