Commit 01d02c94ef36c3108fa4ce8424bf19320d1ba32e

Authored by ljq
1 parent a2e42fe9

智能调度发车间隔、误点、满载、大间隔

src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -884,14 +884,4 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
884 884  
885 885 return res;
886 886 }
887   -
888   - /**
889   - * 智能调度大间隔临加班次
890   - * @param ids
891   - * @return
892   - */
893   - @RequestMapping(value = "thissch/{id}", method = RequestMethod.POST)
894   - public ScheduleRealInfo thissch(@RequestParam Integer id){
895   - return scheduleRealInfoService.thissch(id);
896   - }
897 887 }
... ...
src/main/java/com/bsth/controller/zndd/LoggerZnddController.java
... ... @@ -18,7 +18,6 @@ public class LoggerZnddController extends BaseController<LoggerZndd, Integer> {
18 18  
19 19 @RequestMapping("listall")
20 20 public List<Map<String, Object>> listAll(@RequestParam Map<String, Object> map){
21   -
22 21 return loggerZnddService.listAll(map);
23 22 }
24 23  
... ... @@ -28,4 +27,21 @@ public class LoggerZnddController extends BaseController&lt;LoggerZndd, Integer&gt; {
28 27 return loggerZnddService.schlist(lineCode,dir);
29 28 }
30 29  
  30 +
  31 + @RequestMapping(value = "/znddConfig", method = RequestMethod.POST)
  32 + public Map<String, Object> znddConfig(@RequestParam Map<String, Object> map){
  33 + return loggerZnddService.znddConfig(map);
  34 + }
  35 +
  36 +
  37 +
  38 + /**
  39 + * 智能调度大间隔临加班次
  40 + * @param id
  41 + * @return
  42 + */
  43 + @RequestMapping(value = "thissch/{id}", method = RequestMethod.POST)
  44 + public ScheduleRealInfo thissch(@PathVariable("id") Integer id){
  45 + return loggerZnddService.thissch(id);
  46 + }
31 47 }
... ...
src/main/java/com/bsth/data/zndd/AutomaticSch.java
... ... @@ -64,7 +64,7 @@ public class AutomaticSch {
64 64 // 当日60指令缓存
65 65 private ConcurrentMap<Integer, D60> d60Map = new ConcurrentHashMap<>();//d60map
66 66  
67   - String urldkl = "http://10.10.200.202:5580/monitor/api/getMonitorInfoByDay?key=1&solt=1111&t=1&dayStr=2024-07-23"; //大间隔接口
  67 + String urldkl = "http://10.10.200.202:5580/monitor/api/getMonitorInfoByDay?key=1&solt=1111&t=1&dayStr=2024-10-23"; //大间隔接口
68 68  
69 69 //http://10.10.200.201:8083/wxk-prod-api/service-api/lggj/schedule/drByInfo 维修接口
70 70  
... ... @@ -73,8 +73,9 @@ public class AutomaticSch {
73 73 //满载
74 74 public void mz(){
75 75 try {
76   - ScheduleRealInfo sr = dayOfSchedule.executeCurr("S0R-054");
77   - ts(addStationPeople(sr, "MZ", 0L));//第二种 设备未离线 出站时间内未出站
  76 +
  77 + List<ScheduleRealInfo> sr = dayOfSchedule.findByBcType("W1Q-006","normal");
  78 + ts(addStationPeople(sr.get(5), "MZ", 0L));//第二种 设备未离线 出站时间内未出站
78 79 }
79 80 catch (Exception e){
80 81 logger.error("满载------------------",e);
... ... @@ -82,7 +83,7 @@ public class AutomaticSch {
82 83 }
83 84  
84 85 //大间隔的情况
85   - public void dfTz(){
  86 + public void dfTz(int k ){
86 87 try{
87 88 StringBuilder sb = HttpClientUtils.get(urldkl /*+ sdfMonth.format(new Date())*/);
88 89 if (sb == null)
... ... @@ -97,8 +98,12 @@ public class AutomaticSch {
97 98 }else {
98 99 continue;
99 100 }
  101 + if (k == 0 && lg.getlGType() == 0){
  102 + ts(ConvertDJK(lg,sch,"FCJG"));
  103 + }else {
  104 + ts(ConvertDJK(lg,sch,"DJG"));
  105 + }
100 106  
101   - ts(ConvertDJK(lg,sch));
102 107 }
103 108  
104 109 }catch (Exception e){
... ... @@ -114,9 +119,7 @@ public class AutomaticSch {
114 119 if (m != null) {
115 120 if (Integer.valueOf(m.get("num").toString()) > 15) {
116 121 //超过10的时候 判断为大客流
117   -
118 122 ts(ConvertDKL(m));
119   -
120 123 }
121 124 }
122 125  
... ... @@ -326,7 +329,7 @@ public class AutomaticSch {
326 329 if(StringUtils.isEmpty(sch.getQdzArrDatesj())){
327 330 ScheduleRealInfo prev = dayOfSchedule.prev(sch);
328 331 //上一个班次也没有实际终点到达时间
329   - if(prev != null && StringUtils.isEmpty(prev.getZdsjActual())){
  332 + if(prev != null && StringUtils.isEmpty(prev.getZdsjActual()) && (sch.getBcType().equals("normal")|| sch.getBcType().equals("region"))){
330 333 //进入误点调整程序
331 334 LateAdjustHandle.putLate(sch);
332 335 List<Map> dzList = carMonitor.carMonitor(prev.getXlBm(), prev.getXlDir(), prev.getZdzCode()); //信息发布接口
... ... @@ -381,14 +384,14 @@ public class AutomaticSch {
381 384  
382 385  
383 386 //大间隔数据转换
384   - public Map ConvertDJK(LargeGap lg,ScheduleRealInfo sch){
  387 + public Map ConvertDJK(LargeGap lg,ScheduleRealInfo sch,String type){
385 388 Map sp = new HashMap();
386 389 sp.put("uuid",UUID());
387 390 sp.put("lineCode",lg.getLineCode());
388 391 sp.put("lineName",lg.getLineName() );
389 392 sp.put("rqStr",lg.getDateStr());
390 393 sp.put("rq",sdfHHmm.format(lg.getTsTime()));
391   - sp.put("type","DJG");
  394 + sp.put("type",type);
392 395 sp.put("xlDir",lg.getUpDown());
393 396 sp.put("numType",lg.getIntervalMinute());
394 397 sp.put("stationCode",lg.getStationName());
... ...
src/main/java/com/bsth/data/zndd/ZnddThread.java
... ... @@ -34,8 +34,6 @@ public class ZnddThread extends Thread{
34 34 GpsRealData gpsRealData;
35 35 @Autowired
36 36 StationRouteRepository stationRouteRepository;
37   - /* @Autowired
38   - private UserCarCountHandler userCarCountHandler;*/
39 37 @Autowired
40 38 OutEntrance outEntrance;
41 39 @Autowired
... ... @@ -50,7 +48,7 @@ public class ZnddThread extends Thread{
50 48 String url = "https://lgapp.bsth.tech:13089/bsth_passengerflow/klbus/currentInsideNum.do"; //车内客流接口
51 49  
52 50  
53   - String urldkl = "https://lgapp.bsth.tech:8005//monitor/api/getMonitorInfoByDay?key=1&solt=1111&t=1&dayStr="; //大客流接口
  51 + String urldkl = "http://10.10.200.140:13089/bsth_passengerflow/klbus/currentInsideNum.do"; //大客流接口
54 52  
55 53 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm");
56 54 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -59,15 +57,20 @@ public class ZnddThread extends Thread{
59 57 public void run() {
60 58 try {
61 59 List<znddStatus> znddStatusList = (List<znddStatus>) znddStatusRepository.findAll();
62   - //FCJG();//发车间隔检查 报价
  60 +
63 61 //GPSDJG();//大间隔
64 62 // MZ(); //满载
65 63 //DKL(); //大客流 以接口方式
66 64 //automaticSch.mz();
67 65 //automaticSch.dfTz();//大间隔
68 66 for (znddStatus zs : znddStatusList) {
69   -
70 67 if (zs.getOpenStatus().equals("0")) {
  68 + //预案5个
  69 + if (zs.getType().equals("fcjg")) {
  70 + automaticSch.dfTz(0);
  71 + logger.info("发车间隔执行完毕");
  72 + }
  73 +
71 74 if (zs.getType().equals("sftz")) {
72 75 automaticSch.sftz();//实发未发
73 76 logger.info("实发执行完毕");
... ... @@ -85,14 +88,18 @@ public class ZnddThread extends Thread{
85 88 logger.info("误点执行完毕");
86 89 }
87 90 if (zs.getType().equals("djg")){
88   - automaticSch.dfTz();
89   - logger.info("大间隔执行完毕");
  91 + automaticSch.dfTz(1);
  92 + logger.info("行车大间隔执行完毕");
90 93 }
91 94  
92 95 if (zs.getType().equals("dkl")){
93 96 automaticSch.Dkl();
94 97 logger.info("大客流执行完毕");
95 98 }
  99 + if (zs.getType().equals("mz")){
  100 + automaticSch.mz();
  101 + logger.info("满载执行完毕");
  102 + }
96 103  
97 104 }
98 105 }
... ... @@ -137,33 +144,7 @@ public class ZnddThread extends Thread{
137 144 }
138 145 }*/
139 146 public void ts(Map m) throws ParseException {
140   - //记录存一下 --超过当前时间的是否推送?
141   - String st = m.get("lineCode")+"_"+m.get("type")+"_"+m.get("rqStr");
142   - Long sj = sdf.parse(m.get("rqStr").toString() +" "+ m.get("rq")).getTime();
143   - List<Long> list = new ArrayList();
144   - //111_DJG_2024-06-24
145   - if (ZnddThread.ZNDDTYPEMAP.get(st) != null ) {
146   - list = ZnddThread.ZNDDTYPEMAP.get(st);
147   - int i = 0;
148   -
149   - for (Long s : list){ //推送过的同样情况1小时内
150   - if (Math.abs(s - sj) > (60 * 60 * 1000)){
151   - i ++ ;
152   - }
153   - }
154   - outEntrance.Znddjk(m);//测试推送
155   - if (i == list.size()){
156   - list.add(sj);
157   - ZnddThread.ZNDDTYPEMAP.put(st,list);//存记录
158   - outEntrance.Znddjk(m);//推送
159   - }
160   - return;
161   - }else {
162   - list.add(sj);
163   - ZnddThread.ZNDDTYPEMAP.put(st,list);//存记录
164   - outEntrance.Znddjk(m);//推送
165   - }
166   -
  147 + outEntrance.Znddjk(m);//测试推送
167 148 }
168 149 /* public void ts(Map m) throws ParseException {
169 150 //记录存一下 --超过当前时间的是否推送?
... ... @@ -195,8 +176,8 @@ public class ZnddThread extends Thread{
195 176  
196 177 */
197 178  
198   - //发车间隔
199   - /* public void FCJG(){
  179 + /* //发车间隔
  180 + public void FCJG(){
200 181 try {
201 182 //无数据情况下 查看发车间隔配置数据是否正常bsth_c_calc_interval
202 183 List<CalcIntervalDetail> fcjgList = userCarCountHandler.calcLast();
... ... @@ -218,8 +199,8 @@ public class ZnddThread extends Thread{
218 199 }catch (Exception e){
219 200 logger.error("发车间隔检测出现出错-----------",e);
220 201 }
221   - }*/
222   -
  202 + }
  203 +*/
223 204  
224 205 //转换
225 206 public Map addStationPeople(ScheduleRealInfo info,String type,Long sst,String sj) throws ParseException{
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -210,6 +210,4 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
210 210  
211 211 List<ScheduleRealInfo> findAllSchDate(String schDate);
212 212  
213   -
214   - ScheduleRealInfo thissch(Integer ids);
215 213 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -7042,12 +7042,6 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
7042 7042 }
7043 7043 }, 0, 10, TimeUnit.MINUTES);
7044 7044 }
7045   -
7046   -
7047   - public ScheduleRealInfo thissch(Integer ids){
7048   - return dayOfSchedule.next(dayOfSchedule.get(ids));
7049   - }
7050   -
7051 7045 }
7052 7046  
7053 7047 class AccountMap implements Comparator<Map<String, Object>> {
... ...
src/main/java/com/bsth/service/zndd/LoggerZnddService.java
... ... @@ -13,4 +13,9 @@ public interface LoggerZnddService extends BaseService&lt;LoggerZndd, Integer&gt; {
13 13 List<Map<String, Object>> listAll(Map<String, Object> map);
14 14  
15 15 public ScheduleRealInfo schlist(String lineCode,Integer dir);
  16 +
  17 + public Map<String, Object> znddConfig(Map<String, Object> map);
  18 +
  19 +
  20 + ScheduleRealInfo thissch(Integer ids);
16 21 }
... ...
src/main/java/com/bsth/service/zndd/impl/LoggerZnddServiceImpl.java
1 1 package com.bsth.service.zndd.impl;
2 2  
  3 +import com.bsth.controller.realcontrol.dto.DfsjChange;
3 4 import com.bsth.data.schedule.DayOfSchedule;
  5 +import com.bsth.data.schedule.ScheduleComparator;
4 6 import com.bsth.entity.realcontrol.ScheduleRealInfo;
5   -import com.bsth.entity.search.CustomerSpecs;
6 7 import com.bsth.entity.zndd.LoggerZndd;
  8 +import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
7 9 import com.bsth.repository.zndd.LoggerZnddRepository;
8 10 import com.bsth.service.impl.BaseServiceImpl;
  11 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
9 12 import com.bsth.service.zndd.LoggerZnddService;
10   -import org.apache.poi.ss.formula.functions.T;
  13 +import org.slf4j.Logger;
  14 +import org.slf4j.LoggerFactory;
11 15 import org.springframework.beans.factory.annotation.Autowired;
12   -import org.springframework.data.domain.Pageable;
13 16  
14 17 import org.springframework.data.domain.Sort;
15 18 import org.springframework.stereotype.Service;
  19 +import org.springframework.transaction.annotation.Transactional;
16 20  
  21 +import java.text.SimpleDateFormat;
  22 +import java.util.ArrayList;
  23 +import java.util.Collections;
17 24 import java.util.List;
18 25 import java.util.Map;
19 26  
... ... @@ -24,7 +31,16 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
24 31 LoggerZnddRepository loggerZnddRepository;
25 32 @Autowired
26 33 DayOfSchedule dayOfSchedule;
27   - public List<Map<String, Object>> listAll(Map<String, Object> map){
  34 + @Autowired
  35 + ScheduleRealInfoService scheduleRealInfoService;
  36 + @Autowired
  37 + ScheduleRealInfoRepository scheduleRealInfoRepository;
  38 +
  39 +
  40 + Logger logger = LoggerFactory.getLogger(this.getClass());
  41 + private static SimpleDateFormat sdfMonth = new SimpleDateFormat("HH:mm");
  42 + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  43 + public List<Map<String, Object>> listAll(Map<String, Object> map){
28 44 loggerZnddRepository.findAll((Sort) map);
29 45  
30 46 return null;
... ... @@ -43,4 +59,86 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
43 59 }
44 60 return null;
45 61 };
  62 +
  63 + @Override
  64 + @Transactional //发车间隔 误点
  65 + public Map<String, Object> znddConfig(Map<String, Object> map){
  66 + //查出离触发时间最近的一次路单 修改部分值
  67 + //包装好路单添加如临加班次
  68 +
  69 + List<DfsjChange> dfsjcs = new ArrayList<>();//返回的数据
  70 + try {
  71 + String lineCode = map.get("lineCode") != null ? map.get("lineCode").toString() : null;
  72 + String xlDir = map.get("xlDir") != null ? map.get("xlDir").toString() : null;
  73 + String rq = map.get("rq") != null ? map.get("rq").toString() : null;
  74 + List<ScheduleRealInfo> upoldSchDateList = new ArrayList<>(), //上行
  75 + dnoldSchDateList = new ArrayList<>(); //下行
  76 +
  77 +
  78 + List<ScheduleRealInfo> listReal = new ArrayList<>();
  79 + Boolean typeReal = false;
  80 + //排班依次往后
  81 + List<ScheduleRealInfo> list = dayOfSchedule.findByLineCode(lineCode);
  82 + //区分上下行
  83 + for (ScheduleRealInfo t : list){
  84 + if (t.getXlDir().equals("0")){
  85 + upoldSchDateList.add(t);
  86 + }else {
  87 + dnoldSchDateList.add(t);
  88 + }
  89 + }
  90 + if (xlDir.equals("0")){
  91 + Collections.sort(upoldSchDateList, new ScheduleComparator.FCSJ());//排序
  92 + list = upoldSchDateList;
  93 + }else {
  94 + Collections.sort(upoldSchDateList, new ScheduleComparator.FCSJ());//排序
  95 + list = upoldSchDateList;
  96 + }
  97 +
  98 + for (ScheduleRealInfo info : list) {
  99 + //从相等开始
  100 + if (info.getFcsjActual() != null && !info.getFcsjActual().equals("")) {
  101 + if (info.getFcsjActual().equals(rq))
  102 + typeReal = true;
  103 + continue;
  104 + }
  105 +
  106 + if (typeReal && (info.getBcType().equals("normal")|| info.getBcType().equals("region")))
  107 + listReal.add(info);
  108 +
  109 + if (listReal.size() >= 5) //或者不满5条结束 listReal.size()从1开始
  110 + break;
  111 +
  112 + }
  113 + //处理listReal 5条数据或5条一下
  114 + for (int i = 0; i < listReal.size() ;i++){
  115 + DfsjChange cl = new DfsjChange();
  116 + Integer[] mis = {3,2,2,1,1}; //往后5个班次分别延后3 2 2 1 1
  117 + ScheduleRealInfo info = listReal.get(i);
  118 + int ms = mis[i];
  119 + //未发车时 才可改变
  120 + if (info.getFcsjActual() == null || info.getFcsjActual().equals("")){
  121 + String dfsj = sdfMonth.format(sdf.parse(info.getScheduleDateStr()+ " " + info.getDfsj()).getTime() + (ms * 60 * 1000)); //延后几分钟
  122 + cl.setSchId(info.getId());
  123 + cl.setOld_dfsj(info.getDfsj());
  124 + cl.setNew_dfsj(dfsj);
  125 + dfsjcs.add(cl);
  126 + }
  127 + }
  128 +
  129 + return scheduleRealInfoService.multi_dftz(dfsjcs);
  130 + }catch (Exception e){
  131 + logger.info("--",e);
  132 + }
  133 +
  134 +
  135 + return null;
  136 + }
  137 +
  138 +
  139 + public ScheduleRealInfo thissch(Integer ids){
  140 + return dayOfSchedule.next(dayOfSchedule.get(ids));
  141 + }
  142 +
  143 +
46 144 }
... ...
src/main/resources/static/real_control_v2/js/zndd/data_zndd.js
... ... @@ -211,11 +211,14 @@ var gb_dataZndd = (function (){
211 211 return 'ycsf.html';
212 212 break;
213 213 case 'WD':
214   - //return 'wd.html';
  214 + return 'wd.html';
215 215 break;
216 216 case 'DJG':
217 217 return 'djg1.html';
218 218 break;
  219 + case 'MZ':
  220 + return 'mz.html';
  221 + break;
219 222 case 'DKL':
220 223 return 'dkl.html';
221 224 break;
... ... @@ -314,16 +317,16 @@ var gb_dataZndd = (function (){
314 317 if (date == null)
315 318 return
316 319 if (type == "DJG"){
317   - $.post('/znddLogger/znddadd', date, function(res) {
318   - if (res.code == 200){
319   - notify_succ('新增临加班次成功(自动)');
320   - }
321   - if (res.code == 201){
322   - notify_err('新增临加班次失败(自动),受影响的站点为终点站,不可自动添加');
323   - }
324   -
325   - gb_schedule_table.refreshAll();
326   - });
  320 + // $.post('/znddLogger/znddadd', date, function(res) {
  321 + // if (res.code == 200){
  322 + // notify_succ('新增临加班次成功(自动)');
  323 + // }
  324 + // if (res.code == 201){
  325 + // notify_err('新增临加班次失败(自动),受影响的站点为终点站,不可自动添加');
  326 + // }
  327 + //
  328 + // gb_schedule_table.refreshAll();
  329 + // });
327 330 }else if (type == "YCSF"){
328 331 gb_common.$post('/realSchedule/revokeRealOutgo_zndd', {
329 332 id: sch.sch.id,
... ...
src/main/resources/static/real_control_v2/zndd/type/djg1.html
... ... @@ -15,15 +15,17 @@
15 15 <div class="uk-grid uk-width-3-5 lj_1" >
16 16 <div class="uk-width-1-4">
17 17 <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg">
18   - <li data-handle="toAndFro"><a>1、往返</a></li>
19   - <li data-handle="normal"><a>2、临加班次</a></li>
  18 +
  19 + <li data-handle="normal"><a>1、临加班次</a></li>
  20 + <li data-handle="toAndFro"><a>2、往返</a></li>
  21 +
20 22 <!-- <li data-handle="parkToPark"><a>3、场到场</a></li>-->
21 23 </ul>
22 24 </div>
23 25 <div class="uk-width-3-4">
24 26 <ul id="tempScheduleContent" class="uk-switcher">
25   - <li class="toAndFroCont"></li>
26 27 <li class="normalCont"></li>
  28 + <li class="toAndFroCont"></li>
27 29 <li class="parkToParkCont"></li>
28 30 </ul>
29 31 </div>
... ... @@ -117,14 +119,16 @@
117 119 var st_doms = gb_schedule_context_menu.get_add_sch_doms_v2();
118 120  
119 121  
120   - $.post('/realSchedule/thissch/'+sch.id, function(res) {
  122 + $.post('/realSchedule/thissch/'+sch.sch.id, function(res) {
  123 +
  124 + //normal
  125 + $('.normalCont', modal).html(st_doms.normal_dom)
  126 + .trigger('init', {sch: res, submitFun: submit_temp_schedule_form});
121 127 //to and fro
122 128 $('.toAndFroCont', modal).html(st_doms.two_way_dom)
123 129 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes});
124 130  
125   - //normal
126   - $('.normalCont', modal).html(st_doms.normal_dom)
127   - .trigger('init', {sch: res, submitFun: submit_temp_schedule_form});
  131 +
128 132 });
129 133  
130 134 });
... ... @@ -549,7 +553,7 @@
549 553 <div class="uk-form-controls">
550 554 <select name="destroy" class="form-control" id="destroySelect">
551 555 <option value="0">-- 临加班次 --</option>
552   - <option value="1">-- 随到随发 --</option>
  556 + <option value="1">&#45;&#45; 修改班次类型 &#45;&#45;</option>
553 557 </select>
554 558 </div>
555 559 </div>
... ... @@ -575,9 +579,9 @@
575 579 </div>
576 580 <div class="uk-width-1-2">
577 581 <div class="uk-form-row">
578   - <label class="uk-form-label">乘客满意度</label>
  582 + <label class="uk-form-label">创新性</label>
579 583 <div class="uk-form-controls">
580   - <input value="10%" disabled>
  584 + <input value="80%" disabled>
581 585 </div>
582 586 </div>
583 587 </div>
... ...
src/main/resources/static/real_control_v2/zndd/type/dkl.html
... ... @@ -2,7 +2,7 @@
2 2 <div class="uk-modal-dialog" style="width: 1400px;">
3 3 <a href="" class="uk-modal-close uk-close"></a>
4 4 <div class="uk-modal-header">
5   - <h2>大客流</h2></div>
  5 + <h2>新增临加班次</h2></div>
6 6 <div class="uk-grid uk-width-2-5" style="float: left">
7 7 <div class="uk-width-5-5">
8 8 <form class="uk-form uk-form-horizontal"> </form>
... ... @@ -29,6 +29,11 @@
29 29 </div>
30 30 </div>
31 31  
  32 + <div class="uk-grid uk-width-3-5 lj_2" style="display: none; padding-left: 100px">
  33 + <div class="uk-width-1-1" id ="tempsdsf"></div>
  34 +
  35 + </div>
  36 +
32 37 </div>
33 38  
34 39 <script>
... ... @@ -41,44 +46,65 @@
41 46 sch = data.data;
42 47 sch.xlBm = sch.lineCode;
43 48  
44   - //站到场数据
45   - st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm];
46   - //站点路由
47   - stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
48   - return a.stationRouteCode - b.stationRouteCode;
49   - }), 'directions');
50   - let route = stationRoutes[sch.xlDir];
51   - debugger
52   - sch.startStation = route[0];
53   - sch.stopStation = route[route.length - 1];
54 49 var formHtml = template('djg-form-temp', sch);
55 50 $('form', modal).html(formHtml);
56 51 //切换
  52 +
  53 +
  54 +
  55 +
  56 +
  57 + //参数改变
  58 + $('form[name=yjtkForm] input', modal).on('blur', function () {
  59 + var field = $(this).attr('name');
  60 + var val = $(this).val();
  61 + if (conf[field] != val) {
  62 + var data = $('form[name=yjtkForm]', modal).serializeJSON();
  63 + data.lineCode = conf.line.lineCode;
  64 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  65 + conf = rs.conf;
  66 + notify_succ('调整随到随发参数');
  67 + });
  68 + }
  69 + });
  70 +
  71 +
57 72 $("#destroySelect").on('change',function(){
58 73 let fn = $('#destroySelect').val();
59 74 if (fn == "0"){
60   - $('.video_1').css({display: ''});
61   - $('.video_2').css({display: 'none'});
62   -
  75 + $(".lj_1").css({
  76 + display: ''
  77 + });
  78 + $(".lj_2").css({
  79 + display: 'none'
  80 + });
63 81 }else {
64   - $('.video_1').css({display: 'none'});
65   - $('.video_2').css({display: ''});
  82 + $(".lj_1").css({
  83 + display: 'none'
  84 + });
  85 + $(".lj_2").css({
  86 + display: ''
  87 + });
  88 + $.get('/lineConfig/getByLineCode', {lineCode: sch.lineCode}, function (datan) {
  89 + var formHtmls = template('buffer_config_form-temp1', datan);
  90 + conf = datan;
  91 + $('#tempsdsf', modal).html(formHtmls);
  92 + $('[name=enableYjtk]', modal).on('change', function () {
  93 + if($(this).val() == '1'){
  94 + enableYjtkForm();
  95 + }
  96 + else
  97 + disabledYjtkForm();
  98 + });
  99 + });
66 100 }
67 101 })
68   - $("#zhanOrche").on('change',function(){
69   - let fn = $('#zhanOrche').val();
70   - if (fn == "0"){
71   - $('.car_s').css({display: 'none'});
72   - $('.zt_s').css({display: ''});
73   -
74   - }else {
75   - $('.car_s').css({display: ''});
76   - $('.zt_s').css({display: 'none'});
77   - }
78   - })
79   -
80   -
81   -
  102 + //站到场数据
  103 + st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm];
  104 + //站点路由
  105 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
  106 + return a.stationRouteCode - b.stationRouteCode;
  107 + }), 'directions');
82 108 //停车场
83 109 parks = gb_data_basic.simpleParksArray();
84 110 //线路标准
... ... @@ -90,18 +116,16 @@
90 116  
91 117 var st_doms = gb_schedule_context_menu.get_add_sch_doms_v2();
92 118  
93   - $.post('/realSchedule/thissch/'+sch.id, function(res) {
  119 +
  120 + $.post('/realSchedule/thissch/'+sch.sch.id, function(res) {
94 121 //to and fro
95 122 $('.toAndFroCont', modal).html(st_doms.two_way_dom)
96 123 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes});
97 124  
98   -
99 125 //normal
100 126 $('.normalCont', modal).html(st_doms.normal_dom)
101 127 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form});
102 128 });
103   -
104   -
105 129  
106 130 });
107 131  
... ... @@ -391,6 +415,37 @@
391 415 }, err);
392 416 }
393 417  
  418 + function enableYjtkForm() {
  419 + var f = $('form[name=yjtkForm]', modal);
  420 + $('input', f).removeAttr('disabled');
  421 + //开始时间
  422 + if($('[name=yjtkStart]',f).val() == '')
  423 + $('[name=yjtkStart]',f).val('00:00');
  424 + if($('[name=yjtkEnd]',f).val() == '')
  425 + $('[name=yjtkEnd]',f).val('23:59');
  426 + var data = f.serializeJSON();
  427 + data.lineCode = conf.line.lineCode;
  428 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  429 + conf = rs.conf;
  430 + notify_succ('启用随到随发');
  431 + });
  432 + }
  433 + function disabledYjtkForm() {
  434 + var f = $('form[name=yjtkForm]', modal);
  435 + $('input', f).attr('disabled', 'disabled');
  436 + //恢复val
  437 + $('[name=yjtkStart]',f).val(conf.yjtkStart);
  438 + $('[name=yjtkEnd]',f).val(conf.yjtkEnd);
  439 + $('[name=upStopMinute]',f).val(conf.upStopMinute);
  440 + $('[name=downStopMinute]',f).val(conf.downStopMinute);
  441 +
  442 + var data = {enableYjtk: 0, lineCode: conf.line.lineCode};
  443 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  444 + conf = rs.conf;
  445 + notify_succ('禁用随到随发');
  446 + });
  447 + }
  448 +
