Commit 755a9fa61aeb12e203f8671fcfaafdd3eac4d60a

Authored by 徐烜
2 parents 853edc1e 263fb4ef

Merge branch 'lggj' of http://192.168.168.245:8888/panzhaov5/bsth_control into lggj

Showing 77 changed files with 1106 additions and 115 deletions
src/main/java/com/bsth/controller/zndd/LoggerZnddController.java
@@ -44,4 +44,14 @@ public class LoggerZnddController extends BaseController<LoggerZndd, Integer> { @@ -44,4 +44,14 @@ public class LoggerZnddController extends BaseController<LoggerZndd, Integer> {
44 public ScheduleRealInfo thissch(@PathVariable("id") Integer id){ 44 public ScheduleRealInfo thissch(@PathVariable("id") Integer id){
45 return loggerZnddService.thissch(id); 45 return loggerZnddService.thissch(id);
46 } 46 }
  47 +
  48 + @RequestMapping(value = "LineUserAll", method = RequestMethod.GET)
  49 + public String LineUserAll(@RequestParam Integer userId) {
  50 +
  51 + return loggerZnddService.LineUserAll(userId);
  52 + }
  53 + @RequestMapping(value = "schTZSF", method = RequestMethod.GET)
  54 + public Map<String, Object> schTZSF(String line,String date,String endDate,String changType,String type){
  55 + return loggerZnddService.schTZSF(line,date,endDate,changType,type);
  56 + }
47 } 57 }
src/main/java/com/bsth/data/gpsdata_v2/handlers/StationInsideProcess.java
@@ -5,6 +5,8 @@ import com.bsth.data.gpsdata_v2.cache.GpsCacheData; @@ -5,6 +5,8 @@ import com.bsth.data.gpsdata_v2.cache.GpsCacheData;
5 import com.bsth.data.gpsdata_v2.entity.GpsEntity; 5 import com.bsth.data.gpsdata_v2.entity.GpsEntity;
6 import com.bsth.data.gpsdata_v2.entity.StationRoute; 6 import com.bsth.data.gpsdata_v2.entity.StationRoute;
7 import com.bsth.data.gpsdata_v2.utils.GeoUtils; 7 import com.bsth.data.gpsdata_v2.utils.GeoUtils;
  8 +import com.bsth.data.schedule.DayOfSchedule;
  9 +import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Component; 10 import org.springframework.stereotype.Component;
