Commit bfd30e10f40c9ae86a686ba91a74f0cd7eb50dda
Merge branch 'minhang' into pudong
Showing
15 changed files
with
233 additions
and
86 deletions
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<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<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<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<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<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<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<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<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<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<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<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<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<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<SchedulePlan, Long> 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<SchedulePlan, Long> 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 | })(); | ... | ... |