394 449 })();
395 450 </script>
396 451 </div>
... ... @@ -401,121 +456,177 @@
401 456 <div class="uk-grid">
402 457 <div class="uk-width-4-2">
403 458 <div class="uk-form-row">
404   - <h3>大客流信息</h3>
  459 + <h3>间隔情况</h3>
405 460 </div>
406 461 </div>
407 462 </div>
408 463 <div class="uk-grid">
409 464 <div class="uk-width-4-2">
410 465 <div class="uk-form-row">
411   - <label class="uk-form-labels" >{{stopStation.stationName}}站点 出现大客流</label>
  466 + <label class="uk-form-labels" >{{lineName}} -> 起点站开往终点站 出现大间隔</label>
412 467 </div>
413 468 </div>
414   -
415 469 </div>
416   -
417   - <div class="uk-grid">
418   - <div class="uk-width-1-2">
419   - <div class="uk-form-row">
420   - <label class="uk-form-label">站点名称</label>
421   - <div class="uk-form-controls">
422   - <input type="time" value="XXXX" name="fcsj" disabled>
  470 + <div>
  471 + <div class="uk-grid">
  472 + <div class="uk-width-1-2">
  473 + <div class="uk-form-row">
  474 + <label class="uk-form-label">当前车车号</label>
  475 + <div class="uk-form-controls">
  476 + <input value="{{lg.nbbm}}" disabled>
  477 + </div>
