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,14 +884,4 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
884 884
885 return res; 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,7 +18,6 @@ public class LoggerZnddController extends BaseController<LoggerZndd, Integer> {
18 18
19 @RequestMapping("listall") 19 @RequestMapping("listall")
20 public List<Map<String, Object>> listAll(@RequestParam Map<String, Object> map){ 20 public List<Map<String, Object>> listAll(@RequestParam Map<String, Object> map){
21 -  
22 return loggerZnddService.listAll(map); 21 return loggerZnddService.listAll(map);
23 } 22 }
24 23
@@ -28,4 +27,21 @@ public class LoggerZnddController extends BaseController&lt;LoggerZndd, Integer&gt; { @@ -28,4 +27,21 @@ public class LoggerZnddController extends BaseController&lt;LoggerZndd, Integer&gt; {
28 return loggerZnddService.schlist(lineCode,dir); 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,7 +64,7 @@ public class AutomaticSch {
64 // 当日60指令缓存 64 // 当日60指令缓存
65 private ConcurrentMap<Integer, D60> d60Map = new ConcurrentHashMap<>();//d60map 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 //http://10.10.200.201:8083/wxk-prod-api/service-api/lggj/schedule/drByInfo 维修接口 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,8 +73,9 @@ public class AutomaticSch {
73 //满载 73 //满载
74 public void mz(){ 74 public void mz(){
75 try { 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 catch (Exception e){ 80 catch (Exception e){
80 logger.error("满载------------------",e); 81 logger.error("满载------------------",e);
@@ -82,7 +83,7 @@ public class AutomaticSch { @@ -82,7 +83,7 @@ public class AutomaticSch {
82 } 83 }
83 84
84 //大间隔的情况 85 //大间隔的情况
85 - public void dfTz(){ 86 + public void dfTz(int k ){
86 try{ 87 try{
87 StringBuilder sb = HttpClientUtils.get(urldkl /*+ sdfMonth.format(new Date())*/); 88 StringBuilder sb = HttpClientUtils.get(urldkl /*+ sdfMonth.format(new Date())*/);
88 if (sb == null) 89 if (sb == null)
@@ -97,8 +98,12 @@ public class AutomaticSch { @@ -97,8 +98,12 @@ public class AutomaticSch {
97 }else { 98 }else {
98 continue; 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 }catch (Exception e){ 109 }catch (Exception e){
@@ -114,9 +119,7 @@ public class AutomaticSch { @@ -114,9 +119,7 @@ public class AutomaticSch {
114 if (m != null) { 119 if (m != null) {
115 if (Integer.valueOf(m.get("num").toString()) > 15) { 120 if (Integer.valueOf(m.get("num").toString()) > 15) {
116 //超过10的时候 判断为大客流 121 //超过10的时候 判断为大客流
117 -  
118 ts(ConvertDKL(m)); 122 ts(ConvertDKL(m));
119 -  
120 } 123 }
121 } 124 }
122 125
@@ -326,7 +329,7 @@ public class AutomaticSch { @@ -326,7 +329,7 @@ public class AutomaticSch {
326 if(StringUtils.isEmpty(sch.getQdzArrDatesj())){ 329 if(StringUtils.isEmpty(sch.getQdzArrDatesj())){
327 ScheduleRealInfo prev = dayOfSchedule.prev(sch); 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 LateAdjustHandle.putLate(sch); 334 LateAdjustHandle.putLate(sch);
332 List<Map> dzList = carMonitor.carMonitor(prev.getXlBm(), prev.getXlDir(), prev.getZdzCode()); //信息发布接口 335 List<Map> dzList = carMonitor.carMonitor(prev.getXlBm(), prev.getXlDir(), prev.getZdzCode()); //信息发布接口
@@ -381,14 +384,14 @@ public class AutomaticSch { @@ -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 Map sp = new HashMap(); 388 Map sp = new HashMap();
386 sp.put("uuid",UUID()); 389 sp.put("uuid",UUID());
387 sp.put("lineCode",lg.getLineCode()); 390 sp.put("lineCode",lg.getLineCode());
388 sp.put("lineName",lg.getLineName() ); 391 sp.put("lineName",lg.getLineName() );
389 sp.put("rqStr",lg.getDateStr()); 392 sp.put("rqStr",lg.getDateStr());
390 sp.put("rq",sdfHHmm.format(lg.getTsTime())); 393 sp.put("rq",sdfHHmm.format(lg.getTsTime()));
391 - sp.put("type","DJG"); 394 + sp.put("type",type);
392 sp.put("xlDir",lg.getUpDown()); 395 sp.put("xlDir",lg.getUpDown());
393 sp.put("numType",lg.getIntervalMinute()); 396 sp.put("numType",lg.getIntervalMinute());
394 sp.put("stationCode",lg.getStationName()); 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,8 +34,6 @@ public class ZnddThread extends Thread{
34 GpsRealData gpsRealData; 34 GpsRealData gpsRealData;
35 @Autowired 35 @Autowired
36 StationRouteRepository stationRouteRepository; 36 StationRouteRepository stationRouteRepository;
37 - /* @Autowired  
38 - private UserCarCountHandler userCarCountHandler;*/  
39 @Autowired 37 @Autowired
40 OutEntrance outEntrance; 38 OutEntrance outEntrance;
41 @Autowired 39 @Autowired
@@ -50,7 +48,7 @@ public class ZnddThread extends Thread{ @@ -50,7 +48,7 @@ public class ZnddThread extends Thread{
50 String url = "https://lgapp.bsth.tech:13089/bsth_passengerflow/klbus/currentInsideNum.do"; //车内客流接口 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 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); 53 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm");
56 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"); 54 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd");
@@ -59,15 +57,20 @@ public class ZnddThread extends Thread{ @@ -59,15 +57,20 @@ public class ZnddThread extends Thread{
59 public void run() { 57 public void run() {
60 try { 58 try {
61 List<znddStatus> znddStatusList = (List<znddStatus>) znddStatusRepository.findAll(); 59 List<znddStatus> znddStatusList = (List<znddStatus>) znddStatusRepository.findAll();
62 - //FCJG();//发车间隔检查 报价 60 +
63 //GPSDJG();//大间隔 61 //GPSDJG();//大间隔
64 // MZ(); //满载 62 // MZ(); //满载
65 //DKL(); //大客流 以接口方式 63 //DKL(); //大客流 以接口方式
66 //automaticSch.mz(); 64 //automaticSch.mz();
67 //automaticSch.dfTz();//大间隔 65 //automaticSch.dfTz();//大间隔
68 for (znddStatus zs : znddStatusList) { 66 for (znddStatus zs : znddStatusList) {
69 -  
70 if (zs.getOpenStatus().equals("0")) { 67 if (zs.getOpenStatus().equals("0")) {
  68 + //预案5个
  69 + if (zs.getType().equals("fcjg")) {
  70 + automaticSch.dfTz(0);
  71 + logger.info("发车间隔执行完毕");
  72 + }
  73 +
71 if (zs.getType().equals("sftz")) { 74 if (zs.getType().equals("sftz")) {
72 automaticSch.sftz();//实发未发 75 automaticSch.sftz();//实发未发
73 logger.info("实发执行完毕"); 76 logger.info("实发执行完毕");
@@ -85,14 +88,18 @@ public class ZnddThread extends Thread{ @@ -85,14 +88,18 @@ public class ZnddThread extends Thread{
85 logger.info("误点执行完毕"); 88 logger.info("误点执行完毕");
86 } 89 }
87 if (zs.getType().equals("djg")){ 90 if (zs.getType().equals("djg")){
88 - automaticSch.dfTz();  
89 - logger.info("大间隔执行完毕"); 91 + automaticSch.dfTz(1);
  92 + logger.info("行车大间隔执行完毕");
90 } 93 }
91 94
92 if (zs.getType().equals("dkl")){ 95 if (zs.getType().equals("dkl")){
93 automaticSch.Dkl(); 96 automaticSch.Dkl();
94 logger.info("大客流执行完毕"); 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,33 +144,7 @@ public class ZnddThread extends Thread{
137 } 144 }
138 }*/ 145 }*/
139 public void ts(Map m) throws ParseException { 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 /* public void ts(Map m) throws ParseException { 149 /* public void ts(Map m) throws ParseException {
169 //记录存一下 --超过当前时间的是否推送? 150 //记录存一下 --超过当前时间的是否推送?
@@ -195,8 +176,8 @@ public class ZnddThread extends Thread{ @@ -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 try { 181 try {
201 //无数据情况下 查看发车间隔配置数据是否正常bsth_c_calc_interval 182 //无数据情况下 查看发车间隔配置数据是否正常bsth_c_calc_interval
202 List<CalcIntervalDetail> fcjgList = userCarCountHandler.calcLast(); 183 List<CalcIntervalDetail> fcjgList = userCarCountHandler.calcLast();
@@ -218,8 +199,8 @@ public class ZnddThread extends Thread{ @@ -218,8 +199,8 @@ public class ZnddThread extends Thread{
218 }catch (Exception e){ 199 }catch (Exception e){
219 logger.error("发车间隔检测出现出错-----------",e); 200 logger.error("发车间隔检测出现出错-----------",e);
220 } 201 }
221 - }*/  
222 - 202 + }
  203 +*/
223 204
224 //转换 205 //转换
225 public Map addStationPeople(ScheduleRealInfo info,String type,Long sst,String sj) throws ParseException{ 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,6 +210,4 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
210 210
211 List<ScheduleRealInfo> findAllSchDate(String schDate); 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,12 +7042,6 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
7042 } 7042 }
7043 }, 0, 10, TimeUnit.MINUTES); 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 class AccountMap implements Comparator<Map<String, Object>> { 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,4 +13,9 @@ public interface LoggerZnddService extends BaseService&lt;LoggerZndd, Integer&gt; {
13 List<Map<String, Object>> listAll(Map<String, Object> map); 13 List<Map<String, Object>> listAll(Map<String, Object> map);
14 14
15 public ScheduleRealInfo schlist(String lineCode,Integer dir); 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 package com.bsth.service.zndd.impl; 1 package com.bsth.service.zndd.impl;
2 2
  3 +import com.bsth.controller.realcontrol.dto.DfsjChange;
3 import com.bsth.data.schedule.DayOfSchedule; 4 import com.bsth.data.schedule.DayOfSchedule;
  5 +import com.bsth.data.schedule.ScheduleComparator;
4 import com.bsth.entity.realcontrol.ScheduleRealInfo; 6 import com.bsth.entity.realcontrol.ScheduleRealInfo;
5 -import com.bsth.entity.search.CustomerSpecs;  
6 import com.bsth.entity.zndd.LoggerZndd; 7 import com.bsth.entity.zndd.LoggerZndd;
  8 +import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
7 import com.bsth.repository.zndd.LoggerZnddRepository; 9 import com.bsth.repository.zndd.LoggerZnddRepository;
8 import com.bsth.service.impl.BaseServiceImpl; 10 import com.bsth.service.impl.BaseServiceImpl;
  11 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
9 import com.bsth.service.zndd.LoggerZnddService; 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 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
12 -import org.springframework.data.domain.Pageable;  
13 16
14 import org.springframework.data.domain.Sort; 17 import org.springframework.data.domain.Sort;
15 import org.springframework.stereotype.Service; 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 import java.util.List; 24 import java.util.List;
18 import java.util.Map; 25 import java.util.Map;
19 26
@@ -24,7 +31,16 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt; @@ -24,7 +31,16 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
24 LoggerZnddRepository loggerZnddRepository; 31 LoggerZnddRepository loggerZnddRepository;
25 @Autowired 32 @Autowired
26 DayOfSchedule dayOfSchedule; 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 loggerZnddRepository.findAll((Sort) map); 44 loggerZnddRepository.findAll((Sort) map);
29 45
30 return null; 46 return null;
@@ -43,4 +59,86 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt; @@ -43,4 +59,86 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
43 } 59 }
44 return null; 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,11 +211,14 @@ var gb_dataZndd = (function (){
211 return 'ycsf.html'; 211 return 'ycsf.html';
212 break; 212 break;
213 case 'WD': 213 case 'WD':
214 - //return 'wd.html'; 214 + return 'wd.html';
215 break; 215 break;
216 case 'DJG': 216 case 'DJG':
217 return 'djg1.html'; 217 return 'djg1.html';
218 break; 218 break;
  219 + case 'MZ':
  220 + return 'mz.html';
  221 + break;
219 case 'DKL': 222 case 'DKL':
220 return 'dkl.html'; 223 return 'dkl.html';
221 break; 224 break;
@@ -314,16 +317,16 @@ var gb_dataZndd = (function (){ @@ -314,16 +317,16 @@ var gb_dataZndd = (function (){
314 if (date == null) 317 if (date == null)
315 return 318 return
316 if (type == "DJG"){ 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 }else if (type == "YCSF"){ 330 }else if (type == "YCSF"){
328 gb_common.$post('/realSchedule/revokeRealOutgo_zndd', { 331 gb_common.$post('/realSchedule/revokeRealOutgo_zndd', {
329 id: sch.sch.id, 332 id: sch.sch.id,
src/main/resources/static/real_control_v2/zndd/type/djg1.html
@@ -15,15 +15,17 @@ @@ -15,15 +15,17 @@
15 <div class="uk-grid uk-width-3-5 lj_1" > 15 <div class="uk-grid uk-width-3-5 lj_1" >
16 <div class="uk-width-1-4"> 16 <div class="uk-width-1-4">
17 <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg"> 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 <!-- <li data-handle="parkToPark"><a>3、场到场</a></li>--> 22 <!-- <li data-handle="parkToPark"><a>3、场到场</a></li>-->
21 </ul> 23 </ul>
22 </div> 24 </div>
23 <div class="uk-width-3-4"> 25 <div class="uk-width-3-4">
24 <ul id="tempScheduleContent" class="uk-switcher"> 26 <ul id="tempScheduleContent" class="uk-switcher">
25 - <li class="toAndFroCont"></li>  
26 <li class="normalCont"></li> 27 <li class="normalCont"></li>
  28 + <li class="toAndFroCont"></li>
27 <li class="parkToParkCont"></li> 29 <li class="parkToParkCont"></li>
28 </ul> 30 </ul>
29 </div> 31 </div>
@@ -117,14 +119,16 @@ @@ -117,14 +119,16 @@
117 var st_doms = gb_schedule_context_menu.get_add_sch_doms_v2(); 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 //to and fro 127 //to and fro
122 $('.toAndFroCont', modal).html(st_doms.two_way_dom) 128 $('.toAndFroCont', modal).html(st_doms.two_way_dom)
123 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes}); 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,7 +553,7 @@
549 <div class="uk-form-controls"> 553 <div class="uk-form-controls">
550 <select name="destroy" class="form-control" id="destroySelect"> 554 <select name="destroy" class="form-control" id="destroySelect">
551 <option value="0">-- 临加班次 --</option> 555 <option value="0">-- 临加班次 --</option>
552 - <option value="1">-- 随到随发 --</option> 556 + <option value="1">&#45;&#45; 修改班次类型 &#45;&#45;</option>
553 </select> 557 </select>
554 </div> 558 </div>
555 </div> 559 </div>
@@ -575,9 +579,9 @@ @@ -575,9 +579,9 @@
575 </div> 579 </div>
576 <div class="uk-width-1-2"> 580 <div class="uk-width-1-2">
577 <div class="uk-form-row"> 581 <div class="uk-form-row">
578 - <label class="uk-form-label">乘客满意度</label> 582 + <label class="uk-form-label">创新性</label>
579 <div class="uk-form-controls"> 583 <div class="uk-form-controls">
580 - <input value="10%" disabled> 584 + <input value="80%" disabled>
581 </div> 585 </div>
582 </div> 586 </div>
583 </div> 587 </div>
src/main/resources/static/real_control_v2/zndd/type/dkl.html
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="uk-modal-dialog" style="width: 1400px;"> 2 <div class="uk-modal-dialog" style="width: 1400px;">
3 <a href="" class="uk-modal-close uk-close"></a> 3 <a href="" class="uk-modal-close uk-close"></a>
4 <div class="uk-modal-header"> 4 <div class="uk-modal-header">
5 - <h2>大客流</h2></div> 5 + <h2>新增临加班次</h2></div>
6 <div class="uk-grid uk-width-2-5" style="float: left"> 6 <div class="uk-grid uk-width-2-5" style="float: left">
7 <div class="uk-width-5-5"> 7 <div class="uk-width-5-5">
8 <form class="uk-form uk-form-horizontal"> </form> 8 <form class="uk-form uk-form-horizontal"> </form>
@@ -29,6 +29,11 @@ @@ -29,6 +29,11 @@
29 </div> 29 </div>
30 </div> 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 </div> 37 </div>
33 38
34 <script> 39 <script>
@@ -41,44 +46,65 @@ @@ -41,44 +46,65 @@
41 sch = data.data; 46 sch = data.data;
42 sch.xlBm = sch.lineCode; 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 var formHtml = template('djg-form-temp', sch); 49 var formHtml = template('djg-form-temp', sch);
55 $('form', modal).html(formHtml); 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 $("#destroySelect").on('change',function(){ 72 $("#destroySelect").on('change',function(){
58 let fn = $('#destroySelect').val(); 73 let fn = $('#destroySelect').val();
59 if (fn == "0"){ 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 }else { 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 parks = gb_data_basic.simpleParksArray(); 109 parks = gb_data_basic.simpleParksArray();
84 //线路标准 110 //线路标准
@@ -90,18 +116,16 @@ @@ -90,18 +116,16 @@
90 116
91 var st_doms = gb_schedule_context_menu.get_add_sch_doms_v2(); 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 //to and fro 121 //to and fro
95 $('.toAndFroCont', modal).html(st_doms.two_way_dom) 122 $('.toAndFroCont', modal).html(st_doms.two_way_dom)
96 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes}); 123 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes});
97 124
98 -  
99 //normal 125 //normal
100 $('.normalCont', modal).html(st_doms.normal_dom) 126 $('.normalCont', modal).html(st_doms.normal_dom)
101 .trigger('init', {sch: res, submitFun: submit_temp_schedule_form}); 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,6 +415,37 @@
391 }, err); 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 </script> 450 </script>
396 </div> 451 </div>
@@ -401,121 +456,177 @@ @@ -401,121 +456,177 @@
401 <div class="uk-grid"> 456 <div class="uk-grid">
402 <div class="uk-width-4-2"> 457 <div class="uk-width-4-2">
403 <div class="uk-form-row"> 458 <div class="uk-form-row">
404 - <h3>大客流信息</h3> 459 + <h3>间隔情况</h3>
405 </div> 460 </div>
406 </div> 461 </div>
407 </div> 462 </div>
408 <div class="uk-grid"> 463 <div class="uk-grid">
409 <div class="uk-width-4-2"> 464 <div class="uk-width-4-2">
410 <div class="uk-form-row"> 465 <div class="uk-form-row">
411 - <label class="uk-form-labels" >{{stopStation.stationName}}站点 出现大客流</label> 466 + <label class="uk-form-labels" >{{lineName}} -> 起点站开往终点站 出现大间隔</label>
412 </div> 467 </div>
413 </div> 468 </div>
414 -  
415 </div> 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 </div> 478 </div>
424 </div> 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 </div> 486 </div>
432 </div> 487 </div>
433 </div> 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 </div> 496 </div>
445 </div> 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 </div> 504 </div>
460 </div> 505 </div>
461 </div> 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 </div> 522 </div>
470 </div> 523 </div>
471 </div> 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 </div> 540 </div>
481 </div> 541 </div>
482 </div> 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 </div> 556 </div>
491 </div> 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 </div> 564 </div>
501 </div> 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 </div> 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 </div> 583 </div>
511 </div> 584 </div>
512 </div> 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 </script> 629 </script>
517 -<style>  
518 - .fanganys input{  
519 - text-align: center;  
520 - }  
521 -</style> 630 +<script>
  631 +
  632 +</script>
522 \ No newline at end of file 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>