9 11
10 import java.util.List; 12 import java.util.List;
@@ -16,6 +18,9 @@ import java.util.List; @@ -16,6 +18,9 @@ import java.util.List;
16 @Component 18 @Component
17 public class StationInsideProcess { 19 public class StationInsideProcess {
18 20
  21 + @Autowired
  22 + DayOfSchedule dayOfSchedule;
  23 +
19 public void process(GpsEntity gps) { 24 public void process(GpsEntity gps) {
20 //是否在场内 25 //是否在场内
21 String parkCode = GeoUtils.gpsInCarpark(gps); 26 String parkCode = GeoUtils.gpsInCarpark(gps);
@@ -25,7 +30,8 @@ public class StationInsideProcess { @@ -25,7 +30,8 @@ public class StationInsideProcess {
25 gps.setStopNo(parkCode); 30 gps.setStopNo(parkCode);
26 gps.setCarparkNo(parkCode); 31 gps.setCarparkNo(parkCode);
27 } 32 }
28 - 33 + //重新计算车辆执行班次
  34 + dayOfSchedule.reCalcExecPlan(gps.getNbbm());
29 //是否在站内 35 //是否在站内
30 List<StationRoute> srs = GeoCacheData.getStationRoute(gps.getLineId(), gps.getUpDown()); 36 List<StationRoute> srs = GeoCacheData.getStationRoute(gps.getLineId(), gps.getUpDown());
31 StationRoute station = GeoUtils.gpsInStation(gps, srs); 37 StationRoute station = GeoUtils.gpsInStation(gps, srs);
src/main/java/com/bsth/data/pilot80/PilotReport.java
@@ -13,6 +13,7 @@ import com.bsth.entity.realcontrol.LineConfig; @@ -13,6 +13,7 @@ import com.bsth.entity.realcontrol.LineConfig;
13 import com.bsth.entity.realcontrol.ScheduleRealInfo; 13 import com.bsth.entity.realcontrol.ScheduleRealInfo;
14 import com.bsth.repository.directive.D80Repository; 14 import com.bsth.repository.directive.D80Repository;
15 import com.bsth.repository.directive.DC0A4Repository; 15 import com.bsth.repository.directive.DC0A4Repository;
  16 +import com.bsth.service.SystemParamService;
16 import com.bsth.service.directive.DirectiveService; 17 import com.bsth.service.directive.DirectiveService;
17 import com.bsth.util.HttpClientUtils; 18 import com.bsth.util.HttpClientUtils;
18 import com.bsth.websocket.handler.SendUtils; 19 import com.bsth.websocket.handler.SendUtils;
@@ -53,6 +54,8 @@ public class PilotReport { @@ -53,6 +54,8 @@ public class PilotReport {
53 @Autowired 54 @Autowired
54 GpsStatusManager gpsStatusManager; 55 GpsStatusManager gpsStatusManager;
55 56
  57 + @Autowired
  58 + private SystemParamService systemParamService;
56 private static ConcurrentHashMap<Integer, D80> d80Maps; 59 private static ConcurrentHashMap<Integer, D80> d80Maps;
57 60
58 /** 61 /**
@@ -101,7 +104,7 @@ public class PilotReport { @@ -101,7 +104,7 @@ public class PilotReport {
101 //报警请求 104 //报警请求
102 case 0x10: 105 case 0x10:
103 try { 106 try {
104 - String url = "http://58.34.52.130:9103/dataDockingApi/accident/saveAccident?"; 107 + String url = systemParamService.getValue("url.yjbj")+"dataDockingApi/accident/saveAccident?";
105 url = url + "accidentTime=" + new Date().getTime() + "&nbbm=" + nbbm; 108 url = url + "accidentTime=" + new Date().getTime() + "&nbbm=" + nbbm;
106 logger.info("url===="+url); 109 logger.info("url===="+url);
107 String res = HttpClientUtils.get(url).toString(); 110 String res = HttpClientUtils.get(url).toString();
src/main/java/com/bsth/data/schedule/edit_logs/service/dto/SchEditInfoDto.java
@@ -59,6 +59,10 @@ public class SchEditInfoDto { @@ -59,6 +59,10 @@ public class SchEditInfoDto {
59 */ 59 */
60 private long ts; 60 private long ts;
61 61
  62 + private String xlName;
  63 +
  64 + private String text;
  65 +
62 public long getId() { 66 public long getId() {
63 return id; 67 return id;
64 } 68 }
@@ -219,4 +223,20 @@ public class SchEditInfoDto { @@ -219,4 +223,20 @@ public class SchEditInfoDto {
219 public void setTs(long ts) { 223 public void setTs(long ts) {
220 this.ts = ts; 224 this.ts = ts;
221 } 225 }
  226 +
  227 + public String getXlName() {
  228 + return xlName;
  229 + }
  230 +
  231 + public void setXlName(String xlName) {
  232 + this.xlName = xlName;
  233 + }
  234 +
  235 + public String getText() {
  236 + return text;
  237 + }
  238 +
  239 + public void setText(String text) {
  240 + this.text = text;
  241 + }
222 } 242 }
src/main/java/com/bsth/data/zndd/AutomaticSch.java
@@ -82,7 +82,7 @@ public class AutomaticSch { @@ -82,7 +82,7 @@ public class AutomaticSch {
82 public void mz(){ 82 public void mz(){
83 try { 83 try {
84 84
85 - List<ScheduleRealInfo> sr = dayOfSchedule.findByBcType("W1Q-006","normal"); 85 + List<ScheduleRealInfo> sr = dayOfSchedule.findByBcType("W9G-041","normal");
86 ts(addStationPeople(sr.get(5), "MZ", 0L));//第二种 设备未离线 出站时间内未出站 86 ts(addStationPeople(sr.get(5), "MZ", 0L));//第二种 设备未离线 出站时间内未出站
87 } 87 }
88 catch (Exception e){ 88 catch (Exception e){
@@ -106,10 +106,14 @@ public class AutomaticSch { @@ -106,10 +106,14 @@ public class AutomaticSch {
106 }else { 106 }else {
107 continue; 107 continue;
108 } 108 }
109 - if (k == 0 && lg.getlGType() == 0){  
110 - ts(ConvertDJK(lg,sch,"FCJG")); 109 + if (k == 0 ){
  110 + if(lg.getlGType() == 0){
  111 + ts(ConvertDJK(lg,sch,"FCJG"));
  112 + }
111 }else { 113 }else {
112 - ts(ConvertDJK(lg,sch,"DJG")); 114 + if(lg.getlGType() != 0){
  115 + ts(ConvertDJK(lg,sch,"DJG"));
  116 + }
113 } 117 }
114 118
115 } 119 }
src/main/java/com/bsth/data/zndd/OutEntrance.java
1 package com.bsth.data.zndd; 1 package com.bsth.data.zndd;
  2 +
2 import com.alibaba.fastjson.JSONArray; 3 import com.alibaba.fastjson.JSONArray;
3 import com.alibaba.fastjson.JSONObject; 4 import com.alibaba.fastjson.JSONObject;
4 import com.bsth.common.ResponseCode; 5 import com.bsth.common.ResponseCode;
5 import com.bsth.data.BasicData; 6 import com.bsth.data.BasicData;
6 import com.bsth.data.schedule.DayOfSchedule; 7 import com.bsth.data.schedule.DayOfSchedule;
7 import com.bsth.data.schedule.ScheduleComparator; 8 import com.bsth.data.schedule.ScheduleComparator;
8 -import com.bsth.entity.StationRoute;  
9 import com.bsth.entity.realcontrol.ScheduleRealInfo; 9 import com.bsth.entity.realcontrol.ScheduleRealInfo;
10 import com.bsth.entity.zndd.StationPeopleLogger; 10 import com.bsth.entity.zndd.StationPeopleLogger;
11 import com.bsth.entity.zndd.StationSignsLogger; 11 import com.bsth.entity.zndd.StationSignsLogger;
12 -import com.bsth.service.schedule.utils.Md5Util;  
13 import com.bsth.util.HttpClientUtils; 12 import com.bsth.util.HttpClientUtils;
14 import com.bsth.util.SignUtils; 13 import com.bsth.util.SignUtils;
15 import com.bsth.websocket.handler.SendUtils; 14 import com.bsth.websocket.handler.SendUtils;
@@ -18,8 +17,18 @@ import org.slf4j.Logger; @@ -18,8 +17,18 @@ import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory; 17 import org.slf4j.LoggerFactory;
19 import org.springframework.beans.factory.annotation.Autowired; 18 import org.springframework.beans.factory.annotation.Autowired;
20 import org.springframework.beans.factory.annotation.Value; 19 import org.springframework.beans.factory.annotation.Value;
  20 +import org.springframework.scheduling.annotation.Scheduled;
21 import org.springframework.web.bind.annotation.*; 21 import org.springframework.web.bind.annotation.*;
22 import java.io.*; 22 import java.io.*;
  23 +import java.nio.file.Files;
  24 +import java.nio.file.Path;
  25 +import java.nio.file.Paths;
  26 +import java.nio.file.StandardCopyOption;
  27 +
  28 +import java.io.ByteArrayInputStream;
  29 +import java.io.File;
  30 +import java.io.FileOutputStream;
  31 +import java.io.InputStream;
23 import java.text.SimpleDateFormat; 32 import java.text.SimpleDateFormat;
24 import java.time.Duration; 33 import java.time.Duration;
25 import java.time.LocalTime; 34 import java.time.LocalTime;
@@ -65,6 +74,7 @@ public class OutEntrance { @@ -65,6 +74,7 @@ public class OutEntrance {
65 public Map OutCarOutCar(@RequestParam Map m,@RequestBody StationSignsLogger ssLogger) { 74 public Map OutCarOutCar(@RequestParam Map m,@RequestBody StationSignsLogger ssLogger) {
66 Map rtn = new HashMap<>(); 75 Map rtn = new HashMap<>();
67 try { 76 try {
  77 + logger.info("催发接口调用----");
68 if(!SignUtils.validation(ssLogger.getTimestamp(),ssLogger.getSign())){ 78 if(!SignUtils.validation(ssLogger.getTimestamp(),ssLogger.getSign())){
69 rtn.put("status", "验证失败"); 79 rtn.put("status", "验证失败");
70 return rtn; 80 return rtn;
@@ -99,21 +109,26 @@ public class OutEntrance { @@ -99,21 +109,26 @@ public class OutEntrance {
99 rtn.put("message",s+"车辆预计还有"+dzList.get(0).get("sj")+"抵达,请耐心等待"); 109 rtn.put("message",s+"车辆预计还有"+dzList.get(0).get("sj")+"抵达,请耐心等待");
100 }else { 110 }else {
101 //筛选方向 111 //筛选方向
102 - List<ScheduleRealInfo> rs = dayOfSchedule.findByLineCode(ssLogger.getLineCode()); 112 + List<ScheduleRealInfo> rs = dayOfSchedule.findByLineAndUpDown(ssLogger.getLineCode(),Integer.parseInt(ssLogger.getDir()));
103 if(rs.size()>0){ 113 if(rs.size()>0){
104 //排序 114 //排序
105 Collections.sort(rs,new ScheduleComparator.FCSJ()); 115 Collections.sort(rs,new ScheduleComparator.FCSJ());
106 - SimpleDateFormat sdf= new SimpleDateFormat("HH:ss");  
107 - String sjtext = ""; 116 + SimpleDateFormat sdf= new SimpleDateFormat("HH:mm");
  117 + String sjtext = null;
108 LocalTime t1 = LocalTime.parse(sdf.format(new Date()), DateTimeFormatter.ofPattern("HH:mm")); 118 LocalTime t1 = LocalTime.parse(sdf.format(new Date()), DateTimeFormatter.ofPattern("HH:mm"));
109 for (ScheduleRealInfo sr:rs) { 119 for (ScheduleRealInfo sr:rs) {
110 LocalTime t2 = LocalTime.parse(sr.getFcsj(), DateTimeFormatter.ofPattern("HH:mm")); 120 LocalTime t2 = LocalTime.parse(sr.getFcsj(), DateTimeFormatter.ofPattern("HH:mm"));
111 - //判断上下行  
112 - if(t1.isAfter(t2)){ 121 + //最近的运营班次
  122 + if(t2.isAfter(t1) && (sr.getBcType().equals("normal")||sr.getBcType().equals("region"))){
113 sjtext = sr.getFcsj(); 123 sjtext = sr.getFcsj();
  124 + break;
114 } 125 }
115 } 126 }
116 - rtn.put("message","车辆预计"+sjtext+"发车,请耐心等待"); 127 + if(sjtext!=null){
  128 + rtn.put("message","车辆预计"+sjtext+"发车,请耐心等待");
  129 + }else {
  130 + rtn.put("message","当日运营已结束");
  131 + }
117 }else { 132 }else {
118 rtn.put("message","当日运营已结束"); 133 rtn.put("message","当日运营已结束");
119 } 134 }
@@ -133,6 +148,7 @@ public class OutEntrance { @@ -133,6 +148,7 @@ public class OutEntrance {
133 public Map klyj(@RequestBody JSONObject jsonObject) { 148 public Map klyj(@RequestBody JSONObject jsonObject) {
134 Map rtn = new HashMap<>(); 149 Map rtn = new HashMap<>();
135 try { 150 try {
  151 + logger.info("大客流接口调用----");
136 if(!SignUtils.validation(Long.parseLong(jsonObject.getString("timestamp")),jsonObject.getString("sign"))){ 152 if(!SignUtils.validation(Long.parseLong(jsonObject.getString("timestamp")),jsonObject.getString("sign"))){
137 rtn.put("status", "验证失败"); 153 rtn.put("status", "验证失败");
138 return rtn; 154 return rtn;
@@ -257,7 +273,7 @@ public class OutEntrance { @@ -257,7 +273,7 @@ public class OutEntrance {
257 rtn.put("status",ResponseCode.SUCCESS); 273 rtn.put("status",ResponseCode.SUCCESS);
258 } catch (Exception e) { 274 } catch (Exception e) {
259 rtn.put("status", ResponseCode.ERROR); 275 rtn.put("status", ResponseCode.ERROR);
260 - Logger logger = LoggerFactory.getLogger(this.getClass()); 276 + logger.error("大客流推送异常----",e);
261 } 277 }
262 return rtn; 278 return rtn;
263 } 279 }
@@ -303,7 +319,7 @@ public class OutEntrance { @@ -303,7 +319,7 @@ public class OutEntrance {
303 destfile.mkdirs(); 319 destfile.mkdirs();
304 } 320 }
305 //文件新名称 321 //文件新名称
306 - String fileNameNew = "666"+ ".png"; 322 + String fileNameNew = AutomaticSch.UUID()+ ".png";
307 File f = new File(destfile.getAbsoluteFile() + File.separator + fileNameNew); 323 File f = new File(destfile.getAbsoluteFile() + File.separator + fileNameNew);
308 // 将字符串转换成二进制,用于显示图片 324 // 将字符串转换成二进制,用于显示图片
309 // 将上面生成的图片格式字符串 imgStr,还原成图片显示 325 // 将上面生成的图片格式字符串 imgStr,还原成图片显示
@@ -329,6 +345,30 @@ public class OutEntrance { @@ -329,6 +345,30 @@ public class OutEntrance {
329 return null; 345 return null;
330 } 346 }
331 347
  348 + /**
  349 + * 转移文件图片
  350 + * @param url 文件路径
  351 + * @param (示例:D:\\1.png)
  352 + * @return
  353 + */
  354 + public String moveImg(String url) throws Exception {
  355 + try {
  356 + String file = url.replace("/"+profile+"/avat",imgurl+"/img");
  357 + String destDir = file.substring(0,file.lastIndexOf("/"));
  358 + File destPath = new File(destDir);
  359 + if (!destPath.exists()) {
  360 + destPath.mkdirs();
  361 + }
  362 + Path sourceFile= Paths.get(url.replace("/"+profile,imgurl));
  363 + Path destFile= Paths.get(url.replace("/"+profile+"/avat",imgurl+"/img"));
  364 + Files.copy(sourceFile, destFile,StandardCopyOption.REPLACE_EXISTING);
  365 + return file;
  366 + } catch (IOException e) {
  367 + e.printStackTrace();
  368 + return null;
  369 + }
  370 + }
  371 +
332 private static ConcurrentMap<String, Map<String,Object>> trafficMap = new ConcurrentHashMap<>(); 372 private static ConcurrentMap<String, Map<String,Object>> trafficMap = new ConcurrentHashMap<>();
333 public String getTraffic(String nbbm,String lon,String lat){ 373 public String getTraffic(String nbbm,String lon,String lat){
334 Map<String,Object> traffic=trafficMap.get(nbbm); 374 Map<String,Object> traffic=trafficMap.get(nbbm);
@@ -354,5 +394,26 @@ public class OutEntrance { @@ -354,5 +394,26 @@ public class OutEntrance {
354 return traffic.get("trafficStatus").toString(); 394 return traffic.get("trafficStatus").toString();
355 } 395 }
356 396
  397 + @Scheduled(cron = "0 0 0 * * ?")
  398 + public void clearImg(){
  399 + try {
  400 + File folder=new File(imgurl+"/avat");
  401 + delete(folder);
  402 + } catch (Exception e) {
  403 + e.printStackTrace();
  404 + }
  405 + }
  406 +
  407 + public static void delete(File folder) throws Exception{
  408 + if(folder.isDirectory()) {
  409 + File[] files = folder.listFiles();
  410 + if(files != null) { // 如果文件夹为空,files可能为null
  411 + for(File file : files) {
  412 + delete(file); // 递归删除子文件夹和文件
  413 + }
  414 + }
  415 + }
  416 + folder.delete(); // 删除空文件夹或者文件
  417 + }
357 418
358 } 419 }
src/main/java/com/bsth/data/zndd/carMonitor.java
1 package com.bsth.data.zndd; 1 package com.bsth.data.zndd;
2 2
  3 +import com.bsth.service.SystemParamService;
3 import org.apache.commons.io.IOUtils; 4 import org.apache.commons.io.IOUtils;
4 import org.dom4j.Document; 5 import org.dom4j.Document;
5 import org.dom4j.DocumentHelper; 6 import org.dom4j.DocumentHelper;
6 import org.dom4j.Element; 7 import org.dom4j.Element;
7 import org.slf4j.Logger; 8 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory; 9 import org.slf4j.LoggerFactory;
  10 +import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.stereotype.Component; 11 import org.springframework.stereotype.Component;
10 12
11 import java.io.ByteArrayOutputStream; 13 import java.io.ByteArrayOutputStream;
@@ -20,13 +22,13 @@ import java.util.*; @@ -20,13 +22,13 @@ import java.util.*;
20 public class carMonitor { 22 public class carMonitor {
21 Logger logger = LoggerFactory.getLogger(this.getClass()); 23 Logger logger = LoggerFactory.getLogger(this.getClass());
22 24
23 - static String url;  
24 - 25 + @Autowired
  26 + private SystemParamService systemParamService;
25 27
26 public List<Map> carMonitor(String lineCode,String directions,String station) { 28 public List<Map> carMonitor(String lineCode,String directions,String station) {
27 29
28 List<Map> list = new ArrayList<>(); //返回的接口数据 30 List<Map> list = new ArrayList<>(); //返回的接口数据
29 - url = "http://58.34.52.130:9777/xxfb/jd/carMonitor?lineid="+lineCode+"&stopid="+station+"&direction="+directions; 31 + String url = systemParamService.getValue("url.xxfb")+"xxfb/jd/carMonitor?lineid="+lineCode+"&stopid="+station+"&direction="+directions;
30 InputStream in = null; 32 InputStream in = null;
31 OutputStream out = null; 33 OutputStream out = null;
32 try { 34 try {
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -245,6 +245,18 @@ public class ScheduleRealInfo { @@ -245,6 +245,18 @@ public class ScheduleRealInfo {
245 @Transient 245 @Transient
246 private String kxcl; 246 private String kxcl;
247 247
  248 + /**
  249 + * 大客流图片
  250 + */
  251 + @Transient
  252 + private String img;
  253 +
  254 + /**
  255 + * 操作类型 大客流-1
  256 + */
  257 + @Transient
  258 + private String operationType;
  259 +
248 public Integer getLpChange() { 260 public Integer getLpChange() {
249 return lpChange; 261 return lpChange;
250 } 262 }
@@ -1026,4 +1038,20 @@ public class ScheduleRealInfo { @@ -1026,4 +1038,20 @@ public class ScheduleRealInfo {
1026 public void setKxcl(String kxcl) { 1038 public void setKxcl(String kxcl) {
1027 this.kxcl = kxcl; 1039 this.kxcl = kxcl;
1028 } 1040 }
  1041 +
  1042 + public String getImg() {
  1043 + return img;
  1044 + }
  1045 +
  1046 + public void setImg(String img) {
  1047 + this.img = img;
  1048 + }
  1049 +
  1050 + public String getOperationType() {
  1051 + return operationType;
  1052 + }
  1053 +
  1054 + public void setOperationType(String operationType) {
  1055 + this.operationType = operationType;
  1056 + }
1029 } 1057 }
src/main/java/com/bsth/entity/sys/SysUser.java
@@ -3,6 +3,7 @@ package com.bsth.entity.sys; @@ -3,6 +3,7 @@ package com.bsth.entity.sys;
3 import com.fasterxml.jackson.annotation.JsonIgnore; 3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 import org.joda.time.DateTime; 5 import org.joda.time.DateTime;
  6 +import org.springframework.format.annotation.DateTimeFormat;
6 7
7 import javax.persistence.*; 8 import javax.persistence.*;
8 import java.io.Serializable; 9 import java.io.Serializable;
@@ -36,10 +37,12 @@ public class SysUser implements Serializable { @@ -36,10 +37,12 @@ public class SysUser implements Serializable {
36 37
37 @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") 38 @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
38 private Date updateDate; 39 private Date updateDate;
39 - 40 +
  41 + @DateTimeFormat(pattern = "yyyy-MM-dd")
40 private Date lastLoginDate; 42 private Date lastLoginDate;
41 43
42 /** 最近密码更新时间 */ 44 /** 最近密码更新时间 */
  45 + @DateTimeFormat(pattern = "yyyy-MM-dd")
43 private Date lastPwdDate; 46 private Date lastPwdDate;
44 /** 密码有效期 */ 47 /** 密码有效期 */
45 private Integer pwdValidPeriod; 48 private Integer pwdValidPeriod;
src/main/java/com/bsth/entity/zndd/LoggerZndd.java
@@ -32,6 +32,8 @@ public class LoggerZndd implements Serializable { @@ -32,6 +32,8 @@ public class LoggerZndd implements Serializable {
32 32
33 private String dir; 33 private String dir;
34 34
  35 + private String img;
  36 +
35 // 创建日期 37 // 创建日期
36 @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") 38 @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
37 private Date createDate; 39 private Date createDate;
@@ -107,4 +109,12 @@ public class LoggerZndd implements Serializable { @@ -107,4 +109,12 @@ public class LoggerZndd implements Serializable {
107 public void setDir(String dir) { 109 public void setDir(String dir) {
108 this.dir = dir; 110 this.dir = dir;
109 } 111 }
  112 +
  113 + public String getImg() {
  114 + return img;
  115 + }
  116 +
  117 + public void setImg(String img) {
  118 + this.img = img;
  119 + }
110 } 120 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -11,6 +11,7 @@ import java.sql.SQLException; @@ -11,6 +11,7 @@ import java.sql.SQLException;
11 import java.text.DecimalFormat; 11 import java.text.DecimalFormat;
12 import java.text.ParseException; 12 import java.text.ParseException;
13 import java.text.SimpleDateFormat; 13 import java.text.SimpleDateFormat;
  14 +import java.time.LocalDate;
14 import java.util.ArrayList; 15 import java.util.ArrayList;
15 import java.util.Calendar; 16 import java.util.Calendar;
16 import java.util.Collection; 17 import java.util.Collection;
@@ -29,6 +30,7 @@ import java.util.concurrent.*; @@ -29,6 +30,7 @@ import java.util.concurrent.*;
29 import java.util.regex.Pattern; 30 import java.util.regex.Pattern;
30 31
31 import com.bsth.data.SystemParamCache; 32 import com.bsth.data.SystemParamCache;
  33 +import com.bsth.data.zndd.OutEntrance;
32 import com.bsth.entity.zndd.LoggerZndd; 34 import com.bsth.entity.zndd.LoggerZndd;
33 import com.bsth.repository.zndd.LoggerZnddRepository; 35 import com.bsth.repository.zndd.LoggerZnddRepository;
34 import org.apache.commons.io.IOUtils; 36 import org.apache.commons.io.IOUtils;
@@ -228,6 +230,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -228,6 +230,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
228 @Autowired 230 @Autowired
229 LoggerZnddRepository loggerZnddRepository; 231 LoggerZnddRepository loggerZnddRepository;
230 232
  233 + @Autowired
  234 + OutEntrance outEntrance;
  235 +
231 Logger logger = LoggerFactory.getLogger(this.getClass()); 236 Logger logger = LoggerFactory.getLogger(this.getClass());
232 237
233 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 238 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
@@ -728,6 +733,26 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -728,6 +733,26 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
728 public Map<String, Object> save(ScheduleRealInfo sch) { 733 public Map<String, Object> save(ScheduleRealInfo sch) {
729 Map<String, Object> rs = new HashMap<>(); 734 Map<String, Object> rs = new HashMap<>();
730 try { 735 try {
  736 + if("1".equals(sch.getOperationType())){//大客流临加班次
  737 + String img = outEntrance.moveImg(sch.getImg());
  738 + if(img==null){
  739 + rs.put("status", ResponseCode.ERROR);
  740 + rs.put("msg", "照片缺失");
  741 + return rs;
  742 + }
  743 + LoggerZndd lz = addZndd(sch);
  744 + String text = "大客流预警:"+sch.getXlName()+"_"+sch.getFcsj()+"新增临加班次";
  745 + lz.setText(text);
  746 + lz.setCreateBy(SecurityUtils.getCurrentUser().getId());
  747 + lz.setCreateDate(new Date());
  748 + lz.setLineCode(sch.getXlBm());
  749 + lz.setLineName(sch.getXlName());
  750 + lz.setDir(sch.getXlDir());
  751 + lz.setImg(img);
  752 + String rq=java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now());
  753 + lz.setRq(rq);
  754 + loggerZnddRepository.save(lz);
  755 + }
731 String clZbh = sch.getClZbh(), lpName = sch.getLpName(); 756 String clZbh = sch.getClZbh(), lpName = sch.getLpName();
732 if (StringUtils.isEmpty(lpName) || StringUtils.isEmpty(lpName.trim())) { 757 if (StringUtils.isEmpty(lpName) || StringUtils.isEmpty(lpName.trim())) {
733 rs.put("status", ResponseCode.ERROR); 758 rs.put("status", ResponseCode.ERROR);
src/main/java/com/bsth/service/report/impl/CalcSheetServiceImpl.java
@@ -121,12 +121,12 @@ public class CalcSheetServiceImpl extends BaseServiceImpl&lt;CalcSheet, Integer&gt; im @@ -121,12 +121,12 @@ public class CalcSheetServiceImpl extends BaseServiceImpl&lt;CalcSheet, Integer&gt; im
121 s.setXl(rs.getString("xl")); 121 s.setXl(rs.getString("xl"));
122 s.setXlName(rs.getString("xl_name")); 122 s.setXlName(rs.getString("xl_name"));
123 s.setId(rs.getInt("id")); 123 s.setId(rs.getInt("id"));
124 - s.setJhszfcs(rs.getString("jhszfcs"));  
125 - s.setSjszfczds(rs.getString("sjszfczds"));  
126 - s.setSjszddzds(rs.getString("sjszddzds"));  
127 - int jhfc=Integer.parseInt(rs.getString("jhszfcs"));  
128 - int zdfc=Integer.parseInt(rs.getString("sjszfczds"));  
129 - int zddd=Integer.parseInt(rs.getString("sjszddzds")); 124 + s.setJhszfcs(rs.getString("jhszfcs").split("\\.")[0]);
  125 + s.setSjszfczds(rs.getString("sjszfczds").split("\\.")[0]);
  126 + s.setSjszddzds(rs.getString("sjszddzds").split("\\.")[0]);
  127 + int jhfc=Integer.parseInt(rs.getString("jhszfcs").split("\\.")[0]);
  128 + int zdfc=Integer.parseInt(rs.getString("sjszfczds").split("\\.")[0]);
  129 + int zddd=Integer.parseInt(rs.getString("sjszddzds").split("\\.")[0]);
130 if(jhfc>0){ 130 if(jhfc>0){
131 double zdl=(zdfc*1.0)/(jhfc*1.0)*100; 131 double zdl=(zdfc*1.0)/(jhfc*1.0)*100;
132 s.setSzfczdl(df.format(zdl)+"%"); 132 s.setSzfczdl(df.format(zdl)+"%");
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
@@ -471,8 +471,8 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -471,8 +471,8 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
471 // 构造表头 471 // 构造表头
472 excelPoiOperator.createStringCell(wb, lpHeadRow, (short) 0, "路牌", new Color(0x96b9d7)); 472 excelPoiOperator.createStringCell(wb, lpHeadRow, (short) 0, "路牌", new Color(0x96b9d7));
473 473
474 - StationRoute station1 = stationRouteService.findById(lpObjList.get(0).getStationRouteId1());  
475 - StationRoute station2 = stationRouteService.findById(lpObjList.get(1).getStationRouteId2()); 474 + StationRoute station1 = null;
  475 + StationRoute station2 = null;
476 476
477 // TODO 477 // TODO
478 Map<String, Object> param = new HashMap<>(); 478 Map<String, Object> param = new HashMap<>();
@@ -596,8 +596,8 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -596,8 +596,8 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
596 excelPoiOperator.createStringCell(wb, lpHeadRow, (short) 2, "出场", new Color(0x96b9d7)); 596 excelPoiOperator.createStringCell(wb, lpHeadRow, (short) 2, "出场", new Color(0x96b9d7));
597 597
598 598
599 - StationRoute station1 = stationRouteService.findById(lpObjList.get(0).getStationRouteId1());  
600 - StationRoute station2 = stationRouteService.findById(lpObjList.get(1).getStationRouteId2()); 599 + StationRoute station1 = null;
  600 + StationRoute station2 = null;
601 601
602 // TODO 602 // TODO
603 Map<String, Object> param = new HashMap<>(); 603 Map<String, Object> param = new HashMap<>();
src/main/java/com/bsth/service/zndd/LoggerZnddService.java
@@ -3,6 +3,7 @@ package com.bsth.service.zndd; @@ -3,6 +3,7 @@ package com.bsth.service.zndd;
3 import com.bsth.entity.realcontrol.ScheduleRealInfo; 3 import com.bsth.entity.realcontrol.ScheduleRealInfo;
4 import com.bsth.entity.zndd.LoggerZndd; 4 import com.bsth.entity.zndd.LoggerZndd;
5 import com.bsth.service.BaseService; 5 import com.bsth.service.BaseService;
  6 +import org.springframework.web.bind.annotation.RequestParam;
6 7
7 import java.util.List; 8 import java.util.List;
8 import java.util.Map; 9 import java.util.Map;
@@ -18,4 +19,8 @@ public interface LoggerZnddService extends BaseService&lt;LoggerZndd, Integer&gt; { @@ -18,4 +19,8 @@ public interface LoggerZnddService extends BaseService&lt;LoggerZndd, Integer&gt; {
18 19
19 20
20 ScheduleRealInfo thissch(Integer ids); 21 ScheduleRealInfo thissch(Integer ids);
  22 +
  23 + String LineUserAll(@RequestParam Integer userId);
  24 +
  25 + Map<String, Object> schTZSF(String line,String date,String endDate,String changType,String type);
21 } 26 }
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.alibaba.fastjson.JSON;
  4 +import com.bsth.common.ResponseCode;
3 import com.bsth.controller.realcontrol.dto.DfsjChange; 5 import com.bsth.controller.realcontrol.dto.DfsjChange;
4 import com.bsth.data.schedule.DayOfSchedule; 6 import com.bsth.data.schedule.DayOfSchedule;
5 import com.bsth.data.schedule.ScheduleComparator; 7 import com.bsth.data.schedule.ScheduleComparator;
  8 +import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto;
  9 +import com.bsth.entity.Line;
6 import com.bsth.entity.realcontrol.ScheduleRealInfo; 10 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  11 +import com.bsth.entity.sys.RealControAuthority;
7 import com.bsth.entity.zndd.LoggerZndd; 12 import com.bsth.entity.zndd.LoggerZndd;
8 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 13 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
9 import com.bsth.repository.zndd.LoggerZnddRepository; 14 import com.bsth.repository.zndd.LoggerZnddRepository;
  15 +import com.bsth.service.LineService;
10 import com.bsth.service.impl.BaseServiceImpl; 16 import com.bsth.service.impl.BaseServiceImpl;
11 import com.bsth.service.realcontrol.ScheduleRealInfoService; 17 import com.bsth.service.realcontrol.ScheduleRealInfoService;
  18 +import com.bsth.service.report.ReportService;
  19 +import com.bsth.service.sys.RealControAuthorityService;
12 import com.bsth.service.zndd.LoggerZnddService; 20 import com.bsth.service.zndd.LoggerZnddService;
  21 +import com.bsth.util.ReportUtils;
13 import org.slf4j.Logger; 22 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory; 23 import org.slf4j.LoggerFactory;
15 import org.springframework.beans.factory.annotation.Autowired; 24 import org.springframework.beans.factory.annotation.Autowired;
16 -  
17 import org.springframework.data.domain.Sort; 25 import org.springframework.data.domain.Sort;
  26 +import org.springframework.jdbc.core.BeanPropertyRowMapper;
  27 +import org.springframework.jdbc.core.JdbcTemplate;
18 import org.springframework.stereotype.Service; 28 import org.springframework.stereotype.Service;
19 import org.springframework.transaction.annotation.Transactional; 29 import org.springframework.transaction.annotation.Transactional;
  30 +import org.springframework.web.bind.annotation.RequestParam;
20 31
21 import java.text.SimpleDateFormat; 32 import java.text.SimpleDateFormat;
22 import java.time.LocalTime; 33 import java.time.LocalTime;
@@ -34,8 +45,15 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt; @@ -34,8 +45,15 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
34 ScheduleRealInfoService scheduleRealInfoService; 45 ScheduleRealInfoService scheduleRealInfoService;
35 @Autowired 46 @Autowired
36 ScheduleRealInfoRepository scheduleRealInfoRepository; 47 ScheduleRealInfoRepository scheduleRealInfoRepository;
  48 + @Autowired
  49 + LineService lineService;
  50 + @Autowired
  51 + ReportService reportService;
37 52
38 - 53 + @Autowired
  54 + RealControAuthorityService realControAuthorityService;
  55 + @Autowired
  56 + JdbcTemplate jdbcTemplate;
39 Logger logger = LoggerFactory.getLogger(this.getClass()); 57 Logger logger = LoggerFactory.getLogger(this.getClass());
40 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("HH:mm"); 58 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("HH:mm");
41 private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 59 private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@@ -137,28 +155,38 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt; @@ -137,28 +155,38 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
137 155
138 public ScheduleRealInfo thissch(Integer ids){ 156 public ScheduleRealInfo thissch(Integer ids){
139 ScheduleRealInfo sch=dayOfSchedule.get(ids); 157 ScheduleRealInfo sch=dayOfSchedule.get(ids);
140 - Set<String> set = dayOfSchedule.findCarByLineCode(sch.getXlBm()); 158 + Line line = lineService.findByLineCode(sch.getXlBm());
  159 + List<Map<String, Object>> lineList=reportService.lineList();
  160 + Set<String> lines = new HashSet<>();
  161 + for (Map<String, Object> map : lineList) {
  162 + if(line.getBrancheCompany().equals(map.get("fgsbm").toString())){
  163 + lines.add(map.get("xlbm").toString());
  164 + }
  165 + }
141 List<String> nbbms=new ArrayList<>(); 166 List<String> nbbms=new ArrayList<>();
142 List<String> jghs=new ArrayList<>(); 167 List<String> jghs=new ArrayList<>();
143 List<String> jNames=new ArrayList<>(); 168 List<String> jNames=new ArrayList<>();
144 - LocalTime localTime=LocalTime.now().plusHours(1);  
145 - DateTimeFormatter dtf=DateTimeFormatter.ofPattern("HH:mm");  
146 - for (String nbbm : set) {  
147 - ScheduleRealInfo s=dayOfSchedule.executeCurr(nbbm);//当前执行班次  
148 - if(s==null){//当日班次执行完毕  
149 - List<ScheduleRealInfo> list=dayOfSchedule.findByNbbm(nbbm);  
150 - if(list.size()>0){  
151 - ScheduleRealInfo s2=list.get(list.size()-1);//最后一个班次  
152 - nbbms.add(s2.getClZbh());  
153 - jghs.add(s2.getjGh());  
154 - jNames.add(s2.getjName());  
155 - }  
156 - }else {//1小时内是否有待执行班次  
157 - LocalTime fcsj=LocalTime.parse(s.getFcsj(),dtf);  
158 - if(fcsj.isAfter(localTime)){  
159 - nbbms.add(s.getClZbh());  
160 - jghs.add(s.getjGh());  
161 - jNames.add(s.getjName()); 169 + for (String lineCode : lines) {
  170 + Set<String> set = dayOfSchedule.findCarByLineCode(lineCode);
  171 + LocalTime localTime=LocalTime.now().plusHours(1);
  172 + DateTimeFormatter dtf=DateTimeFormatter.ofPattern("HH:mm");
  173 + for (String nbbm : set) {
  174 + ScheduleRealInfo s=dayOfSchedule.executeCurr(nbbm);//当前执行班次
  175 + if(s==null){//当日班次执行完毕
  176 + List<ScheduleRealInfo> list=dayOfSchedule.findByNbbm(nbbm);
  177 + if(list.size()>0){
  178 + ScheduleRealInfo s2=list.get(list.size()-1);//最后一个班次
  179 + nbbms.add(s2.getClZbh());
  180 + jghs.add(s2.getjGh());
  181 + jNames.add(s2.getjName());
  182 + }
  183 + }else {//1小时内是否有待执行班次
  184 + LocalTime fcsj=LocalTime.parse(s.getFcsj(),dtf);
  185 + if(fcsj.isAfter(localTime)){
  186 + nbbms.add(s.getClZbh());
  187 + jghs.add(s.getjGh());
  188 + jNames.add(s.getjName());
  189 + }
162 } 190 }
163 } 191 }
164 } 192 }
@@ -168,7 +196,8 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt; @@ -168,7 +196,8 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
168 sch.setClZbh(nbbms.get(0)); 196 sch.setClZbh(nbbms.get(0));
169 sch.setjGh(jghs.get(0)); 197 sch.setjGh(jghs.get(0));
170 sch.setjName(jNames.get(0)); 198 sch.setjName(jNames.get(0));
171 - for (int i = 0; i < nbbms.size(); i++) { 199 + int size =nbbms.size()>10?9:nbbms.size();
  200 + for (int i = 0; i < size; i++) {
172 sb.append(nbbms.get(i)+"/"); 201 sb.append(nbbms.get(i)+"/");
173 sb.append(jNames.get(i)+","); 202 sb.append(jNames.get(i)+",");
174 } 203 }
@@ -179,4 +208,93 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt; @@ -179,4 +208,93 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl&lt;LoggerZndd, Integer&gt;
179 } 208 }
180 209
181 210
  211 +
  212 + public String LineUserAll(@RequestParam Integer userId){
  213 + String xlNames ="";
  214 + RealControAuthority rcay = realControAuthorityService.findByUserId(userId);
  215 + String lineCodeStr = rcay.getLineCodeStr();
  216 + String[] lineArray = lineCodeStr.split(",");
  217 + for(String line : lineArray){
  218 + List<ScheduleRealInfo> schList = dayOfSchedule.findByLineCode(line);
  219 + for(ScheduleRealInfo sc : schList){
  220 + if (sc.getStatus() == 0 || sc.getStatus() == 1){
  221 + xlNames += sc.getXlName()+",";
  222 + break;
  223 + }
  224 + }
  225 + }
  226 + return xlNames;
  227 +
  228 + }
  229 +
  230 + public Map<String, Object> schTZSF(String line,String date,String endDate,String changType,String type){
  231 +
  232 + Map<String, Object> rs = new HashMap();
  233 + try {
  234 + String cont = "";
  235 + if (line != null && !line.equals("")){
  236 + cont = " and line_code ="+line;
  237 + }
  238 + String bcType ="";
  239 + if (changType.equals("0")){
  240 + bcType = " and bc_type not in ('in','out','venting')";
  241 + }else {
  242 + bcType =" and bc_type in ('out')";
  243 + }
  244 +
  245 + //拼接除rq、lineCode 外的其他where 条件
  246 + String sql = "select t1.*, t2.fcsj,t2.lp_name,t2.cl_zbh,t2.j_gh,t2.j_name,t2.xl_dir,t2.real_exec_date,t2.xl_name from (select * from logger_sch_modify where rq >=? and rq <=? and type in('SFTZ','FCXXWT') and remarks !='自动调度实发未发-车辆掉线'"+cont+" ) t1 INNER JOIN bsth_c_s_sp_info_real t2 on t1.sch_id=t2.id where 1=1 " +bcType;
  247 + List<SchEditInfoDto> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SchEditInfoDto.class), date,endDate);
  248 + rs.put("status", ResponseCode.SUCCESS);
  249 + List<SchEditInfoDto> listnew = new ArrayList<>();
  250 + for(SchEditInfoDto item : list){
  251 + List<Map> lists = (List) JSON.parse(item.getJsonArray());
  252 + for(Map its : lists){
  253 + if (item.getType().equals("FCXXWT")) {
  254 + if (its.get("old") != null && its.get("title").equals("调整实发时间")) {
  255 + String text = "调整前:" + its.get("old") + ",调整后:" + its.get("now");
  256 + item.setText(text);
  257 + listnew.add(item);
  258 + break;
  259 + }
  260 + }else {
  261 + if(its.get("old") != null){
  262 + String text = "调整前:" + its.get("old") + ",调整后:" + its.get("now");
  263 + item.setText(text);
  264 + break;
  265 + }
  266 + }
  267 + };
  268 + };
  269 +
  270 + rs.put("list", listnew);
  271 +
  272 + if(type.equals("export")){
  273 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  274 + Map<String, Object> m = new HashMap<String, Object>();
  275 + ReportUtils ee = new ReportUtils();
  276 + List list1 = new ArrayList();
  277 + for(SchEditInfoDto sed : listnew){
  278 + Map map = JSON.parseObject(JSON.toJSONString(sed), Map.class);
  279 + list1.add(map);
  280 + }
  281 +
  282 + try {
  283 + listI.add(list1.iterator());
  284 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  285 + ee.excelReplace(listI, new Object[]{m}, path + "mould/" + "sch_tzsf.xls",
  286 + path + "export/"+date+"-"+endDate+"-异常调整实发.xls");
  287 + } catch (Exception e) {
  288 + // TODO: handle exception
  289 + e.printStackTrace();
  290 + }
  291 + }
  292 +
  293 + }catch (Exception e){
  294 + logger.error("", e);
  295 + rs.put("status", ResponseCode.ERROR);
  296 + rs.put("msg", e.getMessage());
  297 + }
  298 + return rs;
  299 + }
182 } 300 }
src/main/resources/fatso/start.js
@@ -16,7 +16,7 @@ var platform = process.platform; @@ -16,7 +16,7 @@ var platform = process.platform;
16 var iswin = platform == 'win32'; 16 var iswin = platform == 'win32';
17 var sp = platform == 'win32' ? '\\' : '/'; 17 var sp = platform == 'win32' ? '\\' : '/';
18 //不参与的目录 18 //不参与的目录
19 -var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission' + sp + 'authorize_all','permission' + sp + 'user', 'summary', 'history_sch', 'report' + sp + 'oil', 'base' + sp + 'geo_data_edit', 'base' + sp + 'carpark', 'forms', 'mforms', 'report', 'punctual', 'base' + sp + 'timesmodel', 'base' + sp + 'stationroute','zndd_yuan','zndd_yuan' + sp + 'call'] 19 +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission' + sp + 'authorize_all','permission' + sp + 'user', 'summary', 'history_sch', 'report' + sp + 'oil', 'base' + sp + 'geo_data_edit', 'base' + sp + 'carpark', 'forms', 'mforms', 'report', 'punctual', 'base' + sp + 'timesmodel', 'base' + sp + 'stationroute','zndd_yuan','call']
20 , ep = new EventProxy() 20 , ep = new EventProxy()
21 , pName = 'bsth_control' 21 , pName = 'bsth_control'
22 , path = process.cwd() 22 , path = process.cwd()
src/main/resources/static/pages/base/timesmodel/add.html
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 38
39 <div class="actions"> 39 <div class="actions">
40 <div class="btn-group btn-group-devided" data-toggle="buttons"> 40 <div class="btn-group btn-group-devided" data-toggle="buttons">
41 - <a class="btn btn-circle blue openHaveSkb" href="javascript:;" data-pjax><i class="fa fa-check"></i> 打开现有时刻表明细</a> 41 + <a class="btn btn-circle blue openHaveSkb" href="javascript:;" data-pjax><i class="fa fa-check"></i> 排班诊断</a>
42 </div> 42 </div>
43 <div class="btn-group btn-group-devided" data-toggle="buttons"> 43 <div class="btn-group btn-group-devided" data-toggle="buttons">
44 <a class="btn btn-circle default" href="/pages/base/timesmodel/index.html" style="float: right;padding: 4px 23px;" data-pjax=""><i class="fa fa-reply"></i> 退出</a> 44 <a class="btn btn-circle default" href="/pages/base/timesmodel/index.html" style="float: right;padding: 4px 23px;" data-pjax=""><i class="fa fa-reply"></i> 退出</a>
src/main/resources/static/pages/base/timesmodel/gantt.html
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 <!-- actions 组件START --> 50 <!-- actions 组件START -->
51 <div class="actions"> 51 <div class="actions">
52 <div class="btn-group btn-group-devided countbtn" data-toggle="buttons"> 52 <div class="btn-group btn-group-devided countbtn" data-toggle="buttons">
53 - <a class="btn btn-circle blue countAdd" href="javascript:;" data-pjax><i class="fa fa-database"></i> 统计数据</a> 53 + <a class="btn btn-circle blue countAdd" href="javascript:;" data-pjax><i class="fa fa-database"></i> 排班统计</a>
54 </div> 54 </div>
55 <div class="btn-group btn-group-devided parambtn" data-toggle="buttons"> 55 <div class="btn-group btn-group-devided parambtn" data-toggle="buttons">
56 <a class="btn btn-circle blue paramAdd" href="javascript:;" data-pjax><i class="fa fa-list-ol" aria-hidden="true"></i> 重新生成</a> 56 <a class="btn btn-circle blue paramAdd" href="javascript:;" data-pjax><i class="fa fa-list-ol" aria-hidden="true"></i> 重新生成</a>
src/main/resources/static/pages/base/timesmodel/js/systemTools.js
@@ -42,7 +42,7 @@ $(&#39;.addBc&#39;).on(&#39;click&#39;,function() { @@ -42,7 +42,7 @@ $(&#39;.addBc&#39;).on(&#39;click&#39;,function() {
42 var lpData = echartsDrawGTT.getLpData(); 42 var lpData = echartsDrawGTT.getLpData();
43 var lpDataCount = echartsDrawGTT.getLpDataCount(); 43 var lpDataCount = echartsDrawGTT.getLpDataCount();
44 // 弹出层mobal页面 44 // 弹出层mobal页面
45 - $.get('/pages/base/timesmodel/fragments/addBc.html', function(m){ 45 + $.get('/pages/base/timesmodel/fragments/addbc.html', function(m){
46 $(pjaxContainer).append(m); 46 $(pjaxContainer).append(m);
47 // 规定被选元素要触发的事件。可以使自定义事件(使用 bind() 函数来附加),或者任何标准事件。 47 // 规定被选元素要触发的事件。可以使自定义事件(使用 bind() 函数来附加),或者任何标准事件。
48 $('#addBc_mobal').trigger('addBcMobal.show',[lpData,lpDataCount,echartsDrawGTT]); 48 $('#addBc_mobal').trigger('addBcMobal.show',[lpData,lpDataCount,echartsDrawGTT]);
src/main/resources/static/pages/forms/mould/sch_tzsf.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/zndd/sch_tzsf.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title">
  21 + <h1>异常调整实发</h1>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-title">
  29 + <form class="form-inline" action="">
  30 + <div style="display: inline-block;">
  31 + <span class="item-label" style="width: 140px;">线路: </span>
  32 + <select class="form-control" name="line" id="line" style="width: 136px;"></select>
  33 + </div>
  34 + <div style="display: inline-block;margin-left: 15px;">
  35 + <span class="item-label" style="width: 80px;">开始时间: </span>
  36 + <input class="form-control" type="text" id="date" style="width: 160px;" />
  37 + </div>
  38 + <div style="display: inline-block;margin-left: 15px;">
  39 + <span class="item-label" style="width: 80px;">结束时间: </span>
  40 + <input class="form-control" type="text" id="endDate" style="width: 160px;" />
  41 + </div>
  42 +
  43 +
  44 + <div style="display: inline-block;margin-left: 15px;">
  45 + <select name="type" class="form-control" id="changType">
  46 + <option value="0">营运</option>
  47 + <option value="1">出场</option>
  48 + </select>
  49 + </div>
  50 +
  51 + <div class="form-group">
  52 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  53 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  54 + </div>
  55 + </form>
  56 + </div>
  57 + <div class="portlet-body">
  58 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  59 + <table class="table table-bordered table-hover table-checkable" id="forms">
  60 + <thead>
  61 + <tr>
  62 + <th colspan="10">异常调整实发明细表</th>
  63 + </tr>
  64 + <tr>
  65 + <td>编号</td>
  66 + <td>日期</td>
  67 + <td>线路</td>
  68 + <td>路牌</td>
  69 + <td>车号</td>
  70 + <td>司机</td>
  71 + <td>计发</td>
  72 + <td>修改详细</td>
  73 + <td>修改人</td>
  74 + <td>备注</td>
  75 + </tr>
  76 + </thead>
  77 + <tbody class="list_correctForm">
  78 +
  79 + </tbody>
  80 + <tbody class="list_correctForm_statistics">
  81 +
  82 + </tbody>
  83 + </table>
  84 + </div>
  85 + </div>
  86 + </div>
  87 + </div>
  88 +</div>
  89 +
  90 +<script>
  91 + $(function(){
  92 + $("#export").attr('disabled',"true");
  93 +
  94 + // 关闭左侧栏
  95 + if (!$('body').hasClass('page-sidebar-closed'))
  96 + $('.menu-toggler.sidebar-toggler').click();
  97 +
  98 + var d = new Date();
  99 + //d.setTime(d.getTime() - 1*1000*60*60*24);
  100 + var year = d.getFullYear();
  101 + var month = d.getMonth() + 1;
  102 + var day = d.getDate();
  103 + if(month < 10)
  104 + month = "0" + month;
  105 + if(day < 10)
  106 + day = "0" + day;
  107 + var dateTime = year + "-" + month + "-" + day;
  108 + $("#date").datetimepicker({
  109 + format : 'YYYY-MM-DD',
  110 + locale : 'zh-cn',
  111 + maxDate : dateTime
  112 + });
  113 + $("#endDate").datetimepicker({
  114 + format : 'YYYY-MM-DD',
  115 + locale : 'zh-cn',
  116 + maxDate : dateTime
  117 + });
  118 + $("#date").val(dateTime);
  119 + $("#endDate").val(dateTime);
  120 +
  121 + $.get('/report/lineList',function(xlList){
  122 + var data = [];
  123 + data.push({id: "", text: "全部线路"});
  124 + $.get('/user/companyData', function(result){
  125 + for(var i = 0; i < result.length; i++){
  126 + var companyCode = result[i].companyCode;
  127 + var children = result[i].children;
  128 + for(var j = 0; j < children.length; j++){
  129 + var code = children[j].code;
  130 + for(var k=0;k < xlList.length;k++ ){
  131 + if(xlList[k]["fgsbm"]==code && xlList[k]["gsbm"]==companyCode){
  132 + data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]});
  133 +// tempData[xlList[k]["xlbm"]] = companyCode+":"+code;
  134 + }
  135 + }
  136 + }
  137 + }
  138 + initPinYinSelect2('#line',data,'');
  139 +
  140 + });
  141 + });
  142 +
  143 + $('#czcl').on('click', function () {
  144 + $('#code').val('').change();
  145 + });
  146 +
  147 +
  148 + $("#query").on("click",function(){
  149 + var line = $("#line").val();
  150 + var date = $("#date").val();
  151 + var endDate = $("#endDate").val();
  152 + var changType =$("#changType").val();
  153 + if (line == "全部线路")
  154 + line = "";
  155 + var type = "query";
  156 + $get("/logZndd/schTZSF",{line:line,date:date,endDate:endDate,changType:changType,type:type},function(result){
  157 + //两种情况
  158 + // 1.发车信息微调 是实发调整
  159 + // 2.实发调整 old不是空调整
  160 + var list = result.list;
  161 +
  162 + var list_correctForm = template('list_correctForm',{list});
  163 + // 把渲染好的模版html文本追加到表格中
  164 + $('#forms .list_correctForm').html(list_correctForm);
  165 +
  166 + if(list.length == 0)
  167 + $("#export").attr('disabled',"true");
  168 + else
  169 + $("#export").removeAttr("disabled");
  170 +
  171 + });
  172 + });
  173 +
  174 + $("#export").on("click",function(){
  175 + var line = $("#line").val();
  176 + var date = $("#date").val();
  177 + var endDate = $("#endDate").val();
  178 + var changType =$("#changType").val();
  179 + if (line == "全部线路")
  180 + line = "";
  181 + var type = "export";
  182 + $get('/logZndd/schTZSF',{line:line,date:date,endDate:endDate,changType:changType,type:type},function(result){
  183 + window.open("/downloadFile/download?fileName="
  184 + +date+"-"+endDate+"-异常调整实发");
  185 + });
  186 + });
  187 +
  188 + });
  189 +</script>
  190 +<script type="text/html" id="list_correctForm">
  191 + {{each list as obj i}}
  192 + <tr>
  193 + <td>{{i+1}}</td>
  194 + <td>{{obj.rq}}</td>
  195 + <td>{{obj.xlName}}</td>
  196 + <td>{{obj.lpName}}</td>
  197 + <td>{{obj.clZbh}}</td>
  198 + <td>{{obj.jName}}/{{obj.jGh}}</td>
  199 + <td>{{obj.fcsj}}</td>
  200 + <td>{{obj.text}}</td>
  201 + <td>{{obj.user}}</td>
  202 + <td>{{obj.remarks}}</td>
  203 + </tr>
  204 + {{/each}}
  205 + {{if list.length == 0}}
  206 + <tr>
  207 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  208 + </tr>
  209 + {{/if}}
  210 +</script>
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/list.html
@@ -192,7 +192,7 @@ @@ -192,7 +192,7 @@
192 <a ui-sref="ttInfoDetailManage_edit3({xlid: info.xl.id, ttid : info.id, xlname: info.xl.name, ttname : info.name, rflag : true, lineversion : info.lineVersion})" 192 <a ui-sref="ttInfoDetailManage_edit3({xlid: info.xl.id, ttid : info.id, xlname: info.xl.name, ttname : info.name, rflag : true, lineversion : info.lineVersion})"
193 class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 编辑 </a> 193 class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 编辑 </a>
194 <a ng-click="ctrl.toTtInfoDetailAuto(info.id)" 194 <a ng-click="ctrl.toTtInfoDetailAuto(info.id)"
195 - class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 生成 </a> 195 + class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 排班优化 </a>
196 <a ui-sref="ttInfoDetailManage_form({xlid: info.xl.id, ttid : info.id, xlname: info.xl.name, ttname : info.name})" 196 <a ui-sref="ttInfoDetailManage_form({xlid: info.xl.id, ttid : info.id, xlname: info.xl.name, ttname : info.name})"
197 class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 导入 </a> 197 class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 导入 </a>
198 <a href="javascript:" class="btn btn-info btn-sm" ng-click="ctrl.exportData(info.id)"> 导出 </a> 198 <a href="javascript:" class="btn btn-info btn-sm" ng-click="ctrl.exportData(info.id)"> 导出 </a>
src/main/resources/static/pages/zndd_yuan/DKL.html
@@ -182,8 +182,8 @@ @@ -182,8 +182,8 @@
182 id: 'card4', 182 id: 'card4',
183 x: 100, 183 x: 100,
184 y: 400, 184 y: 400,
185 - label: '待发调整',  
186 - type: "待发调整", 185 + label: '待发调整工具',
  186 + type: "待发调整工具",
187 nodes: [{ 187 nodes: [{
188 type: "in", 188 type: "in",
189 level: 0, 189 level: 0,
@@ -199,13 +199,35 @@ @@ -199,13 +199,35 @@
199 } 199 }
200 ], 200 ],
201 titleBarColor: ['#3950e8', '#25f6d0'] 201 titleBarColor: ['#3950e8', '#25f6d0']
202 - }, 202 + },
203 { 203 {
204 id: 'card5', 204 id: 'card5',
205 x: 100, 205 x: 100,
206 y: 400, 206 y: 400,
207 - label: '班次取消(烂班)',  
208 - type: "班次取消(烂班)", 207 + label: '班次取消(烂班)工具',
  208 + type: "班次取消(烂班)工具",
  209 + nodes: [{
  210 + type: "in",
  211 + level: 0,
  212 + enumType: 'call',
  213 + color: '#fff',
  214 +
  215 + },
  216 + {
  217 + type: "out",
  218 + level: 0,
  219 + enumType: 'call',
  220 + color: '#3C8CE7',
  221 + }
  222 + ],
  223 + titleBarColor: ['#3950e8', '#25f6d0']
  224 + },
  225 + {
  226 + id: 'card51',
  227 + x: 100,
  228 + y: 400,
  229 + label: '撤销班次取消(烂班)工具',
  230 + type: "撤销班次取消(烂班)工具",
209 nodes: [{ 231 nodes: [{
210 type: "in", 232 type: "in",
211 level: 0, 233 level: 0,
@@ -226,8 +248,30 @@ @@ -226,8 +248,30 @@
226 id: 'card6', 248 id: 'card6',
227 x: 100, 249 x: 100,
228 y: 400, 250 y: 400,
229 - label: '实发调整',  
230 - type: "实发调整", 251 + label: '实发调整工具',
  252 + type: "实发调整工具",
  253 + nodes: [{
  254 + type: "in",
  255 + level: 0,
  256 + enumType: 'call',
  257 + color: '#fff',
  258 +
  259 + },
  260 + {
  261 + type: "out",
  262 + level: 0,
  263 + enumType: 'call',
  264 + color: '#3C8CE7',
  265 + }
  266 + ],
  267 + titleBarColor: ['#3950e8', '#25f6d0']
  268 + },
  269 + {
  270 + id: 'card7',
  271 + x: 100,
  272 + y: 400,
  273 + label: '实发撤销工具',
  274 + type: "实发撤销工具",
231 nodes: [{ 275 nodes: [{
232 type: "in", 276 type: "in",
233 level: 0, 277 level: 0,
@@ -248,8 +292,8 @@ @@ -248,8 +292,8 @@
248 id: 'card7', 292 id: 'card7',
249 x: 100, 293 x: 100,
250 y: 400, 294 y: 400,
251 - label: '实发撤销',  
252 - type: "实发撤销", 295 + label: '发车信息微调工具',
  296 + type: "发车信息微调工具",
253 nodes: [{ 297 nodes: [{
254 type: "in", 298 type: "in",
255 level: 0, 299 level: 0,
@@ -270,8 +314,8 @@ @@ -270,8 +314,8 @@
270 id: 'card8', 314 id: 'card8',
271 x: 100, 315 x: 100,
272 y: 400, 316 y: 400,
273 - label: '新增临加班次',  
274 - type: "新增临加班次", 317 + label: '新增临加班次工具',
  318 + type: "新增临加班次工具",
275 nodes: [{ 319 nodes: [{
276 type: "in", 320 type: "in",
277 level: 0, 321 level: 0,
@@ -292,8 +336,8 @@ @@ -292,8 +336,8 @@
292 id: 'card9', 336 id: 'card9',
293 x: 100, 337 x: 100,
294 y: 400, 338 y: 400,
295 - label: '调整人车',  
296 - type: "调整人车", 339 + label: '调整人车工具',
  340 + type: "调整人车工具",
297 nodes: [{ 341 nodes: [{
298 type: "in", 342 type: "in",
299 level: 0, 343 level: 0,
@@ -314,8 +358,8 @@ @@ -314,8 +358,8 @@
314 id: 'card10', 358 id: 'card10',
315 x: 100, 359 x: 100,
316 y: 400, 360 y: 400,
317 - label: '指令重发',  
318 - type: "指令重发", 361 + label: '指令重发工具',
  362 + type: "指令重发工具",
319 nodes: [{ 363 nodes: [{
320 type: "in", 364 type: "in",
321 level: 0, 365 level: 0,
@@ -336,8 +380,8 @@ @@ -336,8 +380,8 @@
336 id: 'card11', 380 id: 'card11',
337 x: 100, 381 x: 100,
338 y: 400, 382 y: 400,
339 - label: '路牌对调',  
340 - type: "路牌对调", 383 + label: '路牌对调工具',
  384 + type: "路牌对调工具",
341 nodes: [{ 385 nodes: [{
342 type: "in", 386 type: "in",
343 level: 0, 387 level: 0,
@@ -358,8 +402,8 @@ @@ -358,8 +402,8 @@
358 id: 'card12', 402 id: 'card12',
359 x: 100, 403 x: 100,
360 y: 400, 404 y: 400,
361 - label: '误点调整',  
362 - type: "误点调整", 405 + label: '误点调整工具',
  406 + type: "误点调整工具",
363 nodes: [{ 407 nodes: [{
364 type: "in", 408 type: "in",
365 level: 0, 409 level: 0,
src/main/resources/static/real_control_v2/js/main.js
@@ -30,7 +30,7 @@ var gb_main_ep = new EventProxy(), @@ -30,7 +30,7 @@ var gb_main_ep = new EventProxy(),
30 //判断如果用户按下了回车键(keycody=13) 30 //判断如果用户按下了回车键(keycody=13)
31 if (keyNum == 13) { 31 if (keyNum == 13) {
32 fired = true; 32 fired = true;
33 - debugger 33 +
34 let lineCode = gb_schedule_table.TablelineCode; 34 let lineCode = gb_schedule_table.TablelineCode;
35 document.getElementById("recidress").style.display = 'none'; 35 document.getElementById("recidress").style.display = 'none';
36 recorder.upload("zndd/do/"+lineCode, function (state, e) { 36 recorder.upload("zndd/do/"+lineCode, function (state, e) {
src/main/resources/static/real_control_v2/js/north/toolbar.js
@@ -36,17 +36,30 @@ var gb_northToolbar = (function () { @@ -36,17 +36,30 @@ var gb_northToolbar = (function () {
36 //exit 36 //exit
37 $('.north .north-toolbar .exit-system').on('click', function () { 37 $('.north .north-toolbar .exit-system').on('click', function () {
38 //调度员退出时提示未全部完成班次的线路 38 //调度员退出时提示未全部完成班次的线路
39 - debugger  
40 //默认只取一个角色 39 //默认只取一个角色
41 - /* if(currentUser.currentUser[0].codeName == "BSTH_A"){ 40 + if(user.roles[0].codeName == "LG_DDY" || user.roles[0].codeName == "LG_GLY"){
42 //提示未完成线路 搜索该用户下所有的线路 判断是否完成 41 //提示未完成线路 搜索该用户下所有的线路 判断是否完成
43 - 42 + $.get('/logZndd/LineUserAll', {userId: user.id}, function (rs) {
  43 + if(rs.length > 0){
  44 + notify_err(rs+"班次还有未完成");
  45 + layer.confirm('班次还有未完成,是否要退出线调?', {
  46 + btn: ['确定','取消'] //按钮
  47 + }, function(){
  48 + gb_sch_websocket.sock().close(1000, '退出线调');
  49 + window.location.href = '/pages/control/lineallot_v2/iframe_wrap.html';
  50 + }, function(){
  51 + });
  52 + }else {
  53 + //关闭websocket 连接
  54 + gb_sch_websocket.sock().close(1000, '退出线调');
  55 + window.location.href = '/pages/control/lineallot_v2/iframe_wrap.html';
  56 + }
  57 + })
  58 + }else {
  59 + //关闭websocket 连接
  60 + gb_sch_websocket.sock().close(1000, '退出线调');
  61 + window.location.href = '/pages/control/lineallot_v2/iframe_wrap.html';
44 } 62 }
45 -*/  
46 -  
47 - //关闭websocket 连接  
48 - gb_sch_websocket.sock().close(1000, '退出线调');  
49 - window.location.href = '/pages/control/lineallot_v2/iframe_wrap.html';  
50 }); 63 });
51 64
52 //过滤菜单 65 //过滤菜单
src/main/resources/static/real_control_v2/js/stationcf/klyj.js
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 */ 3 */
4 var gb_klyj = (function () { 4 var gb_klyj = (function () {
5 var $wrap = $('.multi_plat_msg_pop_zndd'); 5 var $wrap = $('.multi_plat_msg_pop_zndd');
6 - var max = 3; 6 + var max = 0;
7 var dataMap = new Map(); 7 var dataMap = new Map();
8 var popcf = function (data) { 8 var popcf = function (data) {
9 dataMap.set(data.uuid,data); 9 dataMap.set(data.uuid,data);
src/main/resources/static/real_control_v2/js/stationcf/stationcf.js
@@ -27,7 +27,7 @@ var gb_stationcf = (function () { @@ -27,7 +27,7 @@ var gb_stationcf = (function () {
27 $wrap.on('click', '.all', function () { 27 $wrap.on('click', '.all', function () {
28 var type = $(this).data('ip'); 28 var type = $(this).data('ip');
29 var calleeId = $(this).data('call') 29 var calleeId = $(this).data('call')
30 - var pageUrl ="/real_control_v2/js/call/index.html?calleeId="+calleeId; 30 + var pageUrl ="/real_control_v2/zndd/call/index.html?calleeId="+calleeId;
31 //将片段路径写入 localStorage 31 //将片段路径写入 localStorage
32 window.localStorage.setItem('real_control_form_embed_pageUrl', pageUrl); 32 window.localStorage.setItem('real_control_form_embed_pageUrl', pageUrl);
33 var index = layer.open({ 33 var index = layer.open({
src/main/resources/static/real_control_v2/js/zndd/data_zndd.js
@@ -88,6 +88,11 @@ var gb_dataZndd = (function (){ @@ -88,6 +88,11 @@ var gb_dataZndd = (function (){
88 if (closetwo) closetwo = false 88 if (closetwo) closetwo = false
89 }); 89 });
90 90
  91 + var modal_opts = {
  92 + center: false,
  93 + bgclose: false
  94 + }
  95 +
91 96
92 //1078路,1135路,南临专线,临港4路,浦东111路,浦东74路,临港13路,申港3路,浦东29路,新芦专线 97 //1078路,1135路,南临专线,临港4路,浦东111路,浦东74路,临港13路,申港3路,浦东29路,新芦专线
93 function ycsf_sx(line){ 98 function ycsf_sx(line){
@@ -110,6 +115,23 @@ var gb_dataZndd = (function (){ @@ -110,6 +115,23 @@ var gb_dataZndd = (function (){
110 } 115 }
111 return false; 116 return false;
112 } 117 }
  118 + //发车信息微调
  119 + $pop.on('click', '.fcxxwts', function () {
  120 + if (close) close = false
  121 + var that = $(this);
  122 + debugger
  123 + var folder = '/real_control_v2/fragments/line_schedule/context_menu';
  124 + var id = that.data('id')
  125 +
  126 + $.post('/logZndd/thissch/'+id, function(res) {
  127 + open_modal(folder + '/fcxxwt.html?r=' + Math.random(), {
  128 + sch: res
  129 + }, modal_opts);
  130 +
  131 + });
  132 +
  133 + });
  134 +
113 135
114 136
115 //撤销实发 137 //撤销实发
src/main/resources/static/real_control_v2/js/zndd/dkl_yanshi.js 0 → 100644
  1 +var dkl_yanshi = (function (){
  2 +
  3 +
  4 +
  5 +
  6 + $('#dkl_yanshi').on('click',function(){
  7 + //1096路水华路枢纽站
  8 + var list = { lineCode : "80301",stationCode: "126934"};
  9 + var cc = [];
  10 + cc.push(list);
  11 +
  12 + var datas = {
  13 + stations :cc,
  14 + num : 20,
  15 + token : 1,
  16 +
  17 + }
  18 +
  19 + $.ajax({
  20 + type: "POST",
  21 + cache: false,
  22 + url: '/out/klyj',
  23 + contentType:"application/json;charset=utf-8",
  24 + data:JSON.stringify(datas),
  25 + success: function (res) {
  26 + notify_succ('检测大客流!');
  27 + }
  28 + })
  29 +
  30 +
  31 +
  32 + });
  33 +
  34 +})();
0 \ No newline at end of file 35 \ No newline at end of file
src/main/resources/static/real_control_v2/js/zndd/recorder/recorder.js
@@ -212,7 +212,13 @@ @@ -212,7 +212,13 @@
212 } 212 }
213 else if(responseText[1]=="2"){//新增出场班次 213 else if(responseText[1]=="2"){//新增出场班次
214 if(schId==''){ 214 if(schId==''){
215 - notify_err("请选择班次"); 215 + var sch ={
  216 + xlBm : lineCode
  217 + }
  218 + var fun =gb_schedule_context_menu.add_temp_sch_v2;
  219 + fun(sch, function () {
  220 + confirmBtn.trigger('click');
  221 + });
216 return; 222 return;
217 } 223 }
218 var sch = gb_schedule_table.findScheduleByLine(lineCode)[schId]; 224 var sch = gb_schedule_table.findScheduleByLine(lineCode)[schId];
@@ -229,7 +235,13 @@ @@ -229,7 +235,13 @@
229 } 235 }
230 else if(responseText[1]=="3"){//新增班次 236 else if(responseText[1]=="3"){//新增班次
231 if(schId==''){ 237 if(schId==''){
232 - notify_err("请选择班次"); 238 + var sch ={
  239 + xlBm : lineCode
  240 + }
  241 + var fun =gb_schedule_context_menu.add_temp_sch_v2;
  242 + fun(sch, function () {
  243 + confirmBtn.trigger('click');
  244 + });
233 return; 245 return;
234 } 246 }
235 var sch = gb_schedule_table.findScheduleByLine(lineCode)[schId]; 247 var sch = gb_schedule_table.findScheduleByLine(lineCode)[schId];
src/main/resources/static/real_control_v2/main.html
@@ -52,6 +52,9 @@ @@ -52,6 +52,9 @@
52 <!-- main style --> 52 <!-- main style -->
53 <link rel="stylesheet" href="/real_control_v2/css/microphone.css" /> 53 <link rel="stylesheet" href="/real_control_v2/css/microphone.css" />
54 54
  55 + <!--//演示使用-->
  56 + <link href="/real_control_v2/zndd/yanshi/static/css/sjz.css" type="text/css" rel="stylesheet">
  57 +
55 </head> 58 </head>
56 59
57 <body> 60 <body>
@@ -236,7 +239,8 @@ @@ -236,7 +239,8 @@
236 <script src="/real_control_v2/js/forms/form_embed.js" merge="custom_js"></script> 239 <script src="/real_control_v2/js/forms/form_embed.js" merge="custom_js"></script>
237 <!-- 模态框扩展 --> 240 <!-- 模态框扩展 -->
238 <script src="/real_control_v2/js/modal_extend.js" merge="custom_js"></script> 241 <script src="/real_control_v2/js/modal_extend.js" merge="custom_js"></script>
239 -<script src="/real_control_v2/call/assets/js/index.js" merge="custom_js"></script> 242 +
  243 +<script src="/real_control_v2/zndd/call/assets/js/index.js"></script>
240 <!-- #### 安全驾驶 start ### --> 244 <!-- #### 安全驾驶 start ### -->
241 <div class="multi_plat_msg_pop_wrap" ></div> 245 <div class="multi_plat_msg_pop_wrap" ></div>
242 <script id="sd_plat_msg_template" type="text/html"> 246 <script id="sd_plat_msg_template" type="text/html">
@@ -301,6 +305,11 @@ @@ -301,6 +305,11 @@
301 <div class="popup-msg-contents" style="display:{{type == 'YCSF'?'':'none'}}"> 305 <div class="popup-msg-contents" style="display:{{type == 'YCSF'?'':'none'}}">
302 <button class="uk-button uk-button-primary colsebc" data-fcsj="{{fcsj}}" data-clzbh="{{clzbh}}" data-id="{{id}}">取消实发</button> 306 <button class="uk-button uk-button-primary colsebc" data-fcsj="{{fcsj}}" data-clzbh="{{clzbh}}" data-id="{{id}}">取消实发</button>
303 </div> 307 </div>
  308 +
  309 + <div class="popup-msg-contents" style="display:{{type == 'WD'?'':'none'}}">
  310 + <button class="uk-button uk-button-primary fcxxwts" data-fcsj="{{fcsj}}" data-clzbh="{{clzbh}}" data-id="{{id}}">发车信息微调</button>
  311 + </div>
  312 +
304 <div class="centerSpace msg-title"> 313 <div class="centerSpace msg-title">
305 <div></div> 314 <div></div>
306 <div class="msg-date-infos" style="display:{{type == 'SFTZ_1'?'':'none'}}" > 315 <div class="msg-date-infos" style="display:{{type == 'SFTZ_1'?'':'none'}}" >
@@ -346,7 +355,6 @@ @@ -346,7 +355,6 @@
346 <span class="title">{{datarq}} ----</span> 355 <span class="title">{{datarq}} ----</span>
347 <span class="title">{{types}}</span> 356 <span class="title">{{types}}</span>
348 <div> 点击查看预案</div> 357 <div> 点击查看预案</div>
349 -  
350 </div> 358 </div>
351 </div> 359 </div>
352 360
@@ -360,6 +368,9 @@ @@ -360,6 +368,9 @@
360 <script src="/real_control_v2/js/stationcf/stationcf.js" merge="custom_js"></script> 368 <script src="/real_control_v2/js/stationcf/stationcf.js" merge="custom_js"></script>
361 <!--智能调度--> 369 <!--智能调度-->
362 <script src="/real_control_v2/js/zndd/data_zndd.js" merge="custom_js"></script> 370 <script src="/real_control_v2/js/zndd/data_zndd.js" merge="custom_js"></script>
  371 +<script src="/real_control_v2/js/zndd/dkl_yanshi.js" merge="custom_js"></script>
  372 +
  373 +
363 <!--站点催发--> 374 <!--站点催发-->
364 <script src="/real_control_v2/js/stationcf/klyj.js" merge="custom_js"></script> 375 <script src="/real_control_v2/js/stationcf/klyj.js" merge="custom_js"></script>
365 <!--语音图标--> 376 <!--语音图标-->
src/main/resources/static/real_control_v2/js/call/assets/css/bootstrap.min.css renamed to src/main/resources/static/real_control_v2/zndd/call/assets/css/bootstrap.min.css
src/main/resources/static/real_control_v2/js/call/assets/css/index.css renamed to src/main/resources/static/real_control_v2/zndd/call/assets/css/index.css
src/main/resources/static/real_control_v2/js/call/assets/font/iconfont.css renamed to src/main/resources/static/real_control_v2/zndd/call/assets/font/iconfont.css
src/main/resources/static/real_control_v2/js/call/assets/font/iconfont.eot renamed to src/main/resources/static/real_control_v2/zndd/call/assets/font/iconfont.eot
No preview for this file type
src/main/resources/static/real_control_v2/js/call/assets/font/iconfont.svg renamed to src/main/resources/static/real_control_v2/zndd/call/assets/font/iconfont.svg
src/main/resources/static/real_control_v2/js/call/assets/font/iconfont.ttf renamed to src/main/resources/static/real_control_v2/zndd/call/assets/font/iconfont.ttf
No preview for this file type
src/main/resources/static/real_control_v2/js/call/assets/font/iconfont.woff renamed to src/main/resources/static/real_control_v2/zndd/call/assets/font/iconfont.woff
No preview for this file type
src/main/resources/static/real_control_v2/js/call/assets/font/iconfont.woff2 renamed to src/main/resources/static/real_control_v2/zndd/call/assets/font/iconfont.woff2
No preview for this file type
src/main/resources/static/real_control_v2/js/call/assets/images/BG.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/BG.png

87 KB

src/main/resources/static/real_control_v2/js/call/assets/images/Dcall.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/Dcall.png

3.09 KB

src/main/resources/static/real_control_v2/js/call/assets/images/Mcalls.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/Mcalls.png

2.55 KB

src/main/resources/static/real_control_v2/js/call/assets/images/answer.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/answer.png

4.07 KB

src/main/resources/static/real_control_v2/js/call/assets/images/audio_bg.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/audio_bg.png

101 KB

src/main/resources/static/real_control_v2/js/call/assets/images/call_bg.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/call_bg.png

82.3 KB

src/main/resources/static/real_control_v2/js/call/assets/images/changaudio-hover.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/changaudio-hover.png

4.07 KB

src/main/resources/static/real_control_v2/js/call/assets/images/chart.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/chart.png

6.5 KB

src/main/resources/static/real_control_v2/js/call/assets/images/favicon.ico renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/favicon.ico
No preview for this file type
src/main/resources/static/real_control_v2/js/call/assets/images/hangup.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/hangup.png

3.87 KB

src/main/resources/static/real_control_v2/js/call/assets/images/head.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/head.png

9.69 KB

src/main/resources/static/real_control_v2/js/call/assets/images/logo_big.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/logo_big.png

6.14 KB

src/main/resources/static/real_control_v2/js/call/assets/images/logo_title.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/logo_title.png

2.37 KB

src/main/resources/static/real_control_v2/js/call/assets/images/video.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/video.png

2.33 KB

src/main/resources/static/real_control_v2/js/call/assets/images/video_close.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/video_close.png

2.76 KB

src/main/resources/static/real_control_v2/js/call/assets/images/video_hangup.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/video_hangup.png

2.59 KB

src/main/resources/static/real_control_v2/js/call/assets/images/voice.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/voice.png

2.57 KB

src/main/resources/static/real_control_v2/js/call/assets/images/voice_close.png renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/voice_close.png

2.89 KB

src/main/resources/static/real_control_v2/js/call/assets/images/yimg.jpg renamed to src/main/resources/static/real_control_v2/zndd/call/assets/images/yimg.jpg

60.9 KB

src/main/resources/static/real_control_v2/js/call/assets/js/ArRTM@latest.js renamed to src/main/resources/static/real_control_v2/zndd/call/assets/js/ArRTM@latest.js
src/main/resources/static/real_control_v2/js/call/assets/js/bootstrap.min.js renamed to src/main/resources/static/real_control_v2/zndd/call/assets/js/bootstrap.min.js
src/main/resources/static/real_control_v2/js/call/assets/js/index.js renamed to src/main/resources/static/real_control_v2/zndd/call/assets/js/index.js
src/main/resources/static/real_control_v2/js/call/assets/js/jquery-3.5.1.min.js renamed to src/main/resources/static/real_control_v2/zndd/call/assets/js/jquery-3.5.1.min.js
src/main/resources/static/real_control_v2/js/call/assets/js/latest.js renamed to src/main/resources/static/real_control_v2/zndd/call/assets/js/latest.js
src/main/resources/static/real_control_v2/js/call/index.html renamed to src/main/resources/static/real_control_v2/zndd/call/index.html
@@ -6,19 +6,19 @@ @@ -6,19 +6,19 @@
6 <meta name="google" content="notranslate" /> 6 <meta name="google" content="notranslate" />
7 <title>anyrtc 呼叫邀请DEMO - anyRTC</title> 7 <title>anyrtc 呼叫邀请DEMO - anyRTC</title>
8 <!-- icon --> 8 <!-- icon -->
9 - <link rel="icon" href="/real_control_v2/js/call/assets/images/favicon.ico" /> 9 + <link rel="icon" href="/real_control_v2/zndd/call/assets/images/favicon.ico" />
10 <!-- CSS only --> 10 <!-- CSS only -->
11 - <link rel="stylesheet" href="/real_control_v2/js/call/assets/css/bootstrap.min.css"/>  
12 - <link rel="stylesheet" type="text/css" href="/real_control_v2/js/call/assets/font/iconfont.css" /> 11 + <link rel="stylesheet" href="/real_control_v2/zndd/call/assets/css/bootstrap.min.css"/>
  12 + <link rel="stylesheet" type="text/css" href="/real_control_v2/zndd/call/assets/font/iconfont.css" />
13 <!-- JS, Popper.js, and jQuery --> 13 <!-- JS, Popper.js, and jQuery -->
14 - <script src="/real_control_v2/js/call/assets/js/jquery-3.5.1.min.js"></script>  
15 - <script src="/real_control_v2/js/call/assets/js/bootstrap.min.js"></script> 14 + <script src="/real_control_v2/zndd/call/assets/js/jquery-3.5.1.min.js"></script>
  15 + <script src="/real_control_v2/zndd/call/assets/js/bootstrap.min.js"></script>
16 <!-- JS, RTC and RTM --> 16 <!-- JS, RTC and RTM -->
17 - <script src="/real_control_v2/js/call/assets/js/latest.js"></script>  
18 - <script src="/real_control_v2/js/call/assets/js/ArRTM@latest.js"></script> 17 + <script src="/real_control_v2/zndd/call/assets/js/latest.js"></script>
  18 + <script src="/real_control_v2/zndd/call/assets/js/ArRTM@latest.js"></script>
19 19
20 <!-- 覆盖bootstrap样式 --> 20 <!-- 覆盖bootstrap样式 -->
21 - <link rel="stylesheet" href="/real_control_v2/js/call/assets/css/index.css" /> 21 + <link rel="stylesheet" href="/real_control_v2/zndd/call/assets/css/index.css" />
22 </head> 22 </head>
23 23
24 <body class="notranslate"> 24 <body class="notranslate">
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 <!-- 首页 --> 28 <!-- 首页 -->
29 <div 29 <div
30 class="page d-flex flex-col justify-content-center align-items-center" 30 class="page d-flex flex-col justify-content-center align-items-center"
31 - id="homePage" style="background-image:url('/real_control_v2/js/call/assets/images/yimg.jpg')" 31 + id="homePage" style="background-image:url('/real_control_v2/zndd/call/assets/images/yimg.jpg')"
32 32
33 > 33 >
34 <!-- --> 34 <!-- -->
@@ -133,7 +133,7 @@ @@ -133,7 +133,7 @@
133 <img 133 <img
134 draggable="false" 134 draggable="false"
135 class="img-responsive setting-video_preview_bg" 135 class="img-responsive setting-video_preview_bg"
136 - src="/real_control_v2/js/call/assets/images/chart.png" 136 + src="/real_control_v2/zndd/call/assets/images/chart.png"
137 /> 137 />
138 <div 138 <div
139 id="settingVideoPreview" 139 id="settingVideoPreview"
@@ -332,7 +332,7 @@ @@ -332,7 +332,7 @@
332 <div class="invitation bd-highlight"> 332 <div class="invitation bd-highlight">
333 <div class="d-flex justify-content-center"> 333 <div class="d-flex justify-content-center">
334 <div class="head_portrait"> 334 <div class="head_portrait">
335 - <img draggable="false" src="/real_control_v2/js/call/assets/images/head.png" /> 335 + <img draggable="false" src="/real_control_v2/zndd/call/assets/images/head.png" />
336 </div> 336 </div>
337 </div> 337 </div>
338 <div 338 <div
@@ -357,7 +357,7 @@ @@ -357,7 +357,7 @@
357 draggable="false" 357 draggable="false"
358 class="img-responsive" 358 class="img-responsive"
359 style="cursor: pointer" 359 style="cursor: pointer"
360 - src="/real_control_v2/js/call/assets/images/hangup.png" 360 + src="/real_control_v2/zndd/call/assets/images/hangup.png"
361 id="cancelCallBtn" 361 id="cancelCallBtn"
362 /> 362 />
363 <!-- <button type="button" class="btn btn-danger" >取消</button> --> 363 <!-- <button type="button" class="btn btn-danger" >取消</button> -->
@@ -372,7 +372,7 @@ @@ -372,7 +372,7 @@
372 <div class="invitation bd-highlight"> 372 <div class="invitation bd-highlight">
373 <div class="d-flex justify-content-center"> 373 <div class="d-flex justify-content-center">
374 <div class="head_portrait"> 374 <div class="head_portrait">
375 - <img draggable="false" src="/real_control_v2/js/call/assets/images/head.png" /> 375 + <img draggable="false" src="/real_control_v2/zndd/call/assets/images/head.png" />
376 </div> 376 </div>
377 </div> 377 </div>
378 <div 378 <div
@@ -398,21 +398,21 @@ @@ -398,21 +398,21 @@
398 draggable="false" 398 draggable="false"
399 class="img-responsive" 399 class="img-responsive"
400 style="cursor: pointer" 400 style="cursor: pointer"
401 - src="/real_control_v2/js/call/assets/images/changaudio-hover.png" 401 + src="/real_control_v2/zndd/call/assets/images/changaudio-hover.png"
402 id="changAudioBtn" 402 id="changAudioBtn"
403 /> 403 />
404 <img 404 <img
405 draggable="false" 405 draggable="false"
406 class="img-responsive" 406 class="img-responsive"
407 style="cursor: pointer" 407 style="cursor: pointer"
408 - src="/real_control_v2/js/call/assets/images/answer.png" 408 + src="/real_control_v2/zndd/call/assets/images/answer.png"
409 id="acceptCallBtn" 409 id="acceptCallBtn"
410 /> 410 />
411 <img 411 <img
412 draggable="false" 412 draggable="false"
413 class="img-responsive" 413 class="img-responsive"
414 style="cursor: pointer" 414 style="cursor: pointer"
415 - src="/real_control_v2/js/call/assets/images/hangup.png" 415 + src="/real_control_v2/zndd/call/assets/images/hangup.png"
416 id="refuseCallBtn" 416 id="refuseCallBtn"
417 /> 417 />
418 <!-- 多人 --> 418 <!-- 多人 -->
@@ -437,7 +437,7 @@ @@ -437,7 +437,7 @@
437 <img 437 <img
438 draggable="false" 438 draggable="false"
439 class="img-responsive" 439 class="img-responsive"
440 - src="/real_control_v2/js/call/assets/images/head.png" 440 + src="/real_control_v2/zndd/call/assets/images/head.png"
441 /> 441 />
442 </div> 442 </div>
443 <div class=""> 443 <div class="">
@@ -469,7 +469,7 @@ @@ -469,7 +469,7 @@
469 draggable="false" 469 draggable="false"
470 style="width: 100%" 470 style="width: 100%"
471 class="img-responsive" 471 class="img-responsive"
472 - src="/real_control_v2/js/call/assets/images/audio_bg.png" 472 + src="/real_control_v2/zndd/call/assets/images/audio_bg.png"
473 /> 473 />
474 </div> 474 </div>
475 </div> 475 </div>
@@ -492,7 +492,7 @@ @@ -492,7 +492,7 @@
492 draggable="false" 492 draggable="false"
493 style="position: absolute; width: 50%" 493 style="position: absolute; width: 50%"
494 class="img-responsive" 494 class="img-responsive"
495 - src="/real_control_v2/js/call/assets/images/logo_title.png" 495 + src="/real_control_v2/zndd/call/assets/images/logo_title.png"
496 /> 496 />
497 </div> 497 </div>
498 <div class="prompt_little d-flex"> 498 <div class="prompt_little d-flex">
@@ -515,7 +515,7 @@ @@ -515,7 +515,7 @@
515 draggable="false" 515 draggable="false"
516 style="position: absolute; width: 40%" 516 style="position: absolute; width: 40%"
517 class="img-responsive" 517 class="img-responsive"
518 - src="/real_control_v2/js/call/assets/images/logo_big.png" 518 + src="/real_control_v2/zndd/call/assets/images/logo_big.png"
519 /> 519 />
520 </div> 520 </div>
521 <div class="prompt_big meet-control_icon m-3" id="videoDuration"> 521 <div class="prompt_big meet-control_icon m-3" id="videoDuration">
@@ -587,7 +587,7 @@ @@ -587,7 +587,7 @@
587 <img 587 <img
588 draggable="false" 588 draggable="false"
589 class="img-responsive" 589 class="img-responsive"
590 - src="/real_control_v2/js/call/assets/images/logo_big.png" 590 + src="/real_control_v2/zndd/call/assets/images/logo_big.png"
591 /> 591 />
592 </div> 592 </div>
593 593
@@ -724,7 +724,7 @@ @@ -724,7 +724,7 @@
724 </div> 724 </div>
725 <!-- /.modal --> 725 <!-- /.modal -->
726 </div> 726 </div>
727 - <script src="/real_control_v2/js/call/assets/js/index.js"></script> 727 + <script src="/real_control_v2/zndd/call/assets/js/index.js"></script>
728 </body> 728 </body>
729 <script> 729 <script>
730 (function() { 730 (function() {
src/main/resources/static/real_control_v2/zndd/type/dkl.html
@@ -427,9 +427,14 @@ @@ -427,9 +427,14 @@
427 data.fgsBm = line.brancheCompany; 427 data.fgsBm = line.brancheCompany;
428 } 428 }
429 429
  430 + data.img=sch.image;
  431 + data.operationType=1;
430 gb_common.$post('/realSchedule', data, function (rs) { 432 gb_common.$post('/realSchedule', data, function (rs) {
431 notify_succ('新增临加班次成功'); 433 notify_succ('新增临加班次成功');
432 cb && cb(rs); 434 cb && cb(rs);
  435 + /*var folder = '/real_control_v2/zndd/yanshi';
  436 + open_modal(folder + '/yanshi.html', {
  437 + }, {center: true, bgclose: false, modal: true});*/
433 }, err); 438 }, err);
434 } 439 }
435 440
src/main/resources/static/real_control_v2/zndd/type/fcjg.html
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="uk-modal-dialog" style="width: 920px;"> 2 <div class="uk-modal-dialog" style="width: 920px;">
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-3-5" style="float: left"> 6 <div class="uk-grid uk-width-3-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>
src/main/resources/static/real_control_v2/zndd/type/mz.html
@@ -448,7 +448,7 @@ @@ -448,7 +448,7 @@
448 448
449 <div class="uk-width-1-1"> 449 <div class="uk-width-1-1">
450 <div class="uk-form-row"> 450 <div class="uk-form-row">
451 - <label class="uk-form-label">车内视频:</label> 451 + <label class="uk-form-label">车内情况:</label>
452 </div> 452 </div>
453 </div> 453 </div>
454 </div> 454 </div>
src/main/resources/static/real_control_v2/zndd/video/k1.png 0 → 100644

1.43 MB

src/main/resources/static/real_control_v2/zndd/video/k2.png 0 → 100644

1.65 MB

src/main/resources/static/real_control_v2/zndd/yanshi/static/css/sjz.css 0 → 100644
  1 +
  2 +.demo {
  3 + width:960px;
  4 + margin:60px auto 0 auto;
  5 +}
  6 +/*history*/
  7 +.history {
  8 + background:url(../image/line04.gif) repeat-y 187px 0;
  9 + overflow:hidden;
  10 + position:relative;
  11 +}
  12 +.history-date {
  13 + overflow:hidden;
  14 + position:relative;
  15 +}
  16 +.history-date h2 {
  17 + background:#fff url(../image/icon06.gif) no-repeat 158px 0;
  18 + height:59px;
  19 + font-size:25px;
  20 + font-family:微软雅黑;
  21 + font-weight:normal;
  22 + padding-left:45px;
  23 + margin-bottom:74px;
  24 +}
  25 +.history-date h2.first {
  26 + position:absolute;
  27 + left:0;
  28 + top:0;
  29 + width:500px;
  30 + z-index:99;
  31 +}
  32 +.history-date h2 a {
  33 + color:#00bbff;
  34 + display:inline-block;
  35 +*display:inline;
  36 + zoom:1;
  37 + background:url(../image/icon08.gif) no-repeat right 50%;
  38 + padding-right:17px;
  39 + margin:21px 97px 0 0;
  40 +}
  41 +.history-date h2 a:hover {
  42 + text-decoration:none;
  43 +}
  44 +.history-date h2 img {
  45 + vertical-align:-5px;
  46 +}
  47 +.history-date h2.date02 {
  48 + background:none;
  49 +}
  50 +.history-date ul li {
  51 + background:url(../image/yes.png) no-repeat 180px 0;
  52 + background-size: 15px 15px;
  53 + padding-bottom:50px;
  54 + zoom:1;
  55 +}
  56 +.history-date ul li.last {
  57 + padding-bottom:0;
  58 +}
  59 +.history-date ul li:after {
  60 + content:" ";
  61 + display:block;
  62 + height:0;
  63 + clear:both;
  64 + visibility:hidden;
  65 +}
  66 +.history-date ul li h3 {
  67 + float:left;
  68 + width:20%;
  69 + text-align:right;
  70 + padding-right:19px;
  71 + color:#c3c3c3;
  72 + font:normal 18px/16px Arial;
  73 +}
  74 +.history-date ul li h3 span {
  75 + display:block;
  76 + color:#d0d0d0;
  77 + font-size:12px;
  78 +}
  79 +.history-date ul li dl {
  80 + width: 70%;
  81 + float:left;
  82 + padding-left:41px;
  83 + margin-top:-5px;
  84 + font-family:微软雅黑;
  85 +}
  86 +.history-date ul li dl dt {
  87 + font:20px/22px 微软雅黑;
  88 + color:#737373;
  89 +}
  90 +.history-date ul li dl dt span {
  91 + display:block;
  92 + color:#787878;
  93 + font-size:12px;
  94 +}
  95 +.history-date ul li.green h3 {
  96 + color:#1db702;
  97 +}
  98 +.history-date ul li.green h3 span {
  99 + color:#a8dda3;
  100 +}
  101 +.history-date ul li.green dl {
  102 + margin-top:-8px;
  103 +}
  104 +.history-date ul li.green dl dt {
  105 + font-size:30px;
  106 + line-height:28px;
  107 +}
  108 +.history-date ul li.green dl dt a {
  109 + display:inline-block;
  110 +*display:inline;
  111 + zoom:1;
  112 + overflow:hidden;
  113 + vertical-align:middle;
  114 + margin-left:12px;
  115 +}
  116 +.history-date ul li.green dl dd {
  117 + padding-top:20px;
  118 + display:none;
  119 +}
  120 +.history-date ul li.green dl dd img {
  121 + float:left;
  122 +}
  123 +.history-date ul li.green dl dd p {
  124 + overflow:hidden;
  125 + zoom:1;
  126 + line-height:21px;
  127 + color:#787878;
  128 +}
  129 +.history-date h2.first .more-history {
  130 + font-size:16px;
  131 + background:transparent;
  132 + margin-left:30px;
  133 +}
  134 +.history-date h2.first .more-history:hover {
  135 + text-decoration:underline;
  136 +}
  137 +*body .history-date ul li dl dt {
  138 + _font-size:12px!important;
  139 + _font-weight:bold;
  140 +}
  141 +*body .history-date ul li dl dt span {
  142 + _font-weight:normal!important;
  143 +}
  144 +*body .history-date ul li.green dl dt a {
  145 + _background:transparent!important;
  146 +*background:transparent!important;
  147 +*font-size:12px!important;
  148 + _font-weight:normal!important;
  149 +}
  150 +.timerssn{
  151 + text-align: center;
  152 + font-size: 20px;
  153 + color: red;
  154 + position: absolute;
  155 + width: 15%;
  156 +}
0 \ No newline at end of file 157 \ No newline at end of file
src/main/resources/static/real_control_v2/zndd/yanshi/static/image/icon06.gif 0 → 100644

1.65 KB

src/main/resources/static/real_control_v2/zndd/yanshi/static/image/icon07.gif 0 → 100644

366 Bytes

src/main/resources/static/real_control_v2/zndd/yanshi/static/image/icon08.gif 0 → 100644

49 Bytes

src/main/resources/static/real_control_v2/zndd/yanshi/static/image/line04.gif 0 → 100644

43 Bytes

src/main/resources/static/real_control_v2/zndd/yanshi/static/image/yes.png 0 → 100644

6.34 KB

src/main/resources/static/real_control_v2/zndd/yanshi/static/js/jquery-1.10.2.js 0 → 100644
  1 +/*-防止各大cdn公共库加载地址失效问题,此地址我们会时时监控,及调整以保障正常访问-www.jq22.com为您服务*/
  2 +/*当前为字节跳动cdn公共库提供的jQuery-1.10.2*/
  3 +document.write("<script src='https://s1.pstatp.com/cdn/expire-1-M/jquery/1.10.2/jquery.min.js'><\/script>");
0 \ No newline at end of file 4 \ No newline at end of file
src/main/resources/static/real_control_v2/zndd/yanshi/yanshi.html 0 → 100644
  1 +<div class="uk-modal ct-form-modal ct_move_modal" id="schedule-dklyanshi-modal">
  2 + <div class="uk-modal-dialog" style="width: 800px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>大客流預案场景演示</h2></div>
  6 +
  7 + <head>
  8 + <meta charset="utf-8">
  9 + <title>jQuery疫情防控时间轴</title>
  10 + <link href="/real_control_v2/zndd/yanshi/static/css/sjz.css" type="text/css" rel="stylesheet">
  11 + </head>
  12 + <div class="timerssn"></div>
  13 + <div class="history" style="margin-top:50px;height: 400px;overflow-y: scroll" >
  14 +
  15 + <div class="history-date" STYLE="padding-top:10px;">
  16 + <ul>
  17 + <li>
  18 + <h3>10:00<span>10月31日</span></h3>
  19 + <dl>
  20 + <dt>驾驶收到通知 </dt>
  21 + </dl>
  22 + </li>
  23 + </ul>
  24 + <ul>
  25 + <li>
  26 + <h3>10:05<span>10月31日</span></h3>
  27 + <dl>
  28 + <dt>驾驶员抵达车辆、车辆收到行驶班次</dt>
  29 + </dl>
  30 + </li>
  31 + </ul>
  32 + <ul>
  33 + <li>
  34 + <h3>10:06<span>10月31日</span></h3>
  35 + <dl>
  36 + <dt>车辆行驶出发点</dt>
  37 + </dl>
  38 + </li>
  39 + </ul>
  40 + <ul>
  41 + <li>
  42 + <h3>10:06<span>10月31日</span></h3>
  43 + <dl>
  44 + <div id="drawer_right_map" style="height: 300px;width: 100%"></div>
  45 + </dl>
  46 + </li>
  47 + </ul>
  48 + <ul>
  49 + <li>
  50 + <h3>10:10<span>10月31日</span></h3>
  51 + <dl>
  52 + <dt>车辆抵达发车点</dt>
  53 + </dl>
  54 + </li>
  55 + </ul>
  56 +
  57 + <ul>
  58 + <li>
  59 + <h3>10:20<span>10月31日</span></h3>
  60 + <dl>
  61 + <dt>车辆运送乘客,继续监控站点是否还有大客流</dt>
  62 + </dl>
  63 + </li>
  64 + </ul>
  65 + <ul>
  66 + <li>
  67 + <h3>11:00<span>10月31日</span></h3>
  68 + <dl>
  69 + <dt>车辆送达乘客</dt>
  70 + </dl>
  71 + </li>
  72 + </ul>
  73 + <ul>
  74 + <li>
  75 + <h3>11:00<span>10月31日</span></h3>
  76 + <dl>
  77 + <dt>任务结束</dt>
  78 + </dl>
  79 + </li>
  80 + </ul>
  81 + </div>
  82 + </div>
  83 + </div>
  84 +
  85 +
  86 + <script>
  87 +
  88 + $(function(){
  89 + systole();
  90 + var nt = 0;
  91 + function systole(){
  92 + $(".history-date ul").css({display: 'none'});
  93 + //驾驶员收到通知
  94 +
  95 +
  96 + var cctime = setInterval(function (){
  97 + time();
  98 + timent = timent - 1;
  99 + }, 1000);
  100 +
  101 + // 设置一个每2000毫秒执行一次的定时器
  102 + var intervalId = setInterval(function() {
  103 + var divs = $(".history-date ul");
  104 + divs.each(function(index,element) {
  105 + if(nt == index){
  106 + $(this).css({display: ''});
  107 +
  108 + if(index == 3){
  109 + play();
  110 + }
  111 + if(nt == divs.length - 1){
  112 + nt = 0;
  113 + clearInterval(intervalId)
  114 + clearInterval(cctime);
  115 + $(".timerssn").html("");//清空倒计时
  116 + }
  117 + nt ++;
  118 + timent = 5;
  119 + return false;
  120 + }
  121 +
  122 + });
  123 + }, 5000);
  124 +
  125 + }
  126 + let date ={
  127 + "list": [{"bd_lon":121.90467819574694,"bd_lat":30.900545629815696,"lon":121.89413,"lat":30.896774,"deviceId":"77W1S014","ts":1730264742000,"timestamp":1730264742000,"stopNo":"126930","direction":272.0,"lineId":"80301","speed":33.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184989","section_name":"方竹路(白薇路-沪城环路)","version":6},{"bd_lon":121.89989041589938,"bd_lat":30.900580233328572,"lon":121.88931,"lat":30.896894,"deviceId":"77W1S014","ts":1730264850000,"timestamp":1730264850000,"stopNo":"128063","direction":277.0,"lineId":"80301","speed":35.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.90069454903107,"bd_lat":30.900535838211702,"lon":121.89012,"lat":30.896835,"deviceId":"77W1S014","ts":1730264821000,"timestamp":1730264821000,"stopNo":"128063","direction":276.0,"lineId":"80301","speed":0.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路卓卉路","ts":1730264821000,"lineCode":"80301","upDown":0,"stopNo":"128063","inOut":0,"createDate":1730264825690,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264821000"},"inout_stop":0,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89525655752936,"bd_lat":30.90044660702875,"lon":121.88465,"lat":30.896847,"deviceId":"77W1S014","ts":1730264956000,"timestamp":1730264956000,"stopNo":"126932","direction":268.0,"lineId":"80301","speed":24.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路水华路","ts":1730264956000,"lineCode":"80301","upDown":0,"stopNo":"126932","inOut":0,"createDate":1730264961637,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264956000"},"inout_stop":0,"state":0,"upDown":0,"section_code":"184991","section_name":"方竹路(叶菊路-水华路)","version":6},{"bd_lon":121.90203740623024,"bd_lat":30.900512501387293,"lon":121.89147,"lat":30.896788,"deviceId":"77W1S014","ts":1730264781000,"timestamp":1730264781000,"stopNo":"126930","direction":269.0,"lineId":"80301","speed":0.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89599210807043,"bd_lat":30.90049839119409,"lon":121.88539,"lat":30.896885,"deviceId":"77W1S014","ts":1730264917000,"timestamp":1730264917000,"stopNo":"126931","direction":262.0,"lineId":"80301","speed":0.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.90650763313731,"bd_lat":30.900574422731786,"lon":121.895966,"lat":30.896772,"deviceId":"77W1S014","ts":1730264701000,"timestamp":1730264701000,"stopNo":"126930","direction":268.0,"lineId":"80301","speed":18.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184989","section_name":"方竹路(白薇路-沪城环路)","version":6},{"bd_lon":121.89599210466311,"bd_lat":30.90050220719686,"lon":121.88539,"lat":30.896889,"deviceId":"77W1S014","ts":1730264943000,"timestamp":1730264943000,"stopNo":"126931","direction":262.0,"lineId":"80301","speed":3.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89796373453942,"bd_lat":30.900714383979444,"lon":121.887375,"lat":30.897064,"deviceId":"77W1S014","ts":1730264889000,"timestamp":1730264889000,"stopNo":"126931","direction":270.0,"lineId":"80301","speed":38.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路建桥学院北门","ts":1730264889000,"lineCode":"80301","upDown":0,"stopNo":"126931","inOut":1,"createDate":1730264893416,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264889000"},"inout_stop":1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.9022270878919,"bd_lat":30.900514001354395,"lon":121.89166,"lat":30.896786,"deviceId":"77W1S014","ts":1730264768000,"timestamp":1730264768000,"stopNo":"126930","direction":270.0,"lineId":"80301","speed":18.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89600727155313,"bd_lat":30.90050248856405,"lon":121.88541,"lat":30.896889,"deviceId":"77W1S014","ts":1730264913000,"timestamp":1730264913000,"stopNo":"126931","direction":261.0,"lineId":"80301","speed":3.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89901801919352,"bd_lat":30.900690056246688,"lon":121.888435,"lat":30.89702,"deviceId":"77W1S014","ts":1730264876000,"timestamp":1730264876000,"stopNo":"126931","direction":268.0,"lineId":"80301","speed":9.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.9056877508437,"bd_lat":30.900541759662353,"lon":121.89514,"lat":30.896753,"deviceId":"77W1S014","ts":1730264729000,"timestamp":1730264729000,"stopNo":"126930","direction":268.0,"lineId":"80301","speed":22.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184989","section_name":"方竹路(白薇路-沪城环路)","version":6},{"bd_lon":121.9016656375683,"bd_lat":30.900515336243583,"lon":121.8911,"lat":30.896797,"deviceId":"77W1S014","ts":1730264805000,"timestamp":1730264805000,"stopNo":"126930","direction":269.0,"lineId":"80301","speed":16.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89440728696924,"bd_lat":30.900379432991862,"lon":121.8838,"lat":30.896795,"deviceId":"77W1S014","ts":1730264981000,"timestamp":1730264981000,"stopNo":"126932","direction":267.0,"lineId":"80301","speed":12.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路水华路","ts":1730264981000,"lineCode":"80301","upDown":0,"stopNo":"126932","inOut":1,"createDate":1730264986077,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264981000"},"inout_stop":1,"state":0,"upDown":0,"section_code":"184991","section_name":"方竹路(叶菊路-水华路)","version":6},{"bd_lon":121.90067937710931,"bd_lat":30.90053556084185,"lon":121.89011,"lat":30.896835,"deviceId":"77W1S014","ts":1730264835000,"timestamp":1730264835000,"stopNo":"128063","direction":276.0,"lineId":"80301","speed":0.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89907870115947,"bd_lat":30.900687363266552,"lon":121.8885,"lat":30.897017,"deviceId":"77W1S014","ts":1730264863000,"timestamp":1730264863000,"stopNo":"126931","direction":274.0,"lineId":"80301","speed":0.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路建桥学院北门","ts":1730264863000,"lineCode":"80301","upDown":0,"stopNo":"126931","inOut":0,"createDate":1730264867085,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264863000"},"inout_stop":0,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89967800540734,"bd_lat":30.900601124403273,"lon":121.8891,"lat":30.89692,"deviceId":"77W1S014","ts":1730264852000,"timestamp":1730264852000,"stopNo":"128063","direction":278.0,"lineId":"80301","speed":35.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89784238925144,"bd_lat":30.900710221128048,"lon":121.88725,"lat":30.897062,"deviceId":"77W1S014","ts":1730264890000,"timestamp":1730264890000,"stopNo":"126931","direction":268.0,"lineId":"80301","speed":40.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89428597247607,"bd_lat":30.900360032264537,"lon":121.883675,"lat":30.896778,"deviceId":"77W1S014","ts":1730264997000,"timestamp":1730264997000,"stopNo":"126932","direction":270.0,"lineId":"80301","speed":0.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184991","section_name":"方竹路(叶菊路-水华路)","version":6},{"bd_lon":121.90626469804877,"bd_lat":30.900558981481137,"lon":121.89572,"lat":30.89676,"deviceId":"77W1S014","ts":1730264705000,"timestamp":1730264705000,"stopNo":"126930","direction":269.0,"lineId":"80301","speed":18.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184989","section_name":"方竹路(白薇路-沪城环路)","version":6},{"bd_lon":121.90008765951121,"bd_lat":30.900559057215247,"lon":121.88951,"lat":30.89687,"deviceId":"77W1S014","ts":1730264848000,"timestamp":1730264848000,"stopNo":"128063","direction":279.0,"lineId":"80301","speed":33.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路卓卉路","ts":1730264848000,"lineCode":"80301","upDown":0,"stopNo":"128063","inOut":1,"createDate":1730264851942,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264848000"},"inout_stop":1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.89502148743209,"bd_lat":30.900430816053387,"lon":121.884415,"lat":30.896835,"deviceId":"77W1S014","ts":1730264970000,"timestamp":1730264970000,"stopNo":"126932","direction":264.0,"lineId":"80301","speed":11.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184991","section_name":"方竹路(叶菊路-水华路)","version":6},{"bd_lon":121.90595344115236,"bd_lat":30.90055191818359,"lon":121.89541,"lat":30.896759,"deviceId":"77W1S014","ts":1730264715000,"timestamp":1730264715000,"stopNo":"126930","direction":269.0,"lineId":"80301","speed":3.0,"inout_stop_info":{"deviceId":"77W1S014","stopName":"方竹路沪城环路","ts":1730264715000,"lineCode":"80301","upDown":0,"stopNo":"126930","inOut":1,"createDate":1730264719617,"enable":false,"weeksYear":44,"tcc":false,"correct":false,"flag":0,"outTcc":false,"id":"77W1S014_1730264715000"},"inout_stop":1,"state":0,"upDown":0,"section_code":"184989","section_name":"方竹路(白薇路-沪城环路)","version":6},{"bd_lon":121.89431629470351,"bd_lat":30.900372037240512,"lon":121.883705,"lat":30.89679,"deviceId":"77W1S014","ts":1730264984000,"timestamp":1730264984000,"stopNo":"126932","direction":270.0,"lineId":"80301","speed":5.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184991","section_name":"方竹路(叶菊路-水华路)","version":6},{"bd_lon":121.89599210466311,"bd_lat":30.90050220719686,"lon":121.88539,"lat":30.896889,"deviceId":"77W1S014","ts":1730264930000,"timestamp":1730264930000,"stopNo":"126931","direction":262.0,"lineId":"80301","speed":0.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.901483555169,"bd_lat":30.900513948386312,"lon":121.890915,"lat":30.8968,"deviceId":"77W1S014","ts":1730264808000,"timestamp":1730264808000,"stopNo":"126930","direction":271.0,"lineId":"80301","speed":25.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.90333491241968,"bd_lat":30.900531799908887,"lon":121.89278,"lat":30.896784,"deviceId":"77W1S014","ts":1730264755000,"timestamp":1730264755000,"stopNo":"126930","direction":269.0,"lineId":"80301","speed":31.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.90202981742063,"bd_lat":30.90051427288283,"lon":121.891464,"lat":30.89679,"deviceId":"77W1S014","ts":1730264794000,"timestamp":1730264794000,"stopNo":"126930","direction":269.0,"lineId":"80301","speed":1.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6},{"bd_lon":121.8964015764253,"bd_lat":30.900551784995276,"lon":121.8858,"lat":30.89693,"deviceId":"77W1S014","ts":1730264903000,"timestamp":1730264903000,"stopNo":"126931","direction":262.0,"lineId":"80301","speed":27.0,"inout_stop":-1,"state":0,"upDown":0,"section_code":"184990","section_name":"方竹路(沪城环路-叶菊路)","version":6}]
  128 + }
  129 +
  130 + date.list.sort(function (a, b) {
  131 + return parseInt((a.ts - b.ts) + '' + (a.stop_no - b.stop_no));
  132 + });
  133 + var map = '';
  134 + // 地图的中心点和缩放级别
  135 + map = new BMap.Map("drawer_right_map");
  136 + var point = new BMap.Point(121.89413, 30.896774);
  137 + map.centerAndZoom(point,16);
  138 + var marker = new BMap.Marker(date.list[0]);
  139 + map.addOverlay(marker);
  140 + // 地图的轨迹回放路径
  141 + var path = [];
  142 + var passdate = date.list;
  143 + for (var c in passdate){
  144 + path.push(new BMap.Point(passdate[c].bd_lon, passdate[c].bd_lat))
  145 + }
  146 + var carIcon = '/assets/img/bus1.png';
  147 + // 创建一个图标,用于表示轨迹回放的位置
  148 + var marker = new BMap.Marker(path[0]);
  149 + icon = new BMap.Icon(carIcon, new BMap.Size(25, 25));
  150 + marker.setIcon(icon);
  151 + marker.setRotation(270);
  152 + marker.setTop(true);
  153 + map.addOverlay(marker);
  154 + var polyline = new BMap.Polyline(path, {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});
  155 + map.addOverlay(polyline);
  156 +
  157 + // 开始轨迹回放
  158 + var i = 0;
  159 + function play() {
  160 + if (i < path.length) {
  161 + // 设置当前位置
  162 + marker.setPosition(path[i]);
  163 + // 移动地图视角
  164 + map.panTo(path[i]);
  165 +
  166 + // 延迟1秒继续回放下一个位置
  167 + setTimeout(play, 200);
  168 + i++;
  169 + }
  170 + }
  171 + });
  172 +
  173 +
  174 +
  175 +
  176 + var timent = 5;
  177 + function time(){
  178 + $(".timerssn").html(timent);
  179 + }
  180 +
  181 +
  182 +
  183 +
  184 + </script>
  185 +
  186 +</div>