423 478 </div>
424 479 </div>
425   - </div>
426   - <div class="uk-width-1-2">
427   - <div class="uk-form-row">
428   - <label class="uk-form-label">站点人数</label>
429   - <div class="uk-form-controls">
430   - <input value="20" disabled>
  480 + <div class="uk-width-1-2">
  481 + <div class="uk-form-row">
  482 + <label class="uk-form-label">前车车号</label>
  483 + <div class="uk-form-controls">
  484 + <input value="{{lg.beforeNbbm}}" disabled>
  485 + </div>
431 486 </div>
432 487 </div>
433 488 </div>
434   - </div>
435   -
436   - <div class="uk-grid">
437   - <div class="uk-width-2-2">
438   - <div class="uk-form-row">
439   - <label class="uk-form-label">选择方案</label>
440   - <div class="uk-form-controls">
441   - <select name="destroy" class="form-control" id="destSelect">
442   - <option value="0">-- 方案一 --</option>
443   - </select>
  489 + <div class="uk-grid">
  490 + <div class="uk-width-1-2">
  491 + <div class="uk-form-row">
  492 + <label class="uk-form-label">当前车站点</label>
  493 + <div class="uk-form-controls">
  494 + <input value="{{lg.stationName}}" disabled>
  495 + </div>
444 496 </div>
445 497 </div>
446   - </div>
447   - </div>
448   -
449   -
450   - <div class="uk-grid">
451   - <div class="uk-width-2-2">
452   - <div class="uk-form-row">
453   - <label class="uk-form-label"></label>
454   - <div class="uk-form-controls">
455   - <select name="destroy" class="form-control" id="zhanOrche">
456   - <option value="0">-- 站台 --</option>
457   - <option value="1">-- 车辆 --</option>
458   - </select>
  498 + <div class="uk-width-1-2">
  499 + <div class="uk-form-row">
  500 + <label class="uk-form-label">前车站点</label>
  501 + <div class="uk-form-controls">
  502 + <input value="{{lg.beforeStationName}}" disabled>
  503 + </div>
459 504 </div>
460 505 </div>
461 506 </div>
462   - </div>
463   - <div class="uk-grid">
464   - <div class="uk-width-1-2">
465   - <div class="uk-form-row">
466   - <label class="uk-form-label">车内人数</label>
467   - <div class="uk-form-controls">
468   - <input value="23" disabled>
  507 + <div class="uk-grid">
  508 + <div class="uk-width-1-2">
  509 + <div class="uk-form-row">
  510 + <label class="uk-form-label">当前车发车时间</label>
  511 + <div class="uk-form-controls">
  512 + <input value="{{lg.bcfcsj}}" disabled>
  513 + </div>
  514 + </div>
  515 + </div>
  516 + <div class="uk-width-1-2">
  517 + <div class="uk-form-row">
  518 + <label class="uk-form-label">前车发车时间</label>
  519 + <div class="uk-form-controls">
  520 + <input value="{{lg.beforeBcfcsj}}" disabled>
  521 + </div>
