Commit bfd30e10f40c9ae86a686ba91a74f0cd7eb50dda

Authored by 潘钊
2 parents 1508d0de 43664fe8

Merge branch 'minhang' into pudong

src/main/java/com/bsth/controller/schedule/core/SchedulePlanController.java
... ... @@ -5,7 +5,9 @@ import com.bsth.common.ResponseCode;
5 5 import com.bsth.controller.schedule.BController;
6 6 import com.bsth.entity.schedule.SchedulePlan;
7 7 import com.bsth.entity.sys.CompanyAuthority;
  8 +import com.bsth.entity.sys.SysUser;
8 9 import com.bsth.service.schedule.SchedulePlanService;
  10 +import com.bsth.service.sys.SysUserService;
9 11 import org.springframework.beans.factory.annotation.Autowired;
10 12 import org.springframework.web.bind.annotation.*;
11 13  
... ... @@ -23,11 +25,23 @@ import java.util.Map;
23 25 public class SchedulePlanController extends BController<SchedulePlan, Long> {
24 26 @Autowired
25 27 private SchedulePlanService schedulePlanService;
  28 + @Autowired
  29 + private SysUserService sysUserService;
26 30  
27 31 @Override
28 32 public Map<String, Object> save(@RequestBody SchedulePlan schedulePlan, HttpSession httpSession) {
  33 + // 用户信息
  34 + String userName = String.valueOf(httpSession.getAttribute(Constants.SESSION_USERNAME));
  35 + SysUser sysUser = sysUserService.findByUserName(userName);
  36 +
  37 + Date cdate = new Date();
  38 + schedulePlan.setCreateBy(sysUser);
  39 + schedulePlan.setCreateDate(cdate);
  40 + schedulePlan.setUpdateBy(sysUser);
  41 + schedulePlan.setUpdateDate(cdate);
  42 +
  43 + // 如果多个公司,选第一个,以后改成页面控制
29 44 List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) httpSession.getAttribute(Constants.COMPANY_AUTHORITYS);
30   - // TODO:如果多个公司,选第一个,以后改成页面控制
31 45 if (cmyAuths == null || cmyAuths.size() == 0)
32 46 schedulePlanService.save(schedulePlan, new CompanyAuthority());
33 47 else
... ...
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
... ... @@ -56,9 +56,9 @@ public class GpsRealData implements CommandLineRunner {
56 56 public void run(String... arg0) throws Exception {
57 57 logger.info("gpsDataLoader,20,5");
58 58 //定时从网关获取GPS数据
59   - //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 15, TimeUnit.SECONDS);
  59 + //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 5, TimeUnit.SECONDS);
60 60 //定时扫描掉离线
61   - //Application.mainServices.scheduleWithFixedDelay(offlineMonitorThread, 60, 20, TimeUnit.SECONDS);
  61 + //Application.mainServices.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);
62 62 }
63 63  
64 64  
... ...
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
... ... @@ -157,6 +157,7 @@ public class SchedulePlanInfo {
157 157 Line xl,
158 158 ScheduleResult_output scheduleResult_output,
159 159 TTInfoDetail ttInfoDetail,
  160 + Boolean isFb,
160 161 CarConfigInfo carConfigInfo,
161 162 List<EmployeeConfigInfo> employeeConfigInfoList,
162 163 SchedulePlan schedulePlan) {
... ... @@ -191,7 +192,7 @@ public class SchedulePlanInfo {
191 192 // TODO:报道时间,出场时间没有
192 193 // 关联的驾驶员
193 194 EmployeeConfigInfo employeeConfigInfo = null;
194   - if (ttInfoDetail.getIsFB()) {
  195 + if (isFb) {
195 196 if (employeeConfigInfoList.size() > 1) {
196 197 employeeConfigInfo = employeeConfigInfoList.get(1);
197 198 } else {
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanInfoRepository.java
... ... @@ -33,17 +33,18 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
33 33 "lp_name as lpName, " +
34 34 "cl as clId, " +
35 35 "cl_zbh as clZbh, " +
36   - "group_concat(distinct fcsj) ccsj, " +
  36 + "group_concat(fcsj) ccsj, " +
  37 + "group_concat(bc_type) bctype, " +
37 38 "group_concat(distinct j) jsyId, " +
38 39 "group_concat(distinct j_gh) jsyGh, " +
39 40 "group_concat(distinct j_name) jsyName, " +
40 41 "group_concat(distinct s) spyId, " +
41 42 "group_concat(distinct s_gh) spyGh, " +
42 43 "group_concat(distinct s_name) spyName, " +
43   - "max(create_date) as createDate " +
  44 + "max(create_date) as createDate, " +
  45 + "group_concat(fcno) fcno " +
44 46 "from bsth_c_s_sp_info " +
45   - "where bc_type = 'out' and " +
46   - "xl = ?1 and " +
  47 + "where xl = ?1 and " +
47 48 "schedule_date = ?2 " +
48 49 "group by xl_name, schedule_date, lp, lp_name, cl, cl_zbh " +
49 50 "order by xl_name, schedule_date, lp ", nativeQuery = true)
... ... @@ -71,14 +72,16 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
71 72 "scpinfo.scheduleDate = :p3 and " +
72 73 "scpinfo.lpName = :p4 and " +
73 74 "scpinfo.fcsj = :p5 and " +
74   - "scpinfo.bcType = :p6 ")
  75 + "scpinfo.bcType = :p6 and " +
  76 + "scpinfo.fcno = :p7 " )
75 77 int updateGroupInfo_type_2_4(
76 78 @Param("p1") String fcsj,
77 79 @Param("p2") Integer xlid,
78 80 @Param("p3") Date scheduleDate,
79 81 @Param("p4") String lpName,
80 82 @Param("p5") String fcsj_src,
81   - @Param("p6") String bcType);
  83 + @Param("p6") String bcType,
  84 + @Param("p7") Integer fcno);
82 85  
83 86 @Modifying
84 87 @Query(value = "update " +
... ...
src/main/java/com/bsth/service/schedule/SchedulePlanInfoService.java
... ... @@ -4,6 +4,7 @@ import com.bsth.entity.schedule.SchedulePlanInfo;
4 4 import com.bsth.service.BaseService;
5 5 import org.joda.time.DateTime;
6 6  
  7 +import java.util.ArrayList;
7 8 import java.util.Date;
8 9 import java.util.List;
9 10  
... ... @@ -117,6 +118,11 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
117 118 /** 创建时间 */
118 119 private Date createDate;
119 120  
  121 + /** 出场班次1发车的顺序号 */
  122 + private Integer fcno1;
  123 + /** 出场班次2发车的顺序号 */
  124 + private Integer fcno2;
  125 +
120 126 public GroupInfo() {}
121 127  
122 128 public GroupInfo(Object[] datas) {
... ... @@ -132,19 +138,40 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
132 138 this.clId = Integer.valueOf(String.valueOf(datas[4]));
133 139 // 车辆自编号
134 140 this.clZbh = String.valueOf(datas[5]);
135   - // 出场时间,如果有多个,需要分开
  141 + // 出场时间,出场班次,如果有多个,需要分开
136 142 Object ccsj = datas[6];
  143 + Object bctype = datas[7];
  144 + Object fcno = datas[15];
  145 +
137 146 if (ccsj != null) {
138 147 String[] ccsj_array = ((String) ccsj).split(",");
139   - if (ccsj_array.length > 1) {
140   - this.ccsj1 = String.valueOf(ccsj_array[0]);
141   - this.ccsj2 = String.valueOf(ccsj_array[1]);
142   - } else {
143   - this.ccsj1 = String.valueOf(ccsj_array[0]);
  148 + String[] bctype_array = ((String) bctype).split(",");
  149 + String[] fcno_array = ((String) fcno).split(",");
  150 + List<Integer> bctype_index = new ArrayList<>();
  151 +
  152 + for (int i = 0; i < bctype_array.length; i++) {
  153 + if (bctype_index.size() == 2) { // 只记录2个出场
  154 + break;
  155 + }
  156 + if (bctype_array[i].equals("out")) {
  157 + bctype_index.add(i);
  158 + }
  159 + }
  160 +
  161 + if (bctype_index.size() == 1) {
  162 + this.ccsj1 = String.valueOf(ccsj_array[bctype_index.get(0)]);
  163 + this.fcno1 = Integer.valueOf(fcno_array[bctype_index.get(0)]);
  164 + } else if (bctype_index.size() == 2) {
  165 + this.ccsj1 = String.valueOf(ccsj_array[bctype_index.get(0)]);
  166 + this.ccsj2 = String.valueOf(ccsj_array[bctype_index.get(1)]);
  167 +
  168 + this.fcno1 = Integer.valueOf(fcno_array[bctype_index.get(0)]);
  169 + this.fcno2 = Integer.valueOf(fcno_array[bctype_index.get(1)]);
144 170 }
  171 +
145 172 }
146 173 // 驾驶员id,如果有多个,需要分开
147   - Object jsyId = datas[7];
  174 + Object jsyId = datas[8];
148 175 if (jsyId != null) {
149 176 String[] jsyId_array = ((String) jsyId).split(",");
150 177 if (jsyId_array.length > 1) {
... ... @@ -155,7 +182,7 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
155 182 }
156 183 }
157 184 // 驾驶员工号,如果有多个,需要分开
158   - Object jsyGh = datas[8];
  185 + Object jsyGh = datas[9];
159 186 if (jsyGh != null) {
160 187 String[] jsyGh_array = ((String) jsyGh).split(",");
161 188 if (jsyGh_array.length > 1) {
... ... @@ -166,7 +193,7 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
166 193 }
167 194 }
168 195 // 驾驶员名字,如果有多个,需要分开
169   - Object jsyName = datas[9];
  196 + Object jsyName = datas[10];
170 197 if (jsyName != null) {
171 198 String[] jsyName_array = ((String) jsyName).split(",");
172 199 if (jsyName_array.length > 1) {
... ... @@ -178,7 +205,7 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
178 205 }
179 206  
180 207 // 售票员id,如果有多个,需要分开
181   - Object spyId = datas[10];
  208 + Object spyId = datas[11];
182 209 if (spyId != null) {
183 210 String[] spyId_array = ((String) spyId).split(",");
184 211 if (spyId_array.length > 1) {
... ... @@ -190,7 +217,7 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
190 217 }
191 218  
192 219 // 售票员工号,如果有多个,需要分开
193   - Object spyGh = datas[11];
  220 + Object spyGh = datas[12];
194 221 if (spyGh != null) {
195 222 String[] spyGh_array = ((String) spyGh).split(",");
196 223 if (spyGh_array.length > 1) {
... ... @@ -201,7 +228,7 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
201 228 }
202 229 }
203 230 // 售票员名字,如果有多个,需要分开
204   - Object spyName = datas[12];
  231 + Object spyName = datas[13];
205 232 if (spyName != null) {
206 233 String[] spyName_array = ((String) spyName).split(",");
207 234 if (spyName_array.length > 1) {
... ... @@ -212,7 +239,7 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
212 239 }
213 240 }
214 241 // 创建时间
215   - this.createDate = new DateTime(datas[13]).toDate();
  242 + this.createDate = new DateTime(datas[14]).toDate();
216 243  
217 244 // TODO:可能还有其他字段
218 245 }
... ... @@ -384,5 +411,21 @@ public interface SchedulePlanInfoService extends BaseService&lt;SchedulePlanInfo, L
384 411 public void setXlId(Integer xlId) {
385 412 this.xlId = xlId;
386 413 }
  414 +
  415 + public Integer getFcno1() {
  416 + return fcno1;
  417 + }
  418 +
  419 + public void setFcno1(Integer fcno1) {
  420 + this.fcno1 = fcno1;
  421 + }
  422 +
  423 + public Integer getFcno2() {
  424 + return fcno2;
  425 + }
  426 +
  427 + public void setFcno2(Integer fcno2) {
  428 + this.fcno2 = fcno2;
  429 + }
387 430 }
388 431 }
... ...
src/main/java/com/bsth/service/schedule/SchedulePlanInfoServiceImpl.java
... ... @@ -55,7 +55,8 @@ public class SchedulePlanInfoServiceImpl extends BaseServiceImpl&lt;SchedulePlanInf
55 55 groupInfoUpdate.getUpdate().getScheduleDate(),
56 56 groupInfoUpdate.getSrc().getLpName(),
57 57 groupInfoUpdate.getSrc().getCcsj1(),
58   - "out"
  58 + "out",
  59 + groupInfoUpdate.getSrc().getFcno1()
59 60 );
60 61 }
61 62  
... ... @@ -94,7 +95,8 @@ public class SchedulePlanInfoServiceImpl extends BaseServiceImpl&lt;SchedulePlanInf
94 95 groupInfoUpdate.getUpdate().getScheduleDate(),
95 96 groupInfoUpdate.getSrc().getLpName(),
96 97 groupInfoUpdate.getSrc().getCcsj2(),
97   - "out"
  98 + "out",
  99 + groupInfoUpdate.getSrc().getFcno2()
98 100 );
99 101 }
100 102  
... ...
src/main/java/com/bsth/service/schedule/impl/SchedulePlanServiceImpl.java
... ... @@ -119,13 +119,28 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
119 119 employeeConfigInfoList.add(employeeConfigMaps.get(Long.valueOf(eid)));
120 120 }
121 121 // 排班明细(这个要迭代的)
122   - Collection<TTInfoDetail> ttInfoDetails = gbdTTinfoMaps.get(scheduleResult_output.getSd().toDate()).get(
  122 + Collection<TTInfoDetail> ttInfoDetails_ = gbdTTinfoMaps.get(scheduleResult_output.getSd().toDate()).get(
123 123 Long.parseLong(scheduleResult_output.getGuideboardId()));
  124 + List<TTInfoDetail> ttInfoDetails = new ArrayList<>(ttInfoDetails_);
  125 +
  126 + // 排序ttInfoDetails
  127 + Collections.sort(ttInfoDetails, new Comparator<TTInfoDetail>() {
  128 + @Override
  129 + public int compare(TTInfoDetail o1, TTInfoDetail o2) {
  130 + return o1.getFcno().compareTo(o2.getFcno());
  131 + }
  132 + });
  133 +
  134 + Boolean isFb = false; // 是否分班
124 135 for (TTInfoDetail ttInfoDetail : ttInfoDetails) {
  136 + if (ttInfoDetail.getIsFB())
  137 + isFb = ttInfoDetail.getIsFB();
  138 +
125 139 SchedulePlanInfo schedulePlanInfo = new SchedulePlanInfo(
126 140 xl,
127 141 scheduleResult_output,
128 142 ttInfoDetail,
  143 + isFb,
129 144 configInfo,
130 145 employeeConfigInfoList,
131 146 schedulePlan);
... ... @@ -138,6 +153,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
138 153  
139 154 schedulePlanInfos.add(schedulePlanInfo);
140 155 ttInfoMap.put(ttInfoDetail.getTtinfo().getId(), ttInfoDetail.getTtinfo().getName());
  156 +
141 157 }
142 158 }
143 159  
... ...
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/info/list_info.html
... ... @@ -12,6 +12,7 @@
12 12 <th style="width: 150px;">驾驶员(工号)</th>
13 13 <th style="width: 150px;">售票员(工号)</th>
14 14 <th style="width: 80px;">班次类型</th>
  15 + <th style="width: 80px;">上下行</th>
