Commit 703fbefe782201d70c610ec481b3b496222a3082
1.线调tip窗体加入驾驶的联系方式(如果有的话)
Showing
15 changed files
with
906 additions
and
800 deletions
src/main/java/com/bsth/controller/realcontrol/AdminUtilsController.java
| @@ -8,7 +8,6 @@ import com.bsth.data.BasicData; | @@ -8,7 +8,6 @@ import com.bsth.data.BasicData; | ||
| 8 | import com.bsth.security.SsoConfig; | 8 | import com.bsth.security.SsoConfig; |
| 9 | import com.bsth.service.SectionService; | 9 | import com.bsth.service.SectionService; |
| 10 | import com.bsth.service.StationService; | 10 | import com.bsth.service.StationService; |
| 11 | -import com.bsth.data.SystemParamCache; | ||
| 12 | import com.bsth.data.directive.DayOfDirectives; | 11 | import com.bsth.data.directive.DayOfDirectives; |
| 13 | import com.bsth.data.directive.DirectivesPstThread; | 12 | import com.bsth.data.directive.DirectivesPstThread; |
| 14 | import com.bsth.data.directive.GatewayHttpUtils; | 13 | import com.bsth.data.directive.GatewayHttpUtils; |
src/main/java/com/bsth/controller/realcontrol/BasicDataController.java
| 1 | -package com.bsth.controller.realcontrol; | ||
| 2 | - | ||
| 3 | -import com.alibaba.fastjson.serializer.PropertyFilter; | ||
| 4 | -import com.bsth.common.ResponseCode; | ||
| 5 | -import com.bsth.data.BasicData; | ||
| 6 | -import com.bsth.data.Station2ParkBuffer; | ||
| 7 | -import com.bsth.data.pinyin.PersionPinYin; | ||
| 8 | -import com.bsth.data.pinyin.PersionPinYinBuffer; | ||
| 9 | -import com.bsth.entity.Line; | ||
| 10 | -import com.bsth.entity.realcontrol.StationToPark; | ||
| 11 | -import com.google.common.base.Splitter; | ||
| 12 | -import com.google.common.collect.ArrayListMultimap; | ||
| 13 | -import com.google.common.collect.BiMap; | ||
| 14 | -import org.slf4j.Logger; | ||
| 15 | -import org.slf4j.LoggerFactory; | ||
| 16 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 17 | -import org.springframework.web.bind.annotation.RequestMapping; | ||
| 18 | -import org.springframework.web.bind.annotation.RequestMethod; | ||
| 19 | -import org.springframework.web.bind.annotation.RequestParam; | ||
| 20 | -import org.springframework.web.bind.annotation.RestController; | ||
| 21 | - | ||
| 22 | -import java.util.*; | ||
| 23 | - | ||
| 24 | -@RestController | ||
| 25 | -@RequestMapping("/basic") | ||
| 26 | -public class BasicDataController { | ||
| 27 | - | ||
| 28 | - @Autowired | ||
| 29 | - BasicData.BasicDataLoader dataLoader; | ||
| 30 | - | ||
| 31 | - @Autowired | ||
| 32 | - BasicData basicData; | ||
| 33 | - | ||
| 34 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 35 | - | ||
| 36 | - @Autowired | ||
| 37 | - Station2ParkBuffer station2ParkBuffer; | ||
| 38 | - | ||
| 39 | - @Autowired | ||
| 40 | - PersionPinYinBuffer persionPinYinBuffer; | ||
| 41 | - | ||
| 42 | - @RequestMapping("/cars") | ||
| 43 | - public Iterable<String> findAllNbbm(Map<String, Object> map){ | ||
| 44 | - return BasicData.deviceId2NbbmMap.values(); | ||
| 45 | - } | ||
| 46 | - | ||
| 47 | - @RequestMapping("/nbbm2deviceId") | ||
| 48 | - public Map<String, String> nbbm2deviceId(Map<String, Object> map){ | ||
| 49 | - return BasicData.deviceId2NbbmMap.inverse(); | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - @RequestMapping("/lineCode2Name") | ||
| 53 | - public Map<String, String> findLineCodeMap(){ | ||
| 54 | - return BasicData.lineCode2NameMap; | ||
| 55 | - } | ||
| 56 | - | ||
| 57 | - @RequestMapping("/parks") | ||
| 58 | - public Map<String, String> findParks(){ | ||
| 59 | - Map<String, String> rs = new HashMap<>(); | ||
| 60 | - List<String> codes = BasicData.parkCodeList; | ||
| 61 | - for(String code : codes){ | ||
| 62 | - rs.put(code, BasicData.stationCode2NameMap.get(code)); | ||
| 63 | - } | ||
| 64 | - return rs; | ||
| 65 | - } | ||
| 66 | - | ||
| 67 | - /*@RequestMapping("/personnel") | ||
| 68 | - public Map<String, Object> findPersonnelInfo(){ | ||
| 69 | - Map<String, Object> rs = new HashMap<>(); | ||
| 70 | - PersonnelFieldFilter filter=new PersonnelFieldFilter(); | ||
| 71 | - //驾驶员 | ||
| 72 | - rs.put("jsy", JSON.parse(JSON.toJSONString(BasicData.jsyMap.values(), filter))); | ||
| 73 | - //售票员 | ||
| 74 | - rs.put("spy", JSON.parse(JSON.toJSONString(BasicData.spyMap.values(), filter)));*//* | ||
| 75 | - return rs; | ||
| 76 | - }*/ | ||
| 77 | - | ||
| 78 | - @RequestMapping(value = "/all_personnel_py", method = RequestMethod.GET) | ||
| 79 | - public List<PersionPinYin> findAll_PY(){ | ||
| 80 | - return persionPinYinBuffer.getAll(); | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | - @RequestMapping("/all_personnel") | ||
| 84 | - public Map<String, String> all_personnel(){ | ||
| 85 | - return BasicData.allPerson; | ||
| 86 | - } | ||
| 87 | - | ||
| 88 | - | ||
| 89 | - public class PersonnelFieldFilter implements PropertyFilter{ | ||
| 90 | - | ||
| 91 | - String[] whiteList=new String[]{"jobCode", "personnelName", "brancheCompany"}; | ||
| 92 | - @Override | ||
| 93 | - public boolean apply(Object object, String name, Object value) { | ||
| 94 | - for(String f : whiteList){ | ||
| 95 | - if(name.equals(f)) | ||
| 96 | - return true; | ||
| 97 | - } | ||
| 98 | - return false; | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | - | ||
| 102 | - /** | ||
| 103 | - * 刷新车辆和设备号对照数据 | ||
| 104 | - * @return | ||
| 105 | - */ | ||
| 106 | - @RequestMapping(value = "/refresh_nbbm2Device", method = RequestMethod.POST) | ||
| 107 | - public Map<String, Object> refreshNbbm2DeviceId(){ | ||
| 108 | - Map<String, Object> rs = new HashMap<>(); | ||
| 109 | - try { | ||
| 110 | - dataLoader.loadDeviceInfo(); | ||
| 111 | - rs.put("status", ResponseCode.SUCCESS); | ||
| 112 | - }catch (Exception e){ | ||
| 113 | - rs.put("status", ResponseCode.ERROR); | ||
| 114 | - rs.put("msg", e.getMessage()); | ||
| 115 | - logger.error("", e); | ||
| 116 | - } | ||
| 117 | - return rs; | ||
| 118 | - } | ||
| 119 | - | ||
| 120 | - /** | ||
| 121 | - * 刷新员工对照数据 | ||
| 122 | - * @return | ||
| 123 | - */ | ||
| 124 | - @RequestMapping(value = "/refresh_person_data", method = RequestMethod.POST) | ||
| 125 | - public Map<String, Object> refreshPersonData(){ | ||
| 126 | - Map<String, Object> rs = new HashMap<>(); | ||
| 127 | - try { | ||
| 128 | - dataLoader.loadPersonnelInfo(); | ||
| 129 | - rs.put("status", ResponseCode.SUCCESS); | ||
| 130 | - }catch (Exception e){ | ||
| 131 | - rs.put("status", ResponseCode.ERROR); | ||
| 132 | - rs.put("msg", e.getMessage()); | ||
| 133 | - logger.error("", e); | ||
| 134 | - } | ||
| 135 | - return rs; | ||
| 136 | - } | ||
| 137 | - | ||
| 138 | - /** | ||
| 139 | - * 车辆自编号和车牌号对照 | ||
| 140 | - * @return | ||
| 141 | - */ | ||
| 142 | - @RequestMapping("/nbbm2PlateNo") | ||
| 143 | - public Map<String, String> nbbm2PlateNo(){ | ||
| 144 | - return basicData.nbbmCompanyPlateMap; | ||
| 145 | - } | ||
| 146 | - | ||
| 147 | - | ||
| 148 | - /** | ||
| 149 | - * 获取线路配车信息 | ||
| 150 | - * @return | ||
| 151 | - */ | ||
| 152 | - @RequestMapping("/ccInfo") | ||
| 153 | - public Map<String, Collection<String>> ccInfo(){ | ||
| 154 | - | ||
| 155 | - ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create(); | ||
| 156 | - Set<String> ks = BasicData.nbbm2LineMap.keySet(); | ||
| 157 | - | ||
| 158 | - Line line; | ||
| 159 | - for(String nbbm : ks){ | ||
| 160 | - line = BasicData.nbbm2LineMap.get(nbbm); | ||
| 161 | - listMultimap.put(line.getLineCode(), nbbm); | ||
| 162 | - } | ||
| 163 | - return listMultimap.asMap(); | ||
| 164 | - } | ||
| 165 | - | ||
| 166 | - /** | ||
| 167 | - * 获取车辆信息 | ||
| 168 | - * @return | ||
| 169 | - */ | ||
| 170 | - @RequestMapping("/ccInfo/lineArray") | ||
| 171 | - public List<Map<String, String>> ccInfoByLine(@RequestParam String idx){ | ||
| 172 | - List<String> lines = Splitter.on(",").splitToList(idx); | ||
| 173 | - List<Map<String, String>> rs = new ArrayList<>(); | ||
| 174 | - Map<String, String> map; | ||
| 175 | - | ||
| 176 | - //ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create(); | ||
| 177 | - Set<String> ks = BasicData.nbbm2LineMap.keySet(); | ||
| 178 | - BiMap<String,String> nbbm2deviceMap = BasicData.deviceId2NbbmMap.inverse(); | ||
| 179 | - | ||
| 180 | - Line line; | ||
| 181 | - for(String nbbm : ks){ | ||
| 182 | - line = BasicData.nbbm2LineMap.get(nbbm); | ||
| 183 | - if(lines.contains(line.getLineCode())){ | ||
| 184 | - map = new HashMap<>(); | ||
| 185 | - map.put("nbbm", nbbm); | ||
| 186 | - map.put("deviceId", nbbm2deviceMap.get(nbbm)); | ||
| 187 | - map.put("lineName", line.getName()); | ||
| 188 | - map.put("lineCode", line.getLineCode()); | ||
| 189 | - rs.add(map); | ||
| 190 | - } | ||
| 191 | - } | ||
| 192 | - return rs; | ||
| 193 | - } | ||
| 194 | - | ||
| 195 | - /** | ||
| 196 | - * 获取站点和停车场历时公里对照表 | ||
| 197 | - * @param idx | ||
| 198 | - * @return | ||
| 199 | - */ | ||
| 200 | - @RequestMapping("/station2ParkData") | ||
| 201 | - public Map<String, Collection<StationToPark>> findStation2ParkData(@RequestParam String idx){ | ||
| 202 | - List<String> lines = Splitter.on(",").splitToList(idx); | ||
| 203 | - ArrayListMultimap<String, StationToPark> rs = ArrayListMultimap.create(); | ||
| 204 | - | ||
| 205 | - for(String lineCode : lines){ | ||
| 206 | - rs.putAll(lineCode, Station2ParkBuffer.get(lineCode)); | ||
| 207 | - } | ||
| 208 | - return rs.asMap(); | ||
| 209 | - } | ||
| 210 | - | ||
| 211 | - @RequestMapping(value = "/deleteStation2Park", method = RequestMethod.POST) | ||
| 212 | - public Map<String, Object> deleteStation2Park(@RequestParam String lineCode,@RequestParam Integer id){ | ||
| 213 | - return station2ParkBuffer.delete(lineCode, id); | ||
| 214 | - } | ||
| 215 | -} | 1 | +package com.bsth.controller.realcontrol; |
| 2 | + | ||
| 3 | +import com.alibaba.fastjson.serializer.PropertyFilter; | ||
| 4 | +import com.bsth.common.ResponseCode; | ||
| 5 | +import com.bsth.data.BasicData; | ||
| 6 | +import com.bsth.data.Station2ParkBuffer; | ||
| 7 | +import com.bsth.data.pinyin.PersionPinYin; | ||
| 8 | +import com.bsth.data.pinyin.PersionPinYinBuffer; | ||
| 9 | +import com.bsth.entity.Line; | ||
| 10 | +import com.bsth.entity.Personnel; | ||
| 11 | +import com.bsth.entity.realcontrol.StationToPark; | ||
| 12 | +import com.google.common.base.Splitter; | ||
| 13 | +import com.google.common.collect.ArrayListMultimap; | ||
| 14 | +import com.google.common.collect.BiMap; | ||
| 15 | +import org.slf4j.Logger; | ||
| 16 | +import org.slf4j.LoggerFactory; | ||
| 17 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 18 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 19 | +import org.springframework.web.bind.annotation.RequestMethod; | ||
| 20 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 21 | +import org.springframework.web.bind.annotation.RestController; | ||
| 22 | + | ||
| 23 | +import java.util.*; | ||
| 24 | + | ||
| 25 | +@RestController | ||
| 26 | +@RequestMapping("/basic") | ||
| 27 | +public class BasicDataController { | ||
| 28 | + | ||
| 29 | + @Autowired | ||
| 30 | + BasicData.BasicDataLoader dataLoader; | ||
| 31 | + | ||
| 32 | + @Autowired | ||
| 33 | + BasicData basicData; | ||
| 34 | + | ||
| 35 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 36 | + | ||
| 37 | + @Autowired | ||
| 38 | + Station2ParkBuffer station2ParkBuffer; | ||
| 39 | + | ||
| 40 | + @Autowired | ||
| 41 | + PersionPinYinBuffer persionPinYinBuffer; | ||
| 42 | + | ||
| 43 | + @RequestMapping("/cars") | ||
| 44 | + public Iterable<String> findAllNbbm(Map<String, Object> map){ | ||
| 45 | + return BasicData.deviceId2NbbmMap.values(); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @RequestMapping("/nbbm2deviceId") | ||
| 49 | + public Map<String, String> nbbm2deviceId(Map<String, Object> map){ | ||
| 50 | + return BasicData.deviceId2NbbmMap.inverse(); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + @RequestMapping("/lineCode2Name") | ||
| 54 | + public Map<String, String> findLineCodeMap(){ | ||
| 55 | + return BasicData.lineCode2NameMap; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + @RequestMapping("/parks") | ||
| 59 | + public Map<String, String> findParks(){ | ||
| 60 | + Map<String, String> rs = new HashMap<>(); | ||
| 61 | + List<String> codes = BasicData.parkCodeList; | ||
| 62 | + for(String code : codes){ | ||
| 63 | + rs.put(code, BasicData.stationCode2NameMap.get(code)); | ||
| 64 | + } | ||
| 65 | + return rs; | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + /*@RequestMapping("/personnel") | ||
| 69 | + public Map<String, Object> findPersonnelInfo(){ | ||
| 70 | + Map<String, Object> rs = new HashMap<>(); | ||
| 71 | + PersonnelFieldFilter filter=new PersonnelFieldFilter(); | ||
| 72 | + //驾驶员 | ||
| 73 | + rs.put("jsy", JSON.parse(JSON.toJSONString(BasicData.jsyMap.values(), filter))); | ||
| 74 | + //售票员 | ||
| 75 | + rs.put("spy", JSON.parse(JSON.toJSONString(BasicData.spyMap.values(), filter)));*//* | ||
| 76 | + return rs; | ||
| 77 | + }*/ | ||
| 78 | + | ||
| 79 | + @RequestMapping(value = "/all_personnel_py", method = RequestMethod.GET) | ||
| 80 | + public List<PersionPinYin> findAll_PY(){ | ||
| 81 | + return persionPinYinBuffer.getAll(); | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + @RequestMapping("/all_personnel") | ||
| 85 | + public Map<String, String> all_personnel(){ | ||
| 86 | + return BasicData.allPerson; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + @RequestMapping("/allPersonnelMobile") | ||
| 90 | + public Map<String, String> allPersonnelMobile(){ | ||
| 91 | + Map<String, String> result = new HashMap<>(); | ||
| 92 | + for (Personnel personnel : BasicData.perMap.values()) { | ||
| 93 | + result.put(personnel.getJobCode(), personnel.getMobile()); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + return result; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + public class PersonnelFieldFilter implements PropertyFilter{ | ||
| 100 | + | ||
| 101 | + String[] whiteList=new String[]{"jobCode", "personnelName", "brancheCompany"}; | ||
| 102 | + @Override | ||
| 103 | + public boolean apply(Object object, String name, Object value) { | ||
| 104 | + for(String f : whiteList){ | ||
| 105 | + if(name.equals(f)) | ||
| 106 | + return true; | ||
| 107 | + } | ||
| 108 | + return false; | ||
| 109 | + } | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + /** | ||
| 113 | + * 刷新车辆和设备号对照数据 | ||
| 114 | + * @return | ||
| 115 | + */ | ||
| 116 | + @RequestMapping(value = "/refresh_nbbm2Device", method = RequestMethod.POST) | ||
| 117 | + public Map<String, Object> refreshNbbm2DeviceId(){ | ||
| 118 | + Map<String, Object> rs = new HashMap<>(); | ||
| 119 | + try { | ||
| 120 | + dataLoader.loadDeviceInfo(); | ||
| 121 | + rs.put("status", ResponseCode.SUCCESS); | ||
| 122 | + }catch (Exception e){ | ||
| 123 | + rs.put("status", ResponseCode.ERROR); | ||
| 124 | + rs.put("msg", e.getMessage()); | ||
| 125 | + logger.error("", e); | ||
| 126 | + } | ||
| 127 | + return rs; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + /** | ||
| 131 | + * 刷新员工对照数据 | ||
| 132 | + * @return | ||
| 133 | + */ | ||
| 134 | + @RequestMapping(value = "/refresh_person_data", method = RequestMethod.POST) | ||
| 135 | + public Map<String, Object> refreshPersonData(){ | ||
| 136 | + Map<String, Object> rs = new HashMap<>(); | ||
| 137 | + try { | ||
| 138 | + dataLoader.loadPersonnelInfo(); | ||
| 139 | + rs.put("status", ResponseCode.SUCCESS); | ||
| 140 | + }catch (Exception e){ | ||
| 141 | + rs.put("status", ResponseCode.ERROR); | ||
| 142 | + rs.put("msg", e.getMessage()); | ||
| 143 | + logger.error("", e); | ||
| 144 | + } | ||
| 145 | + return rs; | ||
| 146 | + } | ||
| 147 | + | ||
| 148 | + /** | ||
| 149 | + * 车辆自编号和车牌号对照 | ||
| 150 | + * @return | ||
| 151 | + */ | ||
| 152 | + @RequestMapping("/nbbm2PlateNo") | ||
| 153 | + public Map<String, String> nbbm2PlateNo(){ | ||
| 154 | + return basicData.nbbmCompanyPlateMap; | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + | ||
| 158 | + /** | ||
| 159 | + * 获取线路配车信息 | ||
| 160 | + * @return | ||
| 161 | + */ | ||
| 162 | + @RequestMapping("/ccInfo") | ||
| 163 | + public Map<String, Collection<String>> ccInfo(){ | ||
| 164 | + | ||
| 165 | + ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create(); | ||
| 166 | + Set<String> ks = BasicData.nbbm2LineMap.keySet(); | ||
| 167 | + | ||
| 168 | + Line line; | ||
| 169 | + for(String nbbm : ks){ | ||
| 170 | + line = BasicData.nbbm2LineMap.get(nbbm); | ||
| 171 | + listMultimap.put(line.getLineCode(), nbbm); | ||
| 172 | + } | ||
| 173 | + return listMultimap.asMap(); | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + /** | ||
| 177 | + * 获取车辆信息 | ||
| 178 | + * @return | ||
| 179 | + */ | ||
| 180 | + @RequestMapping("/ccInfo/lineArray") | ||
| 181 | + public List<Map<String, String>> ccInfoByLine(@RequestParam String idx){ | ||
| 182 | + List<String> lines = Splitter.on(",").splitToList(idx); | ||
| 183 | + List<Map<String, String>> rs = new ArrayList<>(); | ||
| 184 | + Map<String, String> map; | ||
| 185 | + | ||
| 186 | + //ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create(); | ||
| 187 | + Set<String> ks = BasicData.nbbm2LineMap.keySet(); | ||
| 188 | + BiMap<String,String> nbbm2deviceMap = BasicData.deviceId2NbbmMap.inverse(); | ||
| 189 | + | ||
| 190 | + Line line; | ||
| 191 | + for(String nbbm : ks){ | ||
| 192 | + line = BasicData.nbbm2LineMap.get(nbbm); | ||
| 193 | + if(lines.contains(line.getLineCode())){ | ||
| 194 | + map = new HashMap<>(); | ||
| 195 | + map.put("nbbm", nbbm); | ||
| 196 | + map.put("deviceId", nbbm2deviceMap.get(nbbm)); | ||
| 197 | + map.put("lineName", line.getName()); | ||
| 198 | + map.put("lineCode", line.getLineCode()); | ||
| 199 | + rs.add(map); | ||
| 200 | + } | ||
| 201 | + } | ||
| 202 | + return rs; | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + /** | ||
| 206 | + * 获取站点和停车场历时公里对照表 | ||
| 207 | + * @param idx | ||
| 208 | + * @return | ||
| 209 | + */ | ||
| 210 | + @RequestMapping("/station2ParkData") | ||
| 211 | + public Map<String, Collection<StationToPark>> findStation2ParkData(@RequestParam String idx){ | ||
| 212 | + List<String> lines = Splitter.on(",").splitToList(idx); | ||
| 213 | + ArrayListMultimap<String, StationToPark> rs = ArrayListMultimap.create(); | ||
| 214 | + | ||
| 215 | + for(String lineCode : lines){ | ||
| 216 | + rs.putAll(lineCode, Station2ParkBuffer.get(lineCode)); | ||
| 217 | + } | ||
| 218 | + return rs.asMap(); | ||
| 219 | + } | ||
| 220 | + | ||
| 221 | + @RequestMapping(value = "/deleteStation2Park", method = RequestMethod.POST) | ||
| 222 | + public Map<String, Object> deleteStation2Park(@RequestParam String lineCode,@RequestParam Integer id){ | ||
| 223 | + return station2ParkBuffer.delete(lineCode, id); | ||
| 224 | + } | ||
| 225 | +} |
src/main/java/com/bsth/controller/realcontrol/dto/StationSpatialData.java
| 1 | -package com.bsth.controller.realcontrol.dto; | ||
| 2 | - | ||
| 3 | -/** | ||
| 4 | - * Created by panzhao on 2016/11/23. | ||
| 5 | - */ | ||
| 6 | -public class StationSpatialData { | ||
| 7 | - | ||
| 8 | - private String lineCode; | ||
| 9 | - | ||
| 10 | - private String stationName; | ||
| 11 | - | ||
| 12 | - private String stationCode; | ||
| 13 | - | ||
| 14 | - private String stationMark; | ||
| 15 | - | ||
| 16 | - private int directions; | ||
| 17 | - | ||
| 18 | - private Float distances; | ||
| 19 | - | ||
| 20 | - private Float toTime; | ||
| 21 | - | ||
| 22 | - private Integer versions; | ||
| 23 | - | ||
| 24 | - private Float gLonx; | ||
| 25 | - | ||
| 26 | - private Float gLaty; | ||
| 27 | - | ||
| 28 | - private Float radius; | ||
| 29 | - | ||
| 30 | - private String shapesType; | ||
| 31 | - | ||
| 32 | - private String gPolygonGrid; | ||
| 33 | - | ||
| 34 | - private Integer stationRouteCode; | ||
| 35 | - | ||
| 36 | - public String getLineCode() { | ||
| 37 | - return lineCode; | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - public void setLineCode(String lineCode) { | ||
| 41 | - this.lineCode = lineCode; | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - public String getStationName() { | ||
| 45 | - return stationName; | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - public void setStationName(String stationName) { | ||
| 49 | - this.stationName = stationName; | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - public String getStationCode() { | ||
| 53 | - return stationCode; | ||
| 54 | - } | ||
| 55 | - | ||
| 56 | - public void setStationCode(String stationCode) { | ||
| 57 | - this.stationCode = stationCode; | ||
| 58 | - } | ||
| 59 | - | ||
| 60 | - public String getStationMark() { | ||
| 61 | - return stationMark; | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - public void setStationMark(String stationMark) { | ||
| 65 | - this.stationMark = stationMark; | ||
| 66 | - } | ||
| 67 | - | ||
| 68 | - public int getDirections() { | ||
| 69 | - return directions; | ||
| 70 | - } | ||
| 71 | - | ||
| 72 | - public void setDirections(int directions) { | ||
| 73 | - this.directions = directions; | ||
| 74 | - } | ||
| 75 | - | ||
| 76 | - public Float getDistances() { | ||
| 77 | - return distances; | ||
| 78 | - } | ||
| 79 | - | ||
| 80 | - public void setDistances(Float distances) { | ||
| 81 | - this.distances = distances; | ||
| 82 | - } | ||
| 83 | - | ||
| 84 | - public Float getToTime() { | ||
| 85 | - return toTime; | ||
| 86 | - } | ||
| 87 | - | ||
| 88 | - public void setToTime(Float toTime) { | ||
| 89 | - this.toTime = toTime; | ||
| 90 | - } | ||
| 91 | - | ||
| 92 | - public Integer getVersions() { | ||
| 93 | - return versions; | ||
| 94 | - } | ||
| 95 | - | ||
| 96 | - public void setVersions(Integer versions) { | ||
| 97 | - this.versions = versions; | ||
| 98 | - } | ||
| 99 | - | ||
| 100 | - public Float getgLonx() { | ||
| 101 | - return gLonx; | ||
| 102 | - } | ||
| 103 | - | ||
| 104 | - public void setgLonx(Float gLonx) { | ||
| 105 | - this.gLonx = gLonx; | ||
| 106 | - } | ||
| 107 | - | ||
| 108 | - public Float getgLaty() { | ||
| 109 | - return gLaty; | ||
| 110 | - } | ||
| 111 | - | ||
| 112 | - public void setgLaty(Float gLaty) { | ||
| 113 | - this.gLaty = gLaty; | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | - public Float getRadius() { | ||
| 117 | - return radius; | ||
| 118 | - } | ||
| 119 | - | ||
| 120 | - public void setRadius(Float radius) { | ||
| 121 | - this.radius = radius; | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - public String getShapesType() { | ||
| 125 | - return shapesType; | ||
| 126 | - } | ||
| 127 | - | ||
| 128 | - public void setShapesType(String shapesType) { | ||
| 129 | - this.shapesType = shapesType; | ||
| 130 | - } | ||
| 131 | - | ||
| 132 | - public String getgPolygonGrid() { | ||
| 133 | - return gPolygonGrid; | ||
| 134 | - } | ||
| 135 | - | ||
| 136 | - public void setgPolygonGrid(String gPolygonGrid) { | ||
| 137 | - this.gPolygonGrid = gPolygonGrid; | ||
| 138 | - } | ||
| 139 | - | ||
| 140 | - public Integer getStationRouteCode() { | ||
| 141 | - return stationRouteCode; | ||
| 142 | - } | ||
| 143 | - | ||
| 144 | - public void setStationRouteCode(Integer stationRouteCode) { | ||
| 145 | - this.stationRouteCode = stationRouteCode; | ||
| 146 | - } | ||
| 147 | -} | 1 | +package com.bsth.controller.realcontrol.dto; |
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Created by panzhao on 2016/11/23. | ||
| 5 | + */ | ||
| 6 | +public class StationSpatialData { | ||
| 7 | + | ||
| 8 | + private Integer stationRouteId; | ||
| 9 | + | ||
| 10 | + private String lineCode; | ||
| 11 | + | ||
| 12 | + private String stationName; | ||
| 13 | + | ||
| 14 | + private String stationCode; | ||
| 15 | + | ||
| 16 | + private String stationMark; | ||
| 17 | + | ||
| 18 | + private int directions; | ||
| 19 | + | ||
| 20 | + private Float distances; | ||
| 21 | + | ||
| 22 | + private Float toTime; | ||
| 23 | + | ||
| 24 | + private Integer versions; | ||
| 25 | + | ||
| 26 | + private Float gLonx; | ||
| 27 | + | ||
| 28 | + private Float gLaty; | ||
| 29 | + | ||
| 30 | + private Float radius; | ||
| 31 | + | ||
| 32 | + private String shapesType; | ||
| 33 | + | ||
| 34 | + private String gPolygonGrid; | ||
| 35 | + | ||
| 36 | + private Integer stationRouteCode; | ||
| 37 | + | ||
| 38 | + public Integer getStationRouteId() { | ||
| 39 | + return stationRouteId; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + public void setStationRouteId(Integer stationRouteId) { | ||
| 43 | + this.stationRouteId = stationRouteId; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + public String getLineCode() { | ||
| 47 | + return lineCode; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + public void setLineCode(String lineCode) { | ||
| 51 | + this.lineCode = lineCode; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + public String getStationName() { | ||
| 55 | + return stationName; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public void setStationName(String stationName) { | ||
| 59 | + this.stationName = stationName; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + public String getStationCode() { | ||
| 63 | + return stationCode; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public void setStationCode(String stationCode) { | ||
| 67 | + this.stationCode = stationCode; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + public String getStationMark() { | ||
| 71 | + return stationMark; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + public void setStationMark(String stationMark) { | ||
| 75 | + this.stationMark = stationMark; | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + public int getDirections() { | ||
| 79 | + return directions; | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + public void setDirections(int directions) { | ||
| 83 | + this.directions = directions; | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + public Float getDistances() { | ||
| 87 | + return distances; | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + public void setDistances(Float distances) { | ||
| 91 | + this.distances = distances; | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + public Float getToTime() { | ||
| 95 | + return toTime; | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + public void setToTime(Float toTime) { | ||
| 99 | + this.toTime = toTime; | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + public Integer getVersions() { | ||
| 103 | + return versions; | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + public void setVersions(Integer versions) { | ||
| 107 | + this.versions = versions; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + public Float getgLonx() { | ||
| 111 | + return gLonx; | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + public void setgLonx(Float gLonx) { | ||
| 115 | + this.gLonx = gLonx; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + public Float getgLaty() { | ||
| 119 | + return gLaty; | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + public void setgLaty(Float gLaty) { | ||
| 123 | + this.gLaty = gLaty; | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + public Float getRadius() { | ||
| 127 | + return radius; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + public void setRadius(Float radius) { | ||
| 131 | + this.radius = radius; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + public String getShapesType() { | ||
| 135 | + return shapesType; | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + public void setShapesType(String shapesType) { | ||
| 139 | + this.shapesType = shapesType; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + public String getgPolygonGrid() { | ||
| 143 | + return gPolygonGrid; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + public void setgPolygonGrid(String gPolygonGrid) { | ||
| 147 | + this.gPolygonGrid = gPolygonGrid; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + public Integer getStationRouteCode() { | ||
| 151 | + return stationRouteCode; | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + public void setStationRouteCode(Integer stationRouteCode) { | ||
| 155 | + this.stationRouteCode = stationRouteCode; | ||
| 156 | + } | ||
| 157 | +} |
src/main/java/com/bsth/entity/Personnel.java
| @@ -79,6 +79,11 @@ public class Personnel extends BEntity { | @@ -79,6 +79,11 @@ public class Personnel extends BEntity { | ||
| 79 | private String remark; | 79 | private String remark; |
| 80 | 80 | ||
| 81 | /** | 81 | /** |
| 82 | + * 移动电话 | ||
| 83 | + */ | ||
| 84 | + private String mobile; | ||
| 85 | + | ||
| 86 | + /** | ||
| 82 | * 0为不锁定 1为锁定 | 87 | * 0为不锁定 1为锁定 |
| 83 | * 因人员与金蝶同步 但存在调度需要独立添加人员并不会被同步掉的情况 | 88 | * 因人员与金蝶同步 但存在调度需要独立添加人员并不会被同步掉的情况 |
| 84 | */ | 89 | */ |
| @@ -285,6 +290,14 @@ public class Personnel extends BEntity { | @@ -285,6 +290,14 @@ public class Personnel extends BEntity { | ||
| 285 | this.destroy = destroy; | 290 | this.destroy = destroy; |
| 286 | } | 291 | } |
| 287 | 292 | ||
| 293 | + public String getMobile() { | ||
| 294 | + return mobile; | ||
| 295 | + } | ||
| 296 | + | ||
| 297 | + public void setMobile(String mobile) { | ||
| 298 | + this.mobile = mobile; | ||
| 299 | + } | ||
| 300 | + | ||
| 288 | public Integer getLocked() { | 301 | public Integer getLocked() { |
| 289 | return locked; | 302 | return locked; |
| 290 | } | 303 | } |
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
| @@ -11,7 +11,11 @@ import com.bsth.repository.realcontrol.ChildTaskPlanRepository; | @@ -11,7 +11,11 @@ import com.bsth.repository.realcontrol.ChildTaskPlanRepository; | ||
| 11 | import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; | 11 | import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; |
| 12 | import com.bsth.service.impl.BaseServiceImpl; | 12 | import com.bsth.service.impl.BaseServiceImpl; |
| 13 | import com.bsth.service.realcontrol.ChildTaskPlanService; | 13 | import com.bsth.service.realcontrol.ChildTaskPlanService; |
| 14 | +import com.bsth.util.PrivilegeUtils; | ||
| 14 | import org.apache.commons.lang3.StringUtils; | 15 | import org.apache.commons.lang3.StringUtils; |
| 16 | +import org.joda.time.DateTime; | ||
| 17 | +import org.joda.time.format.DateTimeFormat; | ||
| 18 | +import org.joda.time.format.DateTimeFormatter; | ||
| 15 | import org.slf4j.Logger; | 19 | import org.slf4j.Logger; |
| 16 | import org.slf4j.LoggerFactory; | 20 | import org.slf4j.LoggerFactory; |
| 17 | import org.springframework.beans.factory.annotation.Autowired; | 21 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -231,7 +235,15 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Lon | @@ -231,7 +235,15 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Lon | ||
| 231 | public Map<String, Object> saveHistory(ChildTaskPlan t) { | 235 | public Map<String, Object> saveHistory(ChildTaskPlan t) { |
| 232 | Map<String, Object> rs = new HashMap(); | 236 | Map<String, Object> rs = new HashMap(); |
| 233 | try { | 237 | try { |
| 234 | - ScheduleRealInfo sch = t.getSchedule(); | 238 | + ScheduleRealInfo sch = scheduleRealInfoRepository.findById(t.getSchedule().getId()).get(); |
| 239 | + // 检查调度日期 | ||
| 240 | + DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd"); | ||
| 241 | + long today = formatter.parseMillis(new DateTime().toString("yyyy-MM-dd")), scheduleDate = formatter.parseMillis(sch.getScheduleDateStr()); | ||
| 242 | + if (today < scheduleDate || today - scheduleDate > 86400000 * PrivilegeUtils.getHistoryEditDays()) { | ||
| 243 | + rs.put("status", ResponseCode.ERROR); | ||
| 244 | + rs.put("msg", "无效的调度日期"); | ||
| 245 | + return rs; | ||
| 246 | + } | ||
| 235 | //保存起终点名称 | 247 | //保存起终点名称 |
| 236 | String prefix = sch.getXlBm() + "_" + sch.getXlDir() + "_"; | 248 | String prefix = sch.getXlBm() + "_" + sch.getXlDir() + "_"; |
| 237 | if(StringUtils.isEmpty(t.getStartStationName())) | 249 | if(StringUtils.isEmpty(t.getStartStationName())) |
| @@ -253,6 +265,25 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Lon | @@ -253,6 +265,25 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Lon | ||
| 253 | 265 | ||
| 254 | @Override | 266 | @Override |
| 255 | public Map<String, Object> delHistory(Long id) { | 267 | public Map<String, Object> delHistory(Long id) { |
| 256 | - return super.delete(id); | 268 | + Map<String, Object> rs = new HashMap(); |
| 269 | + try { | ||
| 270 | + ScheduleRealInfo sch = childTaskPlanRepository.findById(id).get().getSchedule(); | ||
| 271 | + // 检查调度日期 | ||
| 272 | + DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd"); | ||
| 273 | + long today = formatter.parseMillis(new DateTime().toString("yyyy-MM-dd")), scheduleDate = formatter.parseMillis(sch.getScheduleDateStr()); | ||
| 274 | + if (today < scheduleDate || today - scheduleDate > 86400000 * PrivilegeUtils.getHistoryEditDays()) { | ||
| 275 | + rs.put("status", ResponseCode.ERROR); | ||
| 276 | + rs.put("msg", "无效的调度日期"); | ||
| 277 | + return rs; | ||
| 278 | + } | ||
| 279 | + | ||
| 280 | + return super.delete(id); | ||
| 281 | + } catch (Exception e) { | ||
| 282 | + logger.error("", e); | ||
| 283 | + rs.put("status", ResponseCode.ERROR); | ||
| 284 | + rs.put("msg", e.getMessage()); | ||
| 285 | + } | ||
| 286 | + | ||
| 287 | + return rs; | ||
| 257 | } | 288 | } |
| 258 | } | 289 | } |
src/main/java/com/bsth/service/realcontrol/impl/RealMapServiceImpl.java
| @@ -42,7 +42,7 @@ public class RealMapServiceImpl implements RealMapService { | @@ -42,7 +42,7 @@ public class RealMapServiceImpl implements RealMapService { | ||
| 42 | } | 42 | } |
| 43 | inStr = " (" + inStr.substring(1) + ")"; | 43 | inStr = " (" + inStr.substring(1) + ")"; |
| 44 | 44 | ||
| 45 | - String sql = "select r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,ST_X(s.CENTER_POINT_WGS) G_LONX,ST_Y(s.CENTER_POINT_WGS) G_LATY,r.RADIUS,r.SHAPED_TYPE shapes_type,ST_AsText(r.BUFFER_POLYGON_WGS) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0"; | 45 | + String sql = "select r.ID STATION_ROUTE_ID,r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,ST_X(s.CENTER_POINT_WGS) G_LONX,ST_Y(s.CENTER_POINT_WGS) G_LATY,r.RADIUS,r.SHAPED_TYPE shapes_type,ST_AsText(r.BUFFER_POLYGON_WGS) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0"; |
| 46 | 46 | ||
| 47 | List<StationSpatialData> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(StationSpatialData.class)); | 47 | List<StationSpatialData> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(StationSpatialData.class)); |
| 48 | rs.put("status", ResponseCode.SUCCESS); | 48 | rs.put("status", ResponseCode.SUCCESS); |
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/edit.html
| @@ -458,7 +458,11 @@ | @@ -458,7 +458,11 @@ | ||
| 458 | <div class="form-group"> | 458 | <div class="form-group"> |
| 459 | <label class="col-md-2 control-label">是否氢能源车:</label> | 459 | <label class="col-md-2 control-label">是否氢能源车:</label> |
| 460 | <div class="col-md-3"> | 460 | <div class="col-md-3"> |
| 461 | - <sa-Radiogroup model="ctrl.busInfoForSave.hydrogen" dicgroup="truefalseType" name="hydrogen"></sa-Radiogroup> | 461 | + <sa-Radiogroup model="ctrl.busInfoForSave.hydrogen" dicgroup="truefalseType" name="hydrogen" required></sa-Radiogroup> |
| 462 | + </div> | ||
| 463 | + <!-- 隐藏快,显示验证信息 --> | ||
| 464 | + <div class="alert alert-danger well-sm" ng-show="myForm.hydrogen.$error.required"> | ||
| 465 | + 是否氢能源车必须选择 | ||
| 462 | </div> | 466 | </div> |
| 463 | </div> | 467 | </div> |
| 464 | 468 | ||
| @@ -488,4 +492,4 @@ | @@ -488,4 +492,4 @@ | ||
| 488 | 492 | ||
| 489 | </div> | 493 | </div> |
| 490 | 494 | ||
| 491 | -</div> | ||
| 492 | \ No newline at end of file | 495 | \ No newline at end of file |
| 496 | +</div> |
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/form.html
| @@ -450,7 +450,11 @@ | @@ -450,7 +450,11 @@ | ||
| 450 | <div class="form-group"> | 450 | <div class="form-group"> |
| 451 | <label class="col-md-2 control-label">是否氢能源车:</label> | 451 | <label class="col-md-2 control-label">是否氢能源车:</label> |
| 452 | <div class="col-md-3"> | 452 | <div class="col-md-3"> |
| 453 | - <sa-Radiogroup model="ctrl.busInfoForSave.hydrogen" dicgroup="truefalseType" name="hydrogen"></sa-Radiogroup> | 453 | + <sa-Radiogroup model="ctrl.busInfoForSave.hydrogen" dicgroup="truefalseType" name="hydrogen" required></sa-Radiogroup> |
| 454 | + </div> | ||
| 455 | + <!-- 隐藏快,显示验证信息 --> | ||
| 456 | + <div class="alert alert-danger well-sm" ng-show="myForm.hydrogen.$error.required"> | ||
| 457 | + 是否氢能源车必须选择 | ||
| 454 | </div> | 458 | </div> |
| 455 | </div> | 459 | </div> |
| 456 | 460 | ||
| @@ -481,4 +485,4 @@ | @@ -481,4 +485,4 @@ | ||
| 481 | </div> | 485 | </div> |
| 482 | 486 | ||
| 483 | 487 | ||
| 484 | -</div> | ||
| 485 | \ No newline at end of file | 488 | \ No newline at end of file |
| 489 | +</div> |
src/main/resources/static/real_control_v2/fragments/home/tooltip.html
| @@ -37,6 +37,11 @@ | @@ -37,6 +37,11 @@ | ||
| 37 | <div> | 37 | <div> |
| 38 | <span class="field">驾驶员:</span>{{sch.jGh}}/{{sch.jName}} | 38 | <span class="field">驾驶员:</span>{{sch.jGh}}/{{sch.jName}} |
| 39 | </div> | 39 | </div> |
| 40 | + {{if sch.mobile!=null && sch.mobile!=""}} | ||
| 41 | + <div> | ||
| 42 | + <span class="field">电话:</span>{{sch.mobile}} | ||
| 43 | + </div> | ||
| 44 | + {{/if}} | ||
| 40 | {{if sch.sGh!=null && sch.sGh!=""}} | 45 | {{if sch.sGh!=null && sch.sGh!=""}} |
| 41 | <div> | 46 | <div> |
| 42 | <span class="field">售票员:</span>{{sch.sGh}}/{{sch.sName}} | 47 | <span class="field">售票员:</span>{{sch.sGh}}/{{sch.sName}} |
src/main/resources/static/real_control_v2/js/data/data_basic.js
| @@ -2,9 +2,9 @@ | @@ -2,9 +2,9 @@ | ||
| 2 | 2 | ||
| 3 | var gb_data_basic = (function () { | 3 | var gb_data_basic = (function () { |
| 4 | 4 | ||
| 5 | - var stationRoutes, lineCode2NameAll, lineInformations, nbbm2deviceMap, device2nbbmMap, allPersonnel, svgAttrs; | ||
| 6 | - var ep = EventProxy.create("stationRoutes", "lineCode2Name", "lineInformations", "nbbm2deviceId", "all_personnel", "svg_attrs" | ||
| 7 | - , function (routes, code2Name, informations, nbbm2device, all_personnel, svgAttrMap) { | 5 | + var stationRoutes, lineCode2NameAll, lineInformations, nbbm2deviceMap, device2nbbmMap, allPersonnel, svgAttrs, gh2mobileMap; |
| 6 | + var ep = EventProxy.create("stationRoutes", "lineCode2Name", "lineInformations", "nbbm2deviceId", "all_personnel", "svg_attrs", "all_mobile" | ||
| 7 | + , function (routes, code2Name, informations, nbbm2device, all_personnel, svgAttrMap, all_mobile) { | ||
| 8 | stationRoutes = routes; | 8 | stationRoutes = routes; |
| 9 | lineCode2NameAll = code2Name; | 9 | lineCode2NameAll = code2Name; |
| 10 | lineInformations = informations; | 10 | lineInformations = informations; |
| @@ -12,6 +12,7 @@ var gb_data_basic = (function () { | @@ -12,6 +12,7 @@ var gb_data_basic = (function () { | ||
| 12 | device2nbbmMap = gb_common.inverse(nbbm2deviceMap); | 12 | device2nbbmMap = gb_common.inverse(nbbm2deviceMap); |
| 13 | allPersonnel = all_personnel; | 13 | allPersonnel = all_personnel; |
| 14 | svgAttrs = svgAttrMap; | 14 | svgAttrs = svgAttrMap; |
| 15 | + gh2mobileMap = all_mobile; | ||
| 15 | gb_main_ep.emitLater('data-basic'); | 16 | gb_main_ep.emitLater('data-basic'); |
| 16 | }); | 17 | }); |
| 17 | 18 | ||
| @@ -71,6 +72,12 @@ var gb_data_basic = (function () { | @@ -71,6 +72,12 @@ var gb_data_basic = (function () { | ||
| 71 | }); | 72 | }); |
| 72 | } | 73 | } |
| 73 | 74 | ||
| 75 | + (function loadAllPersonnelMobile() { | ||
| 76 | + $.get('/basic/allPersonnelMobile', function (rs) { | ||
| 77 | + ep.emit('all_mobile', rs); | ||
| 78 | + }); | ||
| 79 | + })(); | ||
| 80 | + | ||
| 74 | var carparks = {}; | 81 | var carparks = {}; |
| 75 | //停车场数据 | 82 | //停车场数据 |
| 76 | gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) { | 83 | gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) { |
| @@ -259,6 +266,9 @@ var gb_data_basic = (function () { | @@ -259,6 +266,9 @@ var gb_data_basic = (function () { | ||
| 259 | }, | 266 | }, |
| 260 | reload_stat_park_data: function () { | 267 | reload_stat_park_data: function () { |
| 261 | load_stat_park_data(); | 268 | load_stat_park_data(); |
| 269 | + }, | ||
| 270 | + gh2mobileMap: function () { | ||
| 271 | + return gh2mobileMap; | ||
| 262 | } | 272 | } |
| 263 | }; | 273 | }; |
| 264 | })(); | 274 | })(); |
src/main/resources/static/real_control_v2/js/data/data_gps.js
| 1 | -/* gps 数据管理模块 */ | ||
| 2 | - | ||
| 3 | -var gb_data_gps = (function () { | ||
| 4 | - | ||
| 5 | - //fixed time refresh delay | ||
| 6 | - var delay = 1000 * 7; | ||
| 7 | - //deviceId ——> gps | ||
| 8 | - var realData = {}; | ||
| 9 | - //refresh after callback | ||
| 10 | - var refreshEventCallbacks = []; | ||
| 11 | - //register callback function | ||
| 12 | - var registerCallback = function (cb) { | ||
| 13 | - if (cb) | ||
| 14 | - refreshEventCallbacks.push(cb); | ||
| 15 | - }; | ||
| 16 | - | ||
| 17 | - var refresh = function (cb) { | ||
| 18 | - $.ajax({ | ||
| 19 | - url: '/gps/real/line', | ||
| 20 | - data: {lineCodes: gb_data_basic.line_idx}, | ||
| 21 | - dataType: 'json', | ||
| 22 | - success: function (rs) { | ||
| 23 | - //用定时的gps来检测session断开 | ||
| 24 | - if(rs.status && rs.status==407){ | ||
| 25 | - location.href = '/login.html'; | ||
| 26 | - return; | ||
| 27 | - } | ||
| 28 | - refreshData(rs); | ||
| 29 | - cb(); | ||
| 30 | - }, | ||
| 31 | - error: function (xr, t) { | ||
| 32 | - notify_err('刷新GPS失败,稍后重试' + t); | ||
| 33 | - cb(); | ||
| 34 | - } | ||
| 35 | - }); | ||
| 36 | - }; | ||
| 37 | - | ||
| 38 | - var refreshData = function (rs) { | ||
| 39 | - var old, addArr = [], | ||
| 40 | - upArr = [], | ||
| 41 | - upDownChange = []; | ||
| 42 | - | ||
| 43 | - var schArray; | ||
| 44 | - $.each(rs.gpsList, function () { | ||
| 45 | - old = realData[this.deviceId]; | ||
| 46 | - if (old) { | ||
| 47 | - if (this.timestamp > old.timestamp) { | ||
| 48 | - if (old.upDown != this.upDown) | ||
| 49 | - upDownChange.push(this); | ||
| 50 | - else | ||
| 51 | - upArr.push(this); | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | - } else | ||
| 55 | - addArr.push(this); | ||
| 56 | - | ||
| 57 | - //班次信息 | ||
| 58 | - if (this.schId) { | ||
| 59 | - schArray = gb_schedule_table.findScheduleByLine(this.lineId); | ||
| 60 | - if (schArray) | ||
| 61 | - this.sch = schArray[this.schId]; | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - //时间格式化 | ||
| 65 | - this.dateStr = moment(this.timestamp).format('YYYY-MM-DD HH:mm:ss'); | ||
| 66 | - realData[this.deviceId] = this; | ||
| 67 | - }); | ||
| 68 | - | ||
| 69 | - //console.log('add array size: ' + addArr.length, 'up array size: ' + upArr.length); | ||
| 70 | - //CCCallFuncN | ||
| 71 | - $.each(refreshEventCallbacks, function (i, cb) { | ||
| 72 | - cb(addArr, upArr, upDownChange, rs.overspeedList); | ||
| 73 | - }); | ||
| 74 | - | ||
| 75 | - //班次站点编码检查信息 | ||
| 76 | - if(rs['scis'] && rs['scis'].length > 0) | ||
| 77 | - gb_schedule_table.putSCodeErrorInfo(rs['scis']); | ||
| 78 | - | ||
| 79 | - //超速数据回调 | ||
| 80 | - //console.log('超速,,,', rs.overspeedList); | ||
| 81 | - | ||
| 82 | - }; | ||
| 83 | - | ||
| 84 | - var startFixedTime; | ||
| 85 | - var fixedTimeRefresh = function () { | ||
| 86 | - if (startFixedTime) | ||
| 87 | - return; | ||
| 88 | - startFixedTime = true; | ||
| 89 | - | ||
| 90 | - (function () { | ||
| 91 | - var f = arguments.callee; | ||
| 92 | - refresh(function () { | ||
| 93 | - setTimeout(f, delay); | ||
| 94 | - }); | ||
| 95 | - })(); | ||
| 96 | - }; | ||
| 97 | - | ||
| 98 | - var gpsByLineCode = function (lineCode) { | ||
| 99 | - var rs = []; | ||
| 100 | - for (var device in realData) { | ||
| 101 | - if (realData[device].lineId == lineCode) | ||
| 102 | - rs.push(realData[device]); | ||
| 103 | - } | ||
| 104 | - return rs; | ||
| 105 | - }; | ||
| 106 | - | ||
| 107 | - var findOne = function (deviceId) { | ||
| 108 | - return realData[deviceId]; | ||
| 109 | - }; | ||
| 110 | - | ||
| 111 | - var findGpsByNbbm = function (nbbm) { | ||
| 112 | - return realData[gb_data_basic.nbbm2deviceMap()[nbbm]]; | ||
| 113 | - }; | ||
| 114 | - | ||
| 115 | - /** | ||
| 116 | - * 设备掉线事件 | ||
| 117 | - */ | ||
| 118 | - var deviceOffline = function (gps) { | ||
| 119 | - $.each(offlineCallbacks, function (i, cb) { | ||
| 120 | - cb(gps); | ||
| 121 | - }); | ||
| 122 | - }; | ||
| 123 | - | ||
| 124 | - //注册掉线事件回调函数 | ||
| 125 | - var offlineCallbacks = []; | ||
| 126 | - var registerOfflineCb = function (cb) { | ||
| 127 | - if (cb) | ||
| 128 | - offlineCallbacks.push(cb); | ||
| 129 | - }; | ||
| 130 | - | ||
| 131 | - return { | ||
| 132 | - fixedTimeRefresh: fixedTimeRefresh, | ||
| 133 | - registerCallback: registerCallback, | ||
| 134 | - allGps: realData, | ||
| 135 | - gpsByLineCode: gpsByLineCode, | ||
| 136 | - findOne: findOne, | ||
| 137 | - findGpsByNbbm: findGpsByNbbm, | ||
| 138 | - deviceOffline: deviceOffline, | ||
| 139 | - registerOfflineCb: registerOfflineCb | ||
| 140 | - }; | ||
| 141 | -})(); | 1 | +/* gps 数据管理模块 */ |
| 2 | + | ||
| 3 | +var gb_data_gps = (function () { | ||
| 4 | + | ||
| 5 | + //fixed time refresh delay | ||
| 6 | + var delay = 1000 * 7; | ||
| 7 | + //deviceId ——> gps | ||
| 8 | + var realData = {}; | ||
| 9 | + //refresh after callback | ||
| 10 | + var refreshEventCallbacks = []; | ||
| 11 | + //register callback function | ||
| 12 | + var registerCallback = function (cb) { | ||
| 13 | + if (cb) | ||
| 14 | + refreshEventCallbacks.push(cb); | ||
| 15 | + }; | ||
| 16 | + | ||
| 17 | + var refresh = function (cb) { | ||
| 18 | + $.ajax({ | ||
| 19 | + url: '/gps/real/line', | ||
| 20 | + data: {lineCodes: gb_data_basic.line_idx}, | ||
| 21 | + dataType: 'json', | ||
| 22 | + success: function (rs) { | ||
| 23 | + //用定时的gps来检测session断开 | ||
| 24 | + if(rs.status && rs.status==407){ | ||
| 25 | + location.href = '/login.html'; | ||
| 26 | + return; | ||
| 27 | + } | ||
| 28 | + refreshData(rs); | ||
| 29 | + cb(); | ||
| 30 | + }, | ||
| 31 | + error: function (xr, t) { | ||
| 32 | + notify_err('刷新GPS失败,稍后重试' + t); | ||
| 33 | + cb(); | ||
| 34 | + } | ||
| 35 | + }); | ||
| 36 | + }; | ||
| 37 | + | ||
| 38 | + var refreshData = function (rs) { | ||
| 39 | + var old, addArr = [], | ||
| 40 | + upArr = [], | ||
| 41 | + upDownChange = []; | ||
| 42 | + | ||
| 43 | + var schArray; | ||
| 44 | + $.each(rs.gpsList, function () { | ||
| 45 | + old = realData[this.deviceId]; | ||
| 46 | + if (old) { | ||
| 47 | + if (this.timestamp > old.timestamp) { | ||
| 48 | + if (old.upDown != this.upDown) | ||
| 49 | + upDownChange.push(this); | ||
| 50 | + else | ||
| 51 | + upArr.push(this); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + } else | ||
| 55 | + addArr.push(this); | ||
| 56 | + | ||
| 57 | + //班次信息 | ||
| 58 | + if (this.schId) { | ||
| 59 | + schArray = gb_schedule_table.findScheduleByLine(this.lineId); | ||
| 60 | + if (schArray) { | ||
| 61 | + var sch = schArray[this.schId]; | ||
| 62 | + if (sch) { | ||
| 63 | + this.sch = sch; | ||
| 64 | + this.sch.mobile = gb_data_basic.gh2mobileMap()[sch.gsBm + '-' + sch.jGh]; | ||
| 65 | + } | ||
| 66 | + } | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + //时间格式化 | ||
| 70 | + this.dateStr = moment(this.timestamp).format('YYYY-MM-DD HH:mm:ss'); | ||
| 71 | + realData[this.deviceId] = this; | ||
| 72 | + }); | ||
| 73 | + | ||
| 74 | + //console.log('add array size: ' + addArr.length, 'up array size: ' + upArr.length); | ||
| 75 | + //CCCallFuncN | ||
| 76 | + $.each(refreshEventCallbacks, function (i, cb) { | ||
| 77 | + cb(addArr, upArr, upDownChange, rs.overspeedList); | ||
| 78 | + }); | ||
| 79 | + | ||
| 80 | + //班次站点编码检查信息 | ||
| 81 | + if(rs['scis'] && rs['scis'].length > 0) | ||
| 82 | + gb_schedule_table.putSCodeErrorInfo(rs['scis']); | ||
| 83 | + | ||
| 84 | + //超速数据回调 | ||
| 85 | + //console.log('超速,,,', rs.overspeedList); | ||
| 86 | + | ||
| 87 | + }; | ||
| 88 | + | ||
| 89 | + var startFixedTime; | ||
| 90 | + var fixedTimeRefresh = function () { | ||
| 91 | + if (startFixedTime) | ||
| 92 | + return; | ||
| 93 | + startFixedTime = true; | ||
| 94 | + | ||
| 95 | + (function () { | ||
| 96 | + var f = arguments.callee; | ||
| 97 | + refresh(function () { | ||
| 98 | + setTimeout(f, delay); | ||
| 99 | + }); | ||
| 100 | + })(); | ||
| 101 | + }; | ||
| 102 | + | ||
| 103 | + var gpsByLineCode = function (lineCode) { | ||
| 104 | + var rs = []; | ||
| 105 | + for (var device in realData) { | ||
| 106 | + if (realData[device].lineId == lineCode) | ||
| 107 | + rs.push(realData[device]); | ||
| 108 | + } | ||
| 109 | + return rs; | ||
| 110 | + }; | ||
| 111 | + | ||
| 112 | + var findOne = function (deviceId) { | ||
| 113 | + return realData[deviceId]; | ||
| 114 | + }; | ||
| 115 | + | ||
| 116 | + var findGpsByNbbm = function (nbbm) { | ||
| 117 | + return realData[gb_data_basic.nbbm2deviceMap()[nbbm]]; | ||
| 118 | + }; | ||
| 119 | + | ||
| 120 | + /** | ||
| 121 | + * 设备掉线事件 | ||
| 122 | + */ | ||
| 123 | + var deviceOffline = function (gps) { | ||
| 124 | + $.each(offlineCallbacks, function (i, cb) { | ||
| 125 | + cb(gps); | ||
| 126 | + }); | ||
| 127 | + }; | ||
| 128 | + | ||
| 129 | + //注册掉线事件回调函数 | ||
| 130 | + var offlineCallbacks = []; | ||
| 131 | + var registerOfflineCb = function (cb) { | ||
| 132 | + if (cb) | ||
| 133 | + offlineCallbacks.push(cb); | ||
| 134 | + }; | ||
| 135 | + | ||
| 136 | + return { | ||
| 137 | + fixedTimeRefresh: fixedTimeRefresh, | ||
| 138 | + registerCallback: registerCallback, | ||
| 139 | + allGps: realData, | ||
| 140 | + gpsByLineCode: gpsByLineCode, | ||
| 141 | + findOne: findOne, | ||
| 142 | + findGpsByNbbm: findGpsByNbbm, | ||
| 143 | + deviceOffline: deviceOffline, | ||
| 144 | + registerOfflineCb: registerOfflineCb | ||
| 145 | + }; | ||
| 146 | +})(); |
src/main/resources/static/real_control_v2/mapmonitor/fragments/map_infowindow.html
| @@ -28,6 +28,21 @@ | @@ -28,6 +28,21 @@ | ||
| 28 | {{/if}} | 28 | {{/if}} |
| 29 | </p> | 29 | </p> |
| 30 | <p>设备号:{{deviceId}}</p> | 30 | <p>设备号:{{deviceId}}</p> |
| 31 | + {{if sch!=null}} | ||
| 32 | + <div> | ||
| 33 | + <span class="field">驾驶员:</span>{{sch.jGh}}/{{sch.jName}} | ||
| 34 | + </div> | ||
| 35 | + {{if sch.mobile!=null && sch.mobile!=""}} | ||
| 36 | + <div> | ||
| 37 | + <span class="field">电话:</span>{{sch.mobile}} | ||
| 38 | + </div> | ||
| 39 | + {{/if}} | ||
| 40 | + {{if sch.sGh!=null && sch.sGh!=""}} | ||
| 41 | + <div> | ||
| 42 | + <span class="field">售票员:</span>{{sch.sGh}}/{{sch.sName}} | ||
| 43 | + </div> | ||
| 44 | + {{/if}} | ||
| 45 | + {{/if}} | ||
| 31 | <p>速度:{{speed>99?'..':speed}}</p> | 46 | <p>速度:{{speed>99?'..':speed}}</p> |
| 32 | <p>角度:{{direction}}</p> | 47 | <p>角度:{{direction}}</p> |
| 33 | <p>经度:{{lon}}</p> | 48 | <p>经度:{{lon}}</p> |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/baidu.js
| @@ -282,7 +282,7 @@ var gb_map_baidu = (function(){ | @@ -282,7 +282,7 @@ var gb_map_baidu = (function(){ | ||
| 282 | //绘制多边形 | 282 | //绘制多边形 |
| 283 | drawPolygon: function(opt){ | 283 | drawPolygon: function(opt){ |
| 284 | var station = opt.station | 284 | var station = opt.station |
| 285 | - ,code = station.stationCode; | 285 | + ,code = station.stationRouteId; |
| 286 | if(electronicFences[code]){ | 286 | if(electronicFences[code]){ |
| 287 | electronicFences[code].show(); | 287 | electronicFences[code].show(); |
| 288 | return; | 288 | return; |
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/gaode.js
| @@ -168,7 +168,7 @@ var gb_map_gaode = (function() { | @@ -168,7 +168,7 @@ var gb_map_gaode = (function() { | ||
| 168 | //绘制多边形 | 168 | //绘制多边形 |
| 169 | drawPolygon: function(opt){ | 169 | drawPolygon: function(opt){ |
| 170 | var station = opt.station | 170 | var station = opt.station |
| 171 | - ,code = station.stationCode; | 171 | + ,code = station.stationRouteId; |
| 172 | if(electronicFences[code]){ | 172 | if(electronicFences[code]){ |
| 173 | electronicFences[code].show(); | 173 | electronicFences[code].show(); |
| 174 | return; | 174 | return; |
src/main/resources/static/real_control_v2/mapmonitor/js/map_overlay_manager.js
| 1 | -var gb_map_overlay_mge = (function () { | ||
| 2 | - | ||
| 3 | - var storage = window.localStorage; | ||
| 4 | - | ||
| 5 | - var temps; | ||
| 6 | - $.get('/real_control_v2/mapmonitor/fragments/map_infowindow.html', function (dom) { | ||
| 7 | - temps = gb_common.compileTempByDom(dom, {compress: true}); | ||
| 8 | - }); | ||
| 9 | - | ||
| 10 | - var $abnormNoticePanel = $('.c_b_abnorm_notice'); | ||
| 11 | - var gpsRefresh = function (addArr, upArr, upDownChange, overspeedList) { | ||
| 12 | - if(!$('.main-container .map-panel').is(':visible')) | ||
| 13 | - return; | ||
| 14 | - //如果地图正在重绘,暂时不刷新GPS | ||
| 15 | - if(reDrawing) | ||
| 16 | - return; | ||
| 17 | - //var all = addArr.concat(upArr).concat(upDownChange); | ||
| 18 | - gpsRefreshAll(addArr, upArr, upDownChange); | ||
| 19 | - | ||
| 20 | - //渲染超速信息 | ||
| 21 | - overspeedList.sort(overspeed_sort); | ||
| 22 | - var htmlStr = template('map_abnorm_overspeed_list-temp', {list: overspeedList}); | ||
| 23 | - $abnormNoticePanel.html(htmlStr).scrollTop($abnormNoticePanel[0].scrollHeight); | ||
| 24 | - }; | ||
| 25 | - | ||
| 26 | - var overspeed_sort = function (a, b) { | ||
| 27 | - if(a.ets && !b.ets) | ||
| 28 | - return -1; | ||
| 29 | - if(!a.ets && b.ets) | ||
| 30 | - return 1; | ||
| 31 | - return a.st - b.st; | ||
| 32 | - }; | ||
| 33 | - | ||
| 34 | - /** | ||
| 35 | - * 超速点击 | ||
| 36 | - */ | ||
| 37 | - $abnormNoticePanel.on('click', '.c_b_item', function () { | ||
| 38 | - var nbbm = $(this).data('nbbm'); | ||
| 39 | - gb_map_gps_tree.selectitem(null, {value: nbbm}); | ||
| 40 | - }); | ||
| 41 | - | ||
| 42 | - var gpsRefreshAll = function (addArr, upArr, upDownChange) { | ||
| 43 | - //更新设备树菜单 | ||
| 44 | - if(gb_map_gps_tree.readyStatus()){ | ||
| 45 | - gb_map_gps_tree.create_node(addArr); | ||
| 46 | - gb_map_gps_tree.update_node(upArr); | ||
| 47 | - gb_map_gps_tree.changeUpDown(upDownChange); | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | - //更新地图 | ||
| 51 | - var all = addArr.concat(upArr).concat(upDownChange); | ||
| 52 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: all}); | ||
| 53 | - }; | ||
| 54 | - | ||
| 55 | - var reload_gps = function () { | ||
| 56 | - var array = gb_common.get_vals(gb_data_gps.allGps); | ||
| 57 | - gb_map_gps_tree.refresh(); | ||
| 58 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: array}); | ||
| 59 | - }; | ||
| 60 | - | ||
| 61 | - var deviceFilter = function (node) { | ||
| 62 | - return node.a_attr && node.a_attr.type=='device'; | ||
| 63 | - }; | ||
| 64 | - | ||
| 65 | - //绘制线路走向 | ||
| 66 | - var drawAllSection=function () { | ||
| 67 | - //绘制线路走向 | ||
| 68 | - var lines=JSON.parse(storage.getItem('lineControlItems')); | ||
| 69 | - $.each(lines, function () { | ||
| 70 | - //从storage里获取路由数据 | ||
| 71 | - var lineCode=this.lineCode; | ||
| 72 | - var route = JSON.parse(storage.getItem(lineCode + '_route')); | ||
| 73 | - //上行 | ||
| 74 | - gb_map_imap.call('drawLine', { | ||
| 75 | - route: route, | ||
| 76 | - style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.up}, | ||
| 77 | - id: lineCode+'_0', | ||
| 78 | - upDown: 0, | ||
| 79 | - hide: true | ||
| 80 | - }); | ||
| 81 | - //下行 | ||
| 82 | - gb_map_imap.call('drawLine', { | ||
| 83 | - route: route, | ||
| 84 | - style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.down}, | ||
| 85 | - id: lineCode+'_1', | ||
| 86 | - upDown: 1, | ||
| 87 | - hide: true | ||
| 88 | - }); | ||
| 89 | - | ||
| 90 | - }); | ||
| 91 | - }; | ||
| 92 | - | ||
| 93 | - //根据选中项显示路段 | ||
| 94 | - var showSection = function (chs) { | ||
| 95 | - var idx = {}; | ||
| 96 | - $.each(chs, function () { | ||
| 97 | - idx[this.data.lineId+'_'+this.data.upDown]=1; | ||
| 98 | - }); | ||
| 99 | - | ||
| 100 | - gb_map_imap.call('refreshPolyline', {idx: gb_common.get_keys(idx)}); | ||
| 101 | - }; | ||
| 102 | - | ||
| 103 | - | ||
| 104 | - //是否正在重绘 | ||
| 105 | - var reDrawing; | ||
| 106 | - var reDraw = function () { | ||
| 107 | - reDrawing = true; | ||
| 108 | - | ||
| 109 | - gb_map_imap.call('clearAll'); | ||
| 110 | - | ||
| 111 | - try{ | ||
| 112 | - drawAllSection(); | ||
| 113 | - }catch (e){ | ||
| 114 | - console.log(e); | ||
| 115 | - } | ||
| 116 | - //重绘GPS | ||
| 117 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | ||
| 118 | - | ||
| 119 | - showOverlayByChecks(); | ||
| 120 | - //显示路段 | ||
| 121 | - showSection(getCheckedDevice()); | ||
| 122 | - | ||
| 123 | - reDrawing = false; | ||
| 124 | - }; | ||
| 125 | - | ||
| 126 | - //重绘GPS | ||
| 127 | - var reDrawGps = function () { | ||
| 128 | - reDrawing = true; | ||
| 129 | - gb_map_imap.call('clearAllGps'); | ||
| 130 | - //重绘GPS | ||
| 131 | - gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | ||
| 132 | - | ||
| 133 | - showOverlayByChecks(); | ||
| 134 | - reDrawing = false; | ||
| 135 | - }; | ||
| 136 | - | ||
| 137 | - var init = function () { | ||
| 138 | - reDraw(); | ||
| 139 | - //注册GPS刷新事件 | ||
| 140 | - gb_data_gps.registerCallback(gpsRefresh); | ||
| 141 | - | ||
| 142 | - centerToRational(); | ||
| 143 | - }; | ||
| 144 | - | ||
| 145 | - | ||
| 146 | - var showOverlayByChecks = function () { | ||
| 147 | - var chs = getCheckedDevice(),chsMap={}; | ||
| 148 | - $.each(chs, function () { | ||
| 149 | - chsMap[this.a_attr.device]=true; | ||
| 150 | - }); | ||
| 151 | - | ||
| 152 | - gb_map_imap.call('showGpsMarker', {chs: chsMap}); | ||
| 153 | - | ||
| 154 | - //路段 | ||
| 155 | - showSection(chs); | ||
| 156 | - | ||
| 157 | - }; | ||
| 158 | - | ||
| 159 | - var _focus = function (deviceId) { | ||
| 160 | - gb_map_imap.call('goToMarker', {deviceId: deviceId}); | ||
| 161 | - //打开信息窗口 | ||
| 162 | - gb_map_imap.call('openWindow',{deviceId: deviceId}); | ||
| 163 | - }; | ||
| 164 | - | ||
| 165 | - //站点获得焦点 | ||
| 166 | - var _focus_station = function (station) { | ||
| 167 | - gb_map_imap.call('goToStation', station.stationCode); | ||
| 168 | - }; | ||
| 169 | - | ||
| 170 | - //停车场获得焦点 | ||
| 171 | - var _focus_carpark = function (carpark) { | ||
| 172 | - //console.log('_focus_carpark', carpark); | ||
| 173 | - gb_map_imap.call('goToCarpark', carpark.parkCode); | ||
| 174 | - }; | ||
| 175 | - | ||
| 176 | - function getCheckedDevice() { | ||
| 177 | - return gb_map_gps_tree.getChecked().filter(deviceFilter); | ||
| 178 | - } | ||
| 179 | - | ||
| 180 | - //绘制站点 | ||
| 181 | - var drawStation = function () { | ||
| 182 | - var list = gb_map_spatial_data.getCheckedStation(); | ||
| 183 | - //绘制站点 | ||
| 184 | - gb_map_imap.call('drawStationMarker', {list: list}); | ||
| 185 | - //绘制电子围栏 | ||
| 186 | - drawElectronicFence(list); | ||
| 187 | - }; | ||
| 188 | - | ||
| 189 | - //绘制电子围栏 | ||
| 190 | - var drawElectronicFence = function (list) { | ||
| 191 | - var config = gb_map_config.getConfig().spatialData; | ||
| 192 | - if(!config.electronicFence) | ||
| 193 | - return; | ||
| 194 | - | ||
| 195 | - if(!list){ | ||
| 196 | - list = gb_map_spatial_data.getCheckedStation(); | ||
| 197 | - } | ||
| 198 | - | ||
| 199 | - | ||
| 200 | - gb_map_imap.call('hideAllCircles'); | ||
| 201 | - $.each(list, function () { | ||
| 202 | - fun=this.shapesType=='r'?drawCircle:drawPolygon; | ||
| 203 | - fun(this); | ||
| 204 | - }); | ||
| 205 | - }; | ||
| 206 | - | ||
| 207 | - //绘制停车场 | ||
| 208 | - var drawCarpark = function () { | ||
| 209 | - var list = gb_map_spatial_data.gteCheckedCarpark(); | ||
| 210 | - gb_map_imap.call('drawCarpark', {list: list}); | ||
| 211 | - }; | ||
| 212 | - | ||
| 213 | - var drawCircle=function (data) { | ||
| 214 | - var config = gb_map_config.getConfig().section.color; | ||
| 215 | - var color = data.directions==0?config.up:config.down; | ||
| 216 | - | ||
| 217 | - var opt = { | ||
| 218 | - lon: data.lon, | ||
| 219 | - lat: data.lat, | ||
| 220 | - text: data.stationName, | ||
| 221 | - color: color, | ||
| 222 | - weight: 2, | ||
| 223 | - radius: parseFloat(data.radius), | ||
| 224 | - id: data.stationCode | ||
| 225 | - }; | ||
| 226 | - | ||
| 227 | - gb_map_imap.call('drawCircle', opt); | ||
| 228 | - }; | ||
| 229 | - | ||
| 230 | - var drawPolygon=function (data) { | ||
| 231 | - var config = gb_map_config.getConfig().section.color; | ||
| 232 | - var color = data.directions==0?config.up:config.down; | ||
| 233 | - | ||
| 234 | - var opt = { | ||
| 235 | - //id:data.stationCode, | ||
| 236 | - color: color, | ||
| 237 | - weight: 2, | ||
| 238 | - station: data | ||
| 239 | - }; | ||
| 240 | - | ||
| 241 | - gb_map_imap.call('drawPolygon', opt); | ||
| 242 | - }; | ||
| 243 | - | ||
| 244 | - //地图居中至合理的位置 | ||
| 245 | - var centerToRational=function () { | ||
| 246 | - var chs=getCheckedDevice(); | ||
| 247 | - if(chs && chs.length > 0){ | ||
| 248 | - var id=chs[0].data.lineId+'_'+chs[0].data.upDown; | ||
| 249 | - gb_map_imap.call('centerToLine', {id: id}); | ||
| 250 | - } | ||
| 251 | - }; | ||
| 252 | - | ||
| 253 | - return { | ||
| 254 | - init: init, | ||
| 255 | - refresh: showOverlayByChecks, | ||
| 256 | - _focus: _focus, | ||
| 257 | - _focus_station: _focus_station, | ||
| 258 | - _focus_carpark: _focus_carpark, | ||
| 259 | - map_gps_win_temp: function (data) { | ||
| 260 | - var url='http://58.247.254.118:9999/pf/getPassengerFlow?deviceId='+data.deviceId; | ||
| 261 | - console.log(url); | ||
| 262 | - $.ajax({async:false,url:url, success:function(res) { | ||
| 263 | - console.log(res); | ||
| 264 | - data.num=res.num; | ||
| 265 | - data.photo=res.photo; | ||
| 266 | - }}) | ||
| 267 | - console.log("数据回显"); | ||
| 268 | - return temps['map-win-gps-detail-temp'](data); | ||
| 269 | - }, | ||
| 270 | - map_station_win_temp: function (data) { | ||
| 271 | - return temps['map-win-station-detail-temp'](data); | ||
| 272 | - }, | ||
| 273 | - map_carpark_win_temp: function (data) { | ||
| 274 | - return temps['map-win-carpark-detail-temp'](data); | ||
| 275 | - }, | ||
| 276 | - reDraw: reDraw, | ||
| 277 | - reDrawGps: reDrawGps, | ||
| 278 | - getCheckedDevice: getCheckedDevice, | ||
| 279 | - drawStation: drawStation, | ||
| 280 | - drawElectronicFence: drawElectronicFence, | ||
| 281 | - drawCarpark: drawCarpark, | ||
| 282 | - centerToRational:centerToRational, | ||
| 283 | - reload_gps: reload_gps | ||
| 284 | - }; | 1 | +var gb_map_overlay_mge = (function () { |
| 2 | + | ||
| 3 | + var storage = window.localStorage; | ||
| 4 | + | ||
| 5 | + var temps; | ||
| 6 | + $.get('/real_control_v2/mapmonitor/fragments/map_infowindow.html', function (dom) { | ||
| 7 | + temps = gb_common.compileTempByDom(dom, {compress: true}); | ||
| 8 | + }); | ||
| 9 | + | ||
| 10 | + var $abnormNoticePanel = $('.c_b_abnorm_notice'); | ||
| 11 | + var gpsRefresh = function (addArr, upArr, upDownChange, overspeedList) { | ||
| 12 | + if(!$('.main-container .map-panel').is(':visible')) | ||
| 13 | + return; | ||
| 14 | + //如果地图正在重绘,暂时不刷新GPS | ||
| 15 | + if(reDrawing) | ||
| 16 | + return; | ||
| 17 | + //var all = addArr.concat(upArr).concat(upDownChange); | ||
| 18 | + gpsRefreshAll(addArr, upArr, upDownChange); | ||
| 19 | + | ||
| 20 | + //渲染超速信息 | ||
| 21 | + overspeedList.sort(overspeed_sort); | ||
| 22 | + var htmlStr = template('map_abnorm_overspeed_list-temp', {list: overspeedList}); | ||
| 23 | + $abnormNoticePanel.html(htmlStr).scrollTop($abnormNoticePanel[0].scrollHeight); | ||
| 24 | + }; | ||
| 25 | + | ||
| 26 | + var overspeed_sort = function (a, b) { | ||
| 27 | + if(a.ets && !b.ets) | ||
| 28 | + return -1; | ||
| 29 | + if(!a.ets && b.ets) | ||
| 30 | + return 1; | ||
| 31 | + return a.st - b.st; | ||
| 32 | + }; | ||
| 33 | + | ||
| 34 | + /** | ||
| 35 | + * 超速点击 | ||
| 36 | + */ | ||
| 37 | + $abnormNoticePanel.on('click', '.c_b_item', function () { | ||
| 38 | + var nbbm = $(this).data('nbbm'); | ||
| 39 | + gb_map_gps_tree.selectitem(null, {value: nbbm}); | ||
| 40 | + }); | ||
| 41 | + | ||
| 42 | + var gpsRefreshAll = function (addArr, upArr, upDownChange) { | ||
| 43 | + //更新设备树菜单 | ||
| 44 | + if(gb_map_gps_tree.readyStatus()){ | ||
| 45 | + gb_map_gps_tree.create_node(addArr); | ||
| 46 | + gb_map_gps_tree.update_node(upArr); | ||
| 47 | + gb_map_gps_tree.changeUpDown(upDownChange); | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + //更新地图 | ||
| 51 | + var all = addArr.concat(upArr).concat(upDownChange); | ||
| 52 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: all}); | ||
| 53 | + }; | ||
| 54 | + | ||
| 55 | + var reload_gps = function () { | ||
| 56 | + var array = gb_common.get_vals(gb_data_gps.allGps); | ||
| 57 | + gb_map_gps_tree.refresh(); | ||
| 58 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: array}); | ||
| 59 | + }; | ||
| 60 | + | ||
| 61 | + var deviceFilter = function (node) { | ||
| 62 | + return node.a_attr && node.a_attr.type=='device'; | ||
| 63 | + }; | ||
| 64 | + | ||
| 65 | + //绘制线路走向 | ||
| 66 | + var drawAllSection=function () { | ||
| 67 | + //绘制线路走向 | ||
| 68 | + var lines=JSON.parse(storage.getItem('lineControlItems')); | ||
| 69 | + $.each(lines, function () { | ||
| 70 | + //从storage里获取路由数据 | ||
| 71 | + var lineCode=this.lineCode; | ||
| 72 | + var route = JSON.parse(storage.getItem(lineCode + '_route')); | ||
| 73 | + //上行 | ||
| 74 | + gb_map_imap.call('drawLine', { | ||
| 75 | + route: route, | ||
| 76 | + style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.up}, | ||
| 77 | + id: lineCode+'_0', | ||
| 78 | + upDown: 0, | ||
| 79 | + hide: true | ||
| 80 | + }); | ||
| 81 | + //下行 | ||
| 82 | + gb_map_imap.call('drawLine', { | ||
| 83 | + route: route, | ||
| 84 | + style: {strokeWeight:6, strokeColor: gb_map_config.getConfig().section.color.down}, | ||
| 85 | + id: lineCode+'_1', | ||
| 86 | + upDown: 1, | ||
| 87 | + hide: true | ||
| 88 | + }); | ||
| 89 | + | ||
| 90 | + }); | ||
| 91 | + }; | ||
| 92 | + | ||
| 93 | + //根据选中项显示路段 | ||
| 94 | + var showSection = function (chs) { | ||
| 95 | + var idx = {}; | ||
| 96 | + $.each(chs, function () { | ||
| 97 | + idx[this.data.lineId+'_'+this.data.upDown]=1; | ||
| 98 | + }); | ||
| 99 | + | ||
| 100 | + gb_map_imap.call('refreshPolyline', {idx: gb_common.get_keys(idx)}); | ||
| 101 | + }; | ||
| 102 | + | ||
| 103 | + | ||
| 104 | + //是否正在重绘 | ||
| 105 | + var reDrawing; | ||
| 106 | + var reDraw = function () { | ||
| 107 | + reDrawing = true; | ||
| 108 | + | ||
| 109 | + gb_map_imap.call('clearAll'); | ||
| 110 | + | ||
| 111 | + try{ | ||
| 112 | + drawAllSection(); | ||
| 113 | + }catch (e){ | ||
| 114 | + console.log(e); | ||
| 115 | + } | ||
| 116 | + //重绘GPS | ||
| 117 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | ||
| 118 | + | ||
| 119 | + showOverlayByChecks(); | ||
| 120 | + //显示路段 | ||
| 121 | + showSection(getCheckedDevice()); | ||
| 122 | + | ||
| 123 | + reDrawing = false; | ||
| 124 | + }; | ||
| 125 | + | ||
| 126 | + //重绘GPS | ||
| 127 | + var reDrawGps = function () { | ||
| 128 | + reDrawing = true; | ||
| 129 | + gb_map_imap.call('clearAllGps'); | ||
| 130 | + //重绘GPS | ||
| 131 | + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)}); | ||
| 132 | + | ||
| 133 | + showOverlayByChecks(); | ||
| 134 | + reDrawing = false; | ||
| 135 | + }; | ||
| 136 | + | ||
| 137 | + var init = function () { | ||
| 138 | + reDraw(); | ||
| 139 | + //注册GPS刷新事件 | ||
| 140 | + gb_data_gps.registerCallback(gpsRefresh); | ||
| 141 | + | ||
| 142 | + centerToRational(); | ||
| 143 | + }; | ||
| 144 | + | ||
| 145 | + | ||
| 146 | + var showOverlayByChecks = function () { | ||
| 147 | + var chs = getCheckedDevice(),chsMap={}; | ||
| 148 | + $.each(chs, function () { | ||
| 149 | + chsMap[this.a_attr.device]=true; | ||
| 150 | + }); | ||
| 151 | + | ||
| 152 | + gb_map_imap.call('showGpsMarker', {chs: chsMap}); | ||
| 153 | + | ||
| 154 | + //路段 | ||
| 155 | + showSection(chs); | ||
| 156 | + | ||
| 157 | + }; | ||
| 158 | + | ||
| 159 | + var _focus = function (deviceId) { | ||
| 160 | + gb_map_imap.call('goToMarker', {deviceId: deviceId}); | ||
| 161 | + //打开信息窗口 | ||
| 162 | + gb_map_imap.call('openWindow',{deviceId: deviceId}); | ||
| 163 | + }; | ||
| 164 | + | ||
| 165 | + //站点获得焦点 | ||
| 166 | + var _focus_station = function (station) { | ||
| 167 | + gb_map_imap.call('goToStation', station.stationCode); | ||
| 168 | + }; | ||
| 169 | + | ||
| 170 | + //停车场获得焦点 | ||
| 171 | + var _focus_carpark = function (carpark) { | ||
| 172 | + //console.log('_focus_carpark', carpark); | ||
| 173 | + gb_map_imap.call('goToCarpark', carpark.parkCode); | ||
| 174 | + }; | ||
| 175 | + | ||
| 176 | + function getCheckedDevice() { | ||
| 177 | + return gb_map_gps_tree.getChecked().filter(deviceFilter); | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + //绘制站点 | ||
| 181 | + var drawStation = function () { | ||
| 182 | + var list = gb_map_spatial_data.getCheckedStation(); | ||
| 183 | + //绘制站点 | ||
| 184 | + gb_map_imap.call('drawStationMarker', {list: list}); | ||
| 185 | + //绘制电子围栏 | ||
| 186 | + drawElectronicFence(list); | ||
| 187 | + }; | ||
| 188 | + | ||
| 189 | + //绘制电子围栏 | ||
| 190 | + var drawElectronicFence = function (list) { | ||
| 191 | + var config = gb_map_config.getConfig().spatialData; | ||
| 192 | + if(!config.electronicFence) | ||
| 193 | + return; | ||
| 194 | + | ||
| 195 | + if(!list){ | ||
| 196 | + list = gb_map_spatial_data.getCheckedStation(); | ||
| 197 | + } | ||
| 198 | + | ||
| 199 | + | ||
| 200 | + gb_map_imap.call('hideAllCircles'); | ||
| 201 | + $.each(list, function () { | ||
| 202 | + fun=this.shapesType=='r'?drawCircle:drawPolygon; | ||
| 203 | + fun(this); | ||
| 204 | + }); | ||
| 205 | + }; | ||
| 206 | + | ||
| 207 | + //绘制停车场 | ||
| 208 | + var drawCarpark = function () { | ||
| 209 | + var list = gb_map_spatial_data.gteCheckedCarpark(); | ||
| 210 | + gb_map_imap.call('drawCarpark', {list: list}); | ||
| 211 | + }; | ||
| 212 | + | ||
| 213 | + var drawCircle=function (data) { | ||
| 214 | + var config = gb_map_config.getConfig().section.color; | ||
| 215 | + var color = data.directions==0?config.up:config.down; | ||
| 216 | + | ||
| 217 | + var opt = { | ||
| 218 | + lon: data.lon, | ||
| 219 | + lat: data.lat, | ||
| 220 | + text: data.stationName, | ||
| 221 | + color: color, | ||
| 222 | + weight: 2, | ||
| 223 | + radius: parseFloat(data.radius), | ||
| 224 | + id: data.stationRouteId | ||
| 225 | + }; | ||
| 226 | + | ||
| 227 | + gb_map_imap.call('drawCircle', opt); | ||
| 228 | + }; | ||
| 229 | + | ||
| 230 | + var drawPolygon=function (data) { | ||
| 231 | + var config = gb_map_config.getConfig().section.color; | ||
| 232 | + var color = data.directions==0?config.up:config.down; | ||
| 233 | + | ||
| 234 | + var opt = { | ||
| 235 | + //id:data.stationCode, | ||
| 236 | + color: color, | ||
| 237 | + weight: 2, | ||
| 238 | + station: data | ||
| 239 | + }; | ||
| 240 | + | ||
| 241 | + gb_map_imap.call('drawPolygon', opt); | ||
| 242 | + }; | ||
| 243 | + | ||
| 244 | + //地图居中至合理的位置 | ||
| 245 | + var centerToRational=function () { | ||
| 246 | + var chs=getCheckedDevice(); | ||
| 247 | + if(chs && chs.length > 0){ | ||
| 248 | + var id=chs[0].data.lineId+'_'+chs[0].data.upDown; | ||
| 249 | + gb_map_imap.call('centerToLine', {id: id}); | ||
| 250 | + } | ||
| 251 | + }; | ||
| 252 | + | ||
| 253 | + return { | ||
| 254 | + init: init, | ||
| 255 | + refresh: showOverlayByChecks, | ||
| 256 | + _focus: _focus, | ||
| 257 | + _focus_station: _focus_station, | ||
| 258 | + _focus_carpark: _focus_carpark, | ||
| 259 | + map_gps_win_temp: function (data) { | ||
| 260 | + var url='http://58.247.254.118:9999/pf/getPassengerFlow?deviceId='+data.deviceId; | ||
| 261 | + console.log(url); | ||
| 262 | + $.ajax({async:false,url:url, success:function(res) { | ||
| 263 | + console.log(res); | ||
| 264 | + data.num=res.num; | ||
| 265 | + data.photo=res.photo; | ||
| 266 | + }}) | ||
| 267 | + console.log("数据回显"); | ||
| 268 | + return temps['map-win-gps-detail-temp'](data); | ||
| 269 | + }, | ||
| 270 | + map_station_win_temp: function (data) { | ||
| 271 | + return temps['map-win-station-detail-temp'](data); | ||
| 272 | + }, | ||
| 273 | + map_carpark_win_temp: function (data) { | ||
| 274 | + return temps['map-win-carpark-detail-temp'](data); | ||
| 275 | + }, | ||
| 276 | + reDraw: reDraw, | ||
| 277 | + reDrawGps: reDrawGps, | ||
| 278 | + getCheckedDevice: getCheckedDevice, | ||
| 279 | + drawStation: drawStation, | ||
| 280 | + drawElectronicFence: drawElectronicFence, | ||
| 281 | + drawCarpark: drawCarpark, | ||
| 282 | + centerToRational:centerToRational, | ||
| 283 | + reload_gps: reload_gps | ||
| 284 | + }; | ||
| 285 | })(); | 285 | })(); |
| 286 | \ No newline at end of file | 286 | \ No newline at end of file |