469 522 </div>
470 523 </div>
471 524 </div>
472   - <div class="uk-width-1-2">
473   - <div class="uk-form-row">
474   - <label class="uk-form-label">摄像</label>
475   - <div class="uk-form-controls">
476   - <select name="destroy" class="form-control" id="destroySelect">
477   - <option value="0">-- 前车厢 --</option>
478   - <option value="1">-- 后车厢 --</option>
479   - </select>
  525 + <div class="uk-grid">
  526 + <div class="uk-width-1-2">
  527 + <div class="uk-form-row">
  528 + <label class="uk-form-label">当前间隔分钟数</label>
  529 + <div class="uk-form-controls">
  530 + <input value="{{lg.intervalMinute}}" disabled>
  531 + </div>
  532 + </div>
  533 + </div>
  534 + <div class="uk-width-1-2">
  535 + <div class="uk-form-row">
  536 + <label class="uk-form-label">大间隔分钟数阀值</label>
  537 + <div class="uk-form-controls">
  538 + <input value="{{lg.largeGapConfigMinute}}" disabled>
  539 + </div>
480 540 </div>
481 541 </div>
482 542 </div>
483   - </div>
484 543  
485   - <div class="uk-grid zt_s">
486   - <div class="uk-width-4-2">
487   - <div class="uk-form-row img_1">
488   - <img style="width: 100%" src="/profile/avat/2024/04/08/666.png" controls />
489 544  
  545 + <div class="uk-grid">
  546 + <div class="uk-width-2-2">
  547 + <div class="uk-form-row">
  548 + <label class="uk-form-label">选择方案</label>
  549 + <div class="uk-form-controls">
  550 + <select name="destroy" class="form-control" id="destroySelect">
  551 + <option value="0">-- 临加班次 --</option>
  552 + <!-- <option value="1">&#45;&#45; 随到随发 &#45;&#45;</option>-->
  553 + </select>
  554 + </div>
  555 + </div>
490 556 </div>
491 557 </div>
492   - </div>
493   -
494 558  
495   - <div class="uk-grid car_s" style="display:none">
496   -
497   - <div class="uk-width-1-1">
498   - <div class="uk-form-row">
499   - <label class="uk-form-label">车内视频:</label>
  559 + <div class="uk-grid">
  560 + <div class="uk-width-4-2">
  561 + <div class="uk-form-row">
  562 + <h3>方案优势</h3>
  563 + </div>
500 564 </div>
501 565 </div>
502   - </div>
503   - <div class="uk-grid car_s" style="display:none">
504   - <div class="uk-width-4-2">
505   - <div class="uk-form-row video_1">
506   - <video id="myVideo" style="width: 100%" src="/real_control_v2/zndd/video/a.mp4" controls></video>
  566 +
  567 + <div class="uk-grid">
  568 + <div class="uk-width-1-2">
  569 + <div class="uk-form-row">
  570 + <label class="uk-form-label">间隔检测效率</label>
  571 + <div class="uk-form-controls">
  572 + <input value="50%" disabled>
  573 + </div>
  574 + </div>
507 575 </div>
508   - <div class="uk-form-row video_2" style="display: none">
509   - <video id="myVideos" style="width: 100%" src="/real_control_v2/zndd/video/b.mp4" controls></video>
  576 + <div class="uk-width-1-2">
  577 + <div class="uk-form-row">
  578 + <label class="uk-form-label">创新性</label>
  579 + <div class="uk-form-controls">
  580 + <input value="80%" disabled>
  581 + </div>
  582 + </div>
510 583 </div>
511 584 </div>
512 585 </div>
  586 +</script>
513 587  
514 588  
515   -
  589 +<script id="buffer_config_form-temp1" type="text/html">
  590 + <div id="emergency_stop_panel">
  591 + <h3 class="btn_title_lines1">
  592 + <a class="uk-link-reset" >调整随到随发 </a>
  593 + </h3>
  594 + <div>
  595 + <form class="uk-form" name="yjtkForm">
  596 + <table>
  597 + <tr>
  598 + <td colspan="2">
  599 + 是否启用
  600 + <select class="z-depth-input" name="enableYjtk">
  601 + <option value="0" >禁用</option>
  602 + <option value="1" {{if enableYjtk}}selected{{/if}}>启用</option>
  603 + </select>
  604 + </td>
  605 + </tr>
  606 + <tr>
  607 + <td colspan="2">
  608 + 时间
  609 + <input type="time" value="{{yjtkStart}}" name="yjtkStart" {{if !enableYjtk}}disabled{{/if}}>至
  610 + <input type="time" value="{{yjtkEnd}}" name="yjtkEnd" {{if !enableYjtk}}disabled{{/if}}>
  611 + </td>
  612 + </tr>
  613 + <tr>
  614 + <td>
  615 + 上行停靠时间
  616 + <input type="number" value="{{upStopMinute}}" name="upStopMinute" {{if !enableYjtk}}disabled{{/if}}>分钟
  617 + </td>
  618 + </tr>
  619 + <tr>
  620 + <td>
  621 + 下行停靠时间
  622 + <input type="number" value="{{downStopMinute}}" name="downStopMinute" {{if !enableYjtk}}disabled{{/if}}>分钟
  623 + </td>
  624 + </tr>
  625 + </table>
  626 + </form>
  627 + </div>
  628 + </div>
516 629 </script>
517   -<style>
518   - .fanganys input{
519   - text-align: center;
520   - }
521   -</style>
  630 +<script>
  631 +
  632 +</script>
