Commit c8cc89c26aa554d26022a6c4545552605d1b51fd
Update
Showing
33 changed files
with
1490 additions
and
1142 deletions
src/main/java/com/bsth/controller/DownloadController.java
| ... | ... | @@ -31,7 +31,7 @@ public class DownloadController |
| 31 | 31 | @RequestMapping("download") |
| 32 | 32 | public ResponseEntity<byte[]> download(String fileName) throws IOException { |
| 33 | 33 | fileName = fileName+".xls"; |
| 34 | - String moudelPath = this.getClass().getResource("/").getPath()+ "static\\pages\\forms\\export\\"+fileName; | |
| 34 | + String moudelPath = this.getClass().getResource("/").getPath()+ "static/pages/forms/export/"+fileName; | |
| 35 | 35 | System.out.println(moudelPath); |
| 36 | 36 | // String path="D:\\export\\target\\"+jName+".xls"; |
| 37 | 37 | File file=new File(moudelPath); | ... | ... |
src/main/java/com/bsth/controller/forms/ExportController.java
| ... | ... | @@ -34,6 +34,7 @@ import com.bsth.util.ReportUtils; |
| 34 | 34 | @RequestMapping("mcy_export") |
| 35 | 35 | public class ExportController { |
| 36 | 36 | |
| 37 | + | |
| 37 | 38 | @Autowired |
| 38 | 39 | FormsService formsService; |
| 39 | 40 | |
| ... | ... | @@ -71,9 +72,9 @@ public class ExportController { |
| 71 | 72 | |
| 72 | 73 | try { |
| 73 | 74 | listI.add(resList.iterator()); |
| 74 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 75 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\linepasswengerflow.xls", | |
| 76 | - path + "export\\线路客流量报表" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls"); | |
| 75 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 76 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/linepasswengerflow.xls", | |
| 77 | + path + "export/线路客流量报表" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls"); | |
| 77 | 78 | } catch (Exception e) { |
| 78 | 79 | e.printStackTrace(); |
| 79 | 80 | } |
| ... | ... | @@ -111,9 +112,9 @@ public class ExportController { |
| 111 | 112 | |
| 112 | 113 | try { |
| 113 | 114 | listI.add(resList.iterator()); |
| 114 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 115 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\shifday.xls", | |
| 116 | - path + "export\\班次车辆人员日报表" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls"); | |
| 115 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 116 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/shifday.xls", | |
| 117 | + path + "export/班次车辆人员日报表" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls"); | |
| 117 | 118 | } catch (Exception e) { |
| 118 | 119 | e.printStackTrace(); |
| 119 | 120 | } |
| ... | ... | @@ -148,9 +149,9 @@ public class ExportController { |
| 148 | 149 | try { |
| 149 | 150 | listI.add(resList.iterator()); |
| 150 | 151 | |
| 151 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 152 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\shiftuehiclemanth.xls", path | |
| 153 | - + "export\\班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); | |
| 152 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 153 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/shiftuehiclemanth.xls", path | |
| 154 | + + "export/班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); | |
| 154 | 155 | |
| 155 | 156 | } catch (Exception e) { |
| 156 | 157 | e.printStackTrace(); |
| ... | ... | @@ -177,6 +178,9 @@ public class ExportController { |
| 177 | 178 | m.put("clzbh", l.getClzbh()); |
| 178 | 179 | m.put("jsy", l.getJsy()); |
| 179 | 180 | m.put("jName", l.getjName()); |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 180 | 184 | m.put("sgh", l.getSgh()); |
| 181 | 185 | m.put("sName", l.getsName()); |
| 182 | 186 | m.put("jhlc", l.getJhlc()); |
| ... | ... | @@ -186,14 +190,15 @@ public class ExportController { |
| 186 | 190 | m.put("unyyyl", l.getUnyyyl()); |
| 187 | 191 | m.put("jhjl", l.getJhjl()); |
| 188 | 192 | resList.add(m); |
| 193 | + | |
| 189 | 194 | i++; |
| 190 | 195 | } |
| 191 | 196 | |
| 192 | 197 | try { |
| 193 | 198 | listI.add(resList.iterator()); |
| 194 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 195 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\singledata.xls", | |
| 196 | - path + "export\\路单数据" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); | |
| 199 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 200 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/singledata.xls", | |
| 201 | + path + "export/路单数据" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); | |
| 197 | 202 | } catch (Exception e) { |
| 198 | 203 | e.printStackTrace(); |
| 199 | 204 | } |
| ... | ... | @@ -231,9 +236,9 @@ public class ExportController { |
| 231 | 236 | |
| 232 | 237 | try { |
| 233 | 238 | listI.add(resList.iterator()); |
| 234 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 235 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\vehicleloading.xls", | |
| 236 | - path + "export\\车辆加注" + sdfSimple.format(sdfMonth.parse(map.get("data").toString())) + ".xls"); | |
| 239 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 240 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/vehicleloading.xls", | |
| 241 | + path + "export/车辆加注" + sdfSimple.format(sdfMonth.parse(map.get("data").toString())) + ".xls"); | |
| 237 | 242 | } catch (Exception e) { |
| 238 | 243 | e.printStackTrace(); |
| 239 | 244 | } |
| ... | ... | @@ -264,8 +269,8 @@ public class ExportController { |
| 264 | 269 | |
| 265 | 270 | try { |
| 266 | 271 | listI.add(resList.iterator()); |
| 267 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 268 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\operationservice.xls", path + "export\\运营服务阶段报表" | |
| 272 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 273 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/operationservice.xls", path + "export/运营服务阶段报表" | |
| 269 | 274 | + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); |
| 270 | 275 | } catch (Exception e) { |
| 271 | 276 | e.printStackTrace(); |
| ... | ... | @@ -303,8 +308,8 @@ public class ExportController { |
| 303 | 308 | |
| 304 | 309 | try { |
| 305 | 310 | listI.add(resList.iterator()); |
| 306 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 307 | - ee.excelReplace(listI, new Object[] { map }, path + "mould\\changetochange.xls", path + "export\\换人换车情况日统计" | |
| 311 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 312 | + ee.excelReplace(listI, new Object[] { map }, path + "mould/changetochange.xls", path + "export/换人换车情况日统计" | |
| 308 | 313 | + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); |
| 309 | 314 | } catch (Exception e) { |
| 310 | 315 | e.printStackTrace(); |
| ... | ... | @@ -383,8 +388,8 @@ public class ExportController { |
| 383 | 388 | |
| 384 | 389 | try { |
| 385 | 390 | listI.add(resList.iterator()); |
| 386 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 387 | - ee.excelReplace(listI, new Object[] { map1 }, path + "mould\\turnoutrate.xls", path + "export\\营运线路出车率统计表" | |
| 391 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 392 | + ee.excelReplace(listI, new Object[] { map1 }, path + "mould/turnoutrate.xls", path + "export/营运线路出车率统计表" | |
| 388 | 393 | + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); |
| 389 | 394 | } catch (Exception e) { |
| 390 | 395 | e.printStackTrace(); |
| ... | ... | @@ -458,8 +463,8 @@ public class ExportController { |
| 458 | 463 | |
| 459 | 464 | try { |
| 460 | 465 | listI.add(resList.iterator()); |
| 461 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 462 | - ee.excelReplace(listI, new Object[] { map1 }, path + "mould\\executionrate.xls", path + "export\\班次执行率统计表" | |
| 466 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 467 | + ee.excelReplace(listI, new Object[] { map1 }, path + "mould/executionrate.xls", path + "export/班次执行率统计表" | |
| 463 | 468 | + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); |
| 464 | 469 | } catch (Exception e) { |
| 465 | 470 | e.printStackTrace(); |
| ... | ... | @@ -527,8 +532,8 @@ public class ExportController { |
| 527 | 532 | |
| 528 | 533 | try { |
| 529 | 534 | listI.add(resList.iterator()); |
| 530 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 531 | - ee.excelReplace(listI, new Object[] { map1 }, path + "mould\\allline.xls", path + "export\\营运线路名称统计表" | |
| 535 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 536 | + ee.excelReplace(listI, new Object[] { map1 }, path + "mould/allline.xls", path + "export/营运线路名称统计表" | |
| 532 | 537 | + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); |
| 533 | 538 | } catch (Exception e) { |
| 534 | 539 | e.printStackTrace(); |
| ... | ... | @@ -579,8 +584,8 @@ public class ExportController { |
| 579 | 584 | m.put("date", map.get("date").toString()); |
| 580 | 585 | try { |
| 581 | 586 | listI.add(resList.iterator()); |
| 582 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 583 | - ee.excelReplace(listI, new Object[] { m }, path + "mould\\daily.xls", path + "export\\班次日报表" | |
| 587 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 588 | + ee.excelReplace(listI, new Object[] { m }, path + "mould/daily.xls", path + "export/班次日报表" | |
| 584 | 589 | + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls"); |
| 585 | 590 | } catch (Exception e) { |
| 586 | 591 | e.printStackTrace(); | ... | ... |
src/main/java/com/bsth/controller/oil/YlbController.java
| ... | ... | @@ -186,9 +186,9 @@ public class YlbController extends BaseController<Ylb, Integer>{ |
| 186 | 186 | } |
| 187 | 187 | try { |
| 188 | 188 | listI.add(resList.iterator()); |
| 189 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 190 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\list.xls", | |
| 191 | - path+"export\\进出场存油量" + sdfSimple.format(sdfMonth.parse(map.get("rq").toString())) + ".xls"); | |
| 189 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 190 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/list.xls", | |
| 191 | + path+"export/进出场存油量" + sdfSimple.format(sdfMonth.parse(map.get("rq").toString())) + ".xls"); | |
| 192 | 192 | } catch (Exception e) { |
| 193 | 193 | e.printStackTrace(); |
| 194 | 194 | } | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| ... | ... | @@ -340,8 +340,9 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 340 | 340 | } |
| 341 | 341 | |
| 342 | 342 | @RequestMapping(value="/statisticsDaily") |
| 343 | - public List<Map<String,Object>> statisticsDaily(@RequestParam String line,@RequestParam String date,@RequestParam String xlName){ | |
| 344 | - return scheduleRealInfoService.statisticsDaily(line, date,xlName); | |
| 343 | + public List<Map<String,Object>> statisticsDaily(@RequestParam String line, @RequestParam String date, | |
| 344 | + @RequestParam String xlName, @RequestParam String type){ | |
| 345 | + return scheduleRealInfoService.statisticsDaily(line, date, xlName, type); | |
| 345 | 346 | } |
| 346 | 347 | |
| 347 | 348 | @RequestMapping(value="/MapById",method = RequestMethod.GET) | ... | ... |
src/main/java/com/bsth/data/gpsdata/GpsEntity.java
| ... | ... | @@ -67,16 +67,10 @@ public class GpsEntity { |
| 67 | 67 | /** 当前执行班次ID */ |
| 68 | 68 | private Long schId; |
| 69 | 69 | |
| 70 | - /** 是否异常数据 */ | |
| 71 | - private boolean abnormal; | |
| 72 | -/* | |
| 73 | - private int valid;*/ | |
| 74 | - | |
| 75 | - private int version; | |
| 70 | + /** 是否是不完整的数据 */ | |
| 71 | + private boolean incomplete; | |
| 76 | 72 | |
| 77 | - /** 是否起终点站 | |
| 78 | - private boolean sEPoint; | |
| 79 | - */ | |
| 73 | + private int version; | |
| 80 | 74 | |
| 81 | 75 | /** 0: 站外 1:站内 2:场内 */ |
| 82 | 76 | private int instation; |
| ... | ... | @@ -88,6 +82,12 @@ public class GpsEntity { |
| 88 | 82 | /** 状态 */ |
| 89 | 83 | private String signalState = "normal"; |
| 90 | 84 | |
| 85 | + /** 异常状态 */ | |
| 86 | + private String abnormalStatus; | |
| 87 | + | |
| 88 | + /** 越界距离 */ | |
| 89 | + private double outOfBoundDistance; | |
| 90 | + | |
| 91 | 91 | public Integer getCompanyCode() { |
| 92 | 92 | return companyCode; |
| 93 | 93 | } |
| ... | ... | @@ -241,14 +241,6 @@ public class GpsEntity { |
| 241 | 241 | this.station = station; |
| 242 | 242 | } |
| 243 | 243 | |
| 244 | - public boolean isAbnormal() { | |
| 245 | - return abnormal; | |
| 246 | - } | |
| 247 | - | |
| 248 | - public void setAbnormal(boolean abnormal) { | |
| 249 | - this.abnormal = abnormal; | |
| 250 | - } | |
| 251 | - | |
| 252 | 244 | public String getSignalState() { |
| 253 | 245 | return signalState; |
| 254 | 246 | } |
| ... | ... | @@ -264,4 +256,28 @@ public class GpsEntity { |
| 264 | 256 | public void setInstation(int instation) { |
| 265 | 257 | this.instation = instation; |
| 266 | 258 | } |
| 259 | + | |
| 260 | + public String getAbnormalStatus() { | |
| 261 | + return abnormalStatus; | |
| 262 | + } | |
| 263 | + | |
| 264 | + public void setAbnormalStatus(String abnormalStatus) { | |
| 265 | + this.abnormalStatus = abnormalStatus; | |
| 266 | + } | |
| 267 | + | |
| 268 | + public boolean isIncomplete() { | |
| 269 | + return incomplete; | |
| 270 | + } | |
| 271 | + | |
| 272 | + public void setIncomplete(boolean incomplete) { | |
| 273 | + this.incomplete = incomplete; | |
| 274 | + } | |
| 275 | + | |
| 276 | + public double getOutOfBoundDistance() { | |
| 277 | + return outOfBoundDistance; | |
| 278 | + } | |
| 279 | + | |
| 280 | + public void setOutOfBoundDistance(double outOfBoundDistance) { | |
| 281 | + this.outOfBoundDistance = outOfBoundDistance; | |
| 282 | + } | |
| 267 | 283 | } | ... | ... |
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
| ... | ... | @@ -122,7 +122,7 @@ public class GpsRealData implements CommandLineRunner { |
| 122 | 122 | for (String device : set) { |
| 123 | 123 | gps = gpsMap.get(device); |
| 124 | 124 | //过滤异常GPS数据 |
| 125 | - if (gps == null || gps.isAbnormal()) | |
| 125 | + if (gps == null || gps.isIncomplete()) | |
| 126 | 126 | continue; |
| 127 | 127 | |
| 128 | 128 | sch = dayOfSchedule.execPlanMap().get(gps.getNbbm()); |
| ... | ... | @@ -220,7 +220,7 @@ public class GpsRealData implements CommandLineRunner { |
| 220 | 220 | |
| 221 | 221 | nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId()); |
| 222 | 222 | if (StringUtils.isBlank(nbbm)) |
| 223 | - gps.setAbnormal(true);//标记为异常数据 | |
| 223 | + gps.setIncomplete(true);//标记为异常数据 | |
| 224 | 224 | else |
| 225 | 225 | gps.setNbbm(nbbm); |
| 226 | 226 | //有更新的点位 | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/GeoCacheData.java
| ... | ... | @@ -45,6 +45,9 @@ public class GeoCacheData { |
| 45 | 45 | //停车场 |
| 46 | 46 | public static Map<String, Polygon> tccMap; |
| 47 | 47 | |
| 48 | + //线路限速信息 | |
| 49 | + private static Map<String, Double> speedLimitMap; | |
| 50 | + | |
| 48 | 51 | @Autowired |
| 49 | 52 | JdbcTemplate jdbcTemplate; |
| 50 | 53 | |
| ... | ... | @@ -94,6 +97,14 @@ public class GeoCacheData { |
| 94 | 97 | return null; |
| 95 | 98 | } |
| 96 | 99 | |
| 100 | + public static Double speedLimit(String lineCode){ | |
| 101 | + return speedLimitMap.get(lineCode); | |
| 102 | + } | |
| 103 | + | |
| 104 | + public static List<LineString> getLineStringList(GpsEntity gps){ | |
| 105 | + return sectionCacheMap.get(gps.getLineId() + "_" + gps.getUpDown()); | |
| 106 | + } | |
| 107 | + | |
| 97 | 108 | public static List<StationRoute> midwayStation(String lineCode, int directions, String sCode, String eCode) { |
| 98 | 109 | List<StationRoute> list = getStationRoute(lineCode, directions), rs = new ArrayList<>(); |
| 99 | 110 | |
| ... | ... | @@ -113,8 +124,72 @@ public class GeoCacheData { |
| 113 | 124 | return tccMap.get(code); |
| 114 | 125 | } |
| 115 | 126 | |
| 127 | + GeometryFactory geometryFactory = new GeometryFactory(); | |
| 116 | 128 | public void loadData() { |
| 117 | - final GeometryFactory geometryFactory = new GeometryFactory(); | |
| 129 | + loadStationRoutesData(); | |
| 130 | + loadTccMapData(); | |
| 131 | + loadSpeedLimit(); | |
| 132 | + | |
| 133 | + //加载路段信息 | |
| 134 | + loadRoadsData(); | |
| 135 | + } | |
| 136 | + | |
| 137 | + private void loadRoadsData() { | |
| 138 | + String sql = "select r.LINE_CODE,r.SECTION_CODE,r.SECTIONROUTE_CODE,s.SECTION_NAME,ST_AsText(s.GSECTION_VECTOR) as GSECTION_VECTOR, r.DIRECTIONS from bsth_c_sectionroute r INNER JOIN bsth_c_section s on r.section=s.id where r.destroy=0 and GSECTION_VECTOR is not null order by line_code,directions,sectionroute_code"; | |
| 139 | + List<Map<String, Object>> secList = jdbcTemplate.queryForList(sql); | |
| 140 | + | |
| 141 | + String polygonStr, key; | |
| 142 | + String[] coords; | |
| 143 | + int i, len; | |
| 144 | + | |
| 145 | + ArrayListMultimap<String, LineString> sectionCacheTempMap = ArrayListMultimap.create(); | |
| 146 | + Coordinate[] cds; | |
| 147 | + String[] temps1, temps2; | |
| 148 | + for (Map<String, Object> tMap : secList) { | |
| 149 | + polygonStr = tMap.get("GSECTION_VECTOR").toString(); | |
| 150 | + key = tMap.get("LINE_CODE") + "_" + tMap.get("DIRECTIONS"); | |
| 151 | + | |
| 152 | + coords = polygonStr.substring(11, polygonStr.length() - 1).split(","); | |
| 153 | + len = coords.length - 1; | |
| 154 | + //每2个点连一条线 | |
| 155 | + for(i = 0; i < len; i ++){ | |
| 156 | + temps1 = coords[i].split(" "); | |
| 157 | + temps2 = coords[i + 1].split(" "); | |
| 158 | + | |
| 159 | + cds = new Coordinate[2]; | |
| 160 | + cds[0] = new Coordinate(Float.parseFloat(temps1[1]), Float.parseFloat(temps1[0])); | |
| 161 | + cds[1] = new Coordinate(Float.parseFloat(temps2[1]), Float.parseFloat(temps2[0])); | |
| 162 | + | |
| 163 | + sectionCacheTempMap.put(key, geometryFactory.createLineString(cds)); | |
| 164 | + } | |
| 165 | + } | |
| 166 | + | |
| 167 | + if(sectionCacheTempMap.size() > 0) | |
| 168 | + sectionCacheMap = sectionCacheTempMap; | |
| 169 | + } | |
| 170 | + | |
| 171 | + private void loadTccMapData(){ | |
| 172 | + //加载停车场数据 | |
| 173 | + String sql = "select PARK_CODE, ST_AsText(G_PARK_POINT) as G_PARK_POINT from bsth_c_car_park where park_code is not null and b_park_point is not null"; | |
| 174 | + List<Map<String, Object>> tccList = jdbcTemplate.queryForList(sql); | |
| 175 | + Map<String, Polygon> tccTempMap = new HashMap<>(); | |
| 176 | + | |
| 177 | + Polygon polygon; | |
| 178 | + for (Map<String, Object> tMap : tccList) { | |
| 179 | + | |
| 180 | + try { | |
| 181 | + polygon = geometryFactory.createPolygon(parsePolygon(tMap.get("G_PARK_POINT").toString())); | |
| 182 | + tccTempMap.put(tMap.get("PARK_CODE").toString() | |
| 183 | + , polygon); | |
| 184 | + } catch (Exception e) { | |
| 185 | + logger.error("停车场:" + tMap.get("PARK_CODE"), e); | |
| 186 | + } | |
| 187 | + } | |
| 188 | + if (tccTempMap.size() > 0) | |
| 189 | + tccMap = tccTempMap; | |
| 190 | + } | |
| 191 | + | |
| 192 | + private void loadStationRoutesData(){ | |
| 118 | 193 | //加载站点路由 |
| 119 | 194 | String sql = "select r.LINE_CODE,r.DIRECTIONS,r.STATION_CODE,r.STATION_MARK,s.SHAPES_TYPE,s.G_LONX,s.G_LATY,ST_AsText(s.G_POLYGON_GRID) as G_POLYGON_GRID,s.RADIUS, r.STATION_ROUTE_CODE,s.STATION_NAME from bsth_c_stationroute r left join bsth_c_station s on r.station=s.id where r.destroy=0 order by r.station_route_code"; |
| 120 | 195 | List<StationRoute> routeList = jdbcTemplate.query(sql, new RowMapper<StationRoute>() { |
| ... | ... | @@ -159,26 +234,17 @@ public class GeoCacheData { |
| 159 | 234 | stationCacheMap = tempMap; |
| 160 | 235 | routeCodeMap = codeMap; |
| 161 | 236 | } |
| 237 | + } | |
| 162 | 238 | |
| 163 | - //加载停车场数据 | |
| 164 | - sql = "select PARK_CODE, ST_AsText(G_PARK_POINT) as G_PARK_POINT from bsth_c_car_park where park_code is not null and b_park_point is not null"; | |
| 165 | - List<Map<String, Object>> tccList = jdbcTemplate.queryForList(sql); | |
| 166 | - Map<String, Polygon> tccTempMap = new HashMap<>(); | |
| 167 | - | |
| 168 | - Polygon polygon; | |
| 169 | - for (Map<String, Object> tMap : tccList) { | |
| 170 | - | |
| 171 | - try { | |
| 172 | - polygon = geometryFactory.createPolygon(parsePolygon(tMap.get("G_PARK_POINT").toString())); | |
| 173 | - tccTempMap.put(tMap.get("PARK_CODE").toString() | |
| 174 | - , polygon); | |
| 175 | - } catch (Exception e) { | |
| 176 | - logger.error("停车场:" + tMap.get("PARK_CODE"), e); | |
| 177 | - } | |
| 239 | + private void loadSpeedLimit(){ | |
| 240 | + //加载线路限速信息 | |
| 241 | + String sql = "select l.LINE_CODE,i.SPEED_LIMIT from bsth_c_line_information i left join bsth_c_line l on i.line=l.id where i.speed_limit is not null"; | |
| 242 | + List<Map<String, Object>> speedMap = jdbcTemplate.queryForList(sql); | |
| 243 | + Map<String, Double> speedTempMap = new HashMap<>(); | |
| 244 | + for (Map<String, Object> tMap : speedMap) { | |
| 245 | + speedTempMap.put(tMap.get("LINE_CODE").toString(), Double.parseDouble(tMap.get("SPEED_LIMIT").toString())); | |
| 178 | 246 | } |
| 179 | - | |
| 180 | - if (tccTempMap.size() > 0) | |
| 181 | - tccMap = tccTempMap; | |
| 247 | + speedLimitMap = speedTempMap; | |
| 182 | 248 | } |
| 183 | 249 | |
| 184 | 250 | private void connectStationRoute(List<StationRoute> list) { |
| ... | ... | @@ -209,6 +275,7 @@ public class GeoCacheData { |
| 209 | 275 | |
| 210 | 276 | /** |
| 211 | 277 | * 是不是终点站 |
| 278 | + * | |
| 212 | 279 | * @param lineId |
| 213 | 280 | * @param upDown |
| 214 | 281 | * @param stationCode | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
| ... | ... | @@ -33,6 +33,8 @@ public class GpsRealAnalyse { |
| 33 | 33 | InOutStationSignalHandle inOutStationSignalHandle; |
| 34 | 34 | @Autowired |
| 35 | 35 | ReverseSignalHandle reverseSignalHandle; |
| 36 | + @Autowired | |
| 37 | + AbnormalStateHandle abnormalStateHandle; | |
| 36 | 38 | |
| 37 | 39 | @Autowired |
| 38 | 40 | GpsRealData gpsRealData; |
| ... | ... | @@ -72,14 +74,21 @@ public class GpsRealAnalyse { |
| 72 | 74 | public void run() { |
| 73 | 75 | |
| 74 | 76 | try { |
| 77 | + //是否有任务 | |
| 78 | + boolean task; | |
| 75 | 79 | CircleQueue<GpsEntity> prevs = GeoCacheData.getGps(gps.getNbbm()); |
| 76 | 80 | //掉线处理 |
| 77 | 81 | offlineSignalHandle.handle(gps, prevs); |
| 78 | 82 | //状态处理 |
| 79 | - if(!correctSignalHandle.handle(gps, prevs)) | |
| 80 | - return; | |
| 83 | + task = correctSignalHandle.handle(gps, prevs); | |
| 81 | 84 | //场,站内外判断 |
| 82 | 85 | stationInsideHandle.handle(gps, prevs); |
| 86 | + //异常判定(越界/超速) | |
| 87 | + abnormalStateHandle.handle(gps, prevs); | |
| 88 | + | |
| 89 | + if(!task) | |
| 90 | + return; //无任务的,到这里就结束 | |
| 91 | + | |
| 83 | 92 | //反向处理 |
| 84 | 93 | reverseSignalHandle.handle(gps, prevs); |
| 85 | 94 | //进出站动作处理 | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/handlers/AbnormalStateHandle.java
0 → 100644
| 1 | +package com.bsth.data.gpsdata.arrival.handlers; | |
| 2 | + | |
| 3 | +import com.bsth.data.gpsdata.GpsEntity; | |
| 4 | +import com.bsth.data.gpsdata.arrival.GeoCacheData; | |
| 5 | +import com.bsth.data.gpsdata.arrival.SignalHandle; | |
| 6 | +import com.bsth.data.gpsdata.arrival.utils.CircleQueue; | |
| 7 | +import com.bsth.data.gpsdata.arrival.utils.GeoUtils; | |
| 8 | +import com.vividsolutions.jts.geom.Coordinate; | |
| 9 | +import com.vividsolutions.jts.geom.GeometryFactory; | |
| 10 | +import com.vividsolutions.jts.geom.LineString; | |
| 11 | +import com.vividsolutions.jts.geom.Point; | |
| 12 | +import org.springframework.stereotype.Component; | |
| 13 | + | |
| 14 | +import java.util.List; | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * GPS异常状态判定 (越界/超速) | |
| 18 | + * Created by panzhao on 2017/1/10. | |
| 19 | + */ | |
| 20 | +@Component | |
| 21 | +public class AbnormalStateHandle extends SignalHandle{ | |
| 22 | + | |
| 23 | + //默认限速 | |
| 24 | + private static final double DEFAULT_SPEED_LIMIT = 60; | |
| 25 | + //越界阈值 | |
| 26 | + private static final double OUT_BOUNDS_THRESHOLD = 100; | |
| 27 | + | |
| 28 | + GeometryFactory geometryFactory = new GeometryFactory(); | |
| 29 | + | |
| 30 | + @Override | |
| 31 | + public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) { | |
| 32 | + | |
| 33 | + if(overspeed(gps)) | |
| 34 | + return true; | |
| 35 | + | |
| 36 | + if(outOfBounds((gps))) | |
| 37 | + return true; | |
| 38 | + | |
| 39 | + return false; | |
| 40 | + } | |
| 41 | + | |
| 42 | + /** | |
| 43 | + * 是否超速 | |
| 44 | + * @param gps | |
| 45 | + * @return | |
| 46 | + */ | |
| 47 | + public boolean overspeed(GpsEntity gps){ | |
| 48 | + double maxSpeed = DEFAULT_SPEED_LIMIT; | |
| 49 | + if(GeoCacheData.speedLimit(gps.getLineId()) != null) | |
| 50 | + maxSpeed = GeoCacheData.speedLimit(gps.getLineId()); | |
| 51 | + | |
| 52 | + if(gps.getSpeed() > maxSpeed){ | |
| 53 | + gps.setAbnormalStatus("overspeed"); | |
| 54 | + return true; | |
| 55 | + } | |
| 56 | + return false; | |
| 57 | + } | |
| 58 | + | |
| 59 | + /** | |
| 60 | + * 是否越界 | |
| 61 | + * @param gps | |
| 62 | + * @return | |
| 63 | + */ | |
| 64 | + public boolean outOfBounds(GpsEntity gps){ | |
| 65 | + //场内的车不处理 | |
| 66 | + if(gps.getInstation() == 2){ | |
| 67 | + return false; | |
| 68 | + } | |
| 69 | + | |
| 70 | + List<LineString> list = GeoCacheData.getLineStringList(gps); | |
| 71 | + Point point = geometryFactory.createPoint(new Coordinate(gps.getLat(), gps.getLon())); | |
| 72 | + | |
| 73 | + double min = -1, distance; | |
| 74 | + | |
| 75 | + for(LineString lineString : list){ | |
| 76 | + distance = GeoUtils.getDistanceFromLine(lineString, point); | |
| 77 | + | |
| 78 | + if(min == -1 || min > distance) | |
| 79 | + min = distance; | |
| 80 | + } | |
| 81 | + | |
| 82 | + gps.setOutOfBoundDistance(min); | |
| 83 | + if(min > OUT_BOUNDS_THRESHOLD){ | |
| 84 | + gps.setAbnormalStatus("outBounds"); | |
| 85 | + return true; | |
| 86 | + } | |
| 87 | + return false; | |
| 88 | + } | |
| 89 | +} | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/utils/GeoUtils.java
| ... | ... | @@ -3,10 +3,7 @@ package com.bsth.data.gpsdata.arrival.utils; |
| 3 | 3 | import com.bsth.data.gpsdata.GpsEntity; |
| 4 | 4 | import com.bsth.data.gpsdata.arrival.GeoCacheData; |
| 5 | 5 | import com.bsth.data.gpsdata.arrival.entity.StationRoute; |
| 6 | -import com.vividsolutions.jts.geom.Coordinate; | |
| 7 | -import com.vividsolutions.jts.geom.GeometryFactory; | |
| 8 | -import com.vividsolutions.jts.geom.Point; | |
| 9 | -import com.vividsolutions.jts.geom.Polygon; | |
| 6 | +import com.vividsolutions.jts.geom.*; | |
| 10 | 7 | |
| 11 | 8 | import java.util.List; |
| 12 | 9 | import java.util.Map; |
| ... | ... | @@ -90,6 +87,36 @@ public class GeoUtils { |
| 90 | 87 | return Math.PI * degree / 180; |
| 91 | 88 | } |
| 92 | 89 | |
| 90 | + /** | |
| 91 | + * 计算点 到 线的距离 | |
| 92 | + * @param line | |
| 93 | + * @param p | |
| 94 | + * @return | |
| 95 | + */ | |
| 96 | + public static double getDistanceFromLine(LineString line, Point p){ | |
| 97 | + Point s = line.getStartPoint(); | |
| 98 | + Point e = line.getEndPoint(); | |
| 99 | + | |
| 100 | + double d1 = getDistance(s, p); | |
| 101 | + double d2 = getDistance(p, e); | |
| 102 | + double d3 = getDistance(s, e); | |
| 103 | + double distance = 0; | |
| 104 | + | |
| 105 | + double alpha = Math.acos((d1*d1 + d3*d3 - d2*d2)/(2*d1*d3)); | |
| 106 | + double beta = Math.acos((d2*d2 + d3*d3 - d1*d1)/(2*d2*d3)); | |
| 107 | + | |
| 108 | + if(alpha>Math.PI/2) { | |
| 109 | + distance = d1; | |
| 110 | + } | |
| 111 | + else if(beta > Math.PI/2) { | |
| 112 | + distance = d2; | |
| 113 | + } | |
| 114 | + else { | |
| 115 | + distance = Math.sin(alpha) * d1; | |
| 116 | + } | |
| 117 | + return distance; | |
| 118 | + } | |
| 119 | + | |
| 93 | 120 | |
| 94 | 121 | /** |
| 95 | 122 | * gps 是否在某个停车场内 | ... | ... |
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| ... | ... | @@ -563,8 +563,12 @@ public class DayOfSchedule implements CommandLineRunner { |
| 563 | 563 | */ |
| 564 | 564 | public boolean isFirstOut(ScheduleRealInfo sch){ |
| 565 | 565 | List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh()); |
| 566 | - if(list.get(0) == sch && sch.getBcType().equals("out")) | |
| 567 | - return true; | |
| 566 | + try { | |
| 567 | + if(list.get(0) == sch && sch.getBcType().equals("out")) | |
| 568 | + return true; | |
| 569 | + } catch (IndexOutOfBoundsException e) { | |
| 570 | + logger.error("小小的数组越界,无伤大雅!"); | |
| 571 | + } | |
| 568 | 572 | return false; |
| 569 | 573 | } |
| 570 | 574 | ... | ... |
src/main/java/com/bsth/service/forms/impl/ExportServiceImpl.java
| ... | ... | @@ -46,9 +46,9 @@ public class ExportServiceImpl implements ExportService{ |
| 46 | 46 | |
| 47 | 47 | try { |
| 48 | 48 | listI.add(resList.iterator()); |
| 49 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 50 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\waybillday.xls", | |
| 51 | - path+"export\\行车路单日报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 49 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 50 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/waybillday.xls", | |
| 51 | + path+"export/行车路单日报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 52 | 52 | } catch (Exception e) { |
| 53 | 53 | e.printStackTrace(); |
| 54 | 54 | } |
| ... | ... | @@ -72,9 +72,9 @@ public class ExportServiceImpl implements ExportService{ |
| 72 | 72 | |
| 73 | 73 | try { |
| 74 | 74 | listI.add(resList.iterator()); |
| 75 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 76 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\linepasswengerflow.xls", | |
| 77 | - path+"export\\线路客流量报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 75 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 76 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/linepasswengerflow.xls", | |
| 77 | + path+"export/线路客流量报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 78 | 78 | } catch (Exception e) { |
| 79 | 79 | e.printStackTrace(); |
| 80 | 80 | } |
| ... | ... | @@ -115,9 +115,9 @@ public class ExportServiceImpl implements ExportService{ |
| 115 | 115 | |
| 116 | 116 | try { |
| 117 | 117 | listI.add(resList.iterator()); |
| 118 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 119 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\shifday.xls", | |
| 120 | - path+"export\\班次车辆人员日报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 118 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 119 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/shifday.xls", | |
| 120 | + path+"export/班次车辆人员日报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 121 | 121 | } catch (Exception e) { |
| 122 | 122 | e.printStackTrace(); |
| 123 | 123 | } |
| ... | ... | @@ -151,9 +151,9 @@ public class ExportServiceImpl implements ExportService{ |
| 151 | 151 | |
| 152 | 152 | try { |
| 153 | 153 | listI.add(resList.iterator()); |
| 154 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 155 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\shiftuehiclemanth.xls", | |
| 156 | - path+"export\\班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls"); | |
| 154 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 155 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/shiftuehiclemanth.xls", | |
| 156 | + path+"export/班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls"); | |
| 157 | 157 | } catch (Exception e) { |
| 158 | 158 | e.printStackTrace(); |
| 159 | 159 | } |
| ... | ... | @@ -191,9 +191,9 @@ public class ExportServiceImpl implements ExportService{ |
| 191 | 191 | |
| 192 | 192 | try { |
| 193 | 193 | listI.add(resList.iterator()); |
| 194 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 195 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\singledata.xls", | |
| 196 | - path+"export\\路单日报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls"); | |
| 194 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 195 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/singledata.xls", | |
| 196 | + path+"export/路单日报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls"); | |
| 197 | 197 | } catch (Exception e) { |
| 198 | 198 | e.printStackTrace(); |
| 199 | 199 | } |
| ... | ... | @@ -230,9 +230,9 @@ public class ExportServiceImpl implements ExportService{ |
| 230 | 230 | |
| 231 | 231 | try { |
| 232 | 232 | listI.add(resList.iterator()); |
| 233 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 234 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\vehicleloading.xls", | |
| 235 | - path+"export\\车辆加注" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 233 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 234 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/vehicleloading.xls", | |
| 235 | + path+"export/车辆加注" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 236 | 236 | } catch (Exception e) { |
| 237 | 237 | e.printStackTrace(); |
| 238 | 238 | } |
| ... | ... | @@ -261,9 +261,9 @@ public class ExportServiceImpl implements ExportService{ |
| 261 | 261 | |
| 262 | 262 | try { |
| 263 | 263 | listI.add(resList.iterator()); |
| 264 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 265 | - ee.excelReplace(listI, new Object[] { map }, path+"mould\\operationservice.xls", | |
| 266 | - path+"export\\运营服务阶段报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls"); | |
| 264 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 265 | + ee.excelReplace(listI, new Object[] { map }, path+"mould/operationservice.xls", | |
| 266 | + path+"export/运营服务阶段报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls"); | |
| 267 | 267 | } catch (Exception e) { |
| 268 | 268 | e.printStackTrace(); |
| 269 | 269 | } | ... | ... |
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
| ... | ... | @@ -526,9 +526,9 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 526 | 526 | ReportUtils ee = new ReportUtils(); |
| 527 | 527 | try { |
| 528 | 528 | listI.add(resList.iterator()); |
| 529 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 530 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\busInterval"+statu+".xls", | |
| 531 | - path+"export\\班次间隔统计表" + sdfSimple.format(sdfMonth.parse(startDate)) | |
| 529 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 530 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/busInterval"+statu+".xls", | |
| 531 | + path+"export/班次间隔统计表" + sdfSimple.format(sdfMonth.parse(startDate)) | |
| 532 | 532 | + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); |
| 533 | 533 | } catch (Exception e) { |
| 534 | 534 | // TODO: handle exception |
| ... | ... | @@ -1076,9 +1076,9 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 1076 | 1076 | modelMap.put("lpType", "路牌名"); |
| 1077 | 1077 | try { |
| 1078 | 1078 | listI.add(((List<Map<String, Object>>)modelMap.get("dataList")).iterator()); |
| 1079 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 1080 | - ee.excelReplace(listI, new Object[] { modelMap }, path+"mould\\timeAndSpeed.xls", | |
| 1081 | - path+"export\\行驶时间及车速统计表" + sdfSimple.format(sdfMonth.parse(startDate)) | |
| 1079 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 1080 | + ee.excelReplace(listI, new Object[] { modelMap }, path+"mould/timeAndSpeed.xls", | |
| 1081 | + path+"export/行驶时间及车速统计表" + sdfSimple.format(sdfMonth.parse(startDate)) | |
| 1082 | 1082 | + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); |
| 1083 | 1083 | } catch (Exception e) { |
| 1084 | 1084 | // TODO: handle exception | ... | ... |
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
| ... | ... | @@ -107,7 +107,7 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L |
| 107 | 107 | |
| 108 | 108 | Map<String, Object> removeChildTask(Long taskId); |
| 109 | 109 | |
| 110 | - List<Map<String,Object>> statisticsDaily(String line,String date,String xlName); | |
| 110 | + List<Map<String,Object>> statisticsDaily(String line, String date, String xlName, String type); | |
| 111 | 111 | |
| 112 | 112 | //List<Object> scheduleDaily(String line,String date); |
| 113 | 113 | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| ... | ... | @@ -538,11 +538,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 538 | 538 | map.put("ljbc", ljbc); |
| 539 | 539 | map.put("sjbc", jhbc-cjbc+ljbc); |
| 540 | 540 | |
| 541 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 541 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 542 | 542 | |
| 543 | 543 | list.add(listMap.iterator()); |
| 544 | - ee.excelReplace(list, new Object[] { scheduleRealInfos.get(0),map }, path+"mould\\waybill_minhang.xls", | |
| 545 | - path+"export\\" + date+"-"+jName+"-"+clZbh+"-"+lpName+"-行车路单.xls"); | |
| 544 | + ee.excelReplace(list, new Object[] { scheduleRealInfos.get(0),map }, path+"mould/waybill_minhang.xls", | |
| 545 | + path+"export/" + date+"-"+jName+"-"+clZbh+"-"+lpName+"-行车路单.xls"); | |
| 546 | 546 | return scheduleRealInfos; |
| 547 | 547 | } |
| 548 | 548 | |
| ... | ... | @@ -575,12 +575,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 575 | 575 | map.put("totalYH", totalYH); |
| 576 | 576 | map.put("totalBCS", totalBCS); |
| 577 | 577 | |
| 578 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 578 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 579 | 579 | |
| 580 | 580 | listI.add(list.iterator()); |
| 581 | 581 | try { |
| 582 | - ee.excelReplace(listI, new Object[]{map}, path + "mould\\daily.xls", | |
| 583 | - path + "export\\班次日报" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 582 | + ee.excelReplace(listI, new Object[]{map}, path + "mould/daily.xls", | |
| 583 | + path + "export/班次日报" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 584 | 584 | } catch (ParseException e) { |
| 585 | 585 | e.printStackTrace(); |
| 586 | 586 | } |
| ... | ... | @@ -632,9 +632,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 632 | 632 | } |
| 633 | 633 | try { |
| 634 | 634 | listI.add(newList.iterator()); |
| 635 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 636 | - ee.excelReplace(listI, new Object[]{m}, path + "mould\\historyMessage.xls", | |
| 637 | - path + "export\\调度历史消息" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 635 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 636 | + ee.excelReplace(listI, new Object[]{m}, path + "mould/historyMessage.xls", | |
| 637 | + path + "export/调度历史消息" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 638 | 638 | } catch (Exception e) { |
| 639 | 639 | // TODO: handle exception |
| 640 | 640 | e.printStackTrace(); |
| ... | ... | @@ -661,9 +661,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 661 | 661 | } |
| 662 | 662 | try { |
| 663 | 663 | listI.add(newList.iterator()); |
| 664 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 665 | - ee.excelReplace(listI, new Object[]{m}, path + "mould\\message.xls", | |
| 666 | - path + "export\\调度消息分析" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 664 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 665 | + ee.excelReplace(listI, new Object[]{m}, path + "mould/message.xls", | |
| 666 | + path + "export/调度消息分析" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 667 | 667 | } catch (Exception e) { |
| 668 | 668 | // TODO: handle exception |
| 669 | 669 | e.printStackTrace(); |
| ... | ... | @@ -1261,9 +1261,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1261 | 1261 | } |
| 1262 | 1262 | try { |
| 1263 | 1263 | listI.add(listMap.iterator()); |
| 1264 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 1265 | - ee.excelReplace(listI, new Object[]{m}, path + "mould\\account.xls", | |
| 1266 | - path + "export\\驾驶员请求台账" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 1264 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 1265 | + ee.excelReplace(listI, new Object[]{m}, path + "mould/account.xls", | |
| 1266 | + path + "export/驾驶员请求台账" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 1267 | 1267 | } catch (Exception e) { |
| 1268 | 1268 | // TODO: handle exception |
| 1269 | 1269 | e.printStackTrace(); |
| ... | ... | @@ -1316,9 +1316,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1316 | 1316 | } |
| 1317 | 1317 | try { |
| 1318 | 1318 | listI.add(tempList.iterator()); |
| 1319 | - String path = this.getClass().getResource("/").getPath() + "static\\pages\\forms\\"; | |
| 1320 | - ee.excelReplace(listI, new Object[]{m}, path + "mould\\correctForm.xls", | |
| 1321 | - path + "export\\修正报表" + sdfSimple.format(sdfMonth.parse(startDate)) + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); | |
| 1319 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | |
| 1320 | + ee.excelReplace(listI, new Object[]{m}, path + "mould/correctForm.xls", | |
| 1321 | + path + "export/修正报表" + sdfSimple.format(sdfMonth.parse(startDate)) + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); | |
| 1322 | 1322 | } catch (Exception e) { |
| 1323 | 1323 | // TODO: handle exception |
| 1324 | 1324 | e.printStackTrace(); |
| ... | ... | @@ -1378,7 +1378,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1378 | 1378 | |
| 1379 | 1379 | @Override |
| 1380 | 1380 | public List<Map<String, Object>> statisticsDaily(String line, String date, |
| 1381 | - String xlName) { | |
| 1381 | + String xlName, String type) { | |
| 1382 | 1382 | List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date); |
| 1383 | 1383 | List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>(); |
| 1384 | 1384 | DecimalFormat format = new DecimalFormat("0.00"); |
| ... | ... | @@ -1545,6 +1545,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1545 | 1545 | map.put("djg_a", djg_a); |
| 1546 | 1546 | map.put("djg_time", djg_time); |
| 1547 | 1547 | lMap.add(map); |
| 1548 | + | |
| 1549 | + if(type != null && type.length() != 0 && type.equals("export")){ | |
| 1550 | + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), | |
| 1551 | + sdfSimple = new SimpleDateFormat("yyyyMMdd"); | |
| 1552 | + List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); | |
| 1553 | + Map<String,Object> m = new HashMap<String, Object>(); | |
| 1554 | + ReportUtils ee = new ReportUtils(); | |
| 1555 | + try { | |
| 1556 | + listI.add(lMap.iterator()); | |
| 1557 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 1558 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/statisticsDaily_.xls", | |
| 1559 | + path+"export/统计日报" + sdfSimple.format(sdfMonth.parse(date))+".xls"); | |
| 1560 | + } catch (Exception e) { | |
| 1561 | + // TODO: handle exception | |
| 1562 | + e.printStackTrace(); | |
| 1563 | + } | |
| 1564 | + } | |
| 1565 | + | |
| 1548 | 1566 | return lMap; |
| 1549 | 1567 | } |
| 1550 | 1568 | |
| ... | ... | @@ -2201,12 +2219,43 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 2201 | 2219 | map.put("sjbc", jhbc-cjbc+ljbc); |
| 2202 | 2220 | map.put("zgl", format.format(yygl+remMileage+ksgl+jcclc)); |
| 2203 | 2221 | map.put("ljbc", ljbc); |
| 2204 | - | |
| 2205 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 2206 | - | |
| 2222 | + String zdp="",zwdp="",wdp=""; | |
| 2223 | + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); | |
| 2224 | + List<DutyEmployee> listDtuy= dutyEmployeeService.getDutyEmployee(line, date+"00:00", date+"23:59"); | |
| 2225 | + try { | |
| 2226 | + Long fcsj1=sdf.parse(date+" 03:00").getTime(); | |
| 2227 | + Long fcsj2=sdf.parse(date+" 11:00").getTime(); | |
| 2228 | + Long fcsj3=sdf.parse(date+" 22:00").getTime(); | |
| 2229 | + for(int i=0;i<list.size();i++){ | |
| 2230 | + DutyEmployee t=listDtuy.get(i); | |
| 2231 | + Long ts=t.getTs(); | |
| 2232 | + if(ts>fcsj1&&ts<fcsj2){ | |
| 2233 | + if(zdp.indexOf(t.getuName())==-1){ | |
| 2234 | + zdp +=t.getuName()+","; | |
| 2235 | + | |
| 2236 | + } | |
| 2237 | + }else if(ts>fcsj2 && ts<fcsj3){ | |
| 2238 | + if(zwdp.indexOf(t.getuName())==-1){ | |
| 2239 | + zwdp +=t.getuName()+","; | |
| 2240 | + } | |
| 2241 | + }else{ | |
| 2242 | + if(wdp.indexOf(t.getuName())==-1){ | |
| 2243 | + wdp +=t.getuName()+","; | |
| 2244 | + } | |
| 2245 | + } | |
| 2246 | + } | |
| 2247 | + }catch (ParseException e) { | |
| 2248 | + // TODO Auto-generated catch block | |
| 2249 | + e.printStackTrace(); | |
| 2250 | + } | |
| 2251 | + map.put("zdp", zdp); | |
| 2252 | + map.put("zwdp", zwdp); | |
| 2253 | + map.put("wdp", wdp); | |
| 2254 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 2207 | 2255 | list.add(listMap.iterator()); |
| 2208 | - ee.excelReplace(list, new Object[] { scheduleRealInfos.get(0),map }, path+"mould\\waybill_qingpu.xls", | |
| 2209 | - path+"export\\" + date+"-"+clZbh+"-行车路单.xls"); | |
| 2256 | + ee.excelReplace(list, new Object[] { scheduleRealInfos.get(0),map }, path+"mould/waybill_qingpu.xls", | |
| 2257 | + path+"export/" + date+"-"+clZbh+"-行车路单.xls"); | |
| 2258 | + | |
| 2210 | 2259 | return scheduleRealInfos; |
| 2211 | 2260 | } |
| 2212 | 2261 | |
| ... | ... | @@ -2304,6 +2353,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 2304 | 2353 | map.put("sjbc", jhbc-cjbc+ljbc); |
| 2305 | 2354 | map.put("zgl", format.format(yygl+remMileage+ksgl+jcclc)); |
| 2306 | 2355 | map.put("ljbc", ljbc); |
| 2356 | + | |
| 2307 | 2357 | return map; |
| 2308 | 2358 | } |
| 2309 | 2359 | |
| ... | ... | @@ -2356,6 +2406,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 2356 | 2406 | map.put("zdzName", s.getZdzName()); |
| 2357 | 2407 | map.put("scheduleDate", s.getScheduleDateStr()); |
| 2358 | 2408 | String zdp="",zwdp="",wdp=""; |
| 2409 | + String zdpT="",zwdpT="",wdpT=""; | |
| 2359 | 2410 | |
| 2360 | 2411 | List<DutyEmployee> list= dutyEmployeeService.getDutyEmployee(xlbm, fcrq+"00:00", fcrq+"23:59"); |
| 2361 | 2412 | try { |
| ... | ... | @@ -2367,14 +2418,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 2367 | 2418 | Long ts=t.getTs(); |
| 2368 | 2419 | if(ts>fcsj1&&ts<fcsj2){ |
| 2369 | 2420 | if(zdp.indexOf(t.getuName())==-1){ |
| 2421 | + if(!(zdp.length()>0)){ | |
| 2422 | + zdpT =t.getuName()+"..."; | |
| 2423 | + } | |
| 2370 | 2424 | zdp +=t.getuName()+","; |
| 2425 | + | |
| 2371 | 2426 | } |
| 2372 | 2427 | }else if(ts>fcsj2 && ts<fcsj3){ |
| 2373 | 2428 | if(zwdp.indexOf(t.getuName())==-1){ |
| 2429 | + if(!(zwdp.length()>0)){ | |
| 2430 | + zwdpT =t.getuName()+"..."; | |
| 2431 | + } | |
| 2374 | 2432 | zwdp +=t.getuName()+","; |
| 2375 | 2433 | } |
| 2376 | 2434 | }else{ |
| 2377 | 2435 | if(wdp.indexOf(t.getuName())==-1){ |
| 2436 | + if(!(wdp.length()>0)){ | |
| 2437 | + wdpT =t.getuName()+"..."; | |
| 2438 | + } | |
| 2378 | 2439 | wdp +=t.getuName()+","; |
| 2379 | 2440 | } |
| 2380 | 2441 | } |
| ... | ... | @@ -2386,6 +2447,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 2386 | 2447 | map.put("zdp", zdp); |
| 2387 | 2448 | map.put("zwdp", zwdp); |
| 2388 | 2449 | map.put("wdp", wdp); |
| 2450 | + map.put("zdpT", zdpT); | |
| 2451 | + map.put("zwdpT", zwdpT); | |
| 2452 | + map.put("wdpT", wdpT); | |
| 2389 | 2453 | return map; |
| 2390 | 2454 | } |
| 2391 | 2455 | ... | ... |
src/main/java/com/bsth/service/schedule/PeopleCarPlanServiceImpl.java
| ... | ... | @@ -259,9 +259,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 259 | 259 | ReportUtils ee = new ReportUtils(); |
| 260 | 260 | try { |
| 261 | 261 | listI.add(resList.iterator()); |
| 262 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 263 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\peoCarPlan.xls", | |
| 264 | - path+"export\\计划车辆班次人员" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 262 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 263 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/peoCarPlan.xls", | |
| 264 | + path+"export/计划车辆班次人员" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 265 | 265 | } catch (Exception e) { |
| 266 | 266 | // TODO: handle exception |
| 267 | 267 | e.printStackTrace(); |
| ... | ... | @@ -463,9 +463,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 463 | 463 | ReportUtils ee = new ReportUtils(); |
| 464 | 464 | try { |
| 465 | 465 | listI.add(resList.iterator()); |
| 466 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 467 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\workDaily.xls", | |
| 468 | - path+"export\\营运服务日报表"+ sdfSimple.format(sdfMonth.parse(date))+".xls"); | |
| 466 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 467 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/workDaily.xls", | |
| 468 | + path+"export/营运服务日报表"+ sdfSimple.format(sdfMonth.parse(date))+".xls"); | |
| 469 | 469 | } catch (Exception e) { |
| 470 | 470 | // TODO: handle exception |
| 471 | 471 | e.printStackTrace(); |
| ... | ... | @@ -735,9 +735,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 735 | 735 | ReportUtils ee = new ReportUtils(); |
| 736 | 736 | try { |
| 737 | 737 | listI.add(resList.iterator()); |
| 738 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 739 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\scheduleAnaly.xls", | |
| 740 | - path+"export\\时刻表分析" + sdfSimple.format(sdfMonth.parse(startDate)) + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); | |
| 738 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 739 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/scheduleAnaly.xls", | |
| 740 | + path+"export/时刻表分析" + sdfSimple.format(sdfMonth.parse(startDate)) + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); | |
| 741 | 741 | } catch (Exception e) { |
| 742 | 742 | // TODO: handle exception |
| 743 | 743 | e.printStackTrace(); |
| ... | ... | @@ -989,9 +989,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 989 | 989 | ReportUtils ee = new ReportUtils(); |
| 990 | 990 | try { |
| 991 | 991 | listI.add(resList.iterator()); |
| 992 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 993 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\firstAndLastBus.xls", | |
| 994 | - path+"export\\线路首末班" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 992 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 993 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/firstAndLastBus.xls", | |
| 994 | + path+"export/线路首末班" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 995 | 995 | } catch (Exception e) { |
| 996 | 996 | // TODO: handle exception |
| 997 | 997 | e.printStackTrace(); |
| ... | ... | @@ -1146,9 +1146,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 1146 | 1146 | ReportUtils ee = new ReportUtils(); |
| 1147 | 1147 | try { |
| 1148 | 1148 | listI.add(resList.iterator()); |
| 1149 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 1150 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\commandState.xls", | |
| 1151 | - path+"export\\指令状态分析" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 1149 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 1150 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/commandState.xls", | |
| 1151 | + path+"export/指令状态分析" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 1152 | 1152 | } catch (Exception e) { |
| 1153 | 1153 | // TODO: handle exception |
| 1154 | 1154 | e.printStackTrace(); |
| ... | ... | @@ -1172,9 +1172,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 1172 | 1172 | + " 车辆:" + map1.get("clZbh") + " 人员:" + map1.get("jsy")); |
| 1173 | 1173 | } |
| 1174 | 1174 | } |
| 1175 | - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\"; | |
| 1176 | - ee.excelReplace(listI, new Object[] { m }, path+"mould\\commandState1.xls", | |
| 1177 | - path+"export\\指令状态明细" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 1175 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 1176 | + ee.excelReplace(listI, new Object[] { m }, path+"mould/commandState1.xls", | |
| 1177 | + path+"export/指令状态明细" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); | |
| 1178 | 1178 | } catch (Exception e) { |
| 1179 | 1179 | // TODO: handle exception |
| 1180 | 1180 | e.printStackTrace(); | ... | ... |
src/main/java/com/bsth/util/ReportUtils.java
| ... | ... | @@ -342,8 +342,8 @@ public class ReportUtils { |
| 342 | 342 | dataList.add(sr); |
| 343 | 343 | list.add(dataList.iterator()); |
| 344 | 344 | |
| 345 | - ee.excelReplace(list, new Object[] { srr }, "D:\\waybill.xls", | |
| 346 | - "D:\\22.xls"); | |
| 345 | + ee.excelReplace(list, new Object[] { srr }, "D:/waybill.xls", | |
| 346 | + "D:/22.xls"); | |
| 347 | 347 | System.out.println("ok"); |
| 348 | 348 | } catch (Exception e) { |
| 349 | 349 | e.printStackTrace(); |
| ... | ... | @@ -452,7 +452,7 @@ public class ReportUtils { |
| 452 | 452 | targetFile.delete(); |
| 453 | 453 | } |
| 454 | 454 | // 创建目标文件夹 |
| 455 | - targetFile = new File(path.substring(0, path.lastIndexOf("\\"))); | |
| 455 | + targetFile = new File(path.substring(0, path.lastIndexOf("/"))); | |
| 456 | 456 | if (!targetFile.exists()) { |
| 457 | 457 | targetFile.mkdirs(); |
| 458 | 458 | } | ... | ... |
src/main/resources/datatools/ktrs/scheduleRuleDataInput.ktr
src/main/resources/datatools/ktrs/scheduleRuleDataOutput.ktr
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<transformation> | |
| 3 | - <info> | |
| 4 | - <name>scheduleRuleDataOutput</name> | |
| 5 | - <description/> | |
| 6 | - <extended_description/> | |
| 7 | - <trans_version/> | |
| 8 | - <trans_type>Normal</trans_type> | |
| 9 | - <trans_status>0</trans_status> | |
| 10 | - <directory>/</directory> | |
| 11 | - <parameters> | |
| 12 | - <parameter> | |
| 13 | - <name>filepath</name> | |
| 14 | - <default_value/> | |
| 15 | - <description>excel文件路径</description> | |
| 16 | - </parameter> | |
| 17 | - </parameters> | |
| 18 | - <log> | |
| 19 | -<trans-log-table><connection/> | |
| 20 | -<schema/> | |
| 21 | -<table/> | |
| 22 | -<size_limit_lines/> | |
| 23 | -<interval/> | |
| 24 | -<timeout_days/> | |
| 25 | -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table> | |
| 26 | -<perf-log-table><connection/> | |
| 27 | -<schema/> | |
| 28 | -<table/> | |
| 29 | -<interval/> | |
| 30 | -<timeout_days/> | |
| 31 | -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table> | |
| 32 | -<channel-log-table><connection/> | |
| 33 | -<schema/> | |
| 34 | -<table/> | |
| 35 | -<timeout_days/> | |
| 36 | -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table> | |
| 37 | -<step-log-table><connection/> | |
| 38 | -<schema/> | |
| 39 | -<table/> | |
| 40 | -<timeout_days/> | |
| 41 | -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table> | |
| 42 | -<metrics-log-table><connection/> | |
| 43 | -<schema/> | |
| 44 | -<table/> | |
| 45 | -<timeout_days/> | |
| 46 | -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table> | |
| 47 | - </log> | |
| 48 | - <maxdate> | |
| 49 | - <connection/> | |
| 50 | - <table/> | |
| 51 | - <field/> | |
| 52 | - <offset>0.0</offset> | |
| 53 | - <maxdiff>0.0</maxdiff> | |
| 54 | - </maxdate> | |
| 55 | - <size_rowset>10000</size_rowset> | |
| 56 | - <sleep_time_empty>50</sleep_time_empty> | |
| 57 | - <sleep_time_full>50</sleep_time_full> | |
| 58 | - <unique_connections>N</unique_connections> | |
| 59 | - <feedback_shown>Y</feedback_shown> | |
| 60 | - <feedback_size>50000</feedback_size> | |
| 61 | - <using_thread_priorities>Y</using_thread_priorities> | |
| 62 | - <shared_objects_file/> | |
| 63 | - <capture_step_performance>N</capture_step_performance> | |
| 64 | - <step_performance_capturing_delay>1000</step_performance_capturing_delay> | |
| 65 | - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> | |
| 66 | - <dependencies> | |
| 67 | - </dependencies> | |
| 68 | - <partitionschemas> | |
| 69 | - </partitionschemas> | |
| 70 | - <slaveservers> | |
| 71 | - </slaveservers> | |
| 72 | - <clusterschemas> | |
| 73 | - </clusterschemas> | |
| 74 | - <created_user>-</created_user> | |
| 75 | - <created_date>2017/01/09 13:35:19.384</created_date> | |
| 76 | - <modified_user>-</modified_user> | |
| 77 | - <modified_date>2017/01/09 13:35:19.384</modified_date> | |
| 78 | - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key> | |
| 79 | - <is_key_private>N</is_key_private> | |
| 80 | - </info> | |
| 81 | - <notepads> | |
| 82 | - <notepad> | |
| 83 | - <note>这里有些问题
在window2012的环境下,
MySql数据库查询中如果返回中文内容的字段,这个内容乱码
解决办法,就是数据库查询全部缓存,就不乱码
linux环境下没问题</note> | |
| 84 | - <xloc>118</xloc> | |
| 85 | - <yloc>158</yloc> | |
| 86 | - <width>333</width> | |
| 87 | - <heigth>90</heigth> | |
| 88 | - <fontname>YaHei Consolas Hybrid</fontname> | |
| 89 | - <fontsize>12</fontsize> | |
| 90 | - <fontbold>N</fontbold> | |
| 91 | - <fontitalic>N</fontitalic> | |
| 92 | - <fontcolorred>0</fontcolorred> | |
| 93 | - <fontcolorgreen>0</fontcolorgreen> | |
| 94 | - <fontcolorblue>0</fontcolorblue> | |
| 95 | - <backgroundcolorred>255</backgroundcolorred> | |
| 96 | - <backgroundcolorgreen>205</backgroundcolorgreen> | |
| 97 | - <backgroundcolorblue>112</backgroundcolorblue> | |
| 98 | - <bordercolorred>100</bordercolorred> | |
| 99 | - <bordercolorgreen>100</bordercolorgreen> | |
| 100 | - <bordercolorblue>100</bordercolorblue> | |
| 101 | - <drawshadow>Y</drawshadow> | |
| 102 | - </notepad> | |
| 103 | - </notepads> | |
| 104 | - <connection> | |
| 105 | - <name>bus_control_variable</name> | |
| 106 | - <server>${v_db_ip}</server> | |
| 107 | - <type>MYSQL</type> | |
| 108 | - <access>Native</access> | |
| 109 | - <database>${v_db_dname}</database> | |
| 110 | - <port>3306</port> | |
| 111 | - <username>${v_db_uname}</username> | |
| 112 | - <password>${v_db_pwd}</password> | |
| 113 | - <servername/> | |
| 114 | - <data_tablespace/> | |
| 115 | - <index_tablespace/> | |
| 116 | - <attributes> | |
| 117 | - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 118 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 119 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 120 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 121 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 122 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 123 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 124 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 125 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 126 | - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 127 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 128 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 129 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 130 | - </attributes> | |
| 131 | - </connection> | |
| 132 | - <connection> | |
| 133 | - <name>bus_control_公司_201</name> | |
| 134 | - <server>localhost</server> | |
| 135 | - <type>MYSQL</type> | |
| 136 | - <access>Native</access> | |
| 137 | - <database>control</database> | |
| 138 | - <port>3306</port> | |
| 139 | - <username>root</username> | |
| 140 | - <password>Encrypted </password> | |
| 141 | - <servername/> | |
| 142 | - <data_tablespace/> | |
| 143 | - <index_tablespace/> | |
| 144 | - <attributes> | |
| 145 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 146 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 147 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 148 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 149 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 150 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 151 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 152 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 153 | - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 154 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 155 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 156 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 157 | - </attributes> | |
| 158 | - </connection> | |
| 159 | - <connection> | |
| 160 | - <name>bus_control_本机</name> | |
| 161 | - <server>localhost</server> | |
| 162 | - <type>MYSQL</type> | |
| 163 | - <access>Native</access> | |
| 164 | - <database>control</database> | |
| 165 | - <port>3306</port> | |
| 166 | - <username>root</username> | |
| 167 | - <password>Encrypted </password> | |
| 168 | - <servername/> | |
| 169 | - <data_tablespace/> | |
| 170 | - <index_tablespace/> | |
| 171 | - <attributes> | |
| 172 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 173 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 174 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 175 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 176 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 177 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 178 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 179 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 180 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 181 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 182 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 183 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 184 | - </attributes> | |
| 185 | - </connection> | |
| 186 | - <connection> | |
| 187 | - <name>xlab_mysql_youle</name> | |
| 188 | - <server>101.231.124.8</server> | |
| 189 | - <type>MYSQL</type> | |
| 190 | - <access>Native</access> | |
| 191 | - <database>xlab_youle</database> | |
| 192 | - <port>45687</port> | |
| 193 | - <username>xlab-youle</username> | |
| 194 | - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password> | |
| 195 | - <servername/> | |
| 196 | - <data_tablespace/> | |
| 197 | - <index_tablespace/> | |
| 198 | - <attributes> | |
| 199 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 200 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 201 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 202 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 203 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 204 | - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute> | |
| 205 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 206 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 207 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 208 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 209 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 210 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 211 | - </attributes> | |
| 212 | - </connection> | |
| 213 | - <connection> | |
| 214 | - <name>xlab_mysql_youle(本机)</name> | |
| 215 | - <server>localhost</server> | |
| 216 | - <type>MYSQL</type> | |
| 217 | - <access>Native</access> | |
| 218 | - <database>xlab_youle</database> | |
| 219 | - <port>3306</port> | |
| 220 | - <username>root</username> | |
| 221 | - <password>Encrypted </password> | |
| 222 | - <servername/> | |
| 223 | - <data_tablespace/> | |
| 224 | - <index_tablespace/> | |
| 225 | - <attributes> | |
| 226 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 227 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 228 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 229 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 230 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 231 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 232 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 233 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 234 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 235 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 236 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 237 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 238 | - </attributes> | |
| 239 | - </connection> | |
| 240 | - <connection> | |
| 241 | - <name>xlab_youle</name> | |
| 242 | - <server/> | |
| 243 | - <type>MYSQL</type> | |
| 244 | - <access>JNDI</access> | |
| 245 | - <database>xlab_youle</database> | |
| 246 | - <port>1521</port> | |
| 247 | - <username/> | |
| 248 | - <password>Encrypted </password> | |
| 249 | - <servername/> | |
| 250 | - <data_tablespace/> | |
| 251 | - <index_tablespace/> | |
| 252 | - <attributes> | |
| 253 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 254 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 255 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 256 | - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute> | |
| 257 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 258 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 259 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 260 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 261 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 262 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 263 | - </attributes> | |
| 264 | - </connection> | |
| 265 | - <order> | |
| 266 | - <hop> <from>排版规则</from><to>线路查询</to><enabled>Y</enabled> </hop> | |
| 267 | - <hop> <from>线路查询</from><to>车辆配置查询</to><enabled>Y</enabled> </hop> | |
| 268 | - <hop> <from>车辆配置查询</from><to>车辆查询</to><enabled>Y</enabled> </hop> | |
| 269 | - <hop> <from>车辆查询</from><to>格式化日期</to><enabled>Y</enabled> </hop> | |
| 270 | - <hop> <from>格式化日期</from><to>排序记录</to><enabled>Y</enabled> </hop> | |
| 271 | - <hop> <from>排序记录</from><to>字段选择</to><enabled>Y</enabled> </hop> | |
| 272 | - <hop> <from>字段选择</from><to>Excel输出</to><enabled>Y</enabled> </hop> | |
| 273 | - </order> | |
| 274 | - <step> | |
| 275 | - <name>Excel输出</name> | |
| 276 | - <type>ExcelOutput</type> | |
| 277 | - <description/> | |
| 278 | - <distribute>Y</distribute> | |
| 279 | - <custom_distribution/> | |
| 280 | - <copies>1</copies> | |
| 281 | - <partitioning> | |
| 282 | - <method>none</method> | |
| 283 | - <schema_name/> | |
| 284 | - </partitioning> | |
| 285 | - <header>Y</header> | |
| 286 | - <footer>N</footer> | |
| 287 | - <encoding/> | |
| 288 | - <append>N</append> | |
| 289 | - <add_to_result_filenames>Y</add_to_result_filenames> | |
| 290 | - <file> | |
| 291 | - <name>${filepath}</name> | |
| 292 | - <extention/> | |
| 293 | - <do_not_open_newfile_init>N</do_not_open_newfile_init> | |
| 294 | - <create_parent_folder>N</create_parent_folder> | |
| 295 | - <split>N</split> | |
| 296 | - <add_date>N</add_date> | |
| 297 | - <add_time>N</add_time> | |
| 298 | - <SpecifyFormat>N</SpecifyFormat> | |
| 299 | - <date_time_format>yyyyMMddHHmmss</date_time_format> | |
| 300 | - <sheetname>工作表1</sheetname> | |
| 301 | - <autosizecolums>N</autosizecolums> | |
| 302 | - <nullisblank>N</nullisblank> | |
| 303 | - <protect_sheet>N</protect_sheet> | |
| 304 | - <password>Encrypted </password> | |
| 305 | - <splitevery>0</splitevery> | |
| 306 | - <usetempfiles>N</usetempfiles> | |
| 307 | - <tempdirectory/> | |
| 308 | - </file> | |
| 309 | - <template> | |
| 310 | - <enabled>N</enabled> | |
| 311 | - <append>N</append> | |
| 312 | - <filename>template.xls</filename> | |
| 313 | - </template> | |
| 314 | - <fields> | |
| 315 | - <field> | |
| 316 | - <name>线路</name> | |
| 317 | - <type>String</type> | |
| 318 | - <format/> | |
| 319 | - </field> | |
| 320 | - <field> | |
| 321 | - <name>内部编码</name> | |
| 322 | - <type>String</type> | |
| 323 | - <format/> | |
| 324 | - </field> | |
| 325 | - <field> | |
| 326 | - <name>启用日期</name> | |
| 327 | - <type>String</type> | |
| 328 | - <format/> | |
| 329 | - </field> | |
| 330 | - <field> | |
| 331 | - <name>起始路牌</name> | |
| 332 | - <type>String</type> | |
| 333 | - <format/> | |
| 334 | - </field> | |
| 335 | - <field> | |
| 336 | - <name>路牌范围</name> | |
| 337 | - <type>String</type> | |
| 338 | - <format/> | |
| 339 | - </field> | |
| 340 | - <field> | |
| 341 | - <name>起始人员</name> | |
| 342 | - <type>String</type> | |
| 343 | - <format/> | |
| 344 | - </field> | |
| 345 | - <field> | |
| 346 | - <name>人员范围</name> | |
| 347 | - <type>String</type> | |
| 348 | - <format/> | |
| 349 | - </field> | |
| 350 | - <field> | |
| 351 | - <name>翻班格式</name> | |
| 352 | - <type>String</type> | |
| 353 | - <format/> | |
| 354 | - </field> | |
| 355 | - </fields> | |
| 356 | - <custom> | |
| 357 | - <header_font_name>arial</header_font_name> | |
| 358 | - <header_font_size>10</header_font_size> | |
| 359 | - <header_font_bold>N</header_font_bold> | |
| 360 | - <header_font_italic>N</header_font_italic> | |
| 361 | - <header_font_underline>no</header_font_underline> | |
| 362 | - <header_font_orientation>horizontal</header_font_orientation> | |
| 363 | - <header_font_color>black</header_font_color> | |
| 364 | - <header_background_color>none</header_background_color> | |
| 365 | - <header_row_height>255</header_row_height> | |
| 366 | - <header_alignment>left</header_alignment> | |
| 367 | - <header_image/> | |
| 368 | - <row_font_name>arial</row_font_name> | |
| 369 | - <row_font_size>10</row_font_size> | |
| 370 | - <row_font_color>black</row_font_color> | |
| 371 | - <row_background_color>none</row_background_color> | |
| 372 | - </custom> | |
| 373 | - <cluster_schema/> | |
| 374 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 375 | - <xloc>707</xloc> | |
| 376 | - <yloc>348</yloc> | |
| 377 | - <draw>Y</draw> | |
| 378 | - </GUI> | |
| 379 | - </step> | |
| 380 | - | |
| 381 | - <step> | |
| 382 | - <name>字段选择</name> | |
| 383 | - <type>SelectValues</type> | |
| 384 | - <description/> | |
| 385 | - <distribute>Y</distribute> | |
| 386 | - <custom_distribution/> | |
| 387 | - <copies>1</copies> | |
| 388 | - <partitioning> | |
| 389 | - <method>none</method> | |
| 390 | - <schema_name/> | |
| 391 | - </partitioning> | |
| 392 | - <fields> <field> <name>xlmc</name> | |
| 393 | - <rename>线路</rename> | |
| 394 | - <length>-2</length> | |
| 395 | - <precision>-2</precision> | |
| 396 | - </field> <field> <name>zbh</name> | |
| 397 | - <rename>内部编码</rename> | |
| 398 | - <length>-2</length> | |
| 399 | - <precision>-2</precision> | |
| 400 | - </field> <field> <name>qyrq</name> | |
| 401 | - <rename>启用日期</rename> | |
| 402 | - <length>-2</length> | |
| 403 | - <precision>-2</precision> | |
| 404 | - </field> <field> <name>lp_start</name> | |
| 405 | - <rename>起始路牌</rename> | |
| 406 | - <length>-2</length> | |
| 407 | - <precision>-2</precision> | |
| 408 | - </field> <field> <name>lp_names</name> | |
| 409 | - <rename>路牌范围</rename> | |
| 410 | - <length>-2</length> | |
| 411 | - <precision>-2</precision> | |
| 412 | - </field> <field> <name>ry_start</name> | |
| 413 | - <rename>起始人员</rename> | |
| 414 | - <length>-2</length> | |
| 415 | - <precision>-2</precision> | |
| 416 | - </field> <field> <name>ry_dbbms</name> | |
| 417 | - <rename>人员范围</rename> | |
| 418 | - <length>-2</length> | |
| 419 | - <precision>-2</precision> | |
| 420 | - </field> <field> <name>fbgs</name> | |
| 421 | - <rename>翻班格式</rename> | |
| 422 | - <length>-2</length> | |
| 423 | - <precision>-2</precision> | |
| 424 | - </field> <select_unspecified>N</select_unspecified> | |
| 425 | - </fields> <cluster_schema/> | |
| 426 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 427 | - <xloc>705</xloc> | |
| 428 | - <yloc>270</yloc> | |
| 429 | - <draw>Y</draw> | |
| 430 | - </GUI> | |
| 431 | - </step> | |
| 432 | - | |
| 433 | - <step> | |
| 434 | - <name>排版规则</name> | |
| 435 | - <type>TableInput</type> | |
| 436 | - <description/> | |
| 437 | - <distribute>Y</distribute> | |
| 438 | - <custom_distribution/> | |
| 439 | - <copies>1</copies> | |
| 440 | - <partitioning> | |
| 441 | - <method>none</method> | |
| 442 | - <schema_name/> | |
| 443 | - </partitioning> | |
| 444 | - <connection>bus_control_variable</connection> | |
| 445 | - <sql>SELECT * FROM bsth_c_s_sr1_flat</sql> | |
| 446 | - <limit>0</limit> | |
| 447 | - <lookup/> | |
| 448 | - <execute_each_row>N</execute_each_row> | |
| 449 | - <variables_active>N</variables_active> | |
| 450 | - <lazy_conversion_active>N</lazy_conversion_active> | |
| 451 | - <cluster_schema/> | |
| 452 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 453 | - <xloc>129</xloc> | |
| 454 | - <yloc>65</yloc> | |
| 455 | - <draw>Y</draw> | |
| 456 | - </GUI> | |
| 457 | - </step> | |
| 458 | - | |
| 459 | - <step> | |
| 460 | - <name>格式化日期</name> | |
| 461 | - <type>SelectValues</type> | |
| 462 | - <description/> | |
| 463 | - <distribute>Y</distribute> | |
| 464 | - <custom_distribution/> | |
| 465 | - <copies>1</copies> | |
| 466 | - <partitioning> | |
| 467 | - <method>none</method> | |
| 468 | - <schema_name/> | |
| 469 | - </partitioning> | |
| 470 | - <fields> <select_unspecified>N</select_unspecified> | |
| 471 | - <meta> <name>qyrq</name> | |
| 472 | - <rename>qyrq</rename> | |
| 473 | - <type>String</type> | |
| 474 | - <length>-2</length> | |
| 475 | - <precision>-2</precision> | |
| 476 | - <conversion_mask>yyyy-MM-dd</conversion_mask> | |
| 477 | - <date_format_lenient>false</date_format_lenient> | |
| 478 | - <date_format_locale/> | |
| 479 | - <date_format_timezone/> | |
| 480 | - <lenient_string_to_number>false</lenient_string_to_number> | |
| 481 | - <encoding/> | |
| 482 | - <decimal_symbol/> | |
| 483 | - <grouping_symbol/> | |
| 484 | - <currency_symbol/> | |
| 485 | - <storage_type/> | |
| 486 | - </meta> <meta> <name>lp_start</name> | |
| 487 | - <rename>lp_start</rename> | |
| 488 | - <type>String</type> | |
| 489 | - <length>-2</length> | |
| 490 | - <precision>-2</precision> | |
| 491 | - <conversion_mask/> | |
| 492 | - <date_format_lenient>false</date_format_lenient> | |
| 493 | - <date_format_locale/> | |
| 494 | - <date_format_timezone/> | |
| 495 | - <lenient_string_to_number>false</lenient_string_to_number> | |
| 496 | - <encoding/> | |
| 497 | - <decimal_symbol/> | |
| 498 | - <grouping_symbol/> | |
| 499 | - <currency_symbol/> | |
| 500 | - <storage_type/> | |
| 501 | - </meta> <meta> <name>ry_start</name> | |
| 502 | - <rename>ry_start</rename> | |
| 503 | - <type>String</type> | |
| 504 | - <length>-2</length> | |
| 505 | - <precision>-2</precision> | |
| 506 | - <conversion_mask>#</conversion_mask> | |
| 507 | - <date_format_lenient>false</date_format_lenient> | |
| 508 | - <date_format_locale/> | |
| 509 | - <date_format_timezone/> | |
| 510 | - <lenient_string_to_number>false</lenient_string_to_number> | |
| 511 | - <encoding/> | |
| 512 | - <decimal_symbol/> | |
| 513 | - <grouping_symbol/> | |
| 514 | - <currency_symbol/> | |
| 515 | - <storage_type/> | |
| 516 | - </meta> </fields> <cluster_schema/> | |
| 517 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 518 | - <xloc>705</xloc> | |
| 519 | - <yloc>65</yloc> | |
| 520 | - <draw>Y</draw> | |
| 521 | - </GUI> | |
| 522 | - </step> | |
| 523 | - | |
| 524 | - <step> | |
| 525 | - <name>线路查询</name> | |
| 526 | - <type>DBLookup</type> | |
| 527 | - <description/> | |
| 528 | - <distribute>Y</distribute> | |
| 529 | - <custom_distribution/> | |
| 530 | - <copies>1</copies> | |
| 531 | - <partitioning> | |
| 532 | - <method>none</method> | |
| 533 | - <schema_name/> | |
| 534 | - </partitioning> | |
| 535 | - <connection>bus_control_variable</connection> | |
| 536 | - <cache>Y</cache> | |
| 537 | - <cache_load_all>Y</cache_load_all> | |
| 538 | - <cache_size>0</cache_size> | |
| 539 | - <lookup> | |
| 540 | - <schema/> | |
| 541 | - <table>bsth_c_line</table> | |
| 542 | - <orderby/> | |
| 543 | - <fail_on_multiple>N</fail_on_multiple> | |
| 544 | - <eat_row_on_failure>N</eat_row_on_failure> | |
| 545 | - <key> | |
| 546 | - <name>xl</name> | |
| 547 | - <field>id</field> | |
| 548 | - <condition>=</condition> | |
| 549 | - <name2/> | |
| 550 | - </key> | |
| 551 | - <value> | |
| 552 | - <name>name</name> | |
| 553 | - <rename>xlmc</rename> | |
| 554 | - <default/> | |
| 555 | - <type>String</type> | |
| 556 | - </value> | |
| 557 | - </lookup> | |
| 558 | - <cluster_schema/> | |
| 559 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 560 | - <xloc>329</xloc> | |
| 561 | - <yloc>65</yloc> | |
| 562 | - <draw>Y</draw> | |
| 563 | - </GUI> | |
| 564 | - </step> | |
| 565 | - | |
| 566 | - <step> | |
| 567 | - <name>车辆查询</name> | |
| 568 | - <type>DBLookup</type> | |
| 569 | - <description/> | |
| 570 | - <distribute>Y</distribute> | |
| 571 | - <custom_distribution/> | |
| 572 | - <copies>1</copies> | |
| 573 | - <partitioning> | |
| 574 | - <method>none</method> | |
| 575 | - <schema_name/> | |
| 576 | - </partitioning> | |
| 577 | - <connection>bus_control_variable</connection> | |
| 578 | - <cache>N</cache> | |
| 579 | - <cache_load_all>N</cache_load_all> | |
| 580 | - <cache_size>0</cache_size> | |
| 581 | - <lookup> | |
| 582 | - <schema/> | |
| 583 | - <table>bsth_c_cars</table> | |
| 584 | - <orderby/> | |
| 585 | - <fail_on_multiple>N</fail_on_multiple> | |
| 586 | - <eat_row_on_failure>N</eat_row_on_failure> | |
| 587 | - <key> | |
| 588 | - <name>clid</name> | |
| 589 | - <field>id</field> | |
| 590 | - <condition>=</condition> | |
| 591 | - <name2/> | |
| 592 | - </key> | |
| 593 | - <value> | |
| 594 | - <name>inside_code</name> | |
| 595 | - <rename>zbh</rename> | |
| 596 | - <default/> | |
| 597 | - <type>String</type> | |
| 598 | - </value> | |
| 599 | - </lookup> | |
| 600 | - <cluster_schema/> | |
| 601 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 602 | - <xloc>600</xloc> | |
| 603 | - <yloc>64</yloc> | |
| 604 | - <draw>Y</draw> | |
| 605 | - </GUI> | |
| 606 | - </step> | |
| 607 | - | |
| 608 | - <step> | |
| 609 | - <name>车辆配置查询</name> | |
| 610 | - <type>DBLookup</type> | |
| 611 | - <description/> | |
| 612 | - <distribute>Y</distribute> | |
| 613 | - <custom_distribution/> | |
| 614 | - <copies>1</copies> | |
| 615 | - <partitioning> | |
| 616 | - <method>none</method> | |
| 617 | - <schema_name/> | |
| 618 | - </partitioning> | |
| 619 | - <connection>bus_control_variable</connection> | |
| 620 | - <cache>N</cache> | |
| 621 | - <cache_load_all>N</cache_load_all> | |
| 622 | - <cache_size>0</cache_size> | |
| 623 | - <lookup> | |
| 624 | - <schema/> | |
| 625 | - <table>bsth_c_s_ccinfo</table> | |
| 626 | - <orderby/> | |
| 627 | - <fail_on_multiple>N</fail_on_multiple> | |
| 628 | - <eat_row_on_failure>N</eat_row_on_failure> | |
| 629 | - <key> | |
| 630 | - <name>car_config_info</name> | |
| 631 | - <field>id</field> | |
| 632 | - <condition>=</condition> | |
| 633 | - <name2/> | |
| 634 | - </key> | |
| 635 | - <value> | |
| 636 | - <name>cl</name> | |
| 637 | - <rename>clid</rename> | |
| 638 | - <default/> | |
| 639 | - <type>Integer</type> | |
| 640 | - </value> | |
| 641 | - </lookup> | |
| 642 | - <cluster_schema/> | |
| 643 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 644 | - <xloc>471</xloc> | |
| 645 | - <yloc>64</yloc> | |
| 646 | - <draw>Y</draw> | |
| 647 | - </GUI> | |
| 648 | - </step> | |
| 649 | - | |
| 650 | - <step> | |
| 651 | - <name>排序记录</name> | |
| 652 | - <type>SortRows</type> | |
| 653 | - <description/> | |
| 654 | - <distribute>Y</distribute> | |
| 655 | - <custom_distribution/> | |
| 656 | - <copies>1</copies> | |
| 657 | - <partitioning> | |
| 658 | - <method>none</method> | |
| 659 | - <schema_name/> | |
| 660 | - </partitioning> | |
| 661 | - <directory>%%java.io.tmpdir%%</directory> | |
| 662 | - <prefix>out</prefix> | |
| 663 | - <sort_size>1000000</sort_size> | |
| 664 | - <free_memory/> | |
| 665 | - <compress>N</compress> | |
| 666 | - <compress_variable/> | |
| 667 | - <unique_rows>N</unique_rows> | |
| 668 | - <fields> | |
| 669 | - <field> | |
| 670 | - <name>xlmc</name> | |
| 671 | - <ascending>Y</ascending> | |
| 672 | - <case_sensitive>N</case_sensitive> | |
| 673 | - <presorted>N</presorted> | |
| 674 | - </field> | |
| 675 | - <field> | |
| 676 | - <name>zbh</name> | |
| 677 | - <ascending>Y</ascending> | |
| 678 | - <case_sensitive>N</case_sensitive> | |
| 679 | - <presorted>N</presorted> | |
| 680 | - </field> | |
| 681 | - <field> | |
| 682 | - <name>qyrq</name> | |
| 683 | - <ascending>Y</ascending> | |
| 684 | - <case_sensitive>N</case_sensitive> | |
| 685 | - <presorted>N</presorted> | |
| 686 | - </field> | |
| 687 | - <field> | |
| 688 | - <name>lp_names</name> | |
| 689 | - <ascending>Y</ascending> | |
| 690 | - <case_sensitive>N</case_sensitive> | |
| 691 | - <presorted>N</presorted> | |
| 692 | - </field> | |
| 693 | - <field> | |
| 694 | - <name>ry_dbbms</name> | |
| 695 | - <ascending>Y</ascending> | |
| 696 | - <case_sensitive>N</case_sensitive> | |
| 697 | - <presorted>N</presorted> | |
| 698 | - </field> | |
| 699 | - </fields> | |
| 700 | - <cluster_schema/> | |
| 701 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 702 | - <xloc>705</xloc> | |
| 703 | - <yloc>177</yloc> | |
| 704 | - <draw>Y</draw> | |
| 705 | - </GUI> | |
| 706 | - </step> | |
| 707 | - | |
| 708 | - <step_error_handling> | |
| 709 | - </step_error_handling> | |
| 710 | - <slave-step-copy-partition-distribution> | |
| 711 | -</slave-step-copy-partition-distribution> | |
| 712 | - <slave_transformation>N</slave_transformation> | |
| 713 | - | |
| 714 | -</transformation> | |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<transformation> | |
| 3 | + <info> | |
| 4 | + <name>scheduleRuleDataOutput</name> | |
| 5 | + <description/> | |
| 6 | + <extended_description/> | |
| 7 | + <trans_version/> | |
| 8 | + <trans_type>Normal</trans_type> | |
| 9 | + <trans_status>0</trans_status> | |
| 10 | + <directory>/</directory> | |
| 11 | + <parameters> | |
| 12 | + <parameter> | |
| 13 | + <name>filepath</name> | |
| 14 | + <default_value/> | |
| 15 | + <description>excel文件路径</description> | |
| 16 | + </parameter> | |
| 17 | + </parameters> | |
| 18 | + <log> | |
| 19 | +<trans-log-table><connection/> | |
| 20 | +<schema/> | |
| 21 | +<table/> | |
| 22 | +<size_limit_lines/> | |
| 23 | +<interval/> | |
| 24 | +<timeout_days/> | |
| 25 | +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table> | |
| 26 | +<perf-log-table><connection/> | |
| 27 | +<schema/> | |
| 28 | +<table/> | |
| 29 | +<interval/> | |
| 30 | +<timeout_days/> | |
| 31 | +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table> | |
| 32 | +<channel-log-table><connection/> | |
| 33 | +<schema/> | |
| 34 | +<table/> | |
| 35 | +<timeout_days/> | |
| 36 | +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table> | |
| 37 | +<step-log-table><connection/> | |
| 38 | +<schema/> | |
| 39 | +<table/> | |
| 40 | +<timeout_days/> | |
| 41 | +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table> | |
| 42 | +<metrics-log-table><connection/> | |
| 43 | +<schema/> | |
| 44 | +<table/> | |
| 45 | +<timeout_days/> | |
| 46 | +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table> | |
| 47 | + </log> | |
| 48 | + <maxdate> | |
| 49 | + <connection/> | |
| 50 | + <table/> | |
| 51 | + <field/> | |
| 52 | + <offset>0.0</offset> | |
| 53 | + <maxdiff>0.0</maxdiff> | |
| 54 | + </maxdate> | |
| 55 | + <size_rowset>10000</size_rowset> | |
| 56 | + <sleep_time_empty>50</sleep_time_empty> | |
| 57 | + <sleep_time_full>50</sleep_time_full> | |
| 58 | + <unique_connections>N</unique_connections> | |
| 59 | + <feedback_shown>Y</feedback_shown> | |
| 60 | + <feedback_size>50000</feedback_size> | |
| 61 | + <using_thread_priorities>Y</using_thread_priorities> | |
| 62 | + <shared_objects_file/> | |
| 63 | + <capture_step_performance>N</capture_step_performance> | |
| 64 | + <step_performance_capturing_delay>1000</step_performance_capturing_delay> | |
| 65 | + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> | |
| 66 | + <dependencies> | |
| 67 | + </dependencies> | |
| 68 | + <partitionschemas> | |
| 69 | + </partitionschemas> | |
| 70 | + <slaveservers> | |
| 71 | + </slaveservers> | |
| 72 | + <clusterschemas> | |
| 73 | + </clusterschemas> | |
| 74 | + <created_user>-</created_user> | |
| 75 | + <created_date>2017/01/09 13:35:19.384</created_date> | |
| 76 | + <modified_user>-</modified_user> | |
| 77 | + <modified_date>2017/01/09 13:35:19.384</modified_date> | |
| 78 | + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key> | |
| 79 | + <is_key_private>N</is_key_private> | |
| 80 | + </info> | |
| 81 | + <notepads> | |
| 82 | + <notepad> | |
| 83 | + <note>这里有些问题
在window2012的环境下,
MySql数据库查询中如果返回中文内容的字段,这个内容乱码
解决办法,就是数据库查询全部缓存,就不乱码
linux环境下没问题</note> | |
| 84 | + <xloc>118</xloc> | |
| 85 | + <yloc>158</yloc> | |
| 86 | + <width>333</width> | |
| 87 | + <heigth>90</heigth> | |
| 88 | + <fontname>YaHei Consolas Hybrid</fontname> | |
| 89 | + <fontsize>12</fontsize> | |
| 90 | + <fontbold>N</fontbold> | |
| 91 | + <fontitalic>N</fontitalic> | |
| 92 | + <fontcolorred>0</fontcolorred> | |
| 93 | + <fontcolorgreen>0</fontcolorgreen> | |
| 94 | + <fontcolorblue>0</fontcolorblue> | |
| 95 | + <backgroundcolorred>255</backgroundcolorred> | |
| 96 | + <backgroundcolorgreen>205</backgroundcolorgreen> | |
| 97 | + <backgroundcolorblue>112</backgroundcolorblue> | |
| 98 | + <bordercolorred>100</bordercolorred> | |
| 99 | + <bordercolorgreen>100</bordercolorgreen> | |
| 100 | + <bordercolorblue>100</bordercolorblue> | |
| 101 | + <drawshadow>Y</drawshadow> | |
| 102 | + </notepad> | |
| 103 | + </notepads> | |
| 104 | + <connection> | |
| 105 | + <name>bus_control_variable</name> | |
| 106 | + <server>${v_db_ip}</server> | |
| 107 | + <type>MYSQL</type> | |
| 108 | + <access>Native</access> | |
| 109 | + <database>${v_db_dname}</database> | |
| 110 | + <port>3306</port> | |
| 111 | + <username>${v_db_uname}</username> | |
| 112 | + <password>${v_db_pwd}</password> | |
| 113 | + <servername/> | |
| 114 | + <data_tablespace/> | |
| 115 | + <index_tablespace/> | |
| 116 | + <attributes> | |
| 117 | + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 118 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 119 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 120 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 121 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 122 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 123 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 124 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 125 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 126 | + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 127 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 128 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 129 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 130 | + </attributes> | |
| 131 | + </connection> | |
| 132 | + <connection> | |
| 133 | + <name>bus_control_公司_201</name> | |
| 134 | + <server>localhost</server> | |
| 135 | + <type>MYSQL</type> | |
| 136 | + <access>Native</access> | |
| 137 | + <database>control</database> | |
| 138 | + <port>3306</port> | |
| 139 | + <username>root</username> | |
| 140 | + <password>Encrypted </password> | |
| 141 | + <servername/> | |
| 142 | + <data_tablespace/> | |
| 143 | + <index_tablespace/> | |
| 144 | + <attributes> | |
| 145 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 146 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 147 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 148 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 149 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 150 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 151 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 152 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 153 | + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 154 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 155 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 156 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 157 | + </attributes> | |
| 158 | + </connection> | |
| 159 | + <connection> | |
| 160 | + <name>bus_control_本机</name> | |
| 161 | + <server>localhost</server> | |
| 162 | + <type>MYSQL</type> | |
| 163 | + <access>Native</access> | |
| 164 | + <database>control</database> | |
| 165 | + <port>3306</port> | |
| 166 | + <username>root</username> | |
| 167 | + <password>Encrypted </password> | |
| 168 | + <servername/> | |
| 169 | + <data_tablespace/> | |
| 170 | + <index_tablespace/> | |
| 171 | + <attributes> | |
| 172 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 173 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 174 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 175 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 176 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 177 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 178 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 179 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 180 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 181 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 182 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 183 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 184 | + </attributes> | |
| 185 | + </connection> | |
| 186 | + <connection> | |
| 187 | + <name>xlab_mysql_youle</name> | |
| 188 | + <server>101.231.124.8</server> | |
| 189 | + <type>MYSQL</type> | |
| 190 | + <access>Native</access> | |
| 191 | + <database>xlab_youle</database> | |
| 192 | + <port>45687</port> | |
| 193 | + <username>xlab-youle</username> | |
| 194 | + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password> | |
| 195 | + <servername/> | |
| 196 | + <data_tablespace/> | |
| 197 | + <index_tablespace/> | |
| 198 | + <attributes> | |
| 199 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 200 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 201 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 202 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 203 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 204 | + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute> | |
| 205 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 206 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 207 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 208 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 209 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 210 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 211 | + </attributes> | |
| 212 | + </connection> | |
| 213 | + <connection> | |
| 214 | + <name>xlab_mysql_youle(本机)</name> | |
| 215 | + <server>localhost</server> | |
| 216 | + <type>MYSQL</type> | |
| 217 | + <access>Native</access> | |
| 218 | + <database>xlab_youle</database> | |
| 219 | + <port>3306</port> | |
| 220 | + <username>root</username> | |
| 221 | + <password>Encrypted </password> | |
| 222 | + <servername/> | |
| 223 | + <data_tablespace/> | |
| 224 | + <index_tablespace/> | |
| 225 | + <attributes> | |
| 226 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 227 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 228 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 229 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 230 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 231 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 232 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 233 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 234 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 235 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 236 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 237 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 238 | + </attributes> | |
| 239 | + </connection> | |
| 240 | + <connection> | |
| 241 | + <name>xlab_youle</name> | |
| 242 | + <server/> | |
| 243 | + <type>MYSQL</type> | |
| 244 | + <access>JNDI</access> | |
| 245 | + <database>xlab_youle</database> | |
| 246 | + <port>1521</port> | |
| 247 | + <username/> | |
| 248 | + <password>Encrypted </password> | |
| 249 | + <servername/> | |
| 250 | + <data_tablespace/> | |
| 251 | + <index_tablespace/> | |
| 252 | + <attributes> | |
| 253 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 254 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 255 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 256 | + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute> | |
| 257 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 258 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 259 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 260 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 261 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 262 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 263 | + </attributes> | |
| 264 | + </connection> | |
| 265 | + <order> | |
| 266 | + <hop> <from>排版规则</from><to>线路查询</to><enabled>Y</enabled> </hop> | |
| 267 | + <hop> <from>线路查询</from><to>车辆配置查询</to><enabled>Y</enabled> </hop> | |
| 268 | + <hop> <from>车辆配置查询</from><to>车辆查询</to><enabled>Y</enabled> </hop> | |
| 269 | + <hop> <from>车辆查询</from><to>格式化日期</to><enabled>Y</enabled> </hop> | |
| 270 | + <hop> <from>格式化日期</from><to>排序记录</to><enabled>Y</enabled> </hop> | |
| 271 | + <hop> <from>排序记录</from><to>字段选择</to><enabled>Y</enabled> </hop> | |
| 272 | + <hop> <from>字段选择</from><to>Excel输出</to><enabled>Y</enabled> </hop> | |
| 273 | + </order> | |
| 274 | + <step> | |
| 275 | + <name>Excel输出</name> | |
| 276 | + <type>ExcelOutput</type> | |
| 277 | + <description/> | |
| 278 | + <distribute>Y</distribute> | |
| 279 | + <custom_distribution/> | |
| 280 | + <copies>1</copies> | |
| 281 | + <partitioning> | |
| 282 | + <method>none</method> | |
| 283 | + <schema_name/> | |
| 284 | + </partitioning> | |
| 285 | + <header>Y</header> | |
| 286 | + <footer>N</footer> | |
| 287 | + <encoding/> | |
| 288 | + <append>N</append> | |
| 289 | + <add_to_result_filenames>Y</add_to_result_filenames> | |
| 290 | + <file> | |
| 291 | + <name>${filepath}</name> | |
| 292 | + <extention/> | |
| 293 | + <do_not_open_newfile_init>N</do_not_open_newfile_init> | |
| 294 | + <create_parent_folder>N</create_parent_folder> | |
| 295 | + <split>N</split> | |
| 296 | + <add_date>N</add_date> | |
| 297 | + <add_time>N</add_time> | |
| 298 | + <SpecifyFormat>N</SpecifyFormat> | |
| 299 | + <date_time_format>yyyyMMddHHmmss</date_time_format> | |
| 300 | + <sheetname>工作表1</sheetname> | |
| 301 | + <autosizecolums>N</autosizecolums> | |
| 302 | + <nullisblank>N</nullisblank> | |
| 303 | + <protect_sheet>N</protect_sheet> | |
| 304 | + <password>Encrypted </password> | |
| 305 | + <splitevery>0</splitevery> | |
| 306 | + <usetempfiles>N</usetempfiles> | |
| 307 | + <tempdirectory/> | |
| 308 | + </file> | |
| 309 | + <template> | |
| 310 | + <enabled>N</enabled> | |
| 311 | + <append>N</append> | |
| 312 | + <filename>template.xls</filename> | |
| 313 | + </template> | |
| 314 | + <fields> | |
| 315 | + <field> | |
| 316 | + <name>线路</name> | |
| 317 | + <type>String</type> | |
| 318 | + <format/> | |
| 319 | + </field> | |
| 320 | + <field> | |
| 321 | + <name>内部编码</name> | |
| 322 | + <type>String</type> | |
| 323 | + <format/> | |
| 324 | + </field> | |
| 325 | + <field> | |
| 326 | + <name>启用日期</name> | |
| 327 | + <type>String</type> | |
| 328 | + <format/> | |
| 329 | + </field> | |
| 330 | + <field> | |
| 331 | + <name>起始路牌</name> | |
| 332 | + <type>String</type> | |
| 333 | + <format/> | |
| 334 | + </field> | |
| 335 | + <field> | |
| 336 | + <name>路牌范围</name> | |
| 337 | + <type>String</type> | |
| 338 | + <format/> | |
| 339 | + </field> | |
| 340 | + <field> | |
| 341 | + <name>起始人员</name> | |
| 342 | + <type>String</type> | |
| 343 | + <format/> | |
| 344 | + </field> | |
| 345 | + <field> | |
| 346 | + <name>人员范围</name> | |
| 347 | + <type>String</type> | |
| 348 | + <format/> | |
| 349 | + </field> | |
| 350 | + <field> | |
| 351 | + <name>翻班格式</name> | |
| 352 | + <type>String</type> | |
| 353 | + <format/> | |
| 354 | + </field> | |
| 355 | + </fields> | |
| 356 | + <custom> | |
| 357 | + <header_font_name>arial</header_font_name> | |
| 358 | + <header_font_size>10</header_font_size> | |
| 359 | + <header_font_bold>N</header_font_bold> | |
| 360 | + <header_font_italic>N</header_font_italic> | |
| 361 | + <header_font_underline>no</header_font_underline> | |
| 362 | + <header_font_orientation>horizontal</header_font_orientation> | |
| 363 | + <header_font_color>black</header_font_color> | |
| 364 | + <header_background_color>none</header_background_color> | |
| 365 | + <header_row_height>255</header_row_height> | |
| 366 | + <header_alignment>left</header_alignment> | |
| 367 | + <header_image/> | |
| 368 | + <row_font_name>arial</row_font_name> | |
| 369 | + <row_font_size>10</row_font_size> | |
| 370 | + <row_font_color>black</row_font_color> | |
| 371 | + <row_background_color>none</row_background_color> | |
| 372 | + </custom> | |
| 373 | + <cluster_schema/> | |
| 374 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 375 | + <xloc>707</xloc> | |
| 376 | + <yloc>348</yloc> | |
| 377 | + <draw>Y</draw> | |
| 378 | + </GUI> | |
| 379 | + </step> | |
| 380 | + | |
| 381 | + <step> | |
| 382 | + <name>字段选择</name> | |
| 383 | + <type>SelectValues</type> | |
| 384 | + <description/> | |
| 385 | + <distribute>Y</distribute> | |
| 386 | + <custom_distribution/> | |
| 387 | + <copies>1</copies> | |
| 388 | + <partitioning> | |
| 389 | + <method>none</method> | |
| 390 | + <schema_name/> | |
| 391 | + </partitioning> | |
| 392 | + <fields> <field> <name>xlmc</name> | |
| 393 | + <rename>线路</rename> | |
| 394 | + <length>-2</length> | |
| 395 | + <precision>-2</precision> | |
| 396 | + </field> <field> <name>zbh</name> | |
| 397 | + <rename>内部编码</rename> | |
| 398 | + <length>-2</length> | |
| 399 | + <precision>-2</precision> | |
| 400 | + </field> <field> <name>qyrq</name> | |
| 401 | + <rename>启用日期</rename> | |
| 402 | + <length>-2</length> | |
| 403 | + <precision>-2</precision> | |
| 404 | + </field> <field> <name>lp_start</name> | |
| 405 | + <rename>起始路牌</rename> | |
| 406 | + <length>-2</length> | |
| 407 | + <precision>-2</precision> | |
| 408 | + </field> <field> <name>lp_names</name> | |
| 409 | + <rename>路牌范围</rename> | |
| 410 | + <length>-2</length> | |
| 411 | + <precision>-2</precision> | |
| 412 | + </field> <field> <name>ry_start</name> | |
| 413 | + <rename>起始人员</rename> | |
| 414 | + <length>-2</length> | |
| 415 | + <precision>-2</precision> | |
| 416 | + </field> <field> <name>ry_dbbms</name> | |
| 417 | + <rename>人员范围</rename> | |
| 418 | + <length>-2</length> | |
| 419 | + <precision>-2</precision> | |
| 420 | + </field> <field> <name>fbgs</name> | |
| 421 | + <rename>翻班格式</rename> | |
| 422 | + <length>-2</length> | |
| 423 | + <precision>-2</precision> | |
| 424 | + </field> <select_unspecified>N</select_unspecified> | |
| 425 | + </fields> <cluster_schema/> | |
| 426 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 427 | + <xloc>705</xloc> | |
| 428 | + <yloc>270</yloc> | |
| 429 | + <draw>Y</draw> | |
| 430 | + </GUI> | |
| 431 | + </step> | |
| 432 | + | |
| 433 | + <step> | |
| 434 | + <name>排版规则</name> | |
| 435 | + <type>TableInput</type> | |
| 436 | + <description/> | |
| 437 | + <distribute>Y</distribute> | |
| 438 | + <custom_distribution/> | |
| 439 | + <copies>1</copies> | |
| 440 | + <partitioning> | |
| 441 | + <method>none</method> | |
| 442 | + <schema_name/> | |
| 443 | + </partitioning> | |
| 444 | + <connection>bus_control_variable</connection> | |
| 445 | + <sql>SELECT * FROM bsth_c_s_sr1_flat</sql> | |
| 446 | + <limit>0</limit> | |
| 447 | + <lookup/> | |
| 448 | + <execute_each_row>N</execute_each_row> | |
| 449 | + <variables_active>N</variables_active> | |
| 450 | + <lazy_conversion_active>N</lazy_conversion_active> | |
| 451 | + <cluster_schema/> | |
| 452 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 453 | + <xloc>129</xloc> | |
| 454 | + <yloc>65</yloc> | |
| 455 | + <draw>Y</draw> | |
| 456 | + </GUI> | |
| 457 | + </step> | |
| 458 | + | |
| 459 | + <step> | |
| 460 | + <name>格式化日期</name> | |
| 461 | + <type>SelectValues</type> | |
| 462 | + <description/> | |
| 463 | + <distribute>Y</distribute> | |
| 464 | + <custom_distribution/> | |
| 465 | + <copies>1</copies> | |
| 466 | + <partitioning> | |
| 467 | + <method>none</method> | |
| 468 | + <schema_name/> | |
| 469 | + </partitioning> | |
| 470 | + <fields> <select_unspecified>N</select_unspecified> | |
| 471 | + <meta> <name>qyrq</name> | |
| 472 | + <rename>qyrq</rename> | |
| 473 | + <type>String</type> | |
| 474 | + <length>-2</length> | |
| 475 | + <precision>-2</precision> | |
| 476 | + <conversion_mask>yyyy-MM-dd</conversion_mask> | |
| 477 | + <date_format_lenient>false</date_format_lenient> | |
| 478 | + <date_format_locale/> | |
| 479 | + <date_format_timezone/> | |
| 480 | + <lenient_string_to_number>false</lenient_string_to_number> | |
| 481 | + <encoding/> | |
| 482 | + <decimal_symbol/> | |
| 483 | + <grouping_symbol/> | |
| 484 | + <currency_symbol/> | |
| 485 | + <storage_type/> | |
| 486 | + </meta> <meta> <name>lp_start</name> | |
| 487 | + <rename>lp_start</rename> | |
| 488 | + <type>String</type> | |
| 489 | + <length>-2</length> | |
| 490 | + <precision>-2</precision> | |
| 491 | + <conversion_mask/> | |
| 492 | + <date_format_lenient>false</date_format_lenient> | |
| 493 | + <date_format_locale/> | |
| 494 | + <date_format_timezone/> | |
| 495 | + <lenient_string_to_number>false</lenient_string_to_number> | |
| 496 | + <encoding/> | |
| 497 | + <decimal_symbol/> | |
| 498 | + <grouping_symbol/> | |
| 499 | + <currency_symbol/> | |
| 500 | + <storage_type/> | |
| 501 | + </meta> <meta> <name>ry_start</name> | |
| 502 | + <rename>ry_start</rename> | |
| 503 | + <type>String</type> | |
| 504 | + <length>-2</length> | |
| 505 | + <precision>-2</precision> | |
| 506 | + <conversion_mask>#</conversion_mask> | |
| 507 | + <date_format_lenient>false</date_format_lenient> | |
| 508 | + <date_format_locale/> | |
| 509 | + <date_format_timezone/> | |
| 510 | + <lenient_string_to_number>false</lenient_string_to_number> | |
| 511 | + <encoding/> | |
| 512 | + <decimal_symbol/> | |
| 513 | + <grouping_symbol/> | |
| 514 | + <currency_symbol/> | |
| 515 | + <storage_type/> | |
| 516 | + </meta> </fields> <cluster_schema/> | |
| 517 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 518 | + <xloc>705</xloc> | |
| 519 | + <yloc>65</yloc> | |
| 520 | + <draw>Y</draw> | |
| 521 | + </GUI> | |
| 522 | + </step> | |
| 523 | + | |
| 524 | + <step> | |
| 525 | + <name>线路查询</name> | |
| 526 | + <type>DBLookup</type> | |
| 527 | + <description/> | |
| 528 | + <distribute>Y</distribute> | |
| 529 | + <custom_distribution/> | |
| 530 | + <copies>1</copies> | |
| 531 | + <partitioning> | |
| 532 | + <method>none</method> | |
| 533 | + <schema_name/> | |
| 534 | + </partitioning> | |
| 535 | + <connection>bus_control_variable</connection> | |
| 536 | + <cache>Y</cache> | |
| 537 | + <cache_load_all>Y</cache_load_all> | |
| 538 | + <cache_size>0</cache_size> | |
| 539 | + <lookup> | |
| 540 | + <schema/> | |
| 541 | + <table>bsth_c_line</table> | |
| 542 | + <orderby/> | |
| 543 | + <fail_on_multiple>N</fail_on_multiple> | |
| 544 | + <eat_row_on_failure>N</eat_row_on_failure> | |
| 545 | + <key> | |
| 546 | + <name>xl</name> | |
| 547 | + <field>id</field> | |
| 548 | + <condition>=</condition> | |
| 549 | + <name2/> | |
| 550 | + </key> | |
| 551 | + <value> | |
| 552 | + <name>name</name> | |
| 553 | + <rename>xlmc</rename> | |
| 554 | + <default/> | |
| 555 | + <type>String</type> | |
| 556 | + </value> | |
| 557 | + </lookup> | |
| 558 | + <cluster_schema/> | |
| 559 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 560 | + <xloc>329</xloc> | |
| 561 | + <yloc>65</yloc> | |
| 562 | + <draw>Y</draw> | |
| 563 | + </GUI> | |
| 564 | + </step> | |
| 565 | + | |
| 566 | + <step> | |
| 567 | + <name>车辆查询</name> | |
| 568 | + <type>DBLookup</type> | |
| 569 | + <description/> | |
| 570 | + <distribute>Y</distribute> | |
| 571 | + <custom_distribution/> | |
| 572 | + <copies>1</copies> | |
| 573 | + <partitioning> | |
| 574 | + <method>none</method> | |
| 575 | + <schema_name/> | |
| 576 | + </partitioning> | |
| 577 | + <connection>bus_control_variable</connection> | |
| 578 | + <cache>N</cache> | |
| 579 | + <cache_load_all>N</cache_load_all> | |
| 580 | + <cache_size>0</cache_size> | |
| 581 | + <lookup> | |
| 582 | + <schema/> | |
| 583 | + <table>bsth_c_cars</table> | |
| 584 | + <orderby/> | |
| 585 | + <fail_on_multiple>N</fail_on_multiple> | |
| 586 | + <eat_row_on_failure>N</eat_row_on_failure> | |
| 587 | + <key> | |
| 588 | + <name>clid</name> | |
| 589 | + <field>id</field> | |
| 590 | + <condition>=</condition> | |
| 591 | + <name2/> | |
| 592 | + </key> | |
| 593 | + <value> | |
| 594 | + <name>inside_code</name> | |
| 595 | + <rename>zbh</rename> | |
| 596 | + <default/> | |
| 597 | + <type>String</type> | |
| 598 | + </value> | |
| 599 | + </lookup> | |
| 600 | + <cluster_schema/> | |
| 601 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 602 | + <xloc>600</xloc> | |
| 603 | + <yloc>64</yloc> | |
| 604 | + <draw>Y</draw> | |
| 605 | + </GUI> | |
| 606 | + </step> | |
| 607 | + | |
| 608 | + <step> | |
| 609 | + <name>车辆配置查询</name> | |
| 610 | + <type>DBLookup</type> | |
| 611 | + <description/> | |
| 612 | + <distribute>Y</distribute> | |
| 613 | + <custom_distribution/> | |
| 614 | + <copies>1</copies> | |
| 615 | + <partitioning> | |
| 616 | + <method>none</method> | |
| 617 | + <schema_name/> | |
| 618 | + </partitioning> | |
| 619 | + <connection>bus_control_variable</connection> | |
| 620 | + <cache>N</cache> | |
| 621 | + <cache_load_all>N</cache_load_all> | |
| 622 | + <cache_size>0</cache_size> | |
| 623 | + <lookup> | |
| 624 | + <schema/> | |
| 625 | + <table>bsth_c_s_ccinfo</table> | |
| 626 | + <orderby/> | |
| 627 | + <fail_on_multiple>N</fail_on_multiple> | |
| 628 | + <eat_row_on_failure>N</eat_row_on_failure> | |
| 629 | + <key> | |
| 630 | + <name>car_config_info</name> | |
| 631 | + <field>id</field> | |
| 632 | + <condition>=</condition> | |
| 633 | + <name2/> | |
| 634 | + </key> | |
| 635 | + <value> | |
| 636 | + <name>cl</name> | |
| 637 | + <rename>clid</rename> | |
| 638 | + <default/> | |
| 639 | + <type>Integer</type> | |
| 640 | + </value> | |
| 641 | + </lookup> | |
| 642 | + <cluster_schema/> | |
| 643 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 644 | + <xloc>471</xloc> | |
| 645 | + <yloc>64</yloc> | |
| 646 | + <draw>Y</draw> | |
| 647 | + </GUI> | |
| 648 | + </step> | |
| 649 | + | |
| 650 | + <step> | |
| 651 | + <name>排序记录</name> | |
| 652 | + <type>SortRows</type> | |
| 653 | + <description/> | |
| 654 | + <distribute>Y</distribute> | |
| 655 | + <custom_distribution/> | |
| 656 | + <copies>1</copies> | |
| 657 | + <partitioning> | |
| 658 | + <method>none</method> | |
| 659 | + <schema_name/> | |
| 660 | + </partitioning> | |
| 661 | + <directory>%%java.io.tmpdir%%</directory> | |
| 662 | + <prefix>out</prefix> | |
| 663 | + <sort_size>1000000</sort_size> | |
| 664 | + <free_memory/> | |
| 665 | + <compress>N</compress> | |
| 666 | + <compress_variable/> | |
| 667 | + <unique_rows>N</unique_rows> | |
| 668 | + <fields> | |
| 669 | + <field> | |
| 670 | + <name>xlmc</name> | |
| 671 | + <ascending>Y</ascending> | |
| 672 | + <case_sensitive>N</case_sensitive> | |
| 673 | + <presorted>N</presorted> | |
| 674 | + </field> | |
| 675 | + <field> | |
| 676 | + <name>zbh</name> | |
| 677 | + <ascending>Y</ascending> | |
| 678 | + <case_sensitive>N</case_sensitive> | |
| 679 | + <presorted>N</presorted> | |
| 680 | + </field> | |
| 681 | + <field> | |
| 682 | + <name>qyrq</name> | |
| 683 | + <ascending>Y</ascending> | |
| 684 | + <case_sensitive>N</case_sensitive> | |
| 685 | + <presorted>N</presorted> | |
| 686 | + </field> | |
| 687 | + <field> | |
| 688 | + <name>lp_names</name> | |
| 689 | + <ascending>Y</ascending> | |
| 690 | + <case_sensitive>N</case_sensitive> | |
| 691 | + <presorted>N</presorted> | |
| 692 | + </field> | |
| 693 | + <field> | |
| 694 | + <name>ry_dbbms</name> | |
| 695 | + <ascending>Y</ascending> | |
| 696 | + <case_sensitive>N</case_sensitive> | |
| 697 | + <presorted>N</presorted> | |
| 698 | + </field> | |
| 699 | + </fields> | |
| 700 | + <cluster_schema/> | |
| 701 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 702 | + <xloc>705</xloc> | |
| 703 | + <yloc>177</yloc> | |
| 704 | + <draw>Y</draw> | |
| 705 | + </GUI> | |
| 706 | + </step> | |
| 707 | + | |
| 708 | + <step_error_handling> | |
| 709 | + </step_error_handling> | |
| 710 | + <slave-step-copy-partition-distribution> | |
| 711 | +</slave-step-copy-partition-distribution> | |
| 712 | + <slave_transformation>N</slave_transformation> | |
| 713 | + | |
| 714 | +</transformation> | ... | ... |
src/main/resources/static/pages/forms/mould/operationservice.xls
No preview for this file type
src/main/resources/static/pages/forms/mould/statisticsDaily_.xls
0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/mould/waybill_qingpu.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleDaily.html
| ... | ... | @@ -277,16 +277,16 @@ |
| 277 | 277 | var line = $("#line").val(); |
| 278 | 278 | var xlName = $("#select2-line-container").html(); |
| 279 | 279 | var date = $("#date").val(); |
| 280 | - $get('/realSchedule/statisticsDaily',{line:line,date:date,xlName:xlName},function(result){ | |
| 280 | + $get('/realSchedule/statisticsDaily',{line:line,date:date,xlName:xlName,type:"query"},function(result){ | |
| 281 | 281 | var scheduleDaily_1 = template('scheduleDaily_1',{list:result}); |
| 282 | 282 | $('#forms .scheduleDaily_1').html(scheduleDaily_1); |
| 283 | 283 | }); |
| 284 | - $.get('/realSchedule/queryUserInfo',{line:line,date:date,state:2},function(result){ | |
| 284 | + $.get('/realSchedule/queryUserInfo',{line:line,date:date,state:2,type:"query"},function(result){ | |
| 285 | 285 | console.log(result); |
| 286 | 286 | var scheduleDaily_2 = template('scheduleDaily_2',{list:result}); |
| 287 | 287 | $('#forms .scheduleDaily_2').html(scheduleDaily_2); |
| 288 | 288 | }); |
| 289 | - $.get('/realSchedule/realScheduleList',{line:line,date:date},function(result){ | |
| 289 | + $.get('/realSchedule/realScheduleList',{line:line,date:date,type:"query"},function(result){ | |
| 290 | 290 | var scheduleDaily_3 = template('scheduleDaily_3',{list:result}); |
| 291 | 291 | $('#forms .scheduleDaily_3').html(scheduleDaily_3); |
| 292 | 292 | }); | ... | ... |
src/main/resources/static/pages/forms/statement/statisticsDaily .html
| 1 | -<style type="text/css"> | |
| 2 | - .table-bordered { | |
| 3 | - border: 1px solid; } | |
| 4 | - .table-bordered > thead > tr > th, | |
| 5 | - .table-bordered > thead > tr > td, | |
| 6 | - .table-bordered > tbody > tr > th, | |
| 7 | - .table-bordered > tbody > tr > td, | |
| 8 | - .table-bordered > tfoot > tr > th, | |
| 9 | - .table-bordered > tfoot > tr > td { | |
| 10 | - border: 1px solid; } | |
| 11 | - .table-bordered > thead > tr > th, | |
| 12 | - .table-bordered > thead > tr > td { | |
| 13 | - border-bottom-width: 2px; } | |
| 14 | - | |
| 15 | - .table > tbody + tbody { | |
| 16 | - border-top: 1px solid; } | |
| 17 | -</style> | |
| 18 | - | |
| 19 | -<div class="page-head"> | |
| 20 | - <div class="page-title"> | |
| 21 | - <h1>统计日报</h1> | |
| 22 | - </div> | |
| 23 | -</div> | |
| 24 | - | |
| 25 | -<div class="row"> | |
| 26 | - <div class="col-md-12"> | |
| 27 | - <div class="portlet light porttlet-fit bordered"> | |
| 28 | - <div class="portlet-title"> | |
| 29 | - <form class="form-inline" action=""> | |
| 30 | - <div style="display: inline-block;"> | |
| 31 | - <span class="item-label" style="width: 80px;">线路: </span> | |
| 32 | - <select class="form-control" name="line" id="line" style="width: 180px;"></select> | |
| 33 | - </div> | |
| 34 | - <div style="display: inline-block;margin-left: 15px;"> | |
| 35 | - <span class="item-label" style="width: 80px;">时间: </span> | |
| 36 | - <input class="form-control" type="text" id="date" style="width: 180px;"/> | |
| 37 | - </div> | |
| 38 | - <div class="form-group"> | |
| 39 | - <input class="btn btn-default" type="button" id="query" value="查询"/> | |
| 40 | -<!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> | |
| 41 | - </div> | |
| 42 | - </form> | |
| 43 | - </div> | |
| 44 | - <div class="portlet-body"> | |
| 45 | - <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | |
| 46 | - <label>早高峰:6:31~8:30 晚高峰:16:01~18:00</label> | |
| 47 | - <table class="table table-bordered table-hover table-checkable" id="forms"> | |
| 48 | - <thead> | |
| 49 | - <tr> | |
| 50 | - <th colspan="36">线路运营情况统计日报</th> | |
| 51 | - </tr> | |
| 52 | - <tr> | |
| 53 | - <td rowspan="3">路线别</td> | |
| 54 | - <td colspan="15">全日营运里程(公里)</td> | |
| 55 | - <td colspan="15">全日营运班次</td> | |
| 56 | - <td colspan="5">大间隔情况</td> | |
| 57 | - </tr> | |
| 58 | - <tr> | |
| 59 | - <td rowspan="2">计划</td> | |
| 60 | - <td rowspan="2">实驶</td> | |
| 61 | - <td rowspan="2">少驶</td> | |
| 62 | - <td colspan="11">少驶原因(公里)</td> | |
| 63 | - <td rowspan="2">临加公里</td> | |
| 64 | - <td colspan="3">计划班次</td> | |
| 65 | - <td colspan="3">实际班次</td> | |
| 66 | - <td colspan="3">临加班次</td> | |
| 67 | - <td colspan="3">放站班次</td> | |
| 68 | - <td colspan="3">调头班次</td> | |
| 69 | - <td colspan="3">发生次数</td> | |
| 70 | - <td rowspan="2">最大间隔时间(秒)</td> | |
| 71 | - <td rowspan="2">原因</td> | |
| 72 | - </tr> | |
| 73 | - <tr> | |
| 74 | - <td width="31px">路阻</td> | |
| 75 | - <td>吊慢</td> | |
| 76 | - <td>故障</td> | |
| 77 | - <td>纠纷</td> | |
| 78 | - <td>肇事</td> | |
| 79 | - <td>缺人</td> | |
| 80 | - <td>缺车</td> | |
| 81 | - <td>客稀</td> | |
| 82 | - <td>气候</td> | |
| 83 | - <td>援外</td> | |
| 84 | - <td>其他</td> | |
| 85 | - <td>全日</td> | |
| 86 | - <td>早高峰</td> | |
| 87 | - <td>晚高峰</td> | |
| 88 | - <td>全日</td> | |
| 89 | - <td>早高峰</td> | |
| 90 | - <td>晚高峰</td> | |
| 91 | - <td>全日</td> | |
| 92 | - <td>早高峰</td> | |
| 93 | - <td>晚高峰</td> | |
| 94 | - <td>全日</td> | |
| 95 | - <td>早高峰</td> | |
| 96 | - <td>晚高峰</td> | |
| 97 | - <td>全日</td> | |
| 98 | - <td>早高峰</td> | |
| 99 | - <td>晚高峰</td> | |
| 100 | - <td>全日</td> | |
| 101 | - <td>早高峰</td> | |
| 102 | - <td>晚高峰</td> | |
| 103 | - </tr> | |
| 104 | - </thead> | |
| 105 | - <tbody class="statisticsDaily"> | |
| 106 | - | |
| 107 | - </tbody> | |
| 108 | - <tr> | |
| 109 | - <td>合计</td> | |
| 110 | - <td> </td> | |
| 111 | - <td> </td> | |
| 112 | - <td> </td> | |
| 113 | - <td> </td> | |
| 114 | - <td> </td> | |
| 115 | - <td> </td> | |
| 116 | - <td> </td> | |
| 117 | - <td> </td> | |
| 118 | - <td> </td> | |
| 119 | - <td> </td> | |
| 120 | - <td> </td> | |
| 121 | - <td> </td> | |
| 122 | - <td> </td> | |
| 123 | - <td> </td> | |
| 124 | - <td> </td> | |
| 125 | - <td> </td> | |
| 126 | - <td> </td> | |
| 127 | - <td> </td> | |
| 128 | - <td> </td> | |
| 129 | - <td> </td> | |
| 130 | - <td> </td> | |
| 131 | - <td> </td> | |
| 132 | - <td> </td> | |
| 133 | - <td> </td> | |
| 134 | - <td> </td> | |
| 135 | - <td> </td> | |
| 136 | - <td> </td> | |
| 137 | - <td> </td> | |
| 138 | - <td> </td> | |
| 139 | - <td> </td> | |
| 140 | - <td> </td> | |
| 141 | - <td> </td> | |
| 142 | - <td> </td> | |
| 143 | - <td> </td> | |
| 144 | - <td> </td> | |
| 145 | - </tr> | |
| 146 | - <tr> | |
| 147 | - <td>运营情况摘录</td> | |
| 148 | - <td colspan="35"> </td> | |
| 149 | - </tr> | |
| 150 | - </table> | |
| 151 | - </div> | |
| 152 | - </div> | |
| 153 | - </div> | |
| 154 | - </div> | |
| 155 | -</div> | |
| 156 | - | |
| 157 | -<script> | |
| 158 | - $(function(){ | |
| 159 | - // 关闭左侧栏 | |
| 160 | - if (!$('body').hasClass('page-sidebar-closed')) | |
| 161 | - $('.menu-toggler.sidebar-toggler').click(); | |
| 162 | - | |
| 163 | - $("#date").datetimepicker({ | |
| 164 | - format : 'YYYY-MM-DD', | |
| 165 | - locale : 'zh-cn' | |
| 166 | - }); | |
| 167 | - $.get('/basic/lineCode2Name',function(result){ | |
| 168 | - var data=[]; | |
| 169 | - | |
| 170 | - for(var code in result){ | |
| 171 | - data.push({id: code, text: result[code]}); | |
| 172 | - } | |
| 173 | - console.log(data); | |
| 174 | - initPinYinSelect2('#line',data,''); | |
| 175 | - | |
| 176 | - }) | |
| 177 | - | |
| 178 | - | |
| 179 | - $("#query").on("click",function(){ | |
| 180 | - var line = $("#line").val(); | |
| 181 | - var xlName = $("#select2-line-container").html(); | |
| 182 | - var date = $("#date").val(); | |
| 183 | - $get('/realSchedule/statisticsDaily',{line:line,date:date,xlName:xlName},function(result){ | |
| 184 | - // 把数据填充到模版中 | |
| 185 | - var tbodyHtml = template('statisticsDaily',{list:result}); | |
| 186 | - // 把渲染好的模版html文本追加到表格中 | |
| 187 | - $('#forms .statisticsDaily').html(tbodyHtml); | |
| 188 | - }); | |
| 189 | - }); | |
| 190 | - }); | |
| 191 | -</script> | |
| 192 | -<script type="text/html" id="statisticsDaily"> | |
| 193 | - {{each list as obj i}} | |
| 194 | - <tr> | |
| 195 | - <td>{{obj.xlName}}</td> | |
| 196 | - <td>{{obj.jhlc}}</td> | |
| 197 | - <td>{{obj.sjgl}}</td> | |
| 198 | - <td>{{obj.ssgl}}</td> | |
| 199 | - <td>{{obj.ssgl_lz}}</td> | |
| 200 | - <td>{{obj.ssgl_dm}}</td> | |
| 201 | - <td>{{obj.ssgl_gz}}</td> | |
| 202 | - <td>{{obj.ssgl_jf}}</td> | |
| 203 | - <td>{{obj.ssgl_zs}}</td> | |
| 204 | - <td>{{obj.ssgl_qr}}</td> | |
| 205 | - <td>{{obj.ssgl_qc}}</td> | |
| 206 | - <td>{{obj.ssgl_kx}}</td> | |
| 207 | - <td>{{obj.ssgl_qh}}</td> | |
| 208 | - <td>{{obj.ssgl_yw}}</td> | |
| 209 | - <td>{{obj.ssgl_other}}</td> | |
| 210 | - <td>{{obj.ljgl}}</td> | |
| 211 | - <td>{{obj.jhbc}}</td> | |
| 212 | - <td>{{obj.jhbc_m}}</td> | |
| 213 | - <td>{{obj.jhbc_a}}</td> | |
| 214 | - <td>{{obj.sjbc}}</td> | |
| 215 | - <td>{{obj.sjbc_m}}</td> | |
| 216 | - <td>{{obj.sjbc_a}}</td> | |
| 217 | - <td>{{obj.ljbc}}</td> | |
| 218 | - <td>{{obj.ljbc_m}}</td> | |
| 219 | - <td>{{obj.ljbc_a}}</td> | |
| 220 | - <td>{{obj.fzbc}}</td> | |
| 221 | - <td>{{obj.fzbc_m}}</td> | |
| 222 | - <td>{{obj.fzbc_a}}</td> | |
| 223 | - <td>{{obj.dtbc}}</td> | |
| 224 | - <td>{{obj.dtbc_m}}</td> | |
| 225 | - <td>{{obj.dtbc_a}}</td> | |
| 226 | - <td>{{obj.djg}}</td> | |
| 227 | - <td>{{obj.djg_m}}</td> | |
| 228 | - <td>{{obj.djg_a}}</td> | |
| 229 | - <td>{{obj.djg_time}}</td> | |
| 230 | - <td> </td> | |
| 231 | - </tr> | |
| 232 | - {{/each}} | |
| 233 | - {{if list.length == 0}} | |
| 234 | - <tr> | |
| 235 | - <td colspan="36"><h6 class="muted">没有找到相关数据</h6></td> | |
| 236 | - </tr> | |
| 237 | - {{/if}} | |
| 1 | +<style type="text/css"> | |
| 2 | + .table-bordered { | |
| 3 | + border: 1px solid; } | |
| 4 | + .table-bordered > thead > tr > th, | |
| 5 | + .table-bordered > thead > tr > td, | |
| 6 | + .table-bordered > tbody > tr > th, | |
| 7 | + .table-bordered > tbody > tr > td, | |
| 8 | + .table-bordered > tfoot > tr > th, | |
| 9 | + .table-bordered > tfoot > tr > td { | |
| 10 | + border: 1px solid; } | |
| 11 | + .table-bordered > thead > tr > th, | |
| 12 | + .table-bordered > thead > tr > td { | |
| 13 | + border-bottom-width: 2px; } | |
| 14 | + | |
| 15 | + .table > tbody + tbody { | |
| 16 | + border-top: 1px solid; } | |
| 17 | +</style> | |
| 18 | + | |
| 19 | +<div class="page-head"> | |
| 20 | + <div class="page-title"> | |
| 21 | + <h1>统计日报</h1> | |
| 22 | + </div> | |
| 23 | +</div> | |
| 24 | + | |
| 25 | +<div class="row"> | |
| 26 | + <div class="col-md-12"> | |
| 27 | + <div class="portlet light porttlet-fit bordered"> | |
| 28 | + <div class="portlet-title"> | |
| 29 | + <form class="form-inline" action=""> | |
| 30 | + <div style="display: inline-block;"> | |
| 31 | + <span class="item-label" style="width: 80px;">线路: </span> | |
| 32 | + <select class="form-control" name="line" id="line" style="width: 180px;"></select> | |
| 33 | + </div> | |
| 34 | + <div style="display: inline-block;margin-left: 15px;"> | |
| 35 | + <span class="item-label" style="width: 80px;">时间: </span> | |
| 36 | + <input class="form-control" type="text" id="date" style="width: 180px;"/> | |
| 37 | + </div> | |
| 38 | + <div class="form-group"> | |
| 39 | + <input class="btn btn-default" type="button" id="query" value="查询"/> | |
| 40 | + <input class="btn btn-default" type="button" id="export" value="导出"/> | |
| 41 | + </div> | |
| 42 | + </form> | |
| 43 | + </div> | |
| 44 | + <div class="portlet-body"> | |
| 45 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | |
| 46 | + <label>早高峰:6:31~8:30 晚高峰:16:01~18:00</label> | |
| 47 | + <table class="table table-bordered table-hover table-checkable" id="forms"> | |
| 48 | + <thead> | |
| 49 | + <tr> | |
| 50 | + <th colspan="36">线路运营情况统计日报</th> | |
| 51 | + </tr> | |
| 52 | + <tr> | |
| 53 | + <td rowspan="3">路线别</td> | |
| 54 | + <td colspan="15">全日营运里程(公里)</td> | |
| 55 | + <td colspan="15">全日营运班次</td> | |
| 56 | + <td colspan="5">大间隔情况</td> | |
| 57 | + </tr> | |
| 58 | + <tr> | |
| 59 | + <td rowspan="2">计划</td> | |
| 60 | + <td rowspan="2">实驶</td> | |
| 61 | + <td rowspan="2">少驶</td> | |
| 62 | + <td colspan="11">少驶原因(公里)</td> | |
| 63 | + <td rowspan="2">临加公里</td> | |
| 64 | + <td colspan="3">计划班次</td> | |
| 65 | + <td colspan="3">实际班次</td> | |
| 66 | + <td colspan="3">临加班次</td> | |
| 67 | + <td colspan="3">放站班次</td> | |
| 68 | + <td colspan="3">调头班次</td> | |
| 69 | + <td colspan="3">发生次数</td> | |
| 70 | + <td rowspan="2">最大间隔时间(秒)</td> | |
| 71 | + <td rowspan="2">原因</td> | |
| 72 | + </tr> | |
| 73 | + <tr> | |
| 74 | + <td width="31px">路阻</td> | |
| 75 | + <td>吊慢</td> | |
| 76 | + <td>故障</td> | |
| 77 | + <td>纠纷</td> | |
| 78 | + <td>肇事</td> | |
| 79 | + <td>缺人</td> | |
| 80 | + <td>缺车</td> | |
| 81 | + <td>客稀</td> | |
| 82 | + <td>气候</td> | |
| 83 | + <td>援外</td> | |
| 84 | + <td>其他</td> | |
| 85 | + <td>全日</td> | |
| 86 | + <td>早高峰</td> | |
| 87 | + <td>晚高峰</td> | |
| 88 | + <td>全日</td> | |
| 89 | + <td>早高峰</td> | |
| 90 | + <td>晚高峰</td> | |
| 91 | + <td>全日</td> | |
| 92 | + <td>早高峰</td> | |
| 93 | + <td>晚高峰</td> | |
| 94 | + <td>全日</td> | |
| 95 | + <td>早高峰</td> | |
| 96 | + <td>晚高峰</td> | |
| 97 | + <td>全日</td> | |
| 98 | + <td>早高峰</td> | |
| 99 | + <td>晚高峰</td> | |
| 100 | + <td>全日</td> | |
| 101 | + <td>早高峰</td> | |
| 102 | + <td>晚高峰</td> | |
| 103 | + </tr> | |
| 104 | + </thead> | |
| 105 | + <tbody class="statisticsDaily"> | |
| 106 | + | |
| 107 | + </tbody> | |
| 108 | + <tr> | |
| 109 | + <td>合计</td> | |
| 110 | + <td> </td> | |
| 111 | + <td> </td> | |
| 112 | + <td> </td> | |
| 113 | + <td> </td> | |
| 114 | + <td> </td> | |
| 115 | + <td> </td> | |
| 116 | + <td> </td> | |
| 117 | + <td> </td> | |
| 118 | + <td> </td> | |
| 119 | + <td> </td> | |
| 120 | + <td> </td> | |
| 121 | + <td> </td> | |
| 122 | + <td> </td> | |
| 123 | + <td> </td> | |
| 124 | + <td> </td> | |
| 125 | + <td> </td> | |
| 126 | + <td> </td> | |
| 127 | + <td> </td> | |
| 128 | + <td> </td> | |
| 129 | + <td> </td> | |
| 130 | + <td> </td> | |
| 131 | + <td> </td> | |
| 132 | + <td> </td> | |
| 133 | + <td> </td> | |
| 134 | + <td> </td> | |
| 135 | + <td> </td> | |
| 136 | + <td> </td> | |
| 137 | + <td> </td> | |
| 138 | + <td> </td> | |
| 139 | + <td> </td> | |
| 140 | + <td> </td> | |
| 141 | + <td> </td> | |
| 142 | + <td> </td> | |
| 143 | + <td> </td> | |
| 144 | + <td> </td> | |
| 145 | + </tr> | |
| 146 | + <tr> | |
| 147 | + <td>运营情况摘录</td> | |
| 148 | + <td colspan="35"> </td> | |
| 149 | + </tr> | |
| 150 | + </table> | |
| 151 | + </div> | |
| 152 | + </div> | |
| 153 | + </div> | |
| 154 | + </div> | |
| 155 | +</div> | |
| 156 | + | |
| 157 | +<script> | |
| 158 | + $(function(){ | |
| 159 | + $('#export').attr('disabled', "true"); | |
| 160 | + | |
| 161 | + // 关闭左侧栏 | |
| 162 | + if (!$('body').hasClass('page-sidebar-closed')) | |
| 163 | + $('.menu-toggler.sidebar-toggler').click(); | |
| 164 | + | |
| 165 | + $("#date").datetimepicker({ | |
| 166 | + format : 'YYYY-MM-DD', | |
| 167 | + locale : 'zh-cn' | |
| 168 | + }); | |
| 169 | + $.get('/basic/lineCode2Name',function(result){ | |
| 170 | + var data=[]; | |
| 171 | + | |
| 172 | + for(var code in result){ | |
| 173 | + data.push({id: code, text: result[code]}); | |
| 174 | + } | |
| 175 | + console.log(data); | |
| 176 | + initPinYinSelect2('#line',data,''); | |
| 177 | + | |
| 178 | + }) | |
| 179 | + | |
| 180 | + | |
| 181 | + var line = $("#line").val(); | |
| 182 | + var xlName = $("#select2-line-container").html(); | |
| 183 | + var date = $("#date").val(); | |
| 184 | + $("#query").on("click",function(){ | |
| 185 | + line = $("#line").val(); | |
| 186 | + xlName = $("#select2-line-container").html(); | |
| 187 | + date = $("#date").val(); | |
| 188 | + $get('/realSchedule/statisticsDaily',{line:line,date:date,xlName:xlName,type:"query"},function(result){ | |
| 189 | + // 把数据填充到模版中 | |
| 190 | + var tbodyHtml = template('statisticsDaily',{list:result}); | |
| 191 | + // 把渲染好的模版html文本追加到表格中 | |
| 192 | + $('#forms .statisticsDaily').html(tbodyHtml); | |
| 193 | + | |
| 194 | + if(result.length == 0) | |
| 195 | + $("#export").attr('disabled',"true"); | |
| 196 | + else | |
| 197 | + $("#export").removeAttr("disabled"); | |
| 198 | + }); | |
| 199 | + }); | |
| 200 | + | |
| 201 | + $("#export").on("click",function(){ | |
| 202 | + $get('/realSchedule/statisticsDaily',{line:line,date:date,xlName:xlName,type:"export"},function(result){ | |
| 203 | + window.open("/downloadFile/download?fileName=统计日报"+moment(date).format("YYYYMMDD")); | |
| 204 | + }); | |
| 205 | + }); | |
| 206 | + | |
| 207 | + }); | |
| 208 | +</script> | |
| 209 | +<script type="text/html" id="statisticsDaily"> | |
| 210 | + {{each list as obj i}} | |
| 211 | + <tr> | |
| 212 | + <td>{{obj.xlName}}</td> | |
| 213 | + <td>{{obj.jhlc}}</td> | |
| 214 | + <td>{{obj.sjgl}}</td> | |
| 215 | + <td>{{obj.ssgl}}</td> | |
| 216 | + <td>{{obj.ssgl_lz}}</td> | |
| 217 | + <td>{{obj.ssgl_dm}}</td> | |
| 218 | + <td>{{obj.ssgl_gz}}</td> | |
| 219 | + <td>{{obj.ssgl_jf}}</td> | |
| 220 | + <td>{{obj.ssgl_zs}}</td> | |
| 221 | + <td>{{obj.ssgl_qr}}</td> | |
| 222 | + <td>{{obj.ssgl_qc}}</td> | |
| 223 | + <td>{{obj.ssgl_kx}}</td> | |
| 224 | + <td>{{obj.ssgl_qh}}</td> | |
| 225 | + <td>{{obj.ssgl_yw}}</td> | |
| 226 | + <td>{{obj.ssgl_other}}</td> | |
| 227 | + <td>{{obj.ljgl}}</td> | |
| 228 | + <td>{{obj.jhbc}}</td> | |
| 229 | + <td>{{obj.jhbc_m}}</td> | |
| 230 | + <td>{{obj.jhbc_a}}</td> | |
| 231 | + <td>{{obj.sjbc}}</td> | |
| 232 | + <td>{{obj.sjbc_m}}</td> | |
| 233 | + <td>{{obj.sjbc_a}}</td> | |
| 234 | + <td>{{obj.ljbc}}</td> | |
| 235 | + <td>{{obj.ljbc_m}}</td> | |
| 236 | + <td>{{obj.ljbc_a}}</td> | |
| 237 | + <td>{{obj.fzbc}}</td> | |
| 238 | + <td>{{obj.fzbc_m}}</td> | |
| 239 | + <td>{{obj.fzbc_a}}</td> | |
| 240 | + <td>{{obj.dtbc}}</td> | |
| 241 | + <td>{{obj.dtbc_m}}</td> | |
| 242 | + <td>{{obj.dtbc_a}}</td> | |
| 243 | + <td>{{obj.djg}}</td> | |
| 244 | + <td>{{obj.djg_m}}</td> | |
| 245 | + <td>{{obj.djg_a}}</td> | |
| 246 | + <td>{{obj.djg_time}}</td> | |
| 247 | + <td> </td> | |
| 248 | + </tr> | |
| 249 | + {{/each}} | |
| 250 | + {{if list.length == 0}} | |
| 251 | + <tr> | |
| 252 | + <td colspan="36"><h6 class="muted">没有找到相关数据</h6></td> | |
| 253 | + </tr> | |
| 254 | + {{/if}} | |
| 238 | 255 | </script> |
| 239 | 256 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/forms/statement/waybillQp.html
| ... | ... | @@ -258,11 +258,11 @@ |
| 258 | 258 | <tr> |
| 259 | 259 | <td colspan="2">调度员</td> |
| 260 | 260 | <td colspan="2">早班(职号)</td> |
| 261 | - <td >{{map.zdp}}</td> | |
| 261 | + <td title={{map.zdp}}>{{map.zdpT}}</td> | |
| 262 | 262 | <td >中班(职号)</td> |
| 263 | - <td >{{map.zwdp}}</td> | |
| 263 | + <td title={{map.zwdp}}>{{map.zwdpT}}</td> | |
| 264 | 264 | <td colspan="2">夜班(职号)</td> |
| 265 | - <td colspan="2">{{map.wdp}}</td> | |
| 265 | + <td colspan="2" title={{map.wdp}}>{{map.wdpT}}</td> | |
| 266 | 266 | <td colspan="2">其他</td> |
| 267 | 267 | <td colspan="2"> </td> |
| 268 | 268 | </tr> | ... | ... |
src/main/resources/static/real_control_v2/css/home.css
| ... | ... | @@ -79,7 +79,7 @@ |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | .home-gps-table dl dt:nth-of-type(4), .home-gps-table dl dd:nth-of-type(4) { |
| 82 | - width: 9% | |
| 82 | + width: 8%; | |
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | .home-gps-table dl dt:nth-of-type(5), .home-gps-table dl dd:nth-of-type(5) { |
| ... | ... | @@ -248,6 +248,13 @@ span.signal-state-outbounds{ |
| 248 | 248 | font-size: 11px; |
| 249 | 249 | } |
| 250 | 250 | |
| 251 | +span.signal-state-speed-limit{ | |
| 252 | + color: red; | |
| 253 | + padding: 2px 3px; | |
| 254 | + border-radius: 3px; | |
| 255 | + font-size: 11px; | |
| 256 | +} | |
| 257 | + | |
| 251 | 258 | .home-svg-edit-icon{ |
| 252 | 259 | position: absolute; |
| 253 | 260 | right: 10px; |
| ... | ... | @@ -265,4 +272,10 @@ span.signal-state-outbounds{ |
| 265 | 272 | .home-svg-edit-icon:before{ |
| 266 | 273 | font-family: FontAwesome; |
| 267 | 274 | content: "\f040"; |
| 275 | +} | |
| 276 | + | |
| 277 | +.carpark-icon{ | |
| 278 | + color: #4dc24d; | |
| 279 | + font-size: 14px; | |
| 280 | + margin-left: 5px; | |
| 268 | 281 | } |
| 269 | 282 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/css/main.css
| ... | ... | @@ -180,10 +180,10 @@ svg.line-chart g.item:nth-last-child(3)>text.down { |
| 180 | 180 | } |
| 181 | 181 | |
| 182 | 182 | svg.line-chart g.gps-wrap>rect { |
| 183 | - width: 34px; | |
| 183 | + width: 30px; | |
| 184 | 184 | height: 15px; |
| 185 | - /*fill: #fff;*/ | |
| 186 | - rx: 4px; | |
| 185 | + /* fill: #fff; */ | |
| 186 | + rx: 2px; | |
| 187 | 187 | cursor: pointer; |
| 188 | 188 | } |
| 189 | 189 | |
| ... | ... | @@ -202,8 +202,8 @@ svg.line-chart g.gps-wrap>rect.hover { |
| 202 | 202 | } |
| 203 | 203 | |
| 204 | 204 | svg.line-chart g.gps-wrap>text { |
| 205 | - font-size: 13px; | |
| 206 | - transform: translate(2px, 12px); | |
| 205 | + font-size: 12px; | |
| 206 | + transform: translate(0, 12px); | |
| 207 | 207 | pointer-events: none; |
| 208 | 208 | } |
| 209 | 209 | |
| ... | ... | @@ -220,8 +220,8 @@ svg.line-chart .merge_hide { |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | 222 | svg.line-chart g.merge-item rect { |
| 223 | - width: 24px; | |
| 224 | - height: 24px; | |
| 223 | + width: 22px; | |
| 224 | + height: 22px; | |
| 225 | 225 | rx: 15px; |
| 226 | 226 | fill: #19a53a; |
| 227 | 227 | cursor: pointer; | ... | ... |
src/main/resources/static/real_control_v2/fragments/home/line_panel.html
| ... | ... | @@ -30,12 +30,16 @@ |
| 30 | 30 | <dd>{{speed}}</dd> |
| 31 | 31 | <dd>{{expectStopTime}}</dd> |
| 32 | 32 | <dd> |
| 33 | - {{if abnormal != null}} | |
| 34 | - {{if abnormal == 'outBounds'}} | |
| 35 | - 越界 | |
| 33 | + {{if abnormalStatus != null}} | |
| 34 | + {{if abnormalStatus == 'outBounds'}} | |
| 35 | + <span class="signal-state-outbounds">越界</span> | |
| 36 | + {{else if abnormalStatus == 'overspeed'}} | |
| 37 | + <span class="signal-state-speed-limit">超速</span> | |
| 36 | 38 | {{/if}} |
| 37 | - {{else}} | |
| 38 | - 正常 | |
| 39 | + {{/if}} | |
| 40 | + | |
| 41 | + {{if instation == 2}} | |
| 42 | + <i class="uk-icon-product-hunt carpark-icon"></i> | |
| 39 | 43 | {{/if}} |
| 40 | 44 | </dd> |
| 41 | 45 | <dd title="{{stationName}}">{{stationName}}</dd> |
| ... | ... | @@ -46,12 +50,16 @@ |
| 46 | 50 | </script> |
| 47 | 51 | |
| 48 | 52 | <script id="home-gps-abnormal-temp" type="text/html"> |
| 49 | - {{if abnormal != null}} | |
| 50 | - {{if abnormal == 'outBounds'}} | |
| 53 | + {{if abnormalStatus != null}} | |
| 54 | + {{if abnormalStatus == 'outBounds'}} | |
| 51 | 55 | <span class="signal-state-outbounds">越界</span> |
| 56 | + {{else if abnormalStatus == 'overspeed'}} | |
| 57 | + <span class="signal-state-speed-limit">超速</span> | |
| 52 | 58 | {{/if}} |
| 53 | - {{else}} | |
| 54 | - 正常 | |
| 59 | + {{/if}} | |
| 60 | + | |
| 61 | + {{if instation == 2}} | |
| 62 | + <i class="uk-icon-product-hunt carpark-icon"></i> | |
| 55 | 63 | {{/if}} |
| 56 | 64 | </script> |
| 57 | 65 | </div> | ... | ... |
src/main/resources/static/real_control_v2/js/data/data_basic.js
| ... | ... | @@ -135,6 +135,9 @@ var gb_data_basic = (function () { |
| 135 | 135 | return nbbm2deviceMap; |
| 136 | 136 | }, |
| 137 | 137 | getLineInformation: getLineInformation, |
| 138 | + allInformations: function () { | |
| 139 | + return lineInformations; | |
| 140 | + }, | |
| 138 | 141 | stationRoutes: function (lineCode) { |
| 139 | 142 | return stationRoutes[lineCode] |
| 140 | 143 | }, | ... | ... |
src/main/resources/static/real_control_v2/js/data/data_gps.js
| ... | ... | @@ -3,7 +3,7 @@ |
| 3 | 3 | var gb_data_gps = (function() { |
| 4 | 4 | |
| 5 | 5 | //fixed time refresh delay |
| 6 | - var delay = 1000 * 5; | |
| 6 | + var delay = 1000 * 7; | |
| 7 | 7 | //deviceId ——> gps |
| 8 | 8 | var realData = {}; |
| 9 | 9 | //refresh after callback |
| ... | ... | @@ -38,11 +38,13 @@ var gb_data_gps = (function() { |
| 38 | 38 | $.each(rs, function() { |
| 39 | 39 | old = realData[this.deviceId]; |
| 40 | 40 | if (old) { |
| 41 | - if (old.timestamp < this.timestamp) | |
| 41 | + if (this.timestamp > old.timestamp){ | |
| 42 | 42 | if (old.upDown != this.upDown) |
| 43 | 43 | upDownChange.push(this); |
| 44 | 44 | else |
| 45 | 45 | upArr.push(this); |
| 46 | + } | |
| 47 | + | |
| 46 | 48 | } else |
| 47 | 49 | addArr.push(this); |
| 48 | 50 | |
| ... | ... | @@ -55,8 +57,6 @@ var gb_data_gps = (function() { |
| 55 | 57 | |
| 56 | 58 | //时间格式化 |
| 57 | 59 | this.dateStr = moment(this.timestamp).format('YYYY-MM-DD HH:mm:ss'); |
| 58 | - //异常检测 | |
| 59 | - gb_gps_abnormal.check(this); | |
| 60 | 60 | realData[this.deviceId] = this; |
| 61 | 61 | }); |
| 62 | 62 | ... | ... |
src/main/resources/static/real_control_v2/js/data/gps_abnormal.js
| 1 | -/** gps 信号异常状态,无效 | 越界 | 超速 */ | |
| 1 | +/** gps 信号异常状态,无效 | 越界 | 超速 | |
| 2 | + * | |
| 3 | + * | |
| 4 | + * 前端计算略微有点卡顿, 交由后端计算 | |
| 5 | + * */ | |
| 2 | 6 | |
| 3 | 7 | var gb_gps_abnormal = (function () { |
| 4 | 8 | |
| ... | ... | @@ -11,7 +15,12 @@ var gb_gps_abnormal = (function () { |
| 11 | 15 | }; |
| 12 | 16 | |
| 13 | 17 | //越界 |
| 18 | + var threshold = 120; | |
| 14 | 19 | var gpsOutOfBounds = function (gps) { |
| 20 | + //进场班次不管 | |
| 21 | + if (gps.sch && gps.sch.bcType == 'in') | |
| 22 | + return; | |
| 23 | + | |
| 15 | 24 | var roads = allRoads[gps.lineId + '_' + gps.upDown]; |
| 16 | 25 | if (!roads) |
| 17 | 26 | return; |
| ... | ... | @@ -25,15 +34,19 @@ var gb_gps_abnormal = (function () { |
| 25 | 34 | }); |
| 26 | 35 | |
| 27 | 36 | //越界阈值 120米 |
| 28 | - var threshold = 120; | |
| 29 | - if (gps.sch && gps.sch.bcType == 'in') | |
| 30 | - return; | |
| 31 | - | |
| 32 | 37 | if (min > threshold) { |
| 33 | 38 | gps.abnormal = 'outBounds'; |
| 34 | 39 | gps.outBoundsDistance = min; |
| 40 | + return true; | |
| 35 | 41 | } |
| 36 | - //console.log('最短距离', min, gps.nbbm); | |
| 42 | + }; | |
| 43 | + | |
| 44 | + | |
| 45 | + //线路限速数据 | |
| 46 | + var lineSpeedLimit = {}; | |
| 47 | + //超速 | |
| 48 | + var overspeed = function (gps) { | |
| 49 | + | |
| 37 | 50 | }; |
| 38 | 51 | |
| 39 | 52 | /** |
| ... | ... | @@ -56,6 +69,14 @@ var gb_gps_abnormal = (function () { |
| 56 | 69 | //按线路_走向 分组数据 |
| 57 | 70 | allRoads = groupByLineAndUpdown(list); |
| 58 | 71 | }); |
| 72 | + | |
| 73 | + //线路限速数据 | |
| 74 | + var infos = gb_data_basic.allInformations(); | |
| 75 | + for (var lineCode in infos) { | |
| 76 | + lineSpeedLimit[lineCode] = infos[lineCode].speedLimit == null ? 70 : infos[lineCode].speedLimit; | |
| 77 | + } | |
| 78 | + | |
| 79 | + console.log('lineSpeedLimit', lineSpeedLimit); | |
| 59 | 80 | }; |
| 60 | 81 | |
| 61 | 82 | function minDistanceFromRoad(pos, gps) { |
| ... | ... | @@ -69,6 +90,9 @@ var gb_gps_abnormal = (function () { |
| 69 | 90 | |
| 70 | 91 | if (!min || min > distance) |
| 71 | 92 | min = distance; |
| 93 | + | |
| 94 | + if (distance <= threshold) | |
| 95 | + return threshold; | |
| 72 | 96 | } |
| 73 | 97 | |
| 74 | 98 | return min; |
| ... | ... | @@ -104,10 +128,11 @@ var gb_gps_abnormal = (function () { |
| 104 | 128 | return { |
| 105 | 129 | initData: initData, |
| 106 | 130 | check: function (gps) { |
| 107 | - if (!allRoads) { | |
| 131 | + if (!allRoads || gps.instation == 2) { | |
| 108 | 132 | return; |
| 109 | 133 | } |
| 110 | 134 | |
| 135 | + //越界判定 | |
| 111 | 136 | gpsOutOfBounds(gps); |
| 112 | 137 | } |
| 113 | 138 | } | ... | ... |
src/main/resources/static/real_control_v2/js/utils/svg_chart.js
| ... | ... | @@ -183,7 +183,7 @@ var gb_svg_chart = (function () { |
| 183 | 183 | var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); |
| 184 | 184 | if (!circle) return -100; |
| 185 | 185 | |
| 186 | - return circle.attr('cx') - 17.5; | |
| 186 | + return circle.attr('cx') - 16.5; | |
| 187 | 187 | }, |
| 188 | 188 | gy = function (gps, svg) { |
| 189 | 189 | var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); |
| ... | ... | @@ -322,14 +322,14 @@ var gb_svg_chart = (function () { |
| 322 | 322 | 'merge-item': true |
| 323 | 323 | }); |
| 324 | 324 | //merge rect |
| 325 | - mergerG.append('rect').attr('x', x - 12) | |
| 325 | + mergerG.append('rect').attr('x', x - 11) | |
| 326 | 326 | .attr('y', function () { |
| 327 | - return isDown ? y + 7 : y - 32; | |
| 327 | + return isDown ? y + 8 : y - 31; | |
| 328 | 328 | }); |
| 329 | 329 | //merge text |
| 330 | 330 | var len = gpsArr.length; |
| 331 | 331 | mergerG.append('text').text(len) |
| 332 | - .attr('x', x - ((len + '').length * 4)) | |
| 332 | + .attr('x', x - ((len + '').length * 4.5)) | |
| 333 | 333 | .attr('y', isDown ? y + 24 : y - 14); |
| 334 | 334 | }; |
| 335 | 335 | ... | ... |
src/main/resources/static/real_control_v2/js/utils/svg_chart_tooltip.js