Commit 755a9fa61aeb12e203f8671fcfaafdd3eac4d60a
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<ScheduleRealInf | @@ -228,6 +230,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<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<ScheduleRealInf | @@ -728,6 +733,26 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<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<CalcSheet, Integer> im | @@ -121,12 +121,12 @@ public class CalcSheetServiceImpl extends BaseServiceImpl<CalcSheet, Integer> 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<LoggerZndd, Integer> { | @@ -18,4 +19,8 @@ public interface LoggerZnddService extends BaseService<LoggerZndd, Integer> { | ||
| 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<LoggerZndd, Integer> | @@ -34,8 +45,15 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl<LoggerZndd, Integer> | ||
| 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<LoggerZndd, Integer> | @@ -137,28 +155,38 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl<LoggerZndd, Integer> | ||
| 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<LoggerZndd, Integer> | @@ -168,7 +196,8 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl<LoggerZndd, Integer> | ||
| 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<LoggerZndd, Integer> | @@ -179,4 +208,93 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl<LoggerZndd, Integer> | ||
| 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 @@ $('.addBc').on('click',function() { | @@ -42,7 +42,7 @@ $('.addBc').on('click',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
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> |