522 633 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/zndd/type/fcjg.html 0 → 100644
  1 +<div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal">
  2 + <div class="uk-modal-dialog" style="width: 920px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>新增临加班次</h2></div>
  6 + <div class="uk-grid uk-width-3-5" style="float: left">
  7 + <div class="uk-width-5-5">
  8 + <form class="uk-form uk-form-horizontal"> </form>
  9 + <div>
  10 +
  11 + </div>
  12 +
  13 + </div>
  14 + </div>
  15 +
  16 + <div class="uk-grid uk-width-2-5 lj_2" style="padding-left: 100px">
  17 + <div class="uk-width-1-1" id ="tempsdsf"></div>
  18 +
  19 + </div>
  20 +
  21 +
  22 + <div class="uk-grid uk-width-2-5 lj_1" style="padding-left: 100px">
  23 + <div class="uk-width-1-1" id ="tempcjs"></div>
  24 +
  25 + </div>
  26 +
  27 + </div>
  28 +
  29 + <script>
  30 + (function () {
  31 + var modal = '#schedule-addsch-modal',
  32 + sch, stationRoutes, parks, information, carsArray, st_park_data,conf;
  33 + debugger
  34 + var f = $('.uk-form-horizontal', modal);
  35 +
  36 + $(modal).on('init', function (e, data) {
  37 + e.stopPropagation();
  38 + sch = data.data;
  39 + sch.xlBm = sch.lineCode;
  40 +
  41 + var formHtml = template('djg-form-temp', sch);
  42 + $('form', modal).html(formHtml);
  43 + //切换
  44 +
  45 +
  46 +
  47 + $.get('/lineConfig/getByLineCode', {lineCode: sch.lineCode}, function (datan) {
  48 + var formHtmls = template('buffer_config_form-temp1', datan);
  49 + conf = datan;
  50 + $('#tempsdsf', modal).html(formHtmls);
  51 + $('[name=enableYjtk]', modal).on('change', function () {
  52 + if($(this).val() == '1'){
  53 + enableYjtkForm();
  54 + }
  55 + else
  56 + disabledYjtkForm();
  57 + });
  58 + });
  59 +
  60 + //参数改变
  61 + $('form[name=yjtkForm] input', modal).on('blur', function () {
  62 + var field = $(this).attr('name');
  63 + var val = $(this).val();
  64 + if (conf[field] != val) {
  65 + var data = $('form[name=yjtkForm]', modal).serializeJSON();
  66 + data.lineCode = conf.line.lineCode;
  67 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  68 + conf = rs.conf;
  69 + notify_succ('调整随到随发参数');
  70 + });
  71 + }
  72 + });
  73 + $("#destroySelect").on('change',function(){
  74 + let fn = $('#destroySelect').val();
  75 + if (fn == "1"){
  76 + $(".lj_2").css({
  77 + display: 'none'
  78 + });
  79 + $(".lj_1").css({
  80 + display: ''
  81 + });
  82 + /* var formHtmls = template('zntj_config_form-temp1');
  83 + $('#tempcjs', modal).html(formHtmls);*/
  84 +
  85 +
  86 +
  87 + }else {
  88 + $(".lj_2").css({
  89 + display: ''
  90 + });
  91 + $(".lj_1").css({
  92 + display: 'none'
  93 + });
  94 + $.get('/lineConfig/getByLineCode', {lineCode: sch.lineCode}, function (datan) {
  95 + var formHtmls = template('buffer_config_form-temp1', datan);
  96 + conf = datan;
  97 + $('#tempsdsf', modal).html(formHtmls);
  98 + $('[name=enableYjtk]', modal).on('change', function () {
  99 + if($(this).val() == '1'){
  100 + enableYjtkForm();
  101 + }
  102 + else
  103 + disabledYjtkForm();
  104 + });
  105 + });
  106 + }
  107 + })
  108 + });
  109 +
  110 + f.formValidation(gb_form_validation_opts);
  111 + f.on('success.form.fv', function(e) {
  112 + debugger
  113 + e.preventDefault();
  114 + var data = $(this).serializeJSON();
  115 + var date ={
  116 + lineCode : sch.sch.xlBm,
  117 + xlDir :sch.sch.xlDir,
  118 + rq : sch.lg.bcfcsj,
  119 + bcnum:data.bcnum
  120 + }
  121 +
  122 + //添加记录
  123 + $.post('/logZndd/znddConfig', date, function(res) {
  124 + //只有一个 直接删除掉
  125 + if(res.status != null){
  126 + notify_succ('班次设定成功!(自动)');
  127 + }else {
  128 + notify_err('班次设定失败!(自动)');
  129 + }
  130 + $('.multi_plat_msg_pop_zndd .multi_plat_config').remove();
  131 + if(res.ts && res.ts.length > 0){
  132 + gb_schedule_table.updateSchedule(res.ts);
  133 + var modal = '#schedule-multi-dftz-modal';
  134 + UIkit.modal(modal).hide();
  135 + notify_succ('待发调整成功');
  136 + }
  137 + });
  138 +
  139 + });
  140 +
  141 + function enableYjtkForm() {
  142 + var f = $('form[name=yjtkForm]', modal);
  143 + $('input', f).removeAttr('disabled');
  144 + //开始时间
  145 + if($('[name=yjtkStart]',f).val() == '')
  146 + $('[name=yjtkStart]',f).val('00:00');
  147 + if($('[name=yjtkEnd]',f).val() == '')
  148 + $('[name=yjtkEnd]',f).val('23:59');
  149 + var data = f.serializeJSON();
  150 + data.lineCode = conf.line.lineCode;
  151 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  152 + conf = rs.conf;
  153 + notify_succ('启用随到随发');
  154 + });
  155 + }
  156 + function disabledYjtkForm() {
  157 + var f = $('form[name=yjtkForm]', modal);
  158 + $('input', f).attr('disabled', 'disabled');
  159 + //恢复val
  160 + $('[name=yjtkStart]',f).val(conf.yjtkStart);
  161 + $('[name=yjtkEnd]',f).val(conf.yjtkEnd);
  162 + $('[name=upStopMinute]',f).val(conf.upStopMinute);
  163 + $('[name=downStopMinute]',f).val(conf.downStopMinute);
  164 +
  165 + var data = {enableYjtk: 0, lineCode: conf.line.lineCode};
  166 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  167 + conf = rs.conf;
  168 + notify_succ('禁用随到随发');
  169 + });
  170 + }
  171 +
  172 + })();
  173 + </script>
  174 +</div>
  175 +
  176 +<script id="djg-form-temp" type="text/html">
  177 + <input type="hidden" name="id" value=""/>
  178 +
  179 + <div class="uk-grid">
  180 + <div class="uk-width-4-2">
  181 + <div class="uk-form-row">
  182 + <h3>间隔情况</h3>
  183 + </div>
  184 + </div>
  185 + </div>
  186 + <div class="uk-grid">
  187 + <div class="uk-width-4-2">
  188 + <div class="uk-form-row">
  189 + <label class="uk-form-labels" >{{lineName}} -> 起点站开往终点站 出现发车大间隔</label>
  190 + </div>
  191 + </div>
  192 + </div>
  193 + <div>
  194 + <div class="uk-grid">
  195 + <div class="uk-width-1-2">
  196 + <div class="uk-form-row">
  197 + <label class="uk-form-label">当前车车号</label>
  198 + <div class="uk-form-controls">
  199 + <input value="{{lg.nbbm}}" disabled>
  200 + </div>
  201 + </div>
  202 + </div>
  203 + <div class="uk-width-1-2">
  204 + <div class="uk-form-row">
  205 + <label class="uk-form-label">前车车号</label>
  206 + <div class="uk-form-controls">
  207 + <input value="{{lg.beforeNbbm}}" disabled>
  208 + </div>
  209 + </div>
  210 + </div>
  211 + </div>
  212 + <div class="uk-grid">
  213 + <div class="uk-width-1-2">
  214 + <div class="uk-form-row">
  215 + <label class="uk-form-label">当前车站点</label>
  216 + <div class="uk-form-controls">
  217 + <input value="{{lg.stationName}}" disabled>
  218 + </div>
  219 + </div>
  220 + </div>
  221 + <div class="uk-width-1-2">
  222 + <div class="uk-form-row">
  223 + <label class="uk-form-label">前车站点</label>
  224 + <div class="uk-form-controls">
  225 + <input value="{{lg.beforeStationName}}" disabled>
  226 + </div>
  227 + </div>
  228 + </div>
  229 + </div>
  230 + <div class="uk-grid">
  231 + <div class="uk-width-1-2">
  232 + <div class="uk-form-row">
  233 + <label class="uk-form-label">当前车发车时间</label>
  234 + <div class="uk-form-controls">
  235 + <input value="{{lg.bcfcsj}}" disabled>
  236 + </div>
  237 + </div>
  238 + </div>
  239 + <div class="uk-width-1-2">
  240 + <div class="uk-form-row">
  241 + <label class="uk-form-label">前车发车时间</label>
  242 + <div class="uk-form-controls">
  243 + <input value="{{lg.beforeBcfcsj}}" disabled>
  244 + </div>
  245 + </div>
  246 + </div>
  247 + </div>
  248 + <div class="uk-grid">
  249 + <div class="uk-width-1-2">
  250 + <div class="uk-form-row">
  251 + <label class="uk-form-label">当前间隔分钟数</label>
  252 + <div class="uk-form-controls">
  253 + <input value="{{lg.intervalMinute}}" disabled>
  254 + </div>
  255 + </div>
  256 + </div>
  257 + <div class="uk-width-1-2">
  258 + <div class="uk-form-row">
  259 + <label class="uk-form-label">大间隔分钟数阀值</label>
  260 + <div class="uk-form-controls">
  261 + <input value="{{lg.largeGapConfigMinute}}" disabled>
  262 + </div>
  263 + </div>
  264 + </div>
  265 + </div>
  266 +
  267 + <div class="uk-grid lj_1" style="display: none">
  268 + <div class="uk-width-1-1">
  269 +
  270 + <div class="uk-form-row">
  271 + <label class="uk-form-label">延后班次数量</label>
  272 + <div class="uk-form-controls">
  273 + <input type="number" value="5" name="bcnum" id="bcnum">
  274 + </div>
  275 + </div>
  276 + </div>
  277 + </div>
  278 +
  279 +
  280 + <div class="uk-grid">
  281 + <div class="uk-width-2-2">
  282 + <div class="uk-form-row">
  283 + <label class="uk-form-label">选择方案</label>
  284 + <div class="uk-form-controls">
  285 + <select name="destroy" class="form-control" id="destroySelect">
  286 +<!-- <option value="0">&#45;&#45; 临加班次 &#45;&#45;</option>-->
  287 + <option value="0">&#45;&#45; 随到随发 &#45;&#45;</option>
  288 + <option value="1">&#45;&#45; 智能延后发车时间 &#45;&#45;</option>
  289 + </select>
  290 + </div>
  291 + </div>
  292 + </div>
  293 + </div>
  294 +
  295 + <div class="uk-grid">
  296 + <div class="uk-width-4-2">
  297 + <div class="uk-form-row">
  298 + <h3>方案优势</h3>
  299 + </div>
  300 + </div>
  301 + </div>
  302 +
  303 + <div class="uk-grid">
  304 + <div class="uk-width-1-2">
  305 + <div class="uk-form-row">
  306 + <label class="uk-form-label">间隔检测效率</label>
  307 + <div class="uk-form-controls">
  308 + <input value="50%" disabled>
  309 + </div>
  310 + </div>
  311 + </div>
  312 + <div class="uk-width-1-2">
  313 + <div class="uk-form-row">
  314 + <label class="uk-form-label">创新性</label>
  315 + <div class="uk-form-controls">
  316 + <input value="80%" disabled>
  317 + </div>
  318 + </div>
  319 + </div>
  320 + </div>
  321 +
  322 + <div class="uk-modal-footer uk-text-right lj_1" style="margin-bottom: -20px; display: none;" >
  323 + <button type="button" class="uk-button uk-modal-close">取消</button>
  324 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
  325 + </div>
  326 + </div>
  327 +</script>
  328 +
  329 +
  330 +<script id="buffer_config_form-temp1" type="text/html">
  331 + <div id="emergency_stop_panel">
  332 + <h3 class="btn_title_lines1">
  333 + <a class="uk-link-reset" >调整随到随发 </a>
  334 + </h3>
  335 + <div>
  336 + <form class="uk-form" name="yjtkForm">
  337 + <table>
  338 + <tr>
  339 + <td colspan="2">
  340 + 是否启用
  341 + <select class="z-depth-input" name="enableYjtk">
  342 + <option value="0" >禁用</option>
  343 + <option value="1" {{if enableYjtk}}selected{{/if}}>启用</option>
  344 + </select>
  345 + </td>
  346 + </tr>
  347 + <tr>
  348 + <td colspan="2">
  349 + 时间
  350 + <input type="time" value="{{yjtkStart}}" name="yjtkStart" {{if !enableYjtk}}disabled{{/if}}>至
  351 + <input type="time" value="{{yjtkEnd}}" name="yjtkEnd" {{if !enableYjtk}}disabled{{/if}}>
  352 + </td>
  353 + </tr>
  354 + <tr>
  355 + <td>
  356 + 上行停靠时间
  357 + <input type="number" value="{{upStopMinute}}" name="upStopMinute" {{if !enableYjtk}}disabled{{/if}}>分钟
  358 + </td>
  359 + </tr>
  360 + <tr>
  361 + <td>
  362 + 下行停靠时间
  363 + <input type="number" value="{{downStopMinute}}" name="downStopMinute" {{if !enableYjtk}}disabled{{/if}}>分钟
  364 + </td>
  365 + </tr>
  366 + </table>
  367 + </form>
  368 + </div>
  369 + </div>
  370 +</script>
  371 +
  372 +
  373 +<!--
  374 +<script id="zntj_config_form-temp1" type="text/html">
  375 + <div">
  376 + <h3 class="btn_title_lines1">
  377 + <a class="uk-link-reset" >智能延后发车时间 </a>
  378 + </h3>
  379 + <div>
  380 + <form>
  381 + <table>
  382 +
  383 + <tr>
  384 + <td>
  385 + 延后班次数量(个)
  386 + <input type="number" value="5" name="bcnum" id="bcnum">
  387 + </td>
  388 + </tr>
  389 + </table>
  390 + </form>
  391 +
  392 +
  393 + </div>
  394 + </div>
  395 +</script>-->
