Commit abb9a320e9e4d895f3d688c1d70fd39ca828cf1c
Merge branch 'pudong' of http://222.66.0.204:8090/panzhaov5/bsth_control
into pudong
Showing
23 changed files
with
332 additions
and
60 deletions
src/main/java/com/bsth/controller/gps/GpsController.java
| @@ -84,7 +84,7 @@ public class GpsController { | @@ -84,7 +84,7 @@ public class GpsController { | ||
| 84 | @RequestMapping(value = "/gpsHistory/multiple") | 84 | @RequestMapping(value = "/gpsHistory/multiple") |
| 85 | public List<Map<String, Object>> gpsHistory(@RequestParam String[] nbbmArray, @RequestParam Long st, | 85 | public List<Map<String, Object>> gpsHistory(@RequestParam String[] nbbmArray, @RequestParam Long st, |
| 86 | @RequestParam Long et) { | 86 | @RequestParam Long et) { |
| 87 | - return gpsService.history(nbbmArray, st, et); | 87 | + return (List<Map<String, Object>>) gpsService.history(nbbmArray, st, et).get("list"); |
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | /*@RequestMapping(value = "/analyse/ram") | 90 | /*@RequestMapping(value = "/analyse/ram") |
src/main/java/com/bsth/controller/realcontrol/calc/ReCalcDataController.java
0 → 100644
| 1 | +package com.bsth.controller.realcontrol.calc; | ||
| 2 | + | ||
| 3 | +import com.bsth.common.ResponseCode; | ||
| 4 | +import com.bsth.util.HttpClientUtils; | ||
| 5 | +import org.slf4j.Logger; | ||
| 6 | +import org.slf4j.LoggerFactory; | ||
| 7 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 8 | +import org.springframework.web.bind.annotation.RequestMethod; | ||
| 9 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 10 | +import org.springframework.web.bind.annotation.RestController; | ||
| 11 | + | ||
| 12 | +import java.util.HashMap; | ||
| 13 | +import java.util.Map; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * 重新统计(数据汇总) | ||
| 17 | + * Created by panzhao on 2018/1/25. | ||
| 18 | + */ | ||
| 19 | +@RestController | ||
| 20 | +@RequestMapping("/sch/reCalc") | ||
| 21 | +public class ReCalcDataController { | ||
| 22 | + | ||
| 23 | + private static String reCalcUrl = "http://10.10.150.24:30571/reCalc/scheduleDetail"; | ||
| 24 | + | ||
| 25 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * 重新统计班次明细 | ||
| 29 | + * @param date | ||
| 30 | + * @param line | ||
| 31 | + * @return | ||
| 32 | + */ | ||
| 33 | + @RequestMapping(value = "/scheduleDetail", method = RequestMethod.POST) | ||
| 34 | + public Map<String, Object> reCalcScheduleDetail(@RequestParam String date, @RequestParam String line){ | ||
| 35 | + Map<String, Object> rs = new HashMap(); | ||
| 36 | + try{ | ||
| 37 | + HttpClientUtils.post(reCalcUrl + "?rq=" + date + "&lineCode=" + line, ""); | ||
| 38 | + }catch (Exception e){ | ||
| 39 | + logger.error("", e); | ||
| 40 | + rs.put("status", ResponseCode.ERROR); | ||
| 41 | + rs.put("msg", e.getMessage()); | ||
| 42 | + } | ||
| 43 | + return rs; | ||
| 44 | + } | ||
| 45 | +} |
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java
| @@ -21,7 +21,7 @@ import java.util.List; | @@ -21,7 +21,7 @@ import java.util.List; | ||
| 21 | @Component | 21 | @Component |
| 22 | public class SafeDrivDataLoadThread extends Thread{ | 22 | public class SafeDrivDataLoadThread extends Thread{ |
| 23 | 23 | ||
| 24 | - private final static String url = "http://180.166.5.82:9005/bsth-safedriving/Crlcxb/realtimeInterface.do"; | 24 | + private final static String url = "http://180.166.5.82:9007/bsth-safedriving/Crlcxb/realtimeInterface.do"; |
| 25 | 25 | ||
| 26 | Logger logger = LoggerFactory.getLogger(this.getClass()); | 26 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 27 | 27 |
src/main/java/com/bsth/entity/Line.java
| @@ -164,7 +164,7 @@ public class Line implements Serializable { | @@ -164,7 +164,7 @@ public class Line implements Serializable { | ||
| 164 | /** | 164 | /** |
| 165 | * 逻辑删除标记 为 1:标识已删除 | 165 | * 逻辑删除标记 为 1:标识已删除 |
| 166 | */ | 166 | */ |
| 167 | - private Integer remove; | 167 | + private Integer remove = 0; |
| 168 | 168 | ||
| 169 | public Integer getSpacGrade() { | 169 | public Integer getSpacGrade() { |
| 170 | return spacGrade; | 170 | return spacGrade; |
src/main/java/com/bsth/service/gps/GpsService.java
| @@ -13,7 +13,7 @@ public interface GpsService { | @@ -13,7 +13,7 @@ public interface GpsService { | ||
| 13 | 13 | ||
| 14 | List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions); | 14 | List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions); |
| 15 | 15 | ||
| 16 | - List<Map<String, Object>> history(String[] nbbmArray, Long st, Long et); | 16 | + Map<String, Object> history(String[] nbbmArray, Long st, Long et); |
| 17 | 17 | ||
| 18 | Map<String, Object> findBuffAeraByCode(String code, String type); | 18 | Map<String, Object> findBuffAeraByCode(String code, String type); |
| 19 | 19 |
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
| @@ -168,10 +168,12 @@ public class GpsServiceImpl implements GpsService { | @@ -168,10 +168,12 @@ public class GpsServiceImpl implements GpsService { | ||
| 168 | 168 | ||
| 169 | private static DateTimeFormatter fmtyyyy = DateTimeFormat.forPattern("yyyy"); | 169 | private static DateTimeFormatter fmtyyyy = DateTimeFormat.forPattern("yyyy"); |
| 170 | @Override | 170 | @Override |
| 171 | - public List<Map<String, Object>> history(String[] nbbmArray, Long st, Long et) { | 171 | + public Map<String, Object> history(String[] nbbmArray, Long st, Long et) { |
| 172 | + Map<String, Object> rsMap = new HashMap<>(); | ||
| 172 | List<Map<String, Object>> list = new ArrayList<>(); | 173 | List<Map<String, Object>> list = new ArrayList<>(); |
| 174 | + rsMap.put("list", list); | ||
| 173 | if (et - st > GPS_RANGE) | 175 | if (et - st > GPS_RANGE) |
| 174 | - return list; | 176 | + return rsMap; |
| 175 | 177 | ||
| 176 | st = st * 1000; | 178 | st = st * 1000; |
| 177 | et = et * 1000; | 179 | et = et * 1000; |
| @@ -193,6 +195,7 @@ public class GpsServiceImpl implements GpsService { | @@ -193,6 +195,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 193 | dc.setDevice(BasicData.deviceId2NbbmMap.inverse().get(nbbm)); | 195 | dc.setDevice(BasicData.deviceId2NbbmMap.inverse().get(nbbm)); |
| 194 | dc.setSt(st); | 196 | dc.setSt(st); |
| 195 | dc.setEt(et); | 197 | dc.setEt(et); |
| 198 | + dc.setType(1); | ||
| 196 | 199 | ||
| 197 | dcs.add(dc); | 200 | dcs.add(dc); |
| 198 | } | 201 | } |
| @@ -223,7 +226,7 @@ public class GpsServiceImpl implements GpsService { | @@ -223,7 +226,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 223 | if(i == len - 1) | 226 | if(i == len - 1) |
| 224 | sql.append(" ORDER BY device_id,ts,stop_no"); | 227 | sql.append(" ORDER BY device_id,ts,stop_no"); |
| 225 | else | 228 | else |
| 226 | - sql.append(" UNION"); | 229 | + sql.append(" UNION "); |
| 227 | } | 230 | } |
| 228 | 231 | ||
| 229 | logger.info("轨迹回放 nbbm: " + nbbm + " -st: " + st + " -et: " + et + " -sql: " + sql.toString()); | 232 | logger.info("轨迹回放 nbbm: " + nbbm + " -st: " + st + " -et: " + et + " -sql: " + sql.toString()); |
| @@ -302,7 +305,10 @@ public class GpsServiceImpl implements GpsService { | @@ -302,7 +305,10 @@ public class GpsServiceImpl implements GpsService { | ||
| 302 | return (int) (Long.parseLong(o1.get("ts").toString()) - Long.parseLong(o2.get("ts").toString())); | 305 | return (int) (Long.parseLong(o1.get("ts").toString()) - Long.parseLong(o2.get("ts").toString())); |
| 303 | } | 306 | } |
| 304 | }); | 307 | }); |
| 305 | - return list; | 308 | + |
| 309 | + rsMap.put("list", list); | ||
| 310 | + rsMap.put("dcs", dcs); | ||
| 311 | + return rsMap; | ||
| 306 | } | 312 | } |
| 307 | 313 | ||
| 308 | private String map_get_str(Map<String, Object> map, String key){ | 314 | private String map_get_str(Map<String, Object> map, String key){ |
| @@ -339,7 +345,7 @@ public class GpsServiceImpl implements GpsService { | @@ -339,7 +345,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 339 | } | 345 | } |
| 340 | 346 | ||
| 341 | for(DeviceChange dc : dcs){ | 347 | for(DeviceChange dc : dcs){ |
| 342 | - if(dc.getEt() > st) | 348 | + if(dc.getEt() > st || dc.getEt()==0) |
| 343 | rs.add(dc); | 349 | rs.add(dc); |
| 344 | } | 350 | } |
| 345 | }catch (Exception e){ | 351 | }catch (Exception e){ |
| @@ -379,9 +385,9 @@ public class GpsServiceImpl implements GpsService { | @@ -379,9 +385,9 @@ public class GpsServiceImpl implements GpsService { | ||
| 379 | " where weeks_year in ("+sWeekOfYear+", "+eWeekOfYear+") and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < " + t2); | 385 | " where weeks_year in ("+sWeekOfYear+", "+eWeekOfYear+") and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < " + t2); |
| 380 | 386 | ||
| 381 | if(i == len - 1) | 387 | if(i == len - 1) |
| 382 | - sql.append(" ORDER BY device_id,ts,stop_no"); | 388 | + sql.append(" ORDER BY device_id,ts,stop_no "); |
| 383 | else | 389 | else |
| 384 | - sql.append(" UNION"); | 390 | + sql.append(" UNION "); |
| 385 | } | 391 | } |
| 386 | 392 | ||
| 387 | JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); | 393 | JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); |
| @@ -606,7 +612,7 @@ public class GpsServiceImpl implements GpsService { | @@ -606,7 +612,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 606 | 612 | ||
| 607 | try { | 613 | try { |
| 608 | //获取历史gps 数据 | 614 | //获取历史gps 数据 |
| 609 | - List<HistoryGps_DTO> list = HistoryGps_DTO.craete(history(new String[]{nbbm}, st, et)); | 615 | + List<HistoryGps_DTO> list = HistoryGps_DTO.craete((List<Map<String, Object>>) history(new String[]{nbbm}, st, et).get("list")); |
| 610 | if (list != null && list.size() > 0) { | 616 | if (list != null && list.size() > 0) { |
| 611 | //获取路段信息 | 617 | //获取路段信息 |
| 612 | String sql = "select ID, ST_AsText(GROAD_VECTOR) as GROAD_VECTOR,ROAD_CODE,ROAD_NAME,SPEED from bsth_c_road where road_code in(select section_code from bsth_c_sectionroute where line_code=? and destroy=0)"; | 618 | String sql = "select ID, ST_AsText(GROAD_VECTOR) as GROAD_VECTOR,ROAD_CODE,ROAD_NAME,SPEED from bsth_c_road where road_code in(select section_code from bsth_c_sectionroute where line_code=? and destroy=0)"; |
| @@ -655,7 +661,8 @@ public class GpsServiceImpl implements GpsService { | @@ -655,7 +661,8 @@ public class GpsServiceImpl implements GpsService { | ||
| 655 | 661 | ||
| 656 | try { | 662 | try { |
| 657 | //获取历史gps 数据 | 663 | //获取历史gps 数据 |
| 658 | - List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete(history(new String[]{nbbm}, st, et)); | 664 | + Map<String, Object> gpsMap = history(new String[]{nbbm}, st, et); |
| 665 | + List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete((List<Map<String, Object>>) gpsMap.get("list")); | ||
| 659 | if (list != null && list.size() > 0) { | 666 | if (list != null && list.size() > 0) { |
| 660 | //关联路段名称 | 667 | //关联路段名称 |
| 661 | Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap(); | 668 | Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap(); |
| @@ -696,6 +703,7 @@ public class GpsServiceImpl implements GpsService { | @@ -696,6 +703,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 696 | rs.put("speedList", speedList); | 703 | rs.put("speedList", speedList); |
| 697 | rs.put("outboundList", outboundList); | 704 | rs.put("outboundList", outboundList); |
| 698 | rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000)); | 705 | rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000)); |
| 706 | + rs.put("dcs", gpsMap.get("dcs")); | ||
| 699 | } catch (Exception e) { | 707 | } catch (Exception e) { |
| 700 | logger.error("", e); | 708 | logger.error("", e); |
| 701 | rs.put("status", ResponseCode.ERROR); | 709 | rs.put("status", ResponseCode.ERROR); |
| @@ -707,7 +715,7 @@ public class GpsServiceImpl implements GpsService { | @@ -707,7 +715,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 707 | @Override | 715 | @Override |
| 708 | public void trailExcel(String nbbm, long st, long et, HttpServletResponse resp) { | 716 | public void trailExcel(String nbbm, long st, long et, HttpServletResponse resp) { |
| 709 | //获取历史gps 数据 | 717 | //获取历史gps 数据 |
| 710 | - List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete(history(new String[]{nbbm}, st, et)); | 718 | + List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete((List<Map<String, Object>>) history(new String[]{nbbm}, st, et).get("list")); |
| 711 | if (list != null && list.size() > 0) { | 719 | if (list != null && list.size() > 0) { |
| 712 | //关联路段名称 | 720 | //关联路段名称 |
| 713 | Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap(); | 721 | Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap(); |
src/main/java/com/bsth/service/gps/entity/DeviceChange.java
| @@ -11,6 +11,9 @@ public class DeviceChange { | @@ -11,6 +11,9 @@ public class DeviceChange { | ||
| 11 | private long st; | 11 | private long st; |
| 12 | private long et; | 12 | private long et; |
| 13 | 13 | ||
| 14 | + //为1 表示没有设备变更记录,直接从车辆信息上关联的设备号 | ||
| 15 | + private int type=0; | ||
| 16 | + | ||
| 14 | public String getNbbm() { | 17 | public String getNbbm() { |
| 15 | return nbbm; | 18 | return nbbm; |
| 16 | } | 19 | } |
| @@ -42,4 +45,12 @@ public class DeviceChange { | @@ -42,4 +45,12 @@ public class DeviceChange { | ||
| 42 | public void setEt(long et) { | 45 | public void setEt(long et) { |
| 43 | this.et = et; | 46 | this.et = et; |
| 44 | } | 47 | } |
| 48 | + | ||
| 49 | + public int getType() { | ||
| 50 | + return type; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + public void setType(int type) { | ||
| 54 | + this.type = type; | ||
| 55 | + } | ||
| 45 | } | 56 | } |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| @@ -1234,7 +1234,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -1234,7 +1234,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 1234 | ScheduleModifyLogger.sftz(sch, fcsjActual, remarks); | 1234 | ScheduleModifyLogger.sftz(sch, fcsjActual, remarks); |
| 1235 | 1235 | ||
| 1236 | sch.setFcsjActualAll(fcsjActual); | 1236 | sch.setFcsjActualAll(fcsjActual); |
| 1237 | - sch.setRemark(remarks); | 1237 | + sch.setRemarks(remarks); |
| 1238 | sch.calcStatus(); | 1238 | sch.calcStatus(); |
| 1239 | //if(sch.isLate2()){ | 1239 | //if(sch.isLate2()){ |
| 1240 | //取消应发未到标记 | 1240 | //取消应发未到标记 |
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', 'summary', 'history_sch' ,'report'+sp+'oil','base'+sp+'geo_data_edit'] | 19 | +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'history_sch' ,'report'+sp+'oil','base'+sp+'geo_data_edit', 'forms', 'report'] |
| 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/control/lineallot_v2/main.html
| @@ -123,6 +123,14 @@ | @@ -123,6 +123,14 @@ | ||
| 123 | .uk-button-default{ | 123 | .uk-button-default{ |
| 124 | background: #e0e0e0 !important; | 124 | background: #e0e0e0 !important; |
| 125 | } | 125 | } |
| 126 | + | ||
| 127 | + .line_list_all_wrap > .item.destroy{ | ||
| 128 | + color: #f64242; | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | + .checked_list > .item.destroy{ | ||
| 132 | + background: #ff5c5c; | ||
| 133 | + } | ||
| 126 | </style> | 134 | </style> |
| 127 | </head> | 135 | </head> |
| 128 | 136 | ||
| @@ -169,7 +177,7 @@ | @@ -169,7 +177,7 @@ | ||
| 169 | 177 | ||
| 170 | <script id="line_list_items_temp" type="text/html"> | 178 | <script id="line_list_items_temp" type="text/html"> |
| 171 | {{each list as obj i}} | 179 | {{each list as obj i}} |
| 172 | - <span class="item" data-id="{{obj.lineCode}}" data-gsbm="{{obj.company}}_{{obj.brancheCompany}}">{{obj.name}}</span> | 180 | + <span class="item {{obj.destroy==1?'destroy':''}}" data-id="{{obj.lineCode}}" data-gsbm="{{obj.company}}_{{obj.brancheCompany}}">{{obj.name}}</span> |
| 173 | {{/each}} | 181 | {{/each}} |
| 174 | </script> | 182 | </script> |
| 175 | 183 | ||
| @@ -258,7 +266,7 @@ | @@ -258,7 +266,7 @@ | ||
| 258 | /** | 266 | /** |
| 259 | * 查询所有线路 | 267 | * 查询所有线路 |
| 260 | */ | 268 | */ |
| 261 | - $.get('/line/all', {destroy_eq: 0}, function (list) { | 269 | + $.get('/line/all', {remove_ne: 1}, function (list) { |
| 262 | ep.emit('all_lines', list); | 270 | ep.emit('all_lines', list); |
| 263 | }); | 271 | }); |
| 264 | 272 | ||
| @@ -283,7 +291,7 @@ | @@ -283,7 +291,7 @@ | ||
| 283 | } | 291 | } |
| 284 | else { | 292 | else { |
| 285 | $(this).addClass('active'); | 293 | $(this).addClass('active'); |
| 286 | - var span = $('<span data-id="'+lineCode+'" class="item uk-card uk-card-default uk-animation-slide-bottom">'+name+'</span>') | 294 | + var span = $('<span data-id="'+lineCode+'" class="item uk-card uk-card-default uk-animation-slide-bottom '+($(this).hasClass('destroy')?"destroy":"")+'">'+name+'</span>') |
| 287 | .one('webkitAnimationEnd', function () { | 295 | .one('webkitAnimationEnd', function () { |
| 288 | $(this).removeClass('uk-animation-slide-bottom'); | 296 | $(this).removeClass('uk-animation-slide-bottom'); |
| 289 | }); | 297 | }); |
src/main/resources/static/pages/home.html
| @@ -63,31 +63,29 @@ | @@ -63,31 +63,29 @@ | ||
| 63 | <li><span class="label s_c_add">新增</span>1、新增站点间双路段生成功能。</li> | 63 | <li><span class="label s_c_add">新增</span>1、新增站点间双路段生成功能。</li> |
| 64 | <li><span class="label s_c_change">修复</span>2、修复一个bug,在线路编辑页面初始化线路的系统规划功能,百度地图上缺少的线路会显示一直加载。</li> | 64 | <li><span class="label s_c_change">修复</span>2、修复一个bug,在线路编辑页面初始化线路的系统规划功能,百度地图上缺少的线路会显示一直加载。</li> |
| 65 | <li><span class="label s_c_change">修复</span>3、修复一个bug,在修改站点时选择取消,不点击站点树状图,直接选择上/下行操作里的修改站点,会出现没有可修改站点的bug。</li> | 65 | <li><span class="label s_c_change">修复</span>3、修复一个bug,在修改站点时选择取消,不点击站点树状图,直接选择上/下行操作里的修改站点,会出现没有可修改站点的bug。</li> |
| 66 | - <li><span class="label s_c_change">修复</span>4、线路跨版本更新修复。</li> | ||
| 67 | - <li><span class="label s_c_change">修复</span>5、线路、线路版本、停车场查询列表显示公司。</li> | ||
| 68 | - <li><span class="label s_c_add">新增</span>6、新增线路删除功能,可以删除已撤销的线路,仅用于剔除录入错误的数据,如出现误操作,请联系管理员恢复数据。</li> | 66 | + <li><span class="label s_c_add">新增</span>4、新增线路删除功能,可以删除已撤销的线路,仅用于剔除录入错误的数据,如出现误操作,请联系管理员恢复数据。</li> |
| 69 | <li class="sub_title"><h6>用油和报表</h6></li> | 67 | <li class="sub_title"><h6>用油和报表</h6></li> |
| 70 | - <li><span class="label s_c_add">新增</span>7、油量,电量记录操作日志。</li> | ||
| 71 | - <li><span class="label s_c_change">修复</span>8、修正获取加存油信息特殊情况下获取不到前一天的进场值。</li> | ||
| 72 | - <li><span class="label s_c_change">修复</span>9、行车路单批量导出,由之前导出成多个压缩文件改为导出成一个文件</li> | ||
| 73 | - <li><span class="label s_c_add">新增</span>10、新增班次准点率统计导出。</li> | ||
| 74 | - <li><span class="label s_c_change">修复</span>11、修复一个bug,这个bug导致在更换设备号后,驾驶员请求台账出现车辆字段为空的情况。</li> | 68 | + <li><span class="label s_c_add">新增</span>5、油量,电量记录操作日志。</li> |
| 69 | + <li><span class="label s_c_change">修复</span>6、修正获取加存油信息特殊情况下获取不到前一天的进场值。</li> | ||
| 70 | + <li><span class="label s_c_change">修复</span>7、行车路单批量导出,由之前导出成多个压缩文件改为导出成一个文件</li> | ||
| 71 | + <li><span class="label s_c_add">新增</span>8、新增班次准点率统计导出。</li> | ||
| 72 | + <li><span class="label s_c_change">修复</span>9、修复一个bug,这个bug导致在更换设备号后,驾驶员请求台账出现车辆字段为空的情况。</li> | ||
| 75 | <li class="sub_title"><h6>计划调度</h6></li> | 73 | <li class="sub_title"><h6>计划调度</h6></li> |
| 76 | - <li><span class="label s_c_add">新增</span>12、时刻表自动生成,根据时间间隔自动时刻表生成,导出生成的时刻表数据。</li> | ||
| 77 | - <li><span class="label s_c_add">新增</span>13、时刻表版本导入,导入时刻表可选版本,编辑时间表带版本。</li> | ||
| 78 | - <li><span class="label s_c_add">新增</span>14、添加车辆报废功能,释放报废的车辆所持有的设备编号。</li> | ||
| 79 | - <li><span class="label s_c_change">修复</span>15、车辆设备管理,启用日期精确到时间分钟。</li> | 74 | + <li><span class="label s_c_add">新增</span>10、时刻表自动生成,根据时间间隔自动时刻表生成,导出生成的时刻表数据。</li> |
| 75 | + <li><span class="label s_c_add">新增</span>11、时刻表版本导入,导入时刻表可选版本,编辑时间表带版本。</li> | ||
| 76 | + <li><span class="label s_c_add">新增</span>12、添加车辆报废功能,释放报废的车辆所持有的设备编号。</li> | ||
| 77 | + <li><span class="label s_c_change">修复</span>13、车辆设备管理,启用日期精确到时间分钟。</li> | ||
| 80 | <li class="sub_title"><h6>线调</h6></li> | 78 | <li class="sub_title"><h6>线调</h6></li> |
| 81 | - <li><span class="label s_c_change">修复</span>16、修复一个轨迹回放的bug,这个bug导致在车辆更换设备号之后,无法回放更换设备之前的数据。</li> | ||
| 82 | - <li><span class="label s_c_change">修复</span>17、修复驾驶员请求信使,无法点击不同意的问题。</li> | ||
| 83 | - <li><span class="label s_c_add">新增</span>18、新增异常提示,当子任务公里与计划不等时,子任务 badge 将会显示为红色,相等则为绿色。</li> | ||
| 84 | - <li><span class="label s_c_add">新增</span>19、新增子任务修改功能。</li> | ||
| 85 | - <li><span class="label s_c_add">新增</span>20、新增点击路牌单元格时,信使框下方弹出tip,显示路牌公里。</li> | ||
| 86 | - <li><span class="label s_c_add">新增</span>21、新增车辆状态标记,如果车辆在套跑其他线路班次,在车辆单元格右上角会出现一个 icon 显示车辆当前执行的线路。</li> | ||
| 87 | - <li><span class="label s_c_add">新增</span>22、新增双击车辆单元格展开全部车辆面板,显示所有的计划用车和实际的车载信号。</li> | ||
| 88 | - <li><span class="label s_c_add">新增</span>23、新增超速提醒,地图模块左下角。</li> | ||
| 89 | - <li><span class="label s_c_remove">删除</span>24、移除了表格渐变色。</li> | ||
| 90 | - <li><span class="label s_c_add">新增</span>25、模拟图车辆展开的tip上,显示司售信息。</li> | ||
| 91 | - <li><span class="label s_c_add">新增</span>26、轨迹回放窗口打开时,点击班次,会自动将班次车辆时间写入轨迹搜索表单。</li> | 79 | + <li><span class="label s_c_change">修复</span>14、修复一个轨迹回放的bug,这个bug导致在车辆更换设备号之后,无法回放更换设备之前的数据。</li> |
| 80 | + <li><span class="label s_c_change">修复</span>15、修复驾驶员请求信使,无法点击不同意的问题。</li> | ||
| 81 | + <li><span class="label s_c_add">新增</span>16、新增异常提示,当子任务公里与计划不等时,子任务 badge 将会显示为红色,相等则为绿色。</li> | ||
| 82 | + <li><span class="label s_c_add">新增</span>17、新增子任务修改功能。</li> | ||
| 83 | + <li><span class="label s_c_add">新增</span>18、新增点击路牌单元格时,信使框下方弹出tip,显示路牌公里。</li> | ||
| 84 | + <li><span class="label s_c_add">新增</span>19、新增车辆状态标记,如果车辆在套跑其他线路班次,在车辆单元格右上角会出现一个 icon 显示车辆当前执行的线路。</li> | ||
| 85 | + <li><span class="label s_c_add">新增</span>20、新增双击车辆单元格展开全部车辆面板,显示所有的计划用车和实际的车载信号。</li> | ||
| 86 | + <li><span class="label s_c_add">新增</span>21、新增超速提醒,地图模块左下角。</li> | ||
| 87 | + <li><span class="label s_c_remove">删除</span>22、移除了表格渐变色。</li> | ||
| 88 | + <li><span class="label s_c_add">新增</span>23、模拟图车辆展开的tip上,显示司售信息。</li> | ||
| 89 | + <li><span class="label s_c_add">新增</span>24、轨迹回放窗口打开时,点击班次,会自动将班次车辆时间写入轨迹搜索表单。</li> | ||
| 92 | </ul> | 90 | </ul> |
| 93 | </div> | 91 | </div> |
src/main/resources/static/pages/permission/authorize_all/authorize.html
| @@ -181,6 +181,15 @@ | @@ -181,6 +181,15 @@ | ||
| 181 | font-size: 14px; | 181 | font-size: 14px; |
| 182 | font-family: 微软雅黑; | 182 | font-family: 微软雅黑; |
| 183 | } | 183 | } |
| 184 | + | ||
| 185 | + .sub_lines>span.line_btn.destroy{ | ||
| 186 | + background: #ff5c5c; | ||
| 187 | + } | ||
| 188 | + | ||
| 189 | + .sub_lines>span.line_btn.destroy:hover{ | ||
| 190 | + background: #ff7373; | ||
| 191 | + } | ||
| 192 | + | ||
| 184 | .sub_lines>span.line_btn:hover{ | 193 | .sub_lines>span.line_btn:hover{ |
| 185 | background: #2dd7ed; | 194 | background: #2dd7ed; |
| 186 | } | 195 | } |
| @@ -251,6 +260,23 @@ | @@ -251,6 +260,23 @@ | ||
| 251 | background: #1e87f0; | 260 | background: #1e87f0; |
| 252 | color: #fff; | 261 | color: #fff; |
| 253 | } | 262 | } |
| 263 | + | ||
| 264 | + .line_checkbox_list>.btn.destroy, | ||
| 265 | + .line_checkbox_list>.btn.destroy>input{ | ||
| 266 | + border-color: #ff9595; | ||
| 267 | + color: #ff5c5c; | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + .line_checkbox_list>.btn.destroy.active{ | ||
| 271 | + background: #ff5c5c; | ||
| 272 | + color: #fff; | ||
| 273 | + } | ||
| 274 | + | ||
| 275 | + .line_checkbox_list>.btn.destroy.active>input{ | ||
| 276 | + background-color: #ff5c5c !important; | ||
| 277 | + border-color: #ff5c5c !important; | ||
| 278 | + } | ||
| 279 | + | ||
| 254 | #role_authorize_wrap .ztree *{ | 280 | #role_authorize_wrap .ztree *{ |
| 255 | font-size: 14px; | 281 | font-size: 14px; |
| 256 | } | 282 | } |
| @@ -267,6 +293,10 @@ | @@ -267,6 +293,10 @@ | ||
| 267 | .loading circle{ | 293 | .loading circle{ |
| 268 | stroke: red; | 294 | stroke: red; |
| 269 | } | 295 | } |
| 296 | + | ||
| 297 | + #select_line_modal .uk-checkbox:checked { | ||
| 298 | + background-color: #1e87f0; | ||
| 299 | + } | ||
| 270 | </style> | 300 | </style> |
| 271 | </head> | 301 | </head> |
| 272 | 302 | ||
| @@ -455,7 +485,7 @@ | @@ -455,7 +485,7 @@ | ||
| 455 | }); | 485 | }); |
| 456 | 486 | ||
| 457 | //query all line | 487 | //query all line |
| 458 | - $.get('/line/all', {'destroy_eq': 0}, function (rs) { | 488 | + $.get('/line/all', {'remove_ne': 1}, function (rs) { |
| 459 | ep.emit('query_line', rs); | 489 | ep.emit('query_line', rs); |
| 460 | }); | 490 | }); |
| 461 | 491 |
src/main/resources/static/pages/permission/authorize_all/user_auth.html
| @@ -86,6 +86,14 @@ | @@ -86,6 +86,14 @@ | ||
| 86 | <h2 class="uk-modal-title">添加线路权限</h2> | 86 | <h2 class="uk-modal-title">添加线路权限</h2> |
| 87 | <div> | 87 | <div> |
| 88 | <form> | 88 | <form> |
| 89 | + <div class="ct_field" style="width: 140px;"> | ||
| 90 | + <label>状态</label> | ||
| 91 | + <select class="uk-select" id="modal_type_select" style="width: 94px;"> | ||
| 92 | + <option value="-1">全部</option> | ||
| 93 | + <option value="0">营运</option> | ||
| 94 | + <option value="1">撤销</option> | ||
| 95 | + </select> | ||
| 96 | + </div> | ||
| 89 | <div class="ct_field"> | 97 | <div class="ct_field"> |
| 90 | <label>公司</label> | 98 | <label>公司</label> |
| 91 | <select class="uk-select" id="modal_company_select"></select> | 99 | <select class="uk-select" id="modal_company_select"></select> |
| @@ -115,7 +123,7 @@ | @@ -115,7 +123,7 @@ | ||
| 115 | <h5>{{t.fgsName}}</h5> | 123 | <h5>{{t.fgsName}}</h5> |
| 116 | <div class="sub_lines"> | 124 | <div class="sub_lines"> |
| 117 | {{each t.list as obj j}} | 125 | {{each t.list as obj j}} |
| 118 | - <span class="line_btn">{{obj.name}}</span> | 126 | + <span title="{{obj.lineCode}}" class="line_btn {{obj.destroy==1?'destroy':''}}">{{obj.name}}</span> |
| 119 | {{/each}} | 127 | {{/each}} |
| 120 | </div> | 128 | </div> |
| 121 | {{/each}} | 129 | {{/each}} |
| @@ -128,7 +136,7 @@ | @@ -128,7 +136,7 @@ | ||
| 128 | 136 | ||
| 129 | <script id="authorize-modal-lines-temp" type="text/html"> | 137 | <script id="authorize-modal-lines-temp" type="text/html"> |
| 130 | {{each list as obj i}} | 138 | {{each list as obj i}} |
| 131 | - <label class="btn" data-gs="{{obj.company}}" data-fgs="{{obj.brancheCompany}}" title="{{obj.name}}" data-code="{{obj.lineCode}}"> | 139 | + <label class="btn {{obj.destroy==1?'destroy':''}}" data-gs="{{obj.company}}" data-fgs="{{obj.brancheCompany}}" title="{{obj.name}}" data-code="{{obj.lineCode}}"> |
| 132 | <input class="uk-checkbox" type="checkbox" >{{obj.name}} | 140 | <input class="uk-checkbox" type="checkbox" >{{obj.name}} |
| 133 | </label> | 141 | </label> |
| 134 | {{/each}} | 142 | {{/each}} |
| @@ -240,7 +248,7 @@ | @@ -240,7 +248,7 @@ | ||
| 240 | $('#modal_line_input', modal).focus(); | 248 | $('#modal_line_input', modal).focus(); |
| 241 | }); | 249 | }); |
| 242 | function render_line_select_modal() { | 250 | function render_line_select_modal() { |
| 243 | - var htmlStr = template('authorize-modal-lines-temp', {list: all_lines}); | 251 | + var htmlStr = template('authorize-modal-lines-temp', {list: all_lines, destroy: $('.modal_type_select',modal).val()}); |
| 244 | $('.line_checkbox_list').html(htmlStr); | 252 | $('.line_checkbox_list').html(htmlStr); |
| 245 | //选中线路 | 253 | //选中线路 |
| 246 | var codeArray=[]; | 254 | var codeArray=[]; |
| @@ -274,6 +282,7 @@ | @@ -274,6 +282,7 @@ | ||
| 274 | filter_modal_lines(); | 282 | filter_modal_lines(); |
| 275 | }); | 283 | }); |
| 276 | $('#modal_sub_company_select', modal).on('change', filter_modal_lines); | 284 | $('#modal_sub_company_select', modal).on('change', filter_modal_lines); |
| 285 | + $('#modal_type_select', modal).on('change', filter_modal_lines); | ||
| 277 | } | 286 | } |
| 278 | 287 | ||
| 279 | $('#modal_line_input', modal).on('input', function () { | 288 | $('#modal_line_input', modal).on('input', function () { |
| @@ -296,22 +305,29 @@ | @@ -296,22 +305,29 @@ | ||
| 296 | }); | 305 | }); |
| 297 | 306 | ||
| 298 | function filter_modal_lines() { | 307 | function filter_modal_lines() { |
| 308 | + console.log('filter_modal_lines'); | ||
| 299 | var company=$('#modal_company_select', modal).val(),//公司代码 | 309 | var company=$('#modal_company_select', modal).val(),//公司代码 |
| 300 | - sub_company=$('#modal_sub_company_select', modal).val();//分公司代码 | 310 | + sub_company=$('#modal_sub_company_select', modal).val(),//分公司代码 |
| 311 | + type = $('#modal_type_select', modal).val();//线路状态 | ||
| 301 | 312 | ||
| 302 | var array = $('.line_checkbox_list>label.btn').css('display', 'none'),s_dom=[]; | 313 | var array = $('.line_checkbox_list>label.btn').css('display', 'none'),s_dom=[]; |
| 303 | 314 | ||
| 304 | - if(!company && !sub_company){ | 315 | + if(!company && !sub_company && type==-1){ |
| 305 | array.css('display', 'inline-block'); | 316 | array.css('display', 'inline-block'); |
| 306 | return; | 317 | return; |
| 307 | } | 318 | } |
| 308 | 319 | ||
| 320 | + var status; | ||
| 309 | array.each(function () { | 321 | array.each(function () { |
| 310 | if(company && $(this).data('gs')!=company) | 322 | if(company && $(this).data('gs')!=company) |
| 311 | return true; | 323 | return true; |
| 312 | if(sub_company && $(this).data('fgs')!=sub_company) | 324 | if(sub_company && $(this).data('fgs')!=sub_company) |
| 313 | return true; | 325 | return true; |
| 314 | 326 | ||
| 327 | + status = $(this).hasClass('destroy')?1:0; | ||
| 328 | + if(type!=-1 && type!=status) | ||
| 329 | + return true; | ||
| 330 | + | ||
| 315 | s_dom.push(this); | 331 | s_dom.push(this); |
| 316 | }); | 332 | }); |
| 317 | for(var i=0,dom;dom=s_dom[i++];) | 333 | for(var i=0,dom;dom=s_dom[i++];) |
src/main/resources/static/real_control_v2/css/main.css
| @@ -1806,7 +1806,7 @@ dl.active > dd.disabled { | @@ -1806,7 +1806,7 @@ dl.active > dd.disabled { | ||
| 1806 | padding: 7px; | 1806 | padding: 7px; |
| 1807 | background: #ffffff; | 1807 | background: #ffffff; |
| 1808 | box-shadow: 5px 5px 15px rgba(90, 90, 90, 0.48); | 1808 | box-shadow: 5px 5px 15px rgba(90, 90, 90, 0.48); |
| 1809 | - max-height: 290px; | 1809 | + max-height: 125px; |
| 1810 | overflow-y: auto; | 1810 | overflow-y: auto; |
| 1811 | min-height: 40px; | 1811 | min-height: 40px; |
| 1812 | } | 1812 | } |
| @@ -2035,4 +2035,23 @@ dl.active > dd.disabled { | @@ -2035,4 +2035,23 @@ dl.active > dd.disabled { | ||
| 2035 | overflow: hidden; | 2035 | overflow: hidden; |
| 2036 | text-overflow: ellipsis; | 2036 | text-overflow: ellipsis; |
| 2037 | white-space: nowrap; | 2037 | white-space: nowrap; |
| 2038 | +} | ||
| 2039 | + | ||
| 2040 | +.tab-line.destroy>a{ | ||
| 2041 | + background: #ff5c5c; | ||
| 2042 | + color: #fff !important; | ||
| 2043 | + border-radius: 0; | ||
| 2044 | +} | ||
| 2045 | + | ||
| 2046 | +.tab-line.destroy>a:hover{ | ||
| 2047 | + background: #ff3333 !important; | ||
| 2048 | + border-color: #ff3333 !important; | ||
| 2049 | +} | ||
| 2050 | + | ||
| 2051 | +.uk-tab>li.uk-active.destroy>a{ | ||
| 2052 | + color: red !important; | ||
| 2053 | +} | ||
| 2054 | + | ||
| 2055 | +.uk-tab>li.uk-active.destroy>a:hover{ | ||
| 2056 | + background: #fff !important; | ||
| 2038 | } | 2057 | } |
| 2039 | \ No newline at end of file | 2058 | \ No newline at end of file |
src/main/resources/static/real_control_v2/fragments/line_schedule/car_info_all.html
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | <a href="" class="uk-modal-close uk-close"></a> | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | ||
| 5 | <div class="uk-modal-header"> | 5 | <div class="uk-modal-header"> |
| 6 | - <h2>1006路 -全部车辆</h2></div> | 6 | + <h2><span class="line_name_span"></span> -全部车辆</h2></div> |
| 7 | 7 | ||
| 8 | <table class="uk-table uk-table-hover" style="table-layout: fixed;"> | 8 | <table class="uk-table uk-table-hover" style="table-layout: fixed;"> |
| 9 | <thead> | 9 | <thead> |
| @@ -52,6 +52,7 @@ | @@ -52,6 +52,7 @@ | ||
| 52 | lineCode = data.lineCode; | 52 | lineCode = data.lineCode; |
| 53 | nbbm = data.nbbm; | 53 | nbbm = data.nbbm; |
| 54 | 54 | ||
| 55 | + $('.line_name_span', modal).html(gb_data_basic.lineCode2NameAll()[lineCode]); | ||
| 55 | jsDoQuery(function () { | 56 | jsDoQuery(function () { |
| 56 | var $cell = $('tr[data-nbbm='+nbbm+']', modal); | 57 | var $cell = $('tr[data-nbbm='+nbbm+']', modal); |
| 57 | //定位到行 | 58 | //定位到行 |
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch_maintain.html
| @@ -431,7 +431,7 @@ | @@ -431,7 +431,7 @@ | ||
| 431 | $(that).prepend('<i class="uk-icon-spinner uk-icon-spin"></i>'); | 431 | $(that).prepend('<i class="uk-icon-spinner uk-icon-spin"></i>'); |
| 432 | 432 | ||
| 433 | 433 | ||
| 434 | - var reCountEp = EventProxy.create('ylbUpdate', function () { | 434 | + var reCountEp = EventProxy.create('ylbUpdate', 'calcWaybill', 'scheduleDetail', function () { |
| 435 | $('i.uk-icon-spin', that).remove(); | 435 | $('i.uk-icon-spin', that).remove(); |
| 436 | $(that).removeAttr('disabled'); | 436 | $(that).removeAttr('disabled'); |
| 437 | notify_succ('重新统计成功!'); | 437 | notify_succ('重新统计成功!'); |
| @@ -447,6 +447,11 @@ | @@ -447,6 +447,11 @@ | ||
| 447 | reCountEp.emitLater('ylbUpdate'); | 447 | reCountEp.emitLater('ylbUpdate'); |
| 448 | }); | 448 | }); |
| 449 | 449 | ||
| 450 | + //重新统计班次明细 | ||
| 451 | + gb_common.$post('/sch/reCalc/scheduleDetail', {date:rq, line: lineCode}, function () { | ||
| 452 | + reCountEp.emitLater('scheduleDetail'); | ||
| 453 | + }); | ||
| 454 | + | ||
| 450 | }, '我确定'); | 455 | }, '我确定'); |
| 451 | }); | 456 | }); |
| 452 | })(); | 457 | })(); |
src/main/resources/static/real_control_v2/fragments/north/tabs.html
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <li class="uk-active" ><a>主页</a></li> | 4 | <li class="uk-active" ><a>主页</a></li> |
| 5 | <li id="north_tabs_map_btn"><a>地图</a></li> | 5 | <li id="north_tabs_map_btn"><a>地图</a></li> |
| 6 | {{each list as line i}} | 6 | {{each list as line i}} |
| 7 | - <li class="tab-line" data-code="{{line.lineCode}}"><a>{{line.name}}(<span id="badge_untreated_num_{{line.lineCode}}">0</span>, <span id="badge_yfwf_num_{{line.lineCode}}">0</span>)</a></li> | 7 | + <li class="tab-line {{line.destroy==1?'destroy':''}}" data-code="{{line.lineCode}}"><a>{{line.name}}(<span id="badge_untreated_num_{{line.lineCode}}">0</span>, <span id="badge_yfwf_num_{{line.lineCode}}">0</span>)</a></li> |
| 8 | {{/each}} | 8 | {{/each}} |
| 9 | </ul> | 9 | </ul> |
| 10 | </script> | 10 | </script> |
src/main/resources/static/real_control_v2/js/data/data_basic.js
| @@ -208,6 +208,8 @@ var gb_data_basic = (function () { | @@ -208,6 +208,8 @@ var gb_data_basic = (function () { | ||
| 208 | }, | 208 | }, |
| 209 | //是否是环线 | 209 | //是否是环线 |
| 210 | isLoopLine: function (lineCode) { | 210 | isLoopLine: function (lineCode) { |
| 211 | + if(!stationRoutes[lineCode]) | ||
| 212 | + return false; | ||
| 211 | var data = gb_common.groupBy(stationRoutes[lineCode], 'directions'); | 213 | var data = gb_common.groupBy(stationRoutes[lineCode], 'directions'); |
| 212 | //下行只有2个站点 | 214 | //下行只有2个站点 |
| 213 | var len = data[0].length; | 215 | var len = data[0].length; |
src/main/resources/static/real_control_v2/js/utils/svg_chart.js
| @@ -55,6 +55,8 @@ var gb_svg_chart = (function () { | @@ -55,6 +55,8 @@ var gb_svg_chart = (function () { | ||
| 55 | var loopLine = gb_data_basic.isLoopLine(lineCode); | 55 | var loopLine = gb_data_basic.isLoopLine(lineCode); |
| 56 | 56 | ||
| 57 | var routes = gb_data_basic.stationRoutes(lineCode); | 57 | var routes = gb_data_basic.stationRoutes(lineCode); |
| 58 | + if(!routes) | ||
| 59 | + return; | ||
| 58 | var data = gb_svg_data_convert.mergeRoute(JSON.parse(JSON.stringify(routes)), enableAttr, lineCode, loopLine), | 60 | var data = gb_svg_data_convert.mergeRoute(JSON.parse(JSON.stringify(routes)), enableAttr, lineCode, loopLine), |
| 59 | len = data.length; | 61 | len = data.length; |
| 60 | 62 |
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
| @@ -1342,7 +1342,7 @@ span.flatpickr-weekday{ | @@ -1342,7 +1342,7 @@ span.flatpickr-weekday{ | ||
| 1342 | width: 100% !important; | 1342 | width: 100% !important; |
| 1343 | font-size: 12px; | 1343 | font-size: 12px; |
| 1344 | color: #747474 !important; | 1344 | color: #747474 !important; |
| 1345 | - border-bottom: 1px dashed #ededed; | 1345 | + /*border-bottom: 1px dashed #ededed;*/ |
| 1346 | } | 1346 | } |
| 1347 | 1347 | ||
| 1348 | .gps-play-back-panel-v3 .play-back-tools-wrap .top-btn-list{ | 1348 | .gps-play-back-panel-v3 .play-back-tools-wrap .top-btn-list{ |
| @@ -1448,4 +1448,68 @@ ul.base_line_list>li:nth-child(even)>a { | @@ -1448,4 +1448,68 @@ ul.base_line_list>li:nth-child(even)>a { | ||
| 1448 | ul.base_line_list>li>a:hover{ | 1448 | ul.base_line_list>li>a:hover{ |
| 1449 | color: #fff !important; | 1449 | color: #fff !important; |
| 1450 | background: #848686 !important; | 1450 | background: #848686 !important; |
| 1451 | +} | ||
| 1452 | +.play-back-form>.dynamic_devices{ | ||
| 1453 | + position: absolute; | ||
| 1454 | + top: 15px; | ||
| 1455 | + z-index: 9; | ||
| 1456 | + right: 83px; | ||
| 1457 | + font-size: 12px; | ||
| 1458 | + background: #ffd863; | ||
| 1459 | + padding: 0 5px; | ||
| 1460 | + border-radius: 2px; | ||
| 1461 | + box-shadow: 0px 3px 11px rgba(0,0,0,.08); | ||
| 1462 | + max-width: 120px; | ||
| 1463 | + overflow: hidden; | ||
| 1464 | + text-overflow: ellipsis; | ||
| 1465 | + white-space: nowrap; | ||
| 1466 | + min-width: 60px; | ||
| 1467 | + text-align: center; | ||
| 1468 | + cursor: default; | ||
| 1469 | +} | ||
| 1470 | + | ||
| 1471 | +.dynamic_devices_dropdown{ | ||
| 1472 | + position: absolute; | ||
| 1473 | + z-index: 10; | ||
| 1474 | + background: #ffd863; | ||
| 1475 | + top: 40px; | ||
| 1476 | + left: 160px; | ||
| 1477 | + box-shadow: -1px 8px 11px rgba(0,0,0,.08); | ||
| 1478 | + width: 280px; | ||
| 1479 | + padding: 7px; | ||
| 1480 | + display: none; | ||
| 1481 | + font-size: 12px; | ||
| 1482 | +} | ||
| 1483 | + | ||
| 1484 | + | ||
| 1485 | +.dynamic_devices_dropdown>ul{ | ||
| 1486 | + margin-bottom: 0; | ||
| 1487 | +} | ||
| 1488 | + | ||
| 1489 | +.dynamic_devices_dropdown>ul>li:first-child{ | ||
| 1490 | + margin-bottom: 7px; | ||
| 1491 | +} | ||
| 1492 | + | ||
| 1493 | +.dynamic_devices_dropdown>ul>li{ | ||
| 1494 | + border-bottom: 1px solid #ffeaa9; | ||
| 1495 | +} | ||
| 1496 | + | ||
| 1497 | +.dynamic_devices_dropdown>ul>li:last-child{ | ||
| 1498 | + border-bottom: none; | ||
| 1499 | +} | ||
| 1500 | + | ||
| 1501 | +.dynamic_devices_dropdown.style1{ | ||
| 1502 | + width: 170px; | ||
| 1503 | + left: 185px; | ||
| 1504 | + padding: 2px; | ||
| 1505 | +} | ||
| 1506 | + | ||
| 1507 | +.dynamic_devices_dropdown>ul>li>div{ | ||
| 1508 | + display: inline-block; | ||
| 1509 | + width: 90px; | ||
| 1510 | + vertical-align: top; | ||
| 1511 | +} | ||
| 1512 | + | ||
| 1513 | +.gps-play-back-panel-v3 .parks_list .uk-form-icon{ | ||
| 1514 | + width: 86%; | ||
| 1451 | } | 1515 | } |
| 1452 | \ No newline at end of file | 1516 | \ No newline at end of file |
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/layout.html
| @@ -118,13 +118,50 @@ | @@ -118,13 +118,50 @@ | ||
| 118 | {{/if}} | 118 | {{/if}} |
| 119 | </script> | 119 | </script> |
| 120 | <script id="pbv3_park_dropdown-temp" type="text/html"> | 120 | <script id="pbv3_park_dropdown-temp" type="text/html"> |
| 121 | + <li style="text-align: center;"> | ||
| 122 | + <form class="uk-form" data-uk-margin> | ||
| 123 | + <div class="uk-form-icon"> | ||
| 124 | + <i class="uk-icon-search"></i> | ||
| 125 | + <input type="text" placeholder="搜索" > | ||
| 126 | + </div> | ||
| 127 | + </form> | ||
| 128 | + </li> | ||
| 129 | + <li class="uk-nav-divider"></li> | ||
| 121 | {{each list as p i}} | 130 | {{each list as p i}} |
| 122 | <li data-code="{{p.parkCode}}" ><a>{{p.parkName}}</a></li> | 131 | <li data-code="{{p.parkCode}}" ><a>{{p.parkName}}</a></li> |
| 123 | - {{if i == 0}} | ||
| 124 | - <li class="uk-nav-divider"></li> | ||
| 125 | - {{/if}} | ||
| 126 | {{/each}} | 132 | {{/each}} |
| 127 | </script> | 133 | </script> |
| 134 | + | ||
| 135 | + <script id="pbv3_park_form_devices-temp" type="text/html"> | ||
| 136 | + <div class="uk-animation-slide-top dynamic_devices" > | ||
| 137 | + <span>{{deviceStr}}</span> | ||
| 138 | + </div> | ||
| 139 | + </script> | ||
| 140 | + | ||
| 141 | + <script id="pbv3_park_devices_dropdown-temp" type="text/html"> | ||
| 142 | + {{if dcs.length==1 && dcs[0].type==1}} | ||
| 143 | + <div class="dynamic_devices_dropdown style1"> | ||
| 144 | + <div style="text-align: center;">从车辆基础信息关联设备号</div> | ||
| 145 | + </div> | ||
| 146 | + {{else}} | ||
| 147 | + <div class="dynamic_devices_dropdown"> | ||
| 148 | + <ul class="uk-list"> | ||
| 149 | + <li> | ||
| 150 | + <div>设备号</div> | ||
| 151 | + <div>启用时间</div> | ||
| 152 | + <div>停用时间</div> | ||
| 153 | + </li> | ||
| 154 | + {{each dcs as dc i}} | ||
| 155 | + <li> | ||
| 156 | + <div>{{dc.device}}</div> | ||
| 157 | + <div>{{dc.stStr}}</div> | ||
| 158 | + <div>{{dc.etStr}}</div> | ||
| 159 | + </li> | ||
| 160 | + {{/each}} | ||
| 161 | + </ul> | ||
| 162 | + </div> | ||
| 163 | + {{/if}} | ||
| 164 | + </script> | ||
| 128 | <script> | 165 | <script> |
| 129 | (function () { | 166 | (function () { |
| 130 | var wrap = '.gps-play-back-panel-v3'; | 167 | var wrap = '.gps-play-back-panel-v3'; |
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/left.html
| @@ -141,9 +141,9 @@ | @@ -141,9 +141,9 @@ | ||
| 141 | createScrollbar(); | 141 | createScrollbar(); |
| 142 | 142 | ||
| 143 | //show title | 143 | //show title |
| 144 | - UIkit.notify("设备端自身标识为无效的GPS点位,将不会再进入回放通路", { | 144 | + /*UIkit.notify("设备端自身标识为无效的GPS点位,将不会再进入回放通路", { |
| 145 | status: 'info' | 145 | status: 'info' |
| 146 | - }); | 146 | + });*/ |
| 147 | }); | 147 | }); |
| 148 | 148 | ||
| 149 | /** | 149 | /** |
| @@ -224,6 +224,23 @@ | @@ -224,6 +224,23 @@ | ||
| 224 | 224 | ||
| 225 | //更新滚动条 | 225 | //更新滚动条 |
| 226 | resetScrollbar(); | 226 | resetScrollbar(); |
| 227 | + | ||
| 228 | + /** | ||
| 229 | + * 显示设备更换信息 | ||
| 230 | + */ | ||
| 231 | + var deviceStr='', fs='YYYY-MM-DD HH:mm'; | ||
| 232 | + for(var i=0,dc;dc=rs.dcs[i++];){ | ||
| 233 | + deviceStr+=dc.device + ','; | ||
| 234 | + dc.stStr = moment(dc.st).format(fs); | ||
| 235 | + dc.etStr = dc.et>0?moment(dc.et).format(fs):''; | ||
| 236 | + } | ||
| 237 | + deviceStr=deviceStr.substr(0, deviceStr.length-1); | ||
| 238 | + | ||
| 239 | + $('.play-back-form>.dynamic_devices', leftWrap).remove(); | ||
| 240 | + $('.play-back-form>.dynamic_devices_dropdown', leftWrap).remove(); | ||
| 241 | + var htmlStr = template('pbv3_park_form_devices-temp', {deviceStr:deviceStr}), | ||
| 242 | + htmlStr2 = template('pbv3_park_devices_dropdown-temp', {dcs:rs.dcs}); | ||
| 243 | + $('.play-back-form', leftWrap).append(htmlStr).append(htmlStr2); | ||
| 227 | }); | 244 | }); |
| 228 | } | 245 | } |
| 229 | } catch (e) { | 246 | } catch (e) { |
| @@ -270,6 +287,9 @@ | @@ -270,6 +287,9 @@ | ||
| 270 | 287 | ||
| 271 | //车辆 autocomplete | 288 | //车辆 autocomplete |
| 272 | gb_common.carAutocomplete($('.autocomplete-nbbm', leftWrap), gb_data_basic.carsArray()); | 289 | gb_common.carAutocomplete($('.autocomplete-nbbm', leftWrap), gb_data_basic.carsArray()); |
| 290 | + $('.autocomplete-nbbm', leftWrap).on('input', function () { | ||
| 291 | + $('.play-back-form>.dynamic_devices', leftWrap).remove(); | ||
| 292 | + }); | ||
| 273 | 293 | ||
| 274 | /** | 294 | /** |
| 275 | * 车辆选择抽屉显示 | 295 | * 车辆选择抽屉显示 |
| @@ -458,6 +478,12 @@ | @@ -458,6 +478,12 @@ | ||
| 458 | $('.abnormal_table .ct_table_body', leftWrap).html(htmlStr); | 478 | $('.abnormal_table .ct_table_body', leftWrap).html(htmlStr); |
| 459 | } | 479 | } |
| 460 | 480 | ||
| 481 | + $(leftWrap).on('mouseover', '.dynamic_devices', function () { | ||
| 482 | + $('.dynamic_devices_dropdown', leftWrap).show(); | ||
| 483 | + }).on('mouseout', function () { | ||
| 484 | + $('.dynamic_devices_dropdown', leftWrap).hide(); | ||
| 485 | + }); | ||
| 486 | + | ||
| 461 | return { | 487 | return { |
| 462 | fillTrailTable: fillTrailTable, | 488 | fillTrailTable: fillTrailTable, |
| 463 | fillArivalStationTable: fillArivalStationTable, | 489 | fillArivalStationTable: fillArivalStationTable, |
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
| @@ -649,7 +649,7 @@ | @@ -649,7 +649,7 @@ | ||
| 649 | (function (lineCode) { | 649 | (function (lineCode) { |
| 650 | //从地图模块获取停车场数据 | 650 | //从地图模块获取停车场数据 |
| 651 | var parks = gb_map_spatial_data.carparkArray(); | 651 | var parks = gb_map_spatial_data.carparkArray(); |
| 652 | - //将线路标准停车场排在第一个 | 652 | + /* //将线路标准停车场排在第一个 |
| 653 | var information = gb_data_basic.getLineInformation(lineCode); | 653 | var information = gb_data_basic.getLineInformation(lineCode); |
| 654 | if(information){ | 654 | if(information){ |
| 655 | var index; | 655 | var index; |
| @@ -660,7 +660,7 @@ | @@ -660,7 +660,7 @@ | ||
| 660 | } | 660 | } |
| 661 | } | 661 | } |
| 662 | parks[index] = parks.splice(0, 1 , parks[index])[0]; | 662 | parks[index] = parks.splice(0, 1 , parks[index])[0]; |
| 663 | - } | 663 | + }*/ |
| 664 | //渲染 | 664 | //渲染 |
| 665 | var htmlStr = template('pbv3_park_dropdown-temp', {list: parks}); | 665 | var htmlStr = template('pbv3_park_dropdown-temp', {list: parks}); |
| 666 | $('.buffer_area_form .parks_list', rightWrap).html(htmlStr); | 666 | $('.buffer_area_form .parks_list', rightWrap).html(htmlStr); |