15 16 <th style="width: 80px;">发车时间</th>
16 17 <th style="width: 100%">时刻表</th>
17 18  
... ... @@ -42,6 +43,7 @@
42 43 <td></td>
43 44 <td></td>
44 45 <td></td>
  46 + <td></td>
45 47  
46 48 </tr>
47 49 </thead>
... ... @@ -74,6 +76,9 @@
74 76 <span ng-bind="info.bcType | dict:'ScheduleType':'未知' "></span>
75 77 </td>
76 78 <td>
  79 + <span ng-bind="info.xlDir | dict:'LineTrend2':'未知' "></span>
  80 + </td>
  81 + <td>
77 82 <span ng-bind="info.fcsj"></span>
78 83 </td>
79 84 <td>
... ...
src/main/resources/static/real_control_v2/css/home.css
... ... @@ -61,7 +61,7 @@
61 61 }
62 62  
63 63 .home-gps-table {
64   - width: 620px;
  64 + width: 640px;
65 65 }
66 66  
67 67 .home-gps-table small {
... ... @@ -74,31 +74,35 @@
74 74 }
75 75  
76 76 .home-gps-table dl dt:nth-of-type(2), .home-gps-table dl dd:nth-of-type(2) {
77   - width: 8%
  77 + width: 7%
78 78 }
79 79  
80 80 .home-gps-table dl dt:nth-of-type(3), .home-gps-table dl dd:nth-of-type(3) {
81   - width: 8%
  81 + width: 7%
82 82 }
83 83  
84 84 .home-gps-table dl dt:nth-of-type(4), .home-gps-table dl dd:nth-of-type(4) {
85   - width: 8%;
  85 + width: 7%
86 86 }
87 87  
88 88 .home-gps-table dl dt:nth-of-type(5), .home-gps-table dl dd:nth-of-type(5) {
89   - width: 17%
  89 + width: 7%;
90 90 }
91 91  
92 92 .home-gps-table dl dt:nth-of-type(6), .home-gps-table dl dd:nth-of-type(6) {
93   - width: 17%
  93 + width: 16%
94 94 }
95 95  
96 96 .home-gps-table dl dt:nth-of-type(7), .home-gps-table dl dd:nth-of-type(7) {
97   - width: 10%
  97 + width: 16%
98 98 }
99 99  
100 100 .home-gps-table dl dt:nth-of-type(8), .home-gps-table dl dd:nth-of-type(8) {
101   - width: 16%;
  101 + width: 9%
  102 +}
  103 +
  104 +.home-gps-table dl dt:nth-of-type(9), .home-gps-table dl dd:nth-of-type(9) {
  105 + width: 15%;
102 106 border-right: 0;
103 107 }
104 108  
... ...
src/main/resources/static/real_control_v2/css/main.css
... ... @@ -798,12 +798,12 @@ li.map-panel {
798 798  
799 799  
800 800 svg text.offline{
801   - fill: #534e4e !important;
  801 + fill: #6f6a6a !important;
802 802 }
803 803  
804 804 svg rect.offline{
805   - stroke: #abaaaa !important;
806   - fill: #b8b8b8 !important;
  805 + stroke: #dbdada !important;
  806 + fill: #dbdada !important;
807 807 }
808 808  
809 809 .tooltip .tooltip-container .title a>.abnormal-text{
... ...
src/main/resources/static/real_control_v2/fragments/home/line_panel.html
... ... @@ -9,6 +9,7 @@
9 9 <div class="ct_table_head">
10 10 <dl>
11 11 <dt>车辆编码</dt>
  12 + <dt>路牌</dt>
12 13 <dt>速度</dt>
13 14 <dt>终点</dt>
14 15 <dt>状态</dt>
... ... @@ -27,6 +28,7 @@
27 28 <script id="home-gps-tbody-temp" type="text/html">
28 29 <dl id="home_gps_{{deviceId}}" data-device-id="{{deviceId}}" {{if abnormalStatus=='offline'}}class="offline"{{/if}}>
29 30 <dd title="{{nbbm}}"><a>{{nbbm}}</a></dd>
  31 + <dd></dd>
30 32 <dd>{{speed}}</dd>
31 33 <dd>{{expectStopTime}}</dd>
32 34 <dd>
... ...
src/main/resources/static/real_control_v2/fragments/home/tooltip.html
1 1 <div>
2 2 <script id="tooltip_gps_temp" type="text/html">
3   - <div class="tooltip" >
  3 + <div class="tooltip" data-id="{{deviceId}}">
4 4 <div class="tooltip-container">
5   - <div class="title">
6   - <a href="javascript:;" data-for="station" class="tip_modal">
7   - {{nbbm}}
8   - {{if abnormalStatus == 'outBounds'}}
  5 +
  6 + <div class="cont-text-panel">
  7 + <div class="title">
  8 + <a href="javascript:;" data-for="station" class="tip_modal">
  9 + {{nbbm}}
  10 + {{if abnormalStatus == 'outBounds'}}
9 11 <span class="abnormal-text">越界</span>
10   - {{else if abnormalStatus == 'overspeed'}}
  12 + {{else if abnormalStatus == 'overspeed'}}
11 13 <span class="abnormal-text">超速</span>
12   - {{else if abnormalStatus == 'gps-offline'}}
  14 + {{else if abnormalStatus == 'gps-offline'}}
13 15 <span class="abnormal-text">GPS掉线</span>
14   - {{else if abnormalStatus == 'offline'}}
  16 + {{else if abnormalStatus == 'offline'}}
15 17 <span class="abnormal-text">已离线</span>
16   - {{/if}}
17   - </a>
18   - </div>
19   - <div>
20   - <span class="field">站点:</span>{{stationName}}
21   - </div>
22   - <!-- <div>
23   - {{lineName}} -{{if upDown==0}}上行{{else}}下行{{/if}}
24   - </div> -->
25   - <div>
26   - <span class="field">设备:</span>{{deviceId}}
  18 + {{/if}}
  19 + </a>
  20 + </div>
  21 + <div>
  22 + <span class="field">站点:</span>{{stationName}}
  23 + </div>
  24 + <!-- <div>
  25 + {{lineName}} -{{if upDown==0}}上行{{else}}下行{{/if}}
  26 + </div> -->
  27 + <div>
  28 + <span class="field">设备:</span>{{deviceId}}
  29 + </div>
  30 + <div>
  31 + <span class="field">坐标:</span>{{lon}} {{lat}}
  32 + </div>
  33 + <div>
  34 + <span class="field">速度:</span>{{speed}}</div>
  35 + <div>
  36 + <span class="field">时间:</span>{{dateStr}}</div>
  37 + {{if expectStopTime!=null}}
  38 + <div>
  39 + 预计 {{expectStopTime}} 分钟到达终点</div>
  40 + {{/if}}
27 41 </div>
28   - <div>
29   - <span class="field">坐标:</span>{{lon}} {{lat}}
30   - </div>
31   - <div>
32   - <span class="field">速度:</span>{{speed}}</div>
33   - <div>
34   - <span class="field">时间:</span>{{dateStr}}</div>
35   - {{if expectStopTime!=null}}
36   - <div>
37   - 预计 {{expectStopTime}} 分钟到达终点</div>
38   - {{/if}}
  42 +
39 43 <div class="tip_map_wrap"></div>
40 44 </div>
41 45 </div>
... ... @@ -60,17 +64,30 @@
60 64 <div style="color: #747272;">
61 65 {{gps.dateStr}}
62 66 </div>
63   - <!--<div>
64   - <span class="field">进站时间:</span>?
65   - </div>
66   - <div>
67   - <span class="field">计划发出:</span>?
68   - </div>-->
69   -
70 67 </div>
71 68 </div>
72 69 {{/each}}
73 70 </div>
74 71 <div class="tip_map_wrap multi"></div>
75 72 </script>
  73 +
  74 +
  75 + <script id="tooltip_multi_gps_cont_temp" type="text/html">
  76 + <div class="tooltip-container">
  77 + <div class="title">
  78 + <a href="javascript:;" data-for="station" class="tip_modal">
  79 + {{nbbm}}
  80 + </a>
  81 + </div>
  82 + <div>
  83 + <span class="field">站点:</span>{{stationName}}
  84 + </div>
  85 + <div>
  86 + <span class="field">设备:</span>{{deviceId}}
  87 + </div>
  88 + <div style="color: #747272;">
  89 + {{gps.dateStr}}
  90 + </div>
  91 + </div>
  92 + </script>
76 93 </div>
... ...
src/main/resources/static/real_control_v2/js/home/line_panel.js
... ... @@ -83,21 +83,23 @@ var gb_home_line_panel = (function() {
83 83 e.removeClass('offline');
84 84  
85 85 var cells = e.find('dd');
86   - $(cells[1]).text(t.speed);
87   - $(cells[2]).html(t.expectStopTime == null ? '' : t.expectStopTime);
  86 + $(cells[2]).text(t.speed);
  87 + $(cells[3]).html(t.expectStopTime == null ? '' : t.expectStopTime);
88 88  
89 89 //状态
90   - $(cells[3]).html(temps['home-gps-abnormal-temp'](t));
  90 + $(cells[4]).html(temps['home-gps-abnormal-temp'](t));
91 91  
92 92 if(!t.stationName)
93 93 t.stationName='';
94   - $(cells[4]).text(t.stationName).attr('title', t.stationName);
  94 + $(cells[5]).text(t.stationName).attr('title', t.stationName);
95 95  
96 96 //班次信息
97 97 if(t.sch){
98   - $(cells[5]).text(t.sch.zdzName);
99   - $(cells[6]).text(t.sch.zdsj);
100   - $(cells[7]).text(t.sch.jGh + '/' + t.sch.jName);
  98 + //console.log('t.sch', t.sch);
  99 + $(cells[1]).text(t.sch.lpName);
  100 + $(cells[6]).text(t.sch.zdzName);
  101 + $(cells[7]).text(t.sch.zdsj);
  102 + $(cells[8]).text(t.sch.jGh + '/' + t.sch.jName);
101 103 }
102 104 };
103 105  
... ...
src/main/resources/static/real_control_v2/js/utils/svg_chart.js
... ... @@ -268,8 +268,8 @@ var gb_svg_chart = (function () {
268 268 return true;
269 269  
270 270 abmStatus = this['abnormalStatus'];
  271 + suffix = '';
271 272 if(abmStatus != 'offline'){
272   - suffix = '';
273 273 this['abnormalClaszz'] = true;
274 274 if(abmStatus=='outBounds')
275 275 suffix = '界';
... ... @@ -294,6 +294,9 @@ var gb_svg_chart = (function () {
294 294 //聚合gps
295 295 marker_clusterer(this, lineCode);
296 296 });
  297 +
  298 + //刷新tooltip
  299 + gb_svg_tooltip.refresh();
297 300 };
298 301  
299 302 var draw_gps = function (svg, data) {
... ...
src/main/resources/static/real_control_v2/js/utils/svg_chart_tooltip.js
... ... @@ -28,7 +28,7 @@ var gb_svg_tooltip = (function () {
28 28 target: rect
29 29 },
30 30 style: {
31   - classes: 'qtip-bootstrap'
  31 + classes: 'qtip-bootstrap qtip-gps-tooltip'
32 32 },
33 33 hide: {
34 34 fixed: true,
... ... @@ -54,7 +54,7 @@ var gb_svg_tooltip = (function () {
54 54 var rect = $(this);
55 55 //console.log('111', rect,rect.attr('aria-describedby'));
56 56 /*if (rect.attr('aria-describedby'))
57   - return;*/
  57 + return;*/
58 58 // var gps = gb_data_gps.findOne($(this).attr('_id').split('_')[1]);
59 59  
60 60 $('.qtip-multi-gps').qtip('destroy', true);
... ... @@ -146,7 +146,7 @@ var gb_svg_tooltip = (function () {
146 146 });
147 147 //draw line routes
148 148 gb_svg_map_util.drawLine(map, list[0]);
149   - }
  149 + };
150 150  
151 151 function searchByStop(list, stop) {
152 152 var rs = [];
... ... @@ -168,7 +168,42 @@ var gb_svg_tooltip = (function () {
168 168 });
169 169 }
170 170  
  171 + var refresh = function () {
  172 + //刷新展开的单个tooltip
  173 + $('.qtip-gps-tooltip .tooltip').each(function () {
  174 + var deviceId = $(this).data('id')
  175 + ,wrap = $(this).find('.cont-text-panel');
  176 + if(deviceId)
  177 + gb_svg_tooltip.refreshTooltip(deviceId, wrap);
  178 + });
  179 +
  180 + //刷新展开的聚合tooltip
  181 + $('.qtip-multi-gps .multi-tooltip').each(function () {
  182 +
  183 + });
  184 + };
  185 +
  186 +
  187 + /**
  188 + * 刷新单个tooltip
  189 + * @param deviceId
  190 + */
  191 + var refreshTooltip = function (deviceId, wrap) {
  192 + var gps = gb_data_gps.findOne(deviceId);
  193 +
  194 + var cont = temps['tooltip_gps_temp'](gps);
  195 + var htmlStr = $(cont).find('.cont-text-panel').html();
  196 +
  197 + $(wrap).html(htmlStr);
  198 +
  199 + //更新地图点位
  200 +
  201 + //console.log('refreshTooltip htmlStr', htmlStr, wrap);
  202 + };
  203 +
171 204 return {
172   - update: updateFixedTip
  205 + update: updateFixedTip,
  206 + refresh: refresh,
  207 + refreshTooltip: refreshTooltip
173 208 };
174 209 })();
... ...