... ...
src/main/resources/static/real_control_v2/zndd/type/mz.html 0 → 100644
  1 +<div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal">
  2 + <div class="uk-modal-dialog" style="width: 1400px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>满载</h2></div>
  6 + <div class="uk-grid uk-width-2-5" style="float: left">
  7 + <div class="uk-width-5-5">
  8 + <form class="uk-form uk-form-horizontal"> </form>
  9 + <div>
  10 +
  11 +
  12 + </div>
  13 + </div>
  14 + </div>
  15 + <div class="uk-grid uk-width-3-5 lj_1" >
  16 + <div class="uk-width-1-4">
  17 + <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg">
  18 + <li data-handle="toAndFro"><a>1、往返</a></li>
  19 + <li data-handle="normal"><a>2、临加班次</a></li>
  20 + <!-- <li data-handle="parkToPark"><a>3、场到场</a></li>-->
  21 + </ul>
  22 + </div>
  23 + <div class="uk-width-3-4">
  24 + <ul id="tempScheduleContent" class="uk-switcher">
  25 + <li class="toAndFroCont"></li>
  26 + <li class="normalCont"></li>
  27 + <li class="parkToParkCont"></li>
  28 + </ul>
  29 + </div>
  30 + </div>
  31 +
  32 + </div>
  33 +
  34 + <script>
  35 + (function () {
  36 + var modal = '#schedule-addsch-modal',
  37 + sch, stationRoutes, parks, information, carsArray, st_park_data,conf;
  38 +
  39 + $(modal).on('init', function (e, data) {
  40 + e.stopPropagation();
  41 + sch = data.data;
  42 + sch.xlBm = sch.lineCode;
  43 +
  44 + //站到场数据
  45 + st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm];
  46 + //站点路由
  47 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
  48 + return a.stationRouteCode - b.stationRouteCode;
  49 + }), 'directions');
  50 + let route = stationRoutes[sch.xlDir];
  51 + debugger
  52 + sch.startStation = route[0];
  53 + sch.stopStation = route[route.length - 1];
  54 + var formHtml = template('djg-form-temp', sch);
  55 + $('form', modal).html(formHtml);
  56 + //切换
  57 + $("#destroySelect").on('change',function(){
  58 + let fn = $('#destroySelect').val();
  59 + if (fn == "0"){
  60 + $('.video_1').css({display: ''});
  61 + $('.video_2').css({display: 'none'});
  62 +
  63 + }else {
  64 + $('.video_1').css({display: 'none'});
  65 + $('.video_2').css({display: ''});
  66 + }
  67 + })
  68 +
  69 + //停车场
  70 + parks = gb_data_basic.simpleParksArray();
  71 + //线路标准
  72 + information = gb_data_basic.getLineInformation(sch.xlBm);
  73 + //停车场排序,常用的放前面
  74 + parks = sort_parks(parks, information, st_park_data);
  75 + //车辆信息
  76 + carsArray = gb_data_basic.carsArray();
  77 +
  78 + var st_doms = gb_schedule_context_menu.get_add_sch_doms_v2();
  79 +
  80 + $.post('/znddLogger/thissch/'+sch.ids, function(res) {
  81 + //to and fro
  82 + $('.toAndFroCont', modal).html(st_doms.two_way_dom)
  83 + .trigger('init', {sch: res, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes});
  84 +
  85 +
  86 + //normal
  87 + $('.normalCont', modal).html(st_doms.normal_dom)
  88 + .trigger('init', {sch: res, submitFun: submit_temp_schedule_form});
  89 + });
  90 +
  91 +
  92 +
  93 + });
  94 +
  95 + //init-autoCom
  96 + $(modal).on('init-autoCom', '.add-sch-form', function () {
  97 + //车辆
  98 + if(carsArray)
  99 + gb_common.carAutocomplete($('.car-autocom', this), carsArray);
  100 + //驾驶员
  101 + gb_common.personAutocomplete($('.jsy-autocom', this));
  102 + //售票员
  103 + gb_common.personAutocomplete($('.spy-autocom', this));
  104 + //备注补全
  105 + gb_common.remarksAutocomplete($('.remarks-autocom', this));
  106 + });
  107 +
  108 + //班次类型 和 上下行 切换事件
  109 + $(modal).on('change', '.add-sch-form [name=bcType],.add-sch-form [name=xlDir]', reCalcInputs_type);
  110 + //起终点站改变事件
  111 + $(modal).on('change', '[name=qdzCode],[name=zdzCode]', reCalcInputs_station);
  112 + //开始时间和公里改变
  113 + $(modal).on('input', '.add-sch-form [name=fcsj],.add-sch-form [name=jhlc]', reCalcEndTime);
  114 +
  115 +
  116 + function reCalcInputs_type() {
  117 + var f = $(this).parents('.add-sch-form');
  118 + var bcType_e = $('[name=bcType]', f)
  119 + , xlDir_e = $('[name=xlDir]', f);
  120 +
  121 + var routes = stationRoutes[xlDir_e.val()]
  122 + , lastCode = routes[routes.length - 1].stationCode
  123 + , opts = '', park_opts = '';
  124 + //station options
  125 + $.each(routes, function () {
  126 + opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>'
  127 + });
  128 + //park options
  129 + for(var i=0,p;p=parks[i++];)
  130 + park_opts += '<option value="' + p.code + '">' + p.name + '</option>';
  131 +
  132 + var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f);
  133 + //var time, mileage;
  134 + switch (bcType_e.val()) {
  135 + case 'out':
  136 + qdz.html(park_opts).val(information.carPark);
  137 + zdz.html(opts);
  138 + break;
  139 + case 'in':
  140 + qdz.html(opts);
  141 + zdz.html(park_opts).val(information.carPark);
  142 + break;
  143 + default:
  144 + qdz.html(opts);
  145 + zdz.html(opts).val(lastCode);
  146 + }
  147 +
  148 + zdz.trigger('change');
  149 + f.trigger('ct_callback');
  150 + }
  151 +
  152 + function reCalcInputs_station() {
  153 + var f = $(this).parents('form'),
  154 + bcType = $('[name=bcType]', f).val(),
  155 + qdzCode = $('[name=qdzCode]', f).val(),
  156 + zdzCode =$('[name=zdzCode]', f).val(),
  157 + startDate = $('[name=fcsj]', f).val(),
  158 + upDown = $('[name=xlDir]', f).val(), mileage, time;
  159 +
  160 + //从站到场里获取数据
  161 + var stp = search_st_park(f);
  162 + if(stp){
  163 + mileage=bcType=='in'?stp['mileage1']:stp['mileage2'];
  164 + time=bcType=='in'?stp['time1']:stp['time2'];
  165 + }
  166 + else{
  167 + switch (upDown + '_' + bcType) {
  168 + case '0_out'://上行出场
  169 + mileage = information.upOutMileage;
  170 + time = information.upOutTimer;
  171 + break;
  172 + case '1_out'://下行出场
  173 + mileage = information.downOutMileage;
  174 + time = information.downOutTimer;
  175 + break;
  176 + case '0_in'://上行进场
  177 + mileage = information.upInMileage;
  178 + time = information.upInTimer;
  179 + break;
  180 + case '1_in'://下行进场
  181 + mileage = information.downInMileage;
  182 + time = information.downInTimer;
  183 + break;
  184 + default:
  185 +
  186 + var qc_time=upDown==0?information.upTravelTime:information.downTravelTime,
  187 + qc_mileage=upDown==0?information.upMileage:information.downMileage, _type;
  188 + if(is_normal_sch(f)){
  189 + _type='normal';
  190 + mileage=qc_mileage;
  191 + }
  192 + else{
  193 + _type='region';
  194 + mileage = calcMileage(stationRoutes[upDown], qdzCode, zdzCode);
  195 + }
  196 +
  197 + time = gb_common.mul(gb_common.accDiv(qc_time, qc_mileage), mileage);
  198 + if(bcType!='ldks' && bcType!='major' && bcType!='venting')
  199 + $('[name=bcType]', f).val(_type);
  200 + }
  201 + }
  202 +
  203 + $('[name=jhlc]', f).val(mileage);
  204 + var et = moment(startDate, 'HH:mm').add(time, 'minutes');
  205 + $f('zdsj', f).val(et.format('HH:mm'));
  206 + f.trigger('ct_callback');
  207 + }
  208 +
  209 +
  210 + function reCalcEndTime() {
  211 + var f = $(this).parents('.add-sch-form')
  212 + , startDate = $f('fcsj', f).val()//开始时间
  213 + , mileage = $f('jhlc', f).val()//公里
  214 + , type2 = $f('bcType', f).val(),//班次类型
  215 + upDown = $('[name=xlDir]', f).val();
  216 + if (!startDate || !mileage)
  217 + return;
  218 +
  219 + var time;
  220 + //从站到场里获取数据
  221 + var stp = search_st_park(f);
  222 + if(stp){
  223 + time=type2=='in'?stp['time1']:stp['time2'];
  224 + }
  225 + else{
  226 + if (type2 == 'in')
  227 + time = upDown == 0 ? information.upInTimer : information.downInTimer;
  228 + else if (type2 == 'out')
  229 + time = upDown == 0 ? information.upOutTimer : information.downOutTimer;
  230 + else{
  231 + var qc_time=upDown==0?information.upTravelTime:information.downTravelTime,
  232 + qc_mileage=upDown==0?information.upMileage:information.downMileage;
  233 +
  234 + time = gb_common.mul(gb_common.accDiv(qc_time, qc_mileage), mileage);
  235 + }
  236 + }
  237 +
  238 + var et = moment(startDate, 'HH:mm').add(time, 'minutes');
  239 + $f('zdsj', f).val(et.format('HH:mm'));
  240 + f.trigger('ct_callback');
  241 + }
  242 +
  243 + function is_normal_sch(f) {
  244 + var qdzCode = $('[name=qdzCode]', f).val(),
  245 + zdzCode =$('[name=zdzCode]', f).val(),
  246 + upDown = $('[name=xlDir]', f).val(),
  247 + rts = stationRoutes[upDown];
  248 +
  249 + if(rts[0].stationCode == qdzCode
  250 + && rts[rts.length - 1].stationCode == zdzCode)
  251 + return true;
  252 + else
  253 + return false;
  254 + }
  255 +
  256 + function isInOut(bcType) {
  257 + return bcType=='in' || bcType=='out';
  258 + }
  259 +
  260 + /**
  261 + * 计算线路上站点间公里
  262 + */
  263 + function calcMileage(rts, s, e) {
  264 + var mileage = 0, flag, code;
  265 + $.each(rts, function () {
  266 + code = this['stationCode'];
  267 + if (flag)
  268 + mileage = gb_common.accAdd(mileage, this.distances);
  269 + if (code == s)
  270 + flag = true;
  271 + if (code == e)
  272 + return false;
  273 + });
  274 + return mileage;
  275 + }
  276 +
  277 + function search_st_park(f) {
  278 + if(!st_park_data)
  279 + return;
  280 + var stp;
  281 + var qdSelect=$f('qdzCode', f)[0],zdSelect=$f('zdzCode', f)[0];
  282 +
  283 + if(qdSelect.options.selectedIndex < 0 || zdSelect.options.selectedIndex < 0)
  284 + return;
  285 + var qdzName=qdSelect.options[qdSelect.options.selectedIndex].text,
  286 + zdzName=zdSelect.options[zdSelect.options.selectedIndex].text,
  287 + type2 = $f('bcType', f).val();
  288 +
  289 + if(!isInOut(type2))
  290 + return;
  291 +
  292 + $.each(st_park_data, function () {
  293 + if((type2=='in' && this.stationName==qdzName && this.parkName==zdzName)
  294 + || (type2=='out' && this.stationName==zdzName && this.parkName==qdzName)){
  295 + stp = this;
  296 + return false;
  297 + }
  298 + });
  299 +
  300 + return stp;
  301 + }
  302 +
  303 + /**
  304 + * 停车场排序
  305 + * @param parks 停车场 code 2 name
  306 + * @param information 线路标准
  307 + * @param st_park_data 站到场
  308 + */
  309 + function sort_parks(parks, information, st_park_data) {
  310 + var array = [], names=[];
  311 + for(var code in parks){
  312 + array.push({code: code, name: parks[code]});
  313 + }
  314 +
  315 + if(st_park_data && st_park_data.length > 0){
  316 + $.each(st_park_data, function () {
  317 + names.push(this.parkName);
  318 + });
  319 + }
  320 +
  321 + //debugger
  322 + array.sort(function (a, b) {
  323 + if(a.code==information.carPark)
  324 + return -1;
  325 + if(b.code==information.carPark)
  326 + return 1;
  327 +
  328 + var ai = names.indexOf(a.name),
  329 + bi = names.indexOf(b.name);
  330 +
  331 + if(ai!=-1 && bi==-1)
  332 + return -1;
  333 + else if(ai==-1 && bi!=-1)
  334 + return 1;
  335 + else
  336 + return $.trim(a.name).localeCompare($.trim(b.name), 'zh-CN');
  337 + });
  338 + return array;
  339 + }
  340 +
  341 + function $f(name, f) {
  342 + return $('[name=' + name + ']', f);
  343 + }
  344 +
  345 + /**
  346 + * 提交表单
  347 + */
  348 + function submit_temp_schedule_form(data, cb, err) {
  349 + if (!data.lpName) {
  350 + notify_err('路牌信息缺失');
  351 + return;
  352 + }
  353 + data.xlBm = sch.xlBm;
  354 + data.xlName = sch.xlName;
  355 + //拆分驾驶员工号和姓名
  356 + data.jGh = data.jsy.split('/')[0];
  357 + data.jName = data.jsy.split('/')[1];
  358 + delete data.jsy;
  359 + //拆分售票员工号和姓名
  360 + if (data.spy != '') {
  361 + data.sGh = data.spy.split('/')[0];
  362 + data.sName = data.spy.split('/')[1];
  363 + delete data.spy;
  364 + }
  365 +
  366 + //公司信息
  367 + var line = gb_data_basic.findLineByCodes([data.xlBm]);
  368 + if(line && line.length > 0){
  369 + line = line[0];
  370 + data.xlName = line.name;
  371 + data.gsBm = line.company;
  372 + data.fgsBm = line.brancheCompany;
  373 + }
  374 +
  375 + gb_common.$post('/realSchedule', data, function (rs) {
  376 + notify_succ('新增临加班次成功');
  377 + cb && cb(rs);
  378 + }, err);
  379 + }
  380 +
  381 +
  382 +
  383 +
  384 + })();
  385 + </script>
  386 +</div>
  387 +
  388 +<script id="djg-form-temp" type="text/html">
  389 + <input type="hidden" name="id" value=""/>
  390 +
  391 + <div class="uk-grid">
  392 + <div class="uk-width-4-2">
  393 + <div class="uk-form-row">
  394 + <h3>满载信息</h3>
  395 + </div>
  396 + </div>
  397 + </div>
  398 + <div class="uk-grid">
  399 + <div class="uk-width-4-2">
  400 + <div class="uk-form-row">
  401 + <label class="uk-form-labels" >{{lineName}} {{startStation.stationName}} -> {{stopStation.stationName}}方向 的 {{clzbh}} 出现满载</label>
  402 + </div>
  403 + </div>
  404 +
  405 + </div>
  406 +
  407 + <div class="uk-grid">
  408 + <div class="uk-width-1-2">
  409 + <div class="uk-form-row">
  410 + <label class="uk-form-label">车辆发车时间</label>
  411 + <div class="uk-form-controls">
  412 + <input type="time" value="{{fcsj}}" name="fcsj" disabled>
  413 + </div>
  414 + </div>
  415 + </div>
  416 + <div class="uk-width-1-2">
  417 + <div class="uk-form-row">
  418 + <label class="uk-form-label">车辆所在站点</label>
  419 + <div class="uk-form-controls">
  420 + <input value="环湖西三路杞青路" disabled>
  421 + </div>
  422 + </div>
  423 + </div>
  424 + </div>
  425 +
  426 + <div class="uk-grid">
  427 + <div class="uk-width-1-2">
  428 + <div class="uk-form-row">
  429 + <label class="uk-form-label">车内人数</label>
  430 + <div class="uk-form-controls">
  431 + <input value="23" disabled>
  432 + </div>
  433 + </div>
  434 + </div>
  435 + <div class="uk-width-1-2">
  436 + <div class="uk-form-row">
  437 + <label class="uk-form-label">摄像</label>
  438 + <div class="uk-form-controls">
  439 + <select name="destroy" class="form-control" id="destroySelect">
  440 + <option value="0">-- 前车厢 --</option>
  441 + <option value="1">-- 后车厢 --</option>
  442 + </select>
  443 + </div>
  444 + </div>
  445 + </div>
  446 + </div>
  447 + <div class="uk-grid">
  448 +
  449 + <div class="uk-width-1-1">
  450 + <div class="uk-form-row">
  451 + <label class="uk-form-label">车内视频:</label>
  452 + </div>
  453 + </div>
  454 + </div>
  455 + <div class="uk-grid">
  456 + <div class="uk-width-4-2">
  457 + <div class="uk-form-row video_1">
  458 + <video id="myVideo" style="width: 100%" src="/real_control_v2/zndd/video/a.mp4" controls></video>
  459 + </div>
  460 + <div class="uk-form-row video_2" style="display: none">
  461 + <video id="myVideos" style="width: 100%" src="/real_control_v2/zndd/video/b.mp4" controls></video>
  462 + </div>
  463 + </div>
  464 + </div>
  465 +
  466 + <div class="uk-grid">
  467 + <div class="uk-width-4-2">
  468 + <div class="uk-form-row">
  469 + <h3>方案优势</h3>
  470 + </div>
  471 + </div>
  472 + </div>
  473 +
  474 + <div class="uk-grid fanganys">
  475 + <div class="uk-width-1-2">
  476 + <div class="uk-form-row">
  477 + <label class="uk-form-label">载客量</label>
  478 + <div class="uk-form-controls">
  479 + <i class="icon-user"></i>
  480 + <input value="24" disabled>
  481 + </div>
  482 + </div>
  483 + </div>
  484 + <div class="uk-width-1-2">
  485 + <div class="uk-form-row">
  486 + <label class="uk-form-label">准点率</label>
  487 + <div class="uk-form-controls">
  488 + <i class="icon-user"></i>
  489 + <input value="0.1%" disabled>
  490 + </div>
  491 + </div>
  492 + </div>
  493 + </div>
  494 + <div class="uk-grid fanganys">
  495 + <div class="uk-width-1-2">
  496 + <div class="uk-form-row">
  497 + <label class="uk-form-label">乘客满意度</label>
  498 + <div class="uk-form-controls">
  499 + <i class="icon-user"></i>
  500 + <input value="0.1%" disabled>
  501 + </div>
  502 + </div>
  503 + </div>
  504 + <div class="uk-width-1-2">
  505 + <div class="uk-form-row">
  506 + <label class="uk-form-label">运营效率</label>
  507 + <div class="uk-form-controls">
  508 + <i class="icon-user"></i>
  509 + <input value="0.3%" disabled>
  510 + </div>
  511 + </div>
  512 + </div>
  513 + </div>
  514 +
  515 + <!-- 表单按钮组件 START -->
  516 + <div class="form-actions">
  517 + <div class="row">
  518 + <div class="col-md-offset-5 col-md-7">
  519 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
  520 + <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>
  521 + </div>
  522 + </div>
  523 + </div>
  524 +</script>
  525 +<style>
  526 + .fanganys input{
  527 + text-align: center;
  528 + }
  529 + .icon-user{
  530 +
  531 + position: absolute;
  532 + background-image: url(/real_control_v2/zndd/img/up.png); /*引入图片图片*/
  533 + background-size: 100% 100%;
  534 + background-repeat: no-repeat; /*设置图片不重复*/
  535 + background-position: 0px 0px; /*图片显示的位置*/
  536 + width: 30px; /*设置图片显示的宽*/
  537 + height: 30px; /*图片显示的高*/
  538 +
  539 + }
  540 +
  541 +</style>
... ...
src/main/resources/static/real_control_v2/zndd/type/wd.html 0 → 100644
  1 +<div class="uk-modal ct-form-modal ct_move_modal" id="wd-addsch-modal">
  2 + <div class="uk-modal-dialog" style="width: 850px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>误点<i class="uk-icon-question-circle uk-icon-hover"></i></h2></div>
  6 +
  7 + <div class="uk-grid uk-width-3-5 lj_1" style="float: left">
  8 + <form class="uk-form uk-form-horizontal"> </form>
  9 + </div>
  10 +
  11 +
  12 +
  13 + <div class="uk-grid uk-width-2-5 lj_2" style="padding-left: 100px">
  14 + <div class="uk-width-1-1" id ="tempsdsf"></div>
  15 +
  16 + </div>
  17 + </div>
  18 +
  19 + <script>
  20 + (function () {
  21 + var modal = '#wd-addsch-modal',
  22 + sch, stationRoutes, parks, information, carsArray, st_park_data,conf;
  23 + var f = $('.uk-form-horizontal', modal);
  24 +
  25 + $(modal).on('init', function (e, data) {
  26 + e.stopPropagation();
  27 +
  28 + sch = data.data;
  29 + sch.xlBm = sch.lineCode;
  30 + //站点路由
  31 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
  32 + return a.stationRouteCode - b.stationRouteCode;
  33 + }), 'directions');
  34 + let route = stationRoutes[sch.xlDir];
  35 + sch.startStation = route[0];
  36 + sch.stopStation = route[route.length - 1];
  37 + var formHtml = template('wd-form-temp', sch);
  38 + $('form', modal).html(formHtml);
  39 + //车辆信息
  40 + carsArray = gb_data_basic.carsArray();
  41 + initAutoCom(f);
  42 + $.get('/lineConfig/getByLineCode', {lineCode: sch.lineCode}, function (datan) {
  43 + var formHtmls = template('buffer_config_form-temp1', datan);
  44 + conf = datan;
  45 + $('#tempsdsf', modal).html(formHtmls);
  46 + $('[name=enableYjtk]', modal).on('change', function () {
  47 + if($(this).val() == '1'){
  48 + enableYjtkForm();
  49 + }
  50 + else
  51 + disabledYjtkForm();
  52 + });
  53 + });
  54 +
  55 +
  56 + f.formValidation(gb_form_validation_opts);
  57 + f.on('success.form.fv', function(e) {
  58 +
  59 +
  60 + e.preventDefault();
  61 + var data = $(this).serializeJSON();
  62 + let fn = $('#destroySelect').val();
  63 + debugger
  64 + if (fn == "1"){
  65 + //调整人员车辆
  66 + let datas = {
  67 + id : sch.sch.id,
  68 + jsy: data.jsy,
  69 + clZbh : data.clZbh,
  70 + remarks : '调整人员车辆',
  71 + }
  72 +
  73 + gb_common.$post('/realSchedule/schInfoFineTune', datas, function(rs){
  74 + gb_schedule_table.updateSchedule(rs.ts);
  75 + UIkit.modal(modal).hide();
  76 + notify_succ('操作成功!');
  77 + //计算应发未发
  78 + gb_schedule_table.calc_yfwf_num(sch.xlBm);
  79 + //更新路牌公里统计面板
  80 + gb_schedule_table.showLpMileageTipBySch(sch);
  81 + });
  82 +
  83 + }else if((fn == "2")) {
  84 + gb_common.$post_arr('/realSchedule/lateAdjust', {idx: sch.id, minute: data.wdsj}, function (rs) {
  85 + console.log('误点调整rs', rs);
  86 + if(rs.ts){
  87 + gb_schedule_table.updateSchedule(rs.ts);
  88 + notify_succ('成功设置误点停靠时间');
  89 + UIkit.modal(modal).hide();
  90 + }
  91 + });
  92 + }
  93 + });
  94 +
  95 + // 之后可以在事件处理函数中给它赋值
  96 + document.getElementById('wdsj').onkeyup = function(event) {
  97 + debugger
  98 + let KeyP = event.target.value; // 赋值
  99 + $('#dfsj').val($('#dfsj_0').val() +' + '+ KeyP)
  100 + // ...其他代码...
  101 + };
  102 + //方案选择
  103 + $("#destroySelect").on('change',function(){
  104 + debugger
  105 + let fn = $('#destroySelect').val();
  106 + if (fn == "1"){
  107 + $(".lj_2").css({ display: 'none'});
  108 + $(".k1").css({ display: ''});
  109 + $(".k2").css({display: ''});
  110 + $(".k3").css({display: 'none'});
  111 + }else if((fn == "2")) {
  112 + $(".lj_2").css({ display: 'none'});
  113 + $(".k1").css({ display: ''});
  114 + $(".k2").css({display: 'none'});
  115 + $(".k3").css({display: ''});
  116 + }else {
  117 + $(".lj_2").css({ display: ''});
  118 + $(".k1").css({ display: 'none'});
  119 + $(".k2").css({display: 'none'});
  120 + $(".k3").css({display: 'none'});
  121 + }
  122 + })
  123 +
  124 + });
  125 +
  126 +
  127 + function initAutoCom(f) {
  128 + //车辆
  129 + debugger
  130 + if(carsArray)
  131 + gb_common.carAutocomplete($('.car-autocom', f), carsArray);
  132 + //驾驶员
  133 + gb_common.personAutocomplete($('.jsy-autocom', f));
  134 + //售票员
  135 + gb_common.personAutocomplete($('.spy-autocom', f));
  136 + //备注补全
  137 + gb_common.remarksAutocomplete($('.remarks-autocom', f));
  138 + }
  139 + function enableYjtkForm() {
  140 + var f = $('form[name=yjtkForm]', modal);
  141 + $('input', f).removeAttr('disabled');
  142 + //开始时间
  143 + if($('[name=yjtkStart]',f).val() == '')
  144 + $('[name=yjtkStart]',f).val('00:00');
  145 + if($('[name=yjtkEnd]',f).val() == '')
  146 + $('[name=yjtkEnd]',f).val('23:59');
  147 + var data = f.serializeJSON();
  148 + data.lineCode = conf.line.lineCode;
  149 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  150 + conf = rs.conf;
  151 + notify_succ('启用随到随发');
  152 + });
  153 + }
  154 + function disabledYjtkForm() {
  155 + var f = $('form[name=yjtkForm]', modal);
  156 + $('input', f).attr('disabled', 'disabled');
  157 + //恢复val
  158 + $('[name=yjtkStart]',f).val(conf.yjtkStart);
  159 + $('[name=yjtkEnd]',f).val(conf.yjtkEnd);
  160 + $('[name=upStopMinute]',f).val(conf.upStopMinute);
  161 + $('[name=downStopMinute]',f).val(conf.downStopMinute);
  162 +
  163 + var data = {enableYjtk: 0, lineCode: conf.line.lineCode};
  164 + gb_common.$post('/lineConfig/yjtkSet', data, function (rs) {
  165 + conf = rs.conf;
  166 + notify_succ('禁用随到随发');
  167 + });
  168 + }
  169 +
  170 +
  171 + $(modal).on('mouseenter', '.uk-icon-question-circle', function() {
  172 + debugger
  173 + $(this).qtip({
  174 + show: {
  175 + ready: true,
  176 + delay: 0
  177 + },
  178 + content: {
  179 + text: function() {
  180 + return template('home-icoe-img');
  181 + }
  182 + },
  183 + position: {
  184 + viewport: $(window) ,
  185 + },
  186 + style: {
  187 + classes: 'qtip-img'
  188 + },
  189 + hide: {
  190 + fixed: true,
  191 + delay: 300
  192 + },
  193 + });
  194 + });
  195 +
  196 + })();
  197 + </script>
  198 +</div>
  199 +
  200 +<script id="wd-form-temp" type="text/html">
  201 + <input type="hidden" name="id" value=""/>
  202 +
  203 + <div class="uk-grid">
  204 + <div class="uk-width-4-2">
  205 + <div class="uk-form-row">
  206 + <h3>误点信息</h3>
  207 + </div>
  208 + </div>
  209 + </div>
  210 + <div class="uk-grid">
  211 + <div class="uk-width-4-2">
  212 + <div class="uk-form-row">
  213 + <label class="uk-form-labels" >{{lineName}} {{startStation.stationName}} -> {{stopStation.stationName}}方向 的 {{clzbh}} 出现误点</label>
  214 + </div>
  215 + </div>
  216 + </div>
  217 + <div class="uk-grid">
  218 + <div class="uk-width-1-1">
  219 + <div class="uk-form-row">
  220 + <label class="uk-form-labels">待发时间 {{sch.fcsj}}-> 实发时间 {{sch.fcsjActual}}</label>
  221 +
  222 + </div>
  223 + </div>
  224 + </div>
  225 + <div class="uk-grid">
  226 + <div class="uk-width-1-2">
  227 + <div class="uk-form-row">
  228 + <label class="uk-form-label">调整前:</label>
  229 + <div class="uk-form-controls">
  230 + </div>
  231 + </div>
  232 + </div>
  233 + <div class="uk-width-1-2">
  234 + <div class="uk-form-row">
  235 + <label class="uk-form-label">调整后:</label>
  236 + <div class="uk-form-controls">
  237 + </div>
  238 + </div>
  239 + </div>
  240 + </div>
  241 + <div class="uk-grid">
  242 + <div class="uk-width-1-2">
  243 + <div class="uk-form-row">
  244 + <label class="uk-form-label">线路名称</label>
  245 + <div class="uk-form-controls">
  246 + <input value="{{sch.xlName}}" disabled>
  247 + </div>
  248 + </div>
  249 + </div>
  250 + <div class="uk-width-1-2">
  251 + <div class="uk-form-row">
  252 + <label class="uk-form-label">线路名称</label>
  253 + <div class="uk-form-controls">
  254 + <input value="{{sch.xlName}}" disabled>
  255 + </div>
  256 + </div>
  257 + </div>
  258 + </div>
  259 + <div class="uk-grid">
  260 + <div class="uk-width-1-2">
  261 + <div class="uk-form-row">
  262 + <label class="uk-form-label">路牌</label>
  263 + <div class="uk-form-controls">
  264 + <input value="{{sch.lpName}}" disabled>
  265 + </div>
  266 + </div>
  267 + </div>
  268 + <div class="uk-width-1-2">
  269 + <div class="uk-form-row">
  270 + <label class="uk-form-label">路牌</label>
  271 + <div class="uk-form-controls">
  272 + <input value="{{sch.lpName}}" disabled>
  273 + </div>
  274 + </div>
  275 + </div>
  276 + </div>
  277 + <div class="uk-grid">
  278 + <div class="uk-width-2-2">
  279 + <div class="uk-form-row">
  280 + <label class="uk-form-label">选择方案</label>
  281 + <div class="uk-form-controls">
  282 + <select name="destroy" class="form-control" id="destroySelect">
  283 + <option value="0">-- 随到随发 --</option>
  284 + <option value="1">&#45;&#45; 换人换车 &#45;&#45;</option>
  285 + <option value="2">&#45;&#45; 误点待发调整 &#45;&#45;</option>
  286 + </select>
  287 + </div>
  288 + </div>
  289 + </div>
  290 + </div>
  291 + <div class="uk-grid k2"style="display: none">
  292 + <div class="uk-width-1-2">
  293 + <div class="uk-form-row">
  294 + <label class="uk-form-label">车辆</label>
  295 + <div class="uk-form-controls">
  296 + <input value="{{sch.clZbh}}" disabled>
  297 + </div>
  298 + </div>
  299 + </div>
  300 + <div class="uk-width-1-2">
  301 + <div class="uk-form-row">
  302 + <label class="uk-form-label">车辆</label>
  303 + <div class="uk-form-controls car-autocom">
  304 + <input value="{{sch.clZbh}}" name="clZbh" required>
  305 + </div>
  306 + </div>
  307 + </div>
  308 + </div>
  309 +
  310 + <div class="uk-grid k2"style="display: none">
  311 + <div class="uk-width-1-2">
  312 + <div class="uk-form-row">
  313 + <label class="uk-form-label">人员</label>
  314 + <div class="uk-form-controls">
  315 + <input value="{{sch.jName}}" disabled>
  316 + </div>
  317 + </div>
  318 + </div>
  319 + <div class="uk-width-1-2">
  320 + <div class="uk-form-row">
  321 + <label class="uk-form-label">人员</label>
  322 + <div class="uk-form-controls uk-form jsy-autocom">
  323 + <input type="text" value="{{sch.jGh}}/{{sch.jName}}" name="jsy" required>
  324 +
  325 + </div>
  326 + </div>
  327 + </div>
  328 + </div>
  329 + <div class="uk-grid k3"style="display: none">
  330 + <div class="uk-width-1-2">
  331 + <div class="uk-form-row">
  332 + <label class="uk-form-label">误点时间(分钟)</label>
  333 + <div class="uk-form-controls">
  334 + <input value="{{sch.lateMinute}}" disabled>
  335 + </div>
  336 + </div>
  337 + </div>
  338 + <div class="uk-width-1-2">
  339 + <div class="uk-form-row">
  340 + <label class="uk-form-label">误点时间(分钟)</label>
  341 + <div class="uk-form-controls">
  342 + <input value="6" name="wdsj" id="wdsj">
  343 + </div>
  344 + </div>
  345 + </div>
  346 + </div>
  347 + <div class="uk-grid k3" style="display: none">
  348 + <div class="uk-width-1-2">
  349 + <div class="uk-form-row">
  350 + <label class="uk-form-label">待发时间</label>
  351 + <div class="uk-form-controls">
  352 + <input value="{{sch.fcsj}}" id="dfsj_0" disabled>
  353 + </div>
  354 + </div>
  355 + </div>
  356 + <div class="uk-width-1-2">
  357 + <div class="uk-form-row">
  358 + <label class="uk-form-label">待发时间</label>
  359 + <div class="uk-form-controls">
  360 + <input value="{{sch.fcsj}} + {{sch.lateMinute}}" name="wd" id="dfsj" disabled>
  361 + </div>
  362 + </div>
  363 + </div>
  364 + </div>
  365 +
  366 + <div class="uk-grid">
  367 + <div class="uk-width-4-2">
  368 + <div class="uk-form-row">
  369 + <h3>方案优势</h3>
  370 + </div>
  371 + </div>
  372 + </div>
  373 + <div class="uk-grid">
  374 + <div class="uk-width-1-2">
  375 + <div class="uk-form-row">
  376 + <label class="uk-form-label">发现效率</label>
  377 + <div class="uk-form-controls">
  378 + <i class="icon-user"></i>
  379 + <input value="80%" disabled>
  380 + </div>
  381 + </div>
  382 + </div>
  383 + <div class="uk-width-1-2">
  384 + <div class="uk-form-row">
  385 + <label class="uk-form-label">处置效率</label>
  386 + <div class="uk-form-controls">
  387 + <i class="icon-user"></i>
  388 + <input value="50%" disabled>
  389 + </div>
  390 + </div>
  391 + </div>
  392 + </div>
  393 + <div class="uk-grid">
  394 +
  395 + </div>
  396 + <div class="uk-modal-footer uk-text-right k1" style="display: none">
  397 + <button type="button" class="uk-button uk-modal-close">取消</button>
  398 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
  399 + </div>
  400 +</script>
  401 +<style>
  402 + .uk-form-labels{
  403 + margin-top: 5px;
  404 + }
  405 +</style>
  406 +
  407 +<script id="home-icoe-img" type="text/html">
  408 + <img src="/real_control_v2/zndd/img/wd_0.png" style="width: 100%;height: 100%">
  409 +</script>
  410 +
  411 +
  412 +<script id="buffer_config_form-temp1" type="text/html">
  413 + <div id="emergency_stop_panel">
  414 + <h3 class="btn_title_lines1">
  415 + <a class="uk-link-reset" >调整随到随发 </a>
  416 + </h3>
  417 + <div>
  418 + <form class="uk-form" name="yjtkForm">
  419 + <table>
  420 + <tr>
  421 + <td colspan="2">
  422 + 是否启用
  423 + <select class="z-depth-input" name="enableYjtk">
  424 + <option value="0" >禁用</option>
  425 + <option value="1" {{if enableYjtk}}selected{{/if}}>启用</option>
  426 + </select>
  427 + </td>
  428 + </tr>
  429 + <tr>
  430 + <td colspan="2">
  431 + 时间
  432 + <input type="time" value="{{yjtkStart}}" name="yjtkStart" {{if !enableYjtk}}disabled{{/if}}>至
  433 + <input type="time" value="{{yjtkEnd}}" name="yjtkEnd" {{if !enableYjtk}}disabled{{/if}}>
  434 + </td>
  435 + </tr>
  436 + <tr>
  437 + <td>
  438 + 上行停靠时间
  439 + <input type="number" value="{{upStopMinute}}" name="upStopMinute" {{if !enableYjtk}}disabled{{/if}}>分钟
  440 + </td>
  441 + </tr>
  442 + <tr>
  443 + <td>
  444 + 下行停靠时间
  445 + <input type="number" value="{{downStopMinute}}" name="downStopMinute" {{if !enableYjtk}}disabled{{/if}}>分钟
  446 + </td>
  447 + </tr>
  448 + </table>
  449 + </form>
  450 + </div>
  451 + </div>
  452 +</script>
... ...