Commit ae8549a4b553036a6890a6a5269354204768250d

Authored by 娄高锋
2 parents 94821ebe 16687258

Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into minhang

Showing 26 changed files with 3045 additions and 1342 deletions

Too many changes to show.

To preserve performance only 26 of 49 files are displayed.

src/main/java/com/bsth/controller/DownloadController.java
@@ -31,12 +31,14 @@ public class DownloadController @@ -31,12 +31,14 @@ public class DownloadController
31 @RequestMapping("download") 31 @RequestMapping("download")
32 public ResponseEntity<byte[]> download(String fileName) throws IOException { 32 public ResponseEntity<byte[]> download(String fileName) throws IOException {
33 fileName = fileName+".xls"; 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 + System.out.println(moudelPath);
35 // String path="D:\\export\\target\\"+jName+".xls"; 36 // String path="D:\\export\\target\\"+jName+".xls";
36 File file=new File(moudelPath); 37 File file=new File(moudelPath);
37 HttpHeaders headers = new HttpHeaders(); 38 HttpHeaders headers = new HttpHeaders();
38 String realFileName=new String(fileName.getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题 39 String realFileName=new String(fileName.getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
39 - headers.setContentDispositionFormData("attachment", URLDecoder.decode(realFileName,"utf-8")); 40 + headers.setContentDispositionFormData("attachment", fileName);
  41 + System.out.println( URLDecoder.decode(realFileName,"utf-8"));
40 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 42 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
41 return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), 43 return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
42 headers, HttpStatus.CREATED); 44 headers, HttpStatus.CREATED);
src/main/java/com/bsth/controller/forms/ExportController.java
@@ -34,6 +34,7 @@ import com.bsth.util.ReportUtils; @@ -34,6 +34,7 @@ import com.bsth.util.ReportUtils;
34 @RequestMapping("mcy_export") 34 @RequestMapping("mcy_export")
35 public class ExportController { 35 public class ExportController {
36 36
  37 +
37 @Autowired 38 @Autowired
38 FormsService formsService; 39 FormsService formsService;
39 40
@@ -71,9 +72,9 @@ public class ExportController { @@ -71,9 +72,9 @@ public class ExportController {
71 72
72 try { 73 try {
73 listI.add(resList.iterator()); 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 } catch (Exception e) { 78 } catch (Exception e) {
78 e.printStackTrace(); 79 e.printStackTrace();
79 } 80 }
@@ -111,9 +112,9 @@ public class ExportController { @@ -111,9 +112,9 @@ public class ExportController {
111 112
112 try { 113 try {
113 listI.add(resList.iterator()); 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 } catch (Exception e) { 118 } catch (Exception e) {
118 e.printStackTrace(); 119 e.printStackTrace();
119 } 120 }
@@ -148,9 +149,9 @@ public class ExportController { @@ -148,9 +149,9 @@ public class ExportController {
148 try { 149 try {
149 listI.add(resList.iterator()); 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 } catch (Exception e) { 156 } catch (Exception e) {
156 e.printStackTrace(); 157 e.printStackTrace();
@@ -177,6 +178,9 @@ public class ExportController { @@ -177,6 +178,9 @@ public class ExportController {
177 m.put("clzbh", l.getClzbh()); 178 m.put("clzbh", l.getClzbh());
178 m.put("jsy", l.getJsy()); 179 m.put("jsy", l.getJsy());
179 m.put("jName", l.getjName()); 180 m.put("jName", l.getjName());
  181 +
  182 +
  183 +
180 m.put("sgh", l.getSgh()); 184 m.put("sgh", l.getSgh());
181 m.put("sName", l.getsName()); 185 m.put("sName", l.getsName());
182 m.put("jhlc", l.getJhlc()); 186 m.put("jhlc", l.getJhlc());
@@ -186,14 +190,15 @@ public class ExportController { @@ -186,14 +190,15 @@ public class ExportController {
186 m.put("unyyyl", l.getUnyyyl()); 190 m.put("unyyyl", l.getUnyyyl());
187 m.put("jhjl", l.getJhjl()); 191 m.put("jhjl", l.getJhjl());
188 resList.add(m); 192 resList.add(m);
  193 +
189 i++; 194 i++;
190 } 195 }
191 196
192 try { 197 try {
193 listI.add(resList.iterator()); 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 } catch (Exception e) { 202 } catch (Exception e) {
198 e.printStackTrace(); 203 e.printStackTrace();
199 } 204 }
@@ -231,9 +236,9 @@ public class ExportController { @@ -231,9 +236,9 @@ public class ExportController {
231 236
232 try { 237 try {
233 listI.add(resList.iterator()); 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 } catch (Exception e) { 242 } catch (Exception e) {
238 e.printStackTrace(); 243 e.printStackTrace();
239 } 244 }
@@ -264,8 +269,8 @@ public class ExportController { @@ -264,8 +269,8 @@ public class ExportController {
264 269
265 try { 270 try {
266 listI.add(resList.iterator()); 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 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); 274 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
270 } catch (Exception e) { 275 } catch (Exception e) {
271 e.printStackTrace(); 276 e.printStackTrace();
@@ -303,8 +308,8 @@ public class ExportController { @@ -303,8 +308,8 @@ public class ExportController {
303 308
304 try { 309 try {
305 listI.add(resList.iterator()); 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 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); 313 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
309 } catch (Exception e) { 314 } catch (Exception e) {
310 e.printStackTrace(); 315 e.printStackTrace();
@@ -383,8 +388,8 @@ public class ExportController { @@ -383,8 +388,8 @@ public class ExportController {
383 388
384 try { 389 try {
385 listI.add(resList.iterator()); 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 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); 393 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
389 } catch (Exception e) { 394 } catch (Exception e) {
390 e.printStackTrace(); 395 e.printStackTrace();
@@ -458,8 +463,8 @@ public class ExportController { @@ -458,8 +463,8 @@ public class ExportController {
458 463
459 try { 464 try {
460 listI.add(resList.iterator()); 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 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); 468 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
464 } catch (Exception e) { 469 } catch (Exception e) {
465 e.printStackTrace(); 470 e.printStackTrace();
@@ -527,8 +532,8 @@ public class ExportController { @@ -527,8 +532,8 @@ public class ExportController {
527 532
528 try { 533 try {
529 listI.add(resList.iterator()); 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 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls"); 537 + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
533 } catch (Exception e) { 538 } catch (Exception e) {
534 e.printStackTrace(); 539 e.printStackTrace();
@@ -579,8 +584,8 @@ public class ExportController { @@ -579,8 +584,8 @@ public class ExportController {
579 m.put("date", map.get("date").toString()); 584 m.put("date", map.get("date").toString());
580 try { 585 try {
581 listI.add(resList.iterator()); 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 + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls"); 589 + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls");
585 } catch (Exception e) { 590 } catch (Exception e) {
586 e.printStackTrace(); 591 e.printStackTrace();
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -41,7 +41,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -41,7 +41,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
41 */ 41 */
42 @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST) 42 @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST)
43 public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks, 43 public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks,
44 - @RequestParam String dfsj,@RequestParam String bcType) { 44 + @RequestParam String dfsj,String bcType) {
45 return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType); 45 return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType);
46 } 46 }
47 47
@@ -340,8 +340,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -340,8 +340,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
340 } 340 }
341 341
342 @RequestMapping(value="/statisticsDaily") 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 @RequestMapping(value="/MapById",method = RequestMethod.GET) 348 @RequestMapping(value="/MapById",method = RequestMethod.GET)
@@ -418,4 +419,14 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -418,4 +419,14 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
418 public Map<String, Object> findSvgAttr(@RequestParam String idx){ 419 public Map<String, Object> findSvgAttr(@RequestParam String idx){
419 return scheduleRealInfoService.findSvgAttr(idx); 420 return scheduleRealInfoService.findSvgAttr(idx);
420 } 421 }
  422 +
  423 + @RequestMapping(value = "addRemarks", method = RequestMethod.POST)
  424 + public Map<String, Object> addRemarks(@RequestParam Long id, @RequestParam String remarks){
  425 + return scheduleRealInfoService.addRemarks(id, remarks);
  426 + }
  427 +
  428 + @RequestMapping(value = "scheduleDailyQp", method = RequestMethod.GET)
  429 + public List<Map<String, Object>> scheduleDailyQp(@RequestParam String line,@RequestParam String date){
  430 + return scheduleRealInfoService.scheduleDailyQp(line,date);
  431 + }
421 } 432 }
src/main/java/com/bsth/data/gpsdata/GpsEntity.java
@@ -67,16 +67,10 @@ public class GpsEntity { @@ -67,16 +67,10 @@ public class GpsEntity {
67 /** 当前执行班次ID */ 67 /** 当前执行班次ID */
68 private Long schId; 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 /** 0: 站外 1:站内 2:场内 */ 75 /** 0: 站外 1:站内 2:场内 */
82 private int instation; 76 private int instation;
@@ -88,6 +82,12 @@ public class GpsEntity { @@ -88,6 +82,12 @@ public class GpsEntity {
88 /** 状态 */ 82 /** 状态 */
89 private String signalState = "normal"; 83 private String signalState = "normal";
90 84
  85 + /** 异常状态 */
  86 + private String abnormalStatus;
  87 +
  88 + /** 越界距离 */
  89 + private double outOfBoundDistance;
  90 +
91 public Integer getCompanyCode() { 91 public Integer getCompanyCode() {
92 return companyCode; 92 return companyCode;
93 } 93 }
@@ -241,14 +241,6 @@ public class GpsEntity { @@ -241,14 +241,6 @@ public class GpsEntity {
241 this.station = station; 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 public String getSignalState() { 244 public String getSignalState() {
253 return signalState; 245 return signalState;
254 } 246 }
@@ -264,4 +256,28 @@ public class GpsEntity { @@ -264,4 +256,28 @@ public class GpsEntity {
264 public void setInstation(int instation) { 256 public void setInstation(int instation) {
265 this.instation = instation; 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,7 +122,7 @@ public class GpsRealData implements CommandLineRunner {
122 for (String device : set) { 122 for (String device : set) {
123 gps = gpsMap.get(device); 123 gps = gpsMap.get(device);
124 //过滤异常GPS数据 124 //过滤异常GPS数据
125 - if (gps == null || gps.isAbnormal()) 125 + if (gps == null || gps.isIncomplete())
126 continue; 126 continue;
127 127
128 sch = dayOfSchedule.execPlanMap().get(gps.getNbbm()); 128 sch = dayOfSchedule.execPlanMap().get(gps.getNbbm());
@@ -220,7 +220,7 @@ public class GpsRealData implements CommandLineRunner { @@ -220,7 +220,7 @@ public class GpsRealData implements CommandLineRunner {
220 220
221 nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId()); 221 nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId());
222 if (StringUtils.isBlank(nbbm)) 222 if (StringUtils.isBlank(nbbm))
223 - gps.setAbnormal(true);//标记为异常数据 223 + gps.setIncomplete(true);//标记为异常数据
224 else 224 else
225 gps.setNbbm(nbbm); 225 gps.setNbbm(nbbm);
226 //有更新的点位 226 //有更新的点位
src/main/java/com/bsth/data/gpsdata/arrival/GeoCacheData.java
@@ -45,6 +45,9 @@ public class GeoCacheData { @@ -45,6 +45,9 @@ public class GeoCacheData {
45 //停车场 45 //停车场
46 public static Map<String, Polygon> tccMap; 46 public static Map<String, Polygon> tccMap;
47 47
  48 + //线路限速信息
  49 + private static Map<String, Double> speedLimitMap;
  50 +
48 @Autowired 51 @Autowired
49 JdbcTemplate jdbcTemplate; 52 JdbcTemplate jdbcTemplate;
50 53
@@ -94,6 +97,14 @@ public class GeoCacheData { @@ -94,6 +97,14 @@ public class GeoCacheData {
94 return null; 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 public static List<StationRoute> midwayStation(String lineCode, int directions, String sCode, String eCode) { 108 public static List<StationRoute> midwayStation(String lineCode, int directions, String sCode, String eCode) {
98 List<StationRoute> list = getStationRoute(lineCode, directions), rs = new ArrayList<>(); 109 List<StationRoute> list = getStationRoute(lineCode, directions), rs = new ArrayList<>();
99 110
@@ -113,8 +124,72 @@ public class GeoCacheData { @@ -113,8 +124,72 @@ public class GeoCacheData {
113 return tccMap.get(code); 124 return tccMap.get(code);
114 } 125 }
115 126
  127 + GeometryFactory geometryFactory = new GeometryFactory();
116 public void loadData() { 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 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"; 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 List<StationRoute> routeList = jdbcTemplate.query(sql, new RowMapper<StationRoute>() { 195 List<StationRoute> routeList = jdbcTemplate.query(sql, new RowMapper<StationRoute>() {
@@ -159,26 +234,17 @@ public class GeoCacheData { @@ -159,26 +234,17 @@ public class GeoCacheData {
159 stationCacheMap = tempMap; 234 stationCacheMap = tempMap;
160 routeCodeMap = codeMap; 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 private void connectStationRoute(List<StationRoute> list) { 250 private void connectStationRoute(List<StationRoute> list) {
@@ -209,6 +275,7 @@ public class GeoCacheData { @@ -209,6 +275,7 @@ public class GeoCacheData {
209 275
210 /** 276 /**
211 * 是不是终点站 277 * 是不是终点站
  278 + *
212 * @param lineId 279 * @param lineId
213 * @param upDown 280 * @param upDown
214 * @param stationCode 281 * @param stationCode
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
@@ -33,6 +33,8 @@ public class GpsRealAnalyse { @@ -33,6 +33,8 @@ public class GpsRealAnalyse {
33 InOutStationSignalHandle inOutStationSignalHandle; 33 InOutStationSignalHandle inOutStationSignalHandle;
34 @Autowired 34 @Autowired
35 ReverseSignalHandle reverseSignalHandle; 35 ReverseSignalHandle reverseSignalHandle;
  36 + @Autowired
  37 + AbnormalStateHandle abnormalStateHandle;
36 38
37 @Autowired 39 @Autowired
38 GpsRealData gpsRealData; 40 GpsRealData gpsRealData;
@@ -72,14 +74,21 @@ public class GpsRealAnalyse { @@ -72,14 +74,21 @@ public class GpsRealAnalyse {
72 public void run() { 74 public void run() {
73 75
74 try { 76 try {
  77 + //是否有任务
  78 + boolean task;
75 CircleQueue<GpsEntity> prevs = GeoCacheData.getGps(gps.getNbbm()); 79 CircleQueue<GpsEntity> prevs = GeoCacheData.getGps(gps.getNbbm());
76 //掉线处理 80 //掉线处理
77 offlineSignalHandle.handle(gps, prevs); 81 offlineSignalHandle.handle(gps, prevs);
78 //状态处理 82 //状态处理
79 - if(!correctSignalHandle.handle(gps, prevs))  
80 - return; 83 + task = correctSignalHandle.handle(gps, prevs);
81 //场,站内外判断 84 //场,站内外判断
82 stationInsideHandle.handle(gps, prevs); 85 stationInsideHandle.handle(gps, prevs);
  86 + //异常判定(越界/超速)
  87 + abnormalStateHandle.handle(gps, prevs);
  88 +
  89 + if(!task)
  90 + return; //无任务的,到这里就结束
  91 +
83 //反向处理 92 //反向处理
84 reverseSignalHandle.handle(gps, prevs); 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,10 +3,7 @@ package com.bsth.data.gpsdata.arrival.utils;
3 import com.bsth.data.gpsdata.GpsEntity; 3 import com.bsth.data.gpsdata.GpsEntity;
4 import com.bsth.data.gpsdata.arrival.GeoCacheData; 4 import com.bsth.data.gpsdata.arrival.GeoCacheData;
5 import com.bsth.data.gpsdata.arrival.entity.StationRoute; 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 import java.util.List; 8 import java.util.List;
12 import java.util.Map; 9 import java.util.Map;
@@ -90,6 +87,36 @@ public class GeoUtils { @@ -90,6 +87,36 @@ public class GeoUtils {
90 return Math.PI * degree / 180; 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 * gps 是否在某个停车场内 122 * gps 是否在某个停车场内
src/main/java/com/bsth/data/pilot80/PilotReport.java
@@ -77,7 +77,6 @@ public class PilotReport { @@ -77,7 +77,6 @@ public class PilotReport {
77 ScheduleRealInfo outSch = dayOfSchedule.nextByBcType(nbbm, "out"); 77 ScheduleRealInfo outSch = dayOfSchedule.nextByBcType(nbbm, "out");
78 //如果有对应出场班次 78 //如果有对应出场班次
79 if(outSch != null){ 79 if(outSch != null){
80 -  
81 //没有计划里程的出场班次,出场既是首发站,发送下一班次的营运指令 80 //没有计划里程的出场班次,出场既是首发站,发送下一班次的营运指令
82 if(outSch.getJhlc() == null) 81 if(outSch.getJhlc() == null)
83 outSch = dayOfSchedule.next(outSch); 82 outSch = dayOfSchedule.next(outSch);
@@ -86,13 +85,6 @@ public class PilotReport { @@ -86,13 +85,6 @@ public class PilotReport {
86 directiveService.send60Dispatch(outSch, dayOfSchedule.doneSum(nbbm), "请出@系统"); 85 directiveService.send60Dispatch(outSch, dayOfSchedule.doneSum(nbbm), "请出@系统");
87 //下发线路切换指令 86 //下发线路切换指令
88 directiveService.lineChange(outSch.getClZbh(), outSch.getXlBm(), "请出@系统"); 87 directiveService.lineChange(outSch.getClZbh(), outSch.getXlBm(), "请出@系统");
89 -/* d80.setRemarks("计划出场时间:" + outSch.getDfsj());  
90 - //当前GPS位置  
91 - GpsEntity gps = gpsRealData.get(d80.getDeviceId());  
92 - if(null != gps)  
93 - d80.addRemarks("<br> 位置:" + coordHtmlStr(gps));*/  
94 -  
95 - //sendUtils.refreshSch(outSch);  
96 }else 88 }else
97 d80.setRemarks("没有出场计划"); 89 d80.setRemarks("没有出场计划");
98 90
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -563,8 +563,12 @@ public class DayOfSchedule implements CommandLineRunner { @@ -563,8 +563,12 @@ public class DayOfSchedule implements CommandLineRunner {
563 */ 563 */
564 public boolean isFirstOut(ScheduleRealInfo sch){ 564 public boolean isFirstOut(ScheduleRealInfo sch){
565 List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh()); 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 return false; 572 return false;
569 } 573 }
570 574
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1Flat.java
1 package com.bsth.entity.schedule.rule; 1 package com.bsth.entity.schedule.rule;
2 2
3 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
  4 +import com.bsth.entity.schedule.BEntity;
4 import com.bsth.entity.schedule.CarConfigInfo; 5 import com.bsth.entity.schedule.CarConfigInfo;
5 -import com.bsth.entity.sys.SysUser;  
6 6
7 import javax.persistence.*; 7 import javax.persistence.*;
8 import javax.validation.constraints.NotNull; 8 import javax.validation.constraints.NotNull;
@@ -35,7 +35,7 @@ import java.util.Date; @@ -35,7 +35,7 @@ import java.util.Date;
35 35
36 ) 36 )
37 }) 37 })
38 -public class ScheduleRule1Flat { 38 +public class ScheduleRule1Flat extends BEntity {
39 /** 主键Id */ 39 /** 主键Id */
40 @Id 40 @Id
41 @GeneratedValue 41 @GeneratedValue
@@ -74,19 +74,6 @@ public class ScheduleRule1Flat { @@ -74,19 +74,6 @@ public class ScheduleRule1Flat {
74 /** 翻班格式(TODO:这个用在车子上的,暂时不管)*/ 74 /** 翻班格式(TODO:这个用在车子上的,暂时不管)*/
75 private String fbgs; 75 private String fbgs;
76 76
77 - /** 创建人 */  
78 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
79 - private SysUser createBy;  
80 - /** 修改人 */  
81 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
82 - private SysUser updateBy;  
83 - /** 创建日期 */  
84 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
85 - private Date createDate;  
86 - /** 修改日期 */  
87 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
88 - private Date updateDate;  
89 -  
90 public Long getId() { 77 public Long getId() {
91 return id; 78 return id;
92 } 79 }
@@ -175,35 +162,4 @@ public class ScheduleRule1Flat { @@ -175,35 +162,4 @@ public class ScheduleRule1Flat {
175 this.fbgs = fbgs; 162 this.fbgs = fbgs;
176 } 163 }
177 164
178 - public SysUser getCreateBy() {  
179 - return createBy;  
180 - }  
181 -  
182 - public void setCreateBy(SysUser createBy) {  
183 - this.createBy = createBy;  
184 - }  
185 -  
186 - public SysUser getUpdateBy() {  
187 - return updateBy;  
188 - }  
189 -  
190 - public void setUpdateBy(SysUser updateBy) {  
191 - this.updateBy = updateBy;  
192 - }  
193 -  
194 - public Date getCreateDate() {  
195 - return createDate;  
196 - }  
197 -  
198 - public void setCreateDate(Date createDate) {  
199 - this.createDate = createDate;  
200 - }  
201 -  
202 - public Date getUpdateDate() {  
203 - return updateDate;  
204 - }  
205 -  
206 - public void setUpdateDate(Date updateDate) {  
207 - this.updateDate = updateDate;  
208 - }  
209 } 165 }
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -18,13 +18,16 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -18,13 +18,16 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
18 List<ScheduleRealInfo> findByLines(List<String> lines); 18 List<ScheduleRealInfo> findByLines(List<String> lines);
19 19
20 20
  21 + @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and bc_type not in ('in','out') order by (lpName+1),clZbh,realExecDate,fcsj")
  22 + List<ScheduleRealInfo> scheduleDailyQp(String line,String date);
  23 +
21 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY s.id,s.jGh,s.clZbh,s.lpName order by (lpName+1)") 24 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY s.id,s.jGh,s.clZbh,s.lpName order by (lpName+1)")
22 List<ScheduleRealInfo> queryUserInfo(String line,String date); 25 List<ScheduleRealInfo> queryUserInfo(String line,String date);
23 26
24 @Query(value="select min(s.id), s.jGh,s.clZbh,s.lpName,s.jName from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY s.jGh,s.clZbh,s.lpName ,s.jName order by (lpName+1)") 27 @Query(value="select min(s.id), s.jGh,s.clZbh,s.lpName,s.jName from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY s.jGh,s.clZbh,s.lpName ,s.jName order by (lpName+1)")
25 List<ScheduleRealInfo> queryUserInfo2(String line,String date); 28 List<ScheduleRealInfo> queryUserInfo2(String line,String date);
26 29
27 - @Query(value="select min(s.id), s.clZbh from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY s.clZbh order by (lpName+1)") 30 + @Query(value="select min(s.id), s.clZbh from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY s.clZbh ")
28 List<ScheduleRealInfo> queryUserInfo3(String line,String date); 31 List<ScheduleRealInfo> queryUserInfo3(String line,String date);
29 32
30 @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 order by bcs") 33 @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 order by bcs")
src/main/java/com/bsth/service/forms/impl/ExportServiceImpl.java
@@ -46,9 +46,9 @@ public class ExportServiceImpl implements ExportService{ @@ -46,9 +46,9 @@ public class ExportServiceImpl implements ExportService{
46 46
47 try { 47 try {
48 listI.add(resList.iterator()); 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 } catch (Exception e) { 52 } catch (Exception e) {
53 e.printStackTrace(); 53 e.printStackTrace();
54 } 54 }
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -107,7 +107,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -107,7 +107,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
107 107
108 Map<String, Object> removeChildTask(Long taskId); 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 //List<Object> scheduleDaily(String line,String date); 112 //List<Object> scheduleDaily(String line,String date);
113 113
@@ -140,4 +140,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -140,4 +140,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
140 Map<String,Object> svgAttr(String jsonStr); 140 Map<String,Object> svgAttr(String jsonStr);
141 141
142 Map<String,Object> findSvgAttr(String idx); 142 Map<String,Object> findSvgAttr(String idx);
  143 +
  144 + Map<String,Object> addRemarks(Long id, String remarks);
  145 +
  146 + List<Map<String, Object>> scheduleDailyQp(String line ,String date);
143 } 147 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -1378,7 +1378,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1378,7 +1378,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1378 1378
1379 @Override 1379 @Override
1380 public List<Map<String, Object>> statisticsDaily(String line, String date, 1380 public List<Map<String, Object>> statisticsDaily(String line, String date,
1381 - String xlName) { 1381 + String xlName, String type) {
1382 List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date); 1382 List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
1383 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>(); 1383 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
1384 DecimalFormat format = new DecimalFormat("0.00"); 1384 DecimalFormat format = new DecimalFormat("0.00");
@@ -1545,6 +1545,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1545,6 +1545,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1545 map.put("djg_a", djg_a); 1545 map.put("djg_a", djg_a);
1546 map.put("djg_time", djg_time); 1546 map.put("djg_time", djg_time);
1547 lMap.add(map); 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 return lMap; 1566 return lMap;
1549 } 1567 }
1550 1568
@@ -2075,6 +2093,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2075,6 +2093,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2075 } 2093 }
2076 2094
2077 @Override 2095 @Override
  2096 + public Map<String, Object> addRemarks(Long id, String remarks) {
  2097 + Map<String, Object> rs = new HashMap<>();
  2098 + try {
  2099 + ScheduleRealInfo sch = dayOfSchedule.get(id);
  2100 + sch.addRemarks(remarks);
  2101 +
  2102 + rs.put("status", ResponseCode.SUCCESS);
  2103 + rs.put("t", sch);
  2104 + } catch (Exception e) {
  2105 + logger.error("", e);
  2106 + rs.put("status", ResponseCode.ERROR);
  2107 + }
  2108 + return rs;
  2109 + }
  2110 +
  2111 + @Override
2078 public List<Map<String, Object>> yesterdayDataList(String line) { 2112 public List<Map<String, Object>> yesterdayDataList(String line) {
2079 // TODO Auto-generated method stub 2113 // TODO Auto-generated method stub
2080 return null; 2114 return null;
@@ -2185,12 +2219,43 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2185,12 +2219,43 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2185 map.put("sjbc", jhbc-cjbc+ljbc); 2219 map.put("sjbc", jhbc-cjbc+ljbc);
2186 map.put("zgl", format.format(yygl+remMileage+ksgl+jcclc)); 2220 map.put("zgl", format.format(yygl+remMileage+ksgl+jcclc));
2187 map.put("ljbc", ljbc); 2221 map.put("ljbc", ljbc);
2188 -  
2189 - String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";  
2190 - 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/";
2191 list.add(listMap.iterator()); 2255 list.add(listMap.iterator());
2192 - ee.excelReplace(list, new Object[] { scheduleRealInfos.get(0),map }, path+"mould\\waybill_qingpu.xls",  
2193 - 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 +
2194 return scheduleRealInfos; 2259 return scheduleRealInfos;
2195 } 2260 }
2196 2261
@@ -2288,6 +2353,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2288,6 +2353,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2288 map.put("sjbc", jhbc-cjbc+ljbc); 2353 map.put("sjbc", jhbc-cjbc+ljbc);
2289 map.put("zgl", format.format(yygl+remMileage+ksgl+jcclc)); 2354 map.put("zgl", format.format(yygl+remMileage+ksgl+jcclc));
2290 map.put("ljbc", ljbc); 2355 map.put("ljbc", ljbc);
  2356 +
2291 return map; 2357 return map;
2292 } 2358 }
2293 2359
@@ -2340,6 +2406,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2340,6 +2406,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2340 map.put("zdzName", s.getZdzName()); 2406 map.put("zdzName", s.getZdzName());
2341 map.put("scheduleDate", s.getScheduleDateStr()); 2407 map.put("scheduleDate", s.getScheduleDateStr());
2342 String zdp="",zwdp="",wdp=""; 2408 String zdp="",zwdp="",wdp="";
  2409 + String zdpT="",zwdpT="",wdpT="";
2343 2410
2344 List<DutyEmployee> list= dutyEmployeeService.getDutyEmployee(xlbm, fcrq+"00:00", fcrq+"23:59"); 2411 List<DutyEmployee> list= dutyEmployeeService.getDutyEmployee(xlbm, fcrq+"00:00", fcrq+"23:59");
2345 try { 2412 try {
@@ -2351,14 +2418,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2351,14 +2418,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2351 Long ts=t.getTs(); 2418 Long ts=t.getTs();
2352 if(ts>fcsj1&&ts<fcsj2){ 2419 if(ts>fcsj1&&ts<fcsj2){
2353 if(zdp.indexOf(t.getuName())==-1){ 2420 if(zdp.indexOf(t.getuName())==-1){
  2421 + if(!(zdp.length()>0)){
  2422 + zdpT =t.getuName()+"...";
  2423 + }
2354 zdp +=t.getuName()+","; 2424 zdp +=t.getuName()+",";
  2425 +
2355 } 2426 }
2356 }else if(ts>fcsj2 && ts<fcsj3){ 2427 }else if(ts>fcsj2 && ts<fcsj3){
2357 if(zwdp.indexOf(t.getuName())==-1){ 2428 if(zwdp.indexOf(t.getuName())==-1){
  2429 + if(!(zwdp.length()>0)){
  2430 + zwdpT =t.getuName()+"...";
  2431 + }
2358 zwdp +=t.getuName()+","; 2432 zwdp +=t.getuName()+",";
2359 } 2433 }
2360 }else{ 2434 }else{
2361 if(wdp.indexOf(t.getuName())==-1){ 2435 if(wdp.indexOf(t.getuName())==-1){
  2436 + if(!(wdp.length()>0)){
  2437 + wdpT =t.getuName()+"...";
  2438 + }
2362 wdp +=t.getuName()+","; 2439 wdp +=t.getuName()+",";
2363 } 2440 }
2364 } 2441 }
@@ -2370,7 +2447,146 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2370,7 +2447,146 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2370 map.put("zdp", zdp); 2447 map.put("zdp", zdp);
2371 map.put("zwdp", zwdp); 2448 map.put("zwdp", zwdp);
2372 map.put("wdp", wdp); 2449 map.put("wdp", wdp);
  2450 + map.put("zdpT", zdpT);
  2451 + map.put("zwdpT", zwdpT);
  2452 + map.put("wdpT", wdpT);
2373 return map; 2453 return map;
2374 } 2454 }
2375 2455
  2456 + @Override
  2457 + public List<Map<String, Object>> scheduleDailyQp(String line, String date) {
  2458 + // TODO Auto-generated method stub
  2459 + List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();
  2460 + List<ScheduleRealInfo> scheduleRealInfos=scheduleRealInfoRepository.scheduleDailyQp(line, date);
  2461 + Map<String, Object> map=null;
  2462 + String lp="lp";
  2463 + String jgh="jgh";
  2464 + String clzbh="clzbh";
  2465 + int bcs=0;
  2466 + String thclzbh="";
  2467 + String sgh="sgh";
  2468 + for(int i=0;i<scheduleRealInfos.size();i++){
  2469 + ScheduleRealInfo scheduleRealInfo=scheduleRealInfos.get(i);
  2470 + if(scheduleRealInfo.getLpName().equals(lp)){
  2471 + bcs++;
  2472 + String fcsj=scheduleRealInfo.getFcsj();
  2473 +
  2474 + if(!clzbh.equals(scheduleRealInfo.getClZbh())){
  2475 + clzbh=scheduleRealInfo.getClZbh();
  2476 + if(thclzbh==""){
  2477 + thclzbh +=scheduleRealInfo.getClZbh()+",";
  2478 + }else{
  2479 + thclzbh +=scheduleRealInfo.getClZbh();
  2480 + }
  2481 + map.put("thclzbh", thclzbh);
  2482 + }
  2483 +
  2484 + if(!jgh.equals(scheduleRealInfo.getjGh())){
  2485 + jgh=scheduleRealInfo.getjGh();
  2486 + if(map.get("jjb2")!=null){
  2487 + map.put("jjb3", scheduleRealInfo.getjGh()+"/"+
  2488 + scheduleRealInfo.getFcsjActual());
  2489 +
  2490 + }else{
  2491 + map.put("jjb2", scheduleRealInfo.getjGh()+"/"+
  2492 + scheduleRealInfo.getFcsjActual());
  2493 + }
  2494 +
  2495 + }
  2496 +
  2497 + if(scheduleRealInfo.getsGh()!=null){
  2498 + if(!scheduleRealInfo.getsGh().equals(sgh)){
  2499 + sgh=scheduleRealInfo.getsGh();
  2500 + if(map.get("sjb1")!=null){
  2501 + if(map.get("sjb2")!=null){
  2502 + map.put("sjb3", scheduleRealInfo.getsGh()+"/"+
  2503 + scheduleRealInfo.getFcsjActual());
  2504 + }else{
  2505 + map.put("sjb2", scheduleRealInfo.getsGh()+"/"+
  2506 + scheduleRealInfo.getFcsjActual());
  2507 + }
  2508 + }else{
  2509 + map.put("sjb1", scheduleRealInfo.getsGh()+"/"+
  2510 + scheduleRealInfo.getFcsjActual());
  2511 + }
  2512 + }
  2513 + }
  2514 + if(scheduleRealInfo.getFcsjActual()!=null){
  2515 + String fcsjs[]=fcsj.split(":");
  2516 + String fcsjActuals[]=scheduleRealInfo.getFcsjActual().split(":");
  2517 + int a=Integer.parseInt(fcsjActuals[0])*60+Integer.parseInt(fcsjActuals[1]);
  2518 + int b=Integer.parseInt(fcsjs[0])*60+Integer.parseInt(fcsjs[1]);
  2519 + map.put("cz"+bcs, b-a);
  2520 + }else{
  2521 + map.put("cz"+bcs, "无");
  2522 + }
  2523 + map.put("lp", scheduleRealInfo.getLpName());
  2524 + map.put("dd"+bcs, scheduleRealInfo.getZdsjActual());
  2525 + map.put("kc"+bcs, scheduleRealInfo.getFcsjActual());
  2526 +
  2527 + if(i<scheduleRealInfos.size()-1){
  2528 + if(!scheduleRealInfos.get(i+1).getLpName().equals
  2529 + (scheduleRealInfos.get(i).getLpName())){
  2530 + list.add(map);
  2531 + lp="lp";
  2532 + jgh="jgh";
  2533 + clzbh="clzbh";
  2534 + bcs=0;
  2535 + thclzbh="";
  2536 + sgh="sgh";
  2537 + }
  2538 + }else{
  2539 + list.add(map);
  2540 + }
  2541 + }else{
  2542 + bcs=1;
  2543 + map=new HashMap<String,Object>();
  2544 + lp=scheduleRealInfo.getLpName();
  2545 + jgh=scheduleRealInfo.getjGh();
  2546 + clzbh=scheduleRealInfo.getClZbh();
  2547 + if(scheduleRealInfo.getsGh()!=null){
  2548 + sgh=scheduleRealInfo.getsGh();
  2549 + map.put("sjb1",scheduleRealInfo.getsGh()+"/"+
  2550 + scheduleRealInfo.getFcsjActual());
  2551 + }
  2552 + String fcsj=scheduleRealInfo.getFcsj();
  2553 + scheduleRealInfo.getFcsjActual();
  2554 + map.put("jjb1", jgh+"/"+scheduleRealInfo.getFcsjActual());
  2555 + map.put("cccl", clzbh);
  2556 +
  2557 + if(scheduleRealInfo.getFcsjActual()!=null){
  2558 + String fcsjs[]=fcsj.split(":");
  2559 + String fcsjActuals[]=scheduleRealInfo.getFcsjActual().split(":");
  2560 + int a=Integer.parseInt(fcsjActuals[0])*60+Integer.parseInt(fcsjActuals[1]);
  2561 + int b=Integer.parseInt(fcsjs[0])*60+Integer.parseInt(fcsjs[1]);
  2562 + map.put("cz"+bcs, b-a);
  2563 + }else{
  2564 + map.put("cz"+bcs, "无");
  2565 + }
  2566 +
  2567 +
  2568 + map.put("lp", scheduleRealInfo.getLpName());
  2569 + map.put("dd"+bcs, scheduleRealInfo.getZdsjActual());
  2570 + map.put("kc"+bcs, scheduleRealInfo.getFcsjActual());
  2571 +
  2572 + if(i<scheduleRealInfos.size()-1){
  2573 + if(!scheduleRealInfos.get(i+1).getLpName().equals
  2574 + (scheduleRealInfos.get(i).getLpName())){
  2575 + list.add(map);
  2576 + lp="lp";
  2577 + jgh="jgh";
  2578 + clzbh="clzbh";
  2579 + bcs=0;
  2580 + thclzbh="";
  2581 + sgh="sgh";
  2582 + }
  2583 + }else{
  2584 + list.add(map);
  2585 + }
  2586 + }
  2587 +
  2588 + }
  2589 + return list;
  2590 + }
  2591 +
2376 } 2592 }
2377 \ No newline at end of file 2593 \ No newline at end of file
src/main/java/com/bsth/service/schedule/impl/ScheduleRule1FlatServiceImpl.java
@@ -29,6 +29,34 @@ public class ScheduleRule1FlatServiceImpl extends BServiceImpl&lt;ScheduleRule1Flat @@ -29,6 +29,34 @@ public class ScheduleRule1FlatServiceImpl extends BServiceImpl&lt;ScheduleRule1Flat
29 private DataToolsProperties dataToolsProperties; 29 private DataToolsProperties dataToolsProperties;
30 30
31 @Override 31 @Override
  32 + public void importData(File file, Map<String, Object> params) throws ScheduleException {
  33 + try {
  34 + LOGGER.info("//---------------- 导入排版规则信息 start... ----------------//");
  35 + // 创建ktr转换所需参数
  36 + Map<String, Object> ktrParms = new HashMap<>();
  37 + File ktrFile = new File(this.getClass().getResource(
  38 + dataToolsProperties.getScheduleruleDatainputktr()).toURI());
  39 +
  40 + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径
  41 + ktrParms.put("transpath", ktrFile.getAbsolutePath());
  42 + ktrParms.put("filepath", file.getAbsolutePath());
  43 + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir());
  44 +
  45 + super.importData(file, ktrParms);
  46 +
  47 + LOGGER.info("//---------------- 导入排版规则信息 success... ----------------//");
  48 + } catch (Exception exp) {
  49 + LOGGER.info("//---------------- 导入排版规则信息 failed... ----------------//");
  50 +
  51 + StringWriter sw = new StringWriter();
  52 + exp.printStackTrace(new PrintWriter(sw));
  53 + LOGGER.info(sw.toString());
  54 +
  55 + throw new ScheduleException(exp.getMessage());
  56 + }
  57 + }
  58 +
  59 + @Override
32 public File exportData(Map<String, Object> params) throws ScheduleException { 60 public File exportData(Map<String, Object> params) throws ScheduleException {
33 try { 61 try {
34 LOGGER.info("//---------------- 导出排版规则信息 start... ----------------//"); 62 LOGGER.info("//---------------- 导出排版规则信息 start... ----------------//");
src/main/java/com/bsth/service/schedule/utils/DataToolsProperties.java
@@ -45,7 +45,7 @@ public class DataToolsProperties { @@ -45,7 +45,7 @@ public class DataToolsProperties {
45 private String kvarsDbdname; 45 private String kvarsDbdname;
46 46
47 /**------------------------- 导入数据ktr --------------------------*/ 47 /**------------------------- 导入数据ktr --------------------------*/
48 - /** 测试temp的ktr转换文件 */ 48 + /** 车辆信息导入ktr转换 */
49 @NotNull 49 @NotNull
50 private String carsDatainputktr; 50 private String carsDatainputktr;
51 /** 人员信息导入ktr转换 */ 51 /** 人员信息导入ktr转换 */
@@ -66,12 +66,16 @@ public class DataToolsProperties { @@ -66,12 +66,16 @@ public class DataToolsProperties {
66 /** 时刻表明细信息导入(元数据) */ 66 /** 时刻表明细信息导入(元数据) */
67 @NotNull 67 @NotNull
68 private String ttinfodetailMetadatainputktr; 68 private String ttinfodetailMetadatainputktr;
69 - /** 时刻表明细编辑用数据(TODO:之后要换成元数据形式输入) */ 69 + /** 时刻表明细编辑用数据 */
70 @NotNull 70 @NotNull
71 private String ttinfodetailForeditktr; 71 private String ttinfodetailForeditktr;
72 /** 时刻表明细信息导入 */ 72 /** 时刻表明细信息导入 */
73 @NotNull 73 @NotNull
74 private String ttinfodetailDatainputktr; 74 private String ttinfodetailDatainputktr;
  75 + /** 排班规则信息导入 */
  76 + @NotNull
  77 + private String scheduleruleDatainputktr;
  78 +
75 79
76 /**------------------------- 导出数据ktr --------------------------*/ 80 /**------------------------- 导出数据ktr --------------------------*/
77 /** 车辆信息导出ktr转换 */ 81 /** 车辆信息导出ktr转换 */
@@ -196,6 +200,14 @@ public class DataToolsProperties { @@ -196,6 +200,14 @@ public class DataToolsProperties {
196 this.ttinfodetailDatainputktr = ttinfodetailDatainputktr; 200 this.ttinfodetailDatainputktr = ttinfodetailDatainputktr;
197 } 201 }
198 202
  203 + public String getScheduleruleDatainputktr() {
  204 + return scheduleruleDatainputktr;
  205 + }
  206 +
  207 + public void setScheduleruleDatainputktr(String scheduleruleDatainputktr) {
  208 + this.scheduleruleDatainputktr = scheduleruleDatainputktr;
  209 + }
  210 +
199 public String getKettleProperties() { 211 public String getKettleProperties() {
200 return kettleProperties; 212 return kettleProperties;
201 } 213 }
src/main/java/com/bsth/util/ReportUtils.java
@@ -452,7 +452,7 @@ public class ReportUtils { @@ -452,7 +452,7 @@ public class ReportUtils {
452 targetFile.delete(); 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 if (!targetFile.exists()) { 456 if (!targetFile.exists()) {
457 targetFile.mkdirs(); 457 targetFile.mkdirs();
458 } 458 }
src/main/resources/datatools/config-dev.properties
@@ -31,7 +31,7 @@ datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr @@ -31,7 +31,7 @@ datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr
31 datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr 31 datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr
32 # 时刻表明细信息导入(元数据) 32 # 时刻表明细信息导入(元数据)
33 datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailMetaData.ktr 33 datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailMetaData.ktr
34 -# 时刻表明细编辑用数据(TODO:之后要换成元数据形式输入) 34 +# 时刻表明细编辑用数据
35 datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr 35 datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
36 # 时刻表明细信息导入 36 # 时刻表明细信息导入
37 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr 37 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
@@ -41,8 +41,8 @@ datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr @@ -41,8 +41,8 @@ datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
41 # 人员配置信息导入 41 # 人员配置信息导入
42 datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr 42 datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr
43 43
44 -# TODO:排班规则信息导入  
45 - 44 +# 排版规则信息导入
  45 +datatools.schedulerule_datainputktr=/datatools/ktrs/scheduleRuleDataInput.ktr
46 46
47 # 4、数据导出配置信息 47 # 4、数据导出配置信息
48 # 导出数据文件目录配置(根据不同的环境需要修正) 48 # 导出数据文件目录配置(根据不同的环境需要修正)
src/main/resources/datatools/config-prod.properties
@@ -32,7 +32,7 @@ datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr @@ -32,7 +32,7 @@ datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr
32 datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr 32 datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr
33 # 时刻表明细信息导入(元数据) 33 # 时刻表明细信息导入(元数据)
34 datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailMetaData.ktr 34 datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailMetaData.ktr
35 -# 时刻表明细编辑用数据(TODO:之后要换成元数据形式输入) 35 +# 时刻表明细编辑用数据
36 datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr 36 datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
37 # 时刻表明细信息导入 37 # 时刻表明细信息导入
38 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr 38 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
@@ -42,8 +42,8 @@ datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr @@ -42,8 +42,8 @@ datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
42 # 人员配置信息导入 42 # 人员配置信息导入
43 datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr 43 datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr
44 44
45 -# TODO:排班规则信息导入  
46 - 45 +# 排版规则信息导入
  46 +datatools.schedulerule_datainputktr=/datatools/ktrs/scheduleRuleDataInput.ktr
47 47
48 # 4、数据导出配置信息 48 # 4、数据导出配置信息
49 # 导出数据文件目录配置(根据不同的环境需要修正) 49 # 导出数据文件目录配置(根据不同的环境需要修正)
src/main/resources/datatools/ktrs/scheduleRuleDataInput.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>scheduleRuleDataInput</name>  
5 - <description/>  
6 - <extended_description/>  
7 - <trans_version/>  
8 - <trans_type>Normal</trans_type>  
9 - <directory>&#x2f;</directory>  
10 - <parameters>  
11 - </parameters>  
12 - <log>  
13 -<trans-log-table><connection/>  
14 -<schema/>  
15 -<table/>  
16 -<size_limit_lines/>  
17 -<interval/>  
18 -<timeout_days/>  
19 -<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>  
20 -<perf-log-table><connection/>  
21 -<schema/>  
22 -<table/>  
23 -<interval/>  
24 -<timeout_days/>  
25 -<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>  
26 -<channel-log-table><connection/>  
27 -<schema/>  
28 -<table/>  
29 -<timeout_days/>  
30 -<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>  
31 -<step-log-table><connection/>  
32 -<schema/>  
33 -<table/>  
34 -<timeout_days/>  
35 -<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>  
36 -<metrics-log-table><connection/>  
37 -<schema/>  
38 -<table/>  
39 -<timeout_days/>  
40 -<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>  
41 - </log>  
42 - <maxdate>  
43 - <connection/>  
44 - <table/>  
45 - <field/>  
46 - <offset>0.0</offset>  
47 - <maxdiff>0.0</maxdiff>  
48 - </maxdate>  
49 - <size_rowset>10000</size_rowset>  
50 - <sleep_time_empty>50</sleep_time_empty>  
51 - <sleep_time_full>50</sleep_time_full>  
52 - <unique_connections>N</unique_connections>  
53 - <feedback_shown>Y</feedback_shown>  
54 - <feedback_size>50000</feedback_size>  
55 - <using_thread_priorities>Y</using_thread_priorities>  
56 - <shared_objects_file/>  
57 - <capture_step_performance>N</capture_step_performance>  
58 - <step_performance_capturing_delay>1000</step_performance_capturing_delay>  
59 - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>  
60 - <dependencies>  
61 - </dependencies>  
62 - <partitionschemas>  
63 - </partitionschemas>  
64 - <slaveservers>  
65 - </slaveservers>  
66 - <clusterschemas>  
67 - </clusterschemas>  
68 - <created_user>-</created_user>  
69 - <created_date>2017&#x2f;01&#x2f;09 10&#x3a;10&#x3a;36.915</created_date>  
70 - <modified_user>-</modified_user>  
71 - <modified_date>2017&#x2f;01&#x2f;09 10&#x3a;10&#x3a;36.915</modified_date>  
72 - <key_for_session_key/>  
73 - <is_key_private>N</is_key_private>  
74 - </info>  
75 - <notepads>  
76 - </notepads>  
77 - <connection>  
78 - <name>bus_control_variable</name>  
79 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
80 - <type>MYSQL</type>  
81 - <access>Native</access>  
82 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
83 - <port>3306</port>  
84 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
85 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
86 - <servername/>  
87 - <data_tablespace/>  
88 - <index_tablespace/>  
89 - <attributes>  
90 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
91 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
92 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
93 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
94 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
95 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
96 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
97 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
98 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
99 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
100 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
101 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
102 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
103 - </attributes>  
104 - </connection>  
105 - <connection>  
106 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
107 - <server>localhost</server>  
108 - <type>MYSQL</type>  
109 - <access>Native</access>  
110 - <database>control</database>  
111 - <port>3306</port>  
112 - <username>root</username>  
113 - <password>Encrypted </password>  
114 - <servername/>  
115 - <data_tablespace/>  
116 - <index_tablespace/>  
117 - <attributes>  
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_&#x672c;&#x673a;</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>Y</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>xlab_mysql_youle</name>  
161 - <server>101.231.124.8</server>  
162 - <type>MYSQL</type>  
163 - <access>Native</access>  
164 - <database>xlab_youle</database>  
165 - <port>45687</port>  
166 - <username>xlab-youle</username>  
167 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</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>45687</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>N</attribute></attribute>  
182 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
183 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
184 - </attributes>  
185 - </connection>  
186 - <connection>  
187 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
188 - <server>localhost</server>  
189 - <type>MYSQL</type>  
190 - <access>Native</access>  
191 - <database>xlab_youle</database>  
192 - <port>3306</port>  
193 - <username>root</username>  
194 - <password>Encrypted </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>3306</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_youle</name>  
215 - <server/>  
216 - <type>MYSQL</type>  
217 - <access>JNDI</access>  
218 - <database>xlab_youle</database>  
219 - <port>1521</port>  
220 - <username/>  
221 - <password>Encrypted </password>  
222 - <servername/>  
223 - <data_tablespace/>  
224 - <index_tablespace/>  
225 - <attributes>  
226 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
227 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
228 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
229 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
230 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
231 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
232 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
233 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
234 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
235 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
236 - </attributes>  
237 - </connection>  
238 - <order>  
239 - <hop> <from>&#x81ea;&#x5b9a;&#x4e49;&#x5e38;&#x91cf;&#x6570;&#x636e;</from><to>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</to><enabled>Y</enabled> </hop>  
240 - <hop> <from>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</from><to>&#x5206;&#x7ec4;</to><enabled>Y</enabled> </hop>  
241 - <hop> <from>&#x5206;&#x7ec4;</from><to>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</to><enabled>Y</enabled> </hop>  
242 - <hop> <from>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</from><to>&#x5206;&#x7ec4; 2</to><enabled>Y</enabled> </hop>  
243 - </order>  
244 - <step>  
245 - <name>&#x81ea;&#x5b9a;&#x4e49;&#x5e38;&#x91cf;&#x6570;&#x636e;</name>  
246 - <type>DataGrid</type>  
247 - <description/>  
248 - <distribute>Y</distribute>  
249 - <custom_distribution/>  
250 - <copies>1</copies>  
251 - <partitioning>  
252 - <method>none</method>  
253 - <schema_name/>  
254 - </partitioning>  
255 - <fields>  
256 - <field>  
257 - <name>line</name>  
258 - <type>String</type>  
259 - <format/>  
260 - <currency/>  
261 - <decimal/>  
262 - <group/>  
263 - <length>-1</length>  
264 - <precision>-1</precision>  
265 - <set_empty_string>N</set_empty_string>  
266 - </field>  
267 - <field>  
268 - <name>carconfigids</name>  
269 - <type>String</type>  
270 - <format/>  
271 - <currency/>  
272 - <decimal/>  
273 - <group/>  
274 - <length>-1</length>  
275 - <precision>-1</precision>  
276 - <set_empty_string>N</set_empty_string>  
277 - </field>  
278 - <field>  
279 - <name>employeeconfigids</name>  
280 - <type>String</type>  
281 - <format/>  
282 - <currency/>  
283 - <decimal/>  
284 - <group/>  
285 - <length>-1</length>  
286 - <precision>-1</precision>  
287 - <set_empty_string>N</set_empty_string>  
288 - </field>  
289 - <field>  
290 - <name>lpids</name>  
291 - <type>String</type>  
292 - <format/>  
293 - <currency/>  
294 - <decimal/>  
295 - <group/>  
296 - <length>-1</length>  
297 - <precision>-1</precision>  
298 - <set_empty_string>N</set_empty_string>  
299 - </field>  
300 - </fields>  
301 - <data>  
302 - <line> <item>&#x7ebf;&#x8def;1</item><item>1</item><item>2,3,4,5</item><item>1,2,3</item> </line>  
303 - </data>  
304 - <cluster_schema/>  
305 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
306 - <xloc>200</xloc>  
307 - <yloc>100</yloc>  
308 - <draw>Y</draw>  
309 - </GUI>  
310 - </step>  
311 -  
312 - <step>  
313 - <name>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</name>  
314 - <type>SplitFieldToRows3</type>  
315 - <description/>  
316 - <distribute>Y</distribute>  
317 - <custom_distribution/>  
318 - <copies>1</copies>  
319 - <partitioning>  
320 - <method>none</method>  
321 - <schema_name/>  
322 - </partitioning>  
323 - <splitfield>employeeconfigids</splitfield>  
324 - <delimiter>,</delimiter>  
325 - <newfield>ecid</newfield>  
326 - <rownum>N</rownum>  
327 - <rownum_field/>  
328 - <resetrownumber>Y</resetrownumber>  
329 - <delimiter_is_regex>N</delimiter_is_regex>  
330 - <cluster_schema/>  
331 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
332 - <xloc>400</xloc>  
333 - <yloc>100</yloc>  
334 - <draw>Y</draw>  
335 - </GUI>  
336 - </step>  
337 -  
338 - <step>  
339 - <name>&#x5206;&#x7ec4;</name>  
340 - <type>GroupBy</type>  
341 - <description/>  
342 - <distribute>Y</distribute>  
343 - <custom_distribution/>  
344 - <copies>1</copies>  
345 - <partitioning>  
346 - <method>none</method>  
347 - <schema_name/>  
348 - </partitioning>  
349 - <all_rows>N</all_rows>  
350 - <ignore_aggregate>N</ignore_aggregate>  
351 - <field_ignore/>  
352 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
353 - <prefix>grp</prefix>  
354 - <add_linenr>N</add_linenr>  
355 - <linenr_fieldname/>  
356 - <give_back_row>N</give_back_row>  
357 - <group>  
358 - <field>  
359 - <name>line</name>  
360 - </field>  
361 - <field>  
362 - <name>lpids</name>  
363 - </field>  
364 - </group>  
365 - <fields>  
366 - <field>  
367 - <aggregate>ecid2</aggregate>  
368 - <subject>ecid</subject>  
369 - <type>CONCAT_STRING</type>  
370 - <valuefield>,</valuefield>  
371 - </field>  
372 - </fields>  
373 - <cluster_schema/>  
374 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
375 - <xloc>397</xloc>  
376 - <yloc>185</yloc>  
377 - <draw>Y</draw>  
378 - </GUI>  
379 - </step>  
380 -  
381 - <step>  
382 - <name>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</name>  
383 - <type>SplitFieldToRows3</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 - <splitfield>lpids</splitfield>  
393 - <delimiter>,</delimiter>  
394 - <newfield>lpid</newfield>  
395 - <rownum>N</rownum>  
396 - <rownum_field/>  
397 - <resetrownumber>Y</resetrownumber>  
398 - <delimiter_is_regex>N</delimiter_is_regex>  
399 - <cluster_schema/>  
400 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
401 - <xloc>546</xloc>  
402 - <yloc>101</yloc>  
403 - <draw>Y</draw>  
404 - </GUI>  
405 - </step>  
406 -  
407 - <step>  
408 - <name>&#x5206;&#x7ec4; 2</name>  
409 - <type>GroupBy</type>  
410 - <description/>  
411 - <distribute>Y</distribute>  
412 - <custom_distribution/>  
413 - <copies>1</copies>  
414 - <partitioning>  
415 - <method>none</method>  
416 - <schema_name/>  
417 - </partitioning>  
418 - <all_rows>N</all_rows>  
419 - <ignore_aggregate>N</ignore_aggregate>  
420 - <field_ignore/>  
421 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
422 - <prefix>grp</prefix>  
423 - <add_linenr>N</add_linenr>  
424 - <linenr_fieldname/>  
425 - <give_back_row>N</give_back_row>  
426 - <group>  
427 - <field>  
428 - <name>line</name>  
429 - </field>  
430 - <field>  
431 - <name>ecid2</name>  
432 - </field>  
433 - </group>  
434 - <fields>  
435 - <field>  
436 - <aggregate>lpid2</aggregate>  
437 - <subject>lpid</subject>  
438 - <type>CONCAT_STRING</type>  
439 - <valuefield>,</valuefield>  
440 - </field>  
441 - </fields>  
442 - <cluster_schema/>  
443 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
444 - <xloc>548</xloc>  
445 - <yloc>185</yloc>  
446 - <draw>Y</draw>  
447 - </GUI>  
448 - </step>  
449 -  
450 - <step_error_handling>  
451 - </step_error_handling>  
452 - <slave-step-copy-partition-distribution>  
453 -</slave-step-copy-partition-distribution>  
454 - <slave_transformation>N</slave_transformation>  
455 -  
456 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>scheduleRuleDataInput</name>
  5 + <description/>
  6 + <extended_description/>
  7 + <trans_version/>
  8 + <trans_type>Normal</trans_type>
  9 + <trans_status>0</trans_status>
  10 + <directory>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>erroroutputdir</name>
  14 + <default_value>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control_etl&#x2f;&#x5bfc;&#x5165;&#x5bfc;&#x51fa;1</default_value>
  15 + <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
  16 + </parameter>
  17 + <parameter>
  18 + <name>filepath</name>
  19 + <default_value>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control_etl&#x2f;&#x5bfc;&#x5165;&#x5bfc;&#x51fa;1&#x2f;&#x6392;&#x7248;&#x89c4;&#x5219;&#x4fe1;&#x606f;.xls</default_value>
  20 + <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
  21 + </parameter>
  22 + </parameters>
  23 + <log>
  24 +<trans-log-table><connection/>
  25 +<schema/>
  26 +<table/>
  27 +<size_limit_lines/>
  28 +<interval/>
  29 +<timeout_days/>
  30 +<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>
  31 +<perf-log-table><connection/>
  32 +<schema/>
  33 +<table/>
  34 +<interval/>
  35 +<timeout_days/>
  36 +<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>
  37 +<channel-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>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>
  42 +<step-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>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>
  47 +<metrics-log-table><connection/>
  48 +<schema/>
  49 +<table/>
  50 +<timeout_days/>
  51 +<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>
  52 + </log>
  53 + <maxdate>
  54 + <connection/>
  55 + <table/>
  56 + <field/>
  57 + <offset>0.0</offset>
  58 + <maxdiff>0.0</maxdiff>
  59 + </maxdate>
  60 + <size_rowset>10000</size_rowset>
  61 + <sleep_time_empty>50</sleep_time_empty>
  62 + <sleep_time_full>50</sleep_time_full>
  63 + <unique_connections>N</unique_connections>
  64 + <feedback_shown>Y</feedback_shown>
  65 + <feedback_size>50000</feedback_size>
  66 + <using_thread_priorities>Y</using_thread_priorities>
  67 + <shared_objects_file/>
  68 + <capture_step_performance>N</capture_step_performance>
  69 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  70 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  71 + <dependencies>
  72 + </dependencies>
  73 + <partitionschemas>
  74 + </partitionschemas>
  75 + <slaveservers>
  76 + </slaveservers>
  77 + <clusterschemas>
  78 + </clusterschemas>
  79 + <created_user>-</created_user>
  80 + <created_date>2017&#x2f;01&#x2f;09 10&#x3a;10&#x3a;36.915</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2017&#x2f;01&#x2f;09 10&#x3a;10&#x3a;36.915</modified_date>
  83 + <key_for_session_key/>
  84 + <is_key_private>N</is_key_private>
  85 + </info>
  86 + <notepads>
  87 + <notepad>
  88 + <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>
  89 + <xloc>41</xloc>
  90 + <yloc>315</yloc>
  91 + <width>333</width>
  92 + <heigth>90</heigth>
  93 + <fontname>YaHei Consolas Hybrid</fontname>
  94 + <fontsize>12</fontsize>
  95 + <fontbold>N</fontbold>
  96 + <fontitalic>N</fontitalic>
  97 + <fontcolorred>0</fontcolorred>
  98 + <fontcolorgreen>0</fontcolorgreen>
  99 + <fontcolorblue>0</fontcolorblue>
  100 + <backgroundcolorred>255</backgroundcolorred>
  101 + <backgroundcolorgreen>205</backgroundcolorgreen>
  102 + <backgroundcolorblue>112</backgroundcolorblue>
  103 + <bordercolorred>100</bordercolorred>
  104 + <bordercolorgreen>100</bordercolorgreen>
  105 + <bordercolorblue>100</bordercolorblue>
  106 + <drawshadow>Y</drawshadow>
  107 + </notepad>
  108 + </notepads>
  109 + <connection>
  110 + <name>bus_control_variable</name>
  111 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  112 + <type>MYSQL</type>
  113 + <access>Native</access>
  114 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  115 + <port>3306</port>
  116 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  117 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  118 + <servername/>
  119 + <data_tablespace/>
  120 + <index_tablespace/>
  121 + <attributes>
  122 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  123 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  124 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  125 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  126 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  127 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  128 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  129 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  130 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  131 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  132 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  133 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  134 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  135 + </attributes>
  136 + </connection>
  137 + <connection>
  138 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  139 + <server>localhost</server>
  140 + <type>MYSQL</type>
  141 + <access>Native</access>
  142 + <database>control</database>
  143 + <port>3306</port>
  144 + <username>root</username>
  145 + <password>Encrypted </password>
  146 + <servername/>
  147 + <data_tablespace/>
  148 + <index_tablespace/>
  149 + <attributes>
  150 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  151 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  152 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  153 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  154 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  155 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  156 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  157 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  158 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  159 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  160 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  161 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  162 + </attributes>
  163 + </connection>
  164 + <connection>
  165 + <name>bus_control_&#x672c;&#x673a;</name>
  166 + <server>localhost</server>
  167 + <type>MYSQL</type>
  168 + <access>Native</access>
  169 + <database>control</database>
  170 + <port>3306</port>
  171 + <username>root</username>
  172 + <password>Encrypted </password>
  173 + <servername/>
  174 + <data_tablespace/>
  175 + <index_tablespace/>
  176 + <attributes>
  177 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  178 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  179 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  180 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  181 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  182 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  183 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  184 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  185 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  186 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  187 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  188 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  189 + </attributes>
  190 + </connection>
  191 + <connection>
  192 + <name>xlab_mysql_youle</name>
  193 + <server>101.231.124.8</server>
  194 + <type>MYSQL</type>
  195 + <access>Native</access>
  196 + <database>xlab_youle</database>
  197 + <port>45687</port>
  198 + <username>xlab-youle</username>
  199 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  200 + <servername/>
  201 + <data_tablespace/>
  202 + <index_tablespace/>
  203 + <attributes>
  204 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  205 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  206 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  207 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  208 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  209 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  210 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  211 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  212 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  213 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  215 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  216 + </attributes>
  217 + </connection>
  218 + <connection>
  219 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  220 + <server>localhost</server>
  221 + <type>MYSQL</type>
  222 + <access>Native</access>
  223 + <database>xlab_youle</database>
  224 + <port>3306</port>
  225 + <username>root</username>
  226 + <password>Encrypted </password>
  227 + <servername/>
  228 + <data_tablespace/>
  229 + <index_tablespace/>
  230 + <attributes>
  231 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  232 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  233 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  234 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  235 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  236 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  237 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  238 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  239 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  240 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  242 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  243 + </attributes>
  244 + </connection>
  245 + <connection>
  246 + <name>xlab_youle</name>
  247 + <server/>
  248 + <type>MYSQL</type>
  249 + <access>JNDI</access>
  250 + <database>xlab_youle</database>
  251 + <port>1521</port>
  252 + <username/>
  253 + <password>Encrypted </password>
  254 + <servername/>
  255 + <data_tablespace/>
  256 + <index_tablespace/>
  257 + <attributes>
  258 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  259 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  260 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  261 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  262 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  263 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  264 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  265 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  266 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  267 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  268 + </attributes>
  269 + </connection>
  270 + <order>
  271 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</to><enabled>Y</enabled> </hop>
  273 + <hop> <from>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</from><to>&#x8def;&#x724c;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  274 + <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</from><to>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x8def;&#x724c;id</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x8def;&#x724c;id</from><to>&#x62c6;&#x5206;&#x4eba;&#x5458;&#x8303;&#x56f4;</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x62c6;&#x5206;&#x4eba;&#x5458;&#x8303;&#x56f4;</from><to>&#x62c6;&#x5206;&#x5206;&#x73ed;&#x642d;&#x73ed;&#x7f16;&#x7801;&#x5b57;&#x6bb5;</to><enabled>Y</enabled> </hop>
  277 + <hop> <from>&#x62c6;&#x5206;&#x5206;&#x73ed;&#x642d;&#x73ed;&#x7f16;&#x7801;&#x5b57;&#x6bb5;</from><to>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  278 + <hop> <from>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</from><to>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2; 2</to><enabled>Y</enabled> </hop>
  279 + <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x7ebf;&#x8def;&#x540d;&#x79f0;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  280 + <hop> <from>&#x7ebf;&#x8def;&#x540d;&#x79f0;&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  281 + <hop> <from>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  282 + <hop> <from>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  283 + <hop> <from>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</to><enabled>Y</enabled> </hop>
  284 + <hop> <from>&#x8def;&#x724c;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x8def;&#x724c;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  285 + <hop> <from>&#x8fc7;&#x6ee4;&#x8def;&#x724c;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  286 + <hop> <from>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2; 2</from><to>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  287 + <hop> <from>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop>
  288 + <hop> <from>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</to><enabled>Y</enabled> </hop>
  289 + <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</from><to>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop>
  290 + <hop> <from>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
  291 + <hop> <from>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>
  292 + <hop> <from>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</to><enabled>Y</enabled> </hop>
  293 + </order>
  294 + <step>
  295 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  296 + <type>ExcelInput</type>
  297 + <description/>
  298 + <distribute>Y</distribute>
  299 + <custom_distribution/>
  300 + <copies>1</copies>
  301 + <partitioning>
  302 + <method>none</method>
  303 + <schema_name/>
  304 + </partitioning>
  305 + <header>Y</header>
  306 + <noempty>Y</noempty>
  307 + <stoponempty>N</stoponempty>
  308 + <filefield/>
  309 + <sheetfield/>
  310 + <sheetrownumfield/>
  311 + <rownumfield/>
  312 + <sheetfield/>
  313 + <filefield/>
  314 + <limit>0</limit>
  315 + <encoding/>
  316 + <add_to_result_filenames>Y</add_to_result_filenames>
  317 + <accept_filenames>N</accept_filenames>
  318 + <accept_field>filepath_</accept_field>
  319 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  320 + <file>
  321 + <name>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control_etl&#x2f;&#x5bfc;&#x5165;&#x5bfc;&#x51fa;1&#x2f;&#x6392;&#x7248;&#x89c4;&#x5219;&#x4fe1;&#x606f;.xls</name>
  322 + <filemask/>
  323 + <exclude_filemask/>
  324 + <file_required>N</file_required>
  325 + <include_subfolders>N</include_subfolders>
  326 + </file>
  327 + <fields>
  328 + <field>
  329 + <name>&#x7ebf;&#x8def;</name>
  330 + <type>String</type>
  331 + <length>-1</length>
  332 + <precision>-1</precision>
  333 + <trim_type>none</trim_type>
  334 + <repeat>N</repeat>
  335 + <format/>
  336 + <currency/>
  337 + <decimal/>
  338 + <group/>
  339 + </field>
  340 + <field>
  341 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  342 + <type>String</type>
  343 + <length>-1</length>
  344 + <precision>-1</precision>
  345 + <trim_type>none</trim_type>
  346 + <repeat>N</repeat>
  347 + <format/>
  348 + <currency/>
  349 + <decimal/>
  350 + <group/>
  351 + </field>
  352 + <field>
  353 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  354 + <type>String</type>
  355 + <length>-1</length>
  356 + <precision>-1</precision>
  357 + <trim_type>none</trim_type>
  358 + <repeat>N</repeat>
  359 + <format/>
  360 + <currency/>
  361 + <decimal/>
  362 + <group/>
  363 + </field>
  364 + <field>
  365 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  366 + <type>String</type>
  367 + <length>-1</length>
  368 + <precision>-1</precision>
  369 + <trim_type>none</trim_type>
  370 + <repeat>N</repeat>
  371 + <format>&#x23;</format>
  372 + <currency/>
  373 + <decimal/>
  374 + <group/>
  375 + </field>
  376 + <field>
  377 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  378 + <type>String</type>
  379 + <length>-1</length>
  380 + <precision>-1</precision>
  381 + <trim_type>none</trim_type>
  382 + <repeat>N</repeat>
  383 + <format>&#x23;</format>
  384 + <currency/>
  385 + <decimal/>
  386 + <group/>
  387 + </field>
  388 + <field>
  389 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  390 + <type>String</type>
  391 + <length>-1</length>
  392 + <precision>-1</precision>
  393 + <trim_type>none</trim_type>
  394 + <repeat>N</repeat>
  395 + <format>&#x23;</format>
  396 + <currency/>
  397 + <decimal/>
  398 + <group/>
  399 + </field>
  400 + <field>
  401 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  402 + <type>String</type>
  403 + <length>-1</length>
  404 + <precision>-1</precision>
  405 + <trim_type>none</trim_type>
  406 + <repeat>N</repeat>
  407 + <format>&#x23;</format>
  408 + <currency/>
  409 + <decimal/>
  410 + <group/>
  411 + </field>
  412 + <field>
  413 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  414 + <type>String</type>
  415 + <length>-1</length>
  416 + <precision>-1</precision>
  417 + <trim_type>none</trim_type>
  418 + <repeat>N</repeat>
  419 + <format>&#x23;</format>
  420 + <currency/>
  421 + <decimal/>
  422 + <group/>
  423 + </field>
  424 + </fields>
  425 + <sheets>
  426 + <sheet>
  427 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  428 + <startrow>0</startrow>
  429 + <startcol>0</startcol>
  430 + </sheet>
  431 + </sheets>
  432 + <strict_types>N</strict_types>
  433 + <error_ignored>N</error_ignored>
  434 + <error_line_skipped>N</error_line_skipped>
  435 + <bad_line_files_destination_directory/>
  436 + <bad_line_files_extension>warning</bad_line_files_extension>
  437 + <error_line_files_destination_directory/>
  438 + <error_line_files_extension>error</error_line_files_extension>
  439 + <line_number_files_destination_directory/>
  440 + <line_number_files_extension>line</line_number_files_extension>
  441 + <shortFileFieldName/>
  442 + <pathFieldName/>
  443 + <hiddenFieldName/>
  444 + <lastModificationTimeFieldName/>
  445 + <uriNameFieldName/>
  446 + <rootUriNameFieldName/>
  447 + <extensionFieldName/>
  448 + <sizeFieldName/>
  449 + <spreadsheet_type>JXL</spreadsheet_type>
  450 + <cluster_schema/>
  451 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  452 + <xloc>208</xloc>
  453 + <yloc>21</yloc>
  454 + <draw>Y</draw>
  455 + </GUI>
  456 + </step>
  457 +
  458 + <step>
  459 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  460 + <type>GetVariable</type>
  461 + <description/>
  462 + <distribute>Y</distribute>
  463 + <custom_distribution/>
  464 + <copies>1</copies>
  465 + <partitioning>
  466 + <method>none</method>
  467 + <schema_name/>
  468 + </partitioning>
  469 + <fields>
  470 + <field>
  471 + <name>filepath_</name>
  472 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  473 + <type>String</type>
  474 + <format/>
  475 + <currency/>
  476 + <decimal/>
  477 + <group/>
  478 + <length>-1</length>
  479 + <precision>-1</precision>
  480 + <trim_type>none</trim_type>
  481 + </field>
  482 + <field>
  483 + <name>erroroutputdir_</name>
  484 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  485 + <type>String</type>
  486 + <format/>
  487 + <currency/>
  488 + <decimal/>
  489 + <group/>
  490 + <length>-1</length>
  491 + <precision>-1</precision>
  492 + <trim_type>none</trim_type>
  493 + </field>
  494 + </fields>
  495 + <cluster_schema/>
  496 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  497 + <xloc>53</xloc>
  498 + <yloc>23</yloc>
  499 + <draw>Y</draw>
  500 + </GUI>
  501 + </step>
  502 +
  503 + <step>
  504 + <name>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  505 + <type>SplitFieldToRows3</type>
  506 + <description/>
  507 + <distribute>Y</distribute>
  508 + <custom_distribution/>
  509 + <copies>1</copies>
  510 + <partitioning>
  511 + <method>none</method>
  512 + <schema_name/>
  513 + </partitioning>
  514 + <splitfield>&#x8def;&#x724c;&#x8303;&#x56f4;</splitfield>
  515 + <delimiter>,</delimiter>
  516 + <newfield>lpname</newfield>
  517 + <rownum>N</rownum>
  518 + <rownum_field/>
  519 + <resetrownumber>Y</resetrownumber>
  520 + <delimiter_is_regex>N</delimiter_is_regex>
  521 + <cluster_schema/>
  522 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  523 + <xloc>364</xloc>
  524 + <yloc>259</yloc>
  525 + <draw>Y</draw>
  526 + </GUI>
  527 + </step>
  528 +
  529 + <step>
  530 + <name>&#x7ebf;&#x8def;&#x540d;&#x79f0;&#x67e5;&#x8be2;</name>
  531 + <type>DBLookup</type>
  532 + <description/>
  533 + <distribute>Y</distribute>
  534 + <custom_distribution/>
  535 + <copies>1</copies>
  536 + <partitioning>
  537 + <method>none</method>
  538 + <schema_name/>
  539 + </partitioning>
  540 + <connection>bus_control_variable</connection>
  541 + <cache>Y</cache>
  542 + <cache_load_all>Y</cache_load_all>
  543 + <cache_size>0</cache_size>
  544 + <lookup>
  545 + <schema/>
  546 + <table>bsth_c_line</table>
  547 + <orderby/>
  548 + <fail_on_multiple>N</fail_on_multiple>
  549 + <eat_row_on_failure>N</eat_row_on_failure>
  550 + <key>
  551 + <name>&#x7ebf;&#x8def;</name>
  552 + <field>name</field>
  553 + <condition>&#x3d;</condition>
  554 + <name2/>
  555 + </key>
  556 + <key>
  557 + <name>isCancel</name>
  558 + <field>destroy</field>
  559 + <condition>&#x3d;</condition>
  560 + <name2/>
  561 + </key>
  562 + <value>
  563 + <name>id</name>
  564 + <rename>xlid</rename>
  565 + <default/>
  566 + <type>Integer</type>
  567 + </value>
  568 + </lookup>
  569 + <cluster_schema/>
  570 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  571 + <xloc>359</xloc>
  572 + <yloc>110</yloc>
  573 + <draw>Y</draw>
  574 + </GUI>
  575 + </step>
  576 +
  577 + <step>
  578 + <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>
  579 + <type>Constant</type>
  580 + <description/>
  581 + <distribute>Y</distribute>
  582 + <custom_distribution/>
  583 + <copies>1</copies>
  584 + <partitioning>
  585 + <method>none</method>
  586 + <schema_name/>
  587 + </partitioning>
  588 + <fields>
  589 + <field>
  590 + <name>isCancel</name>
  591 + <type>Integer</type>
  592 + <format/>
  593 + <currency/>
  594 + <decimal/>
  595 + <group/>
  596 + <nullif>0</nullif>
  597 + <length>-1</length>
  598 + <precision>-1</precision>
  599 + <set_empty_string>N</set_empty_string>
  600 + </field>
  601 + </fields>
  602 + <cluster_schema/>
  603 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  604 + <xloc>361</xloc>
  605 + <yloc>22</yloc>
  606 + <draw>Y</draw>
  607 + </GUI>
  608 + </step>
  609 +
  610 + <step>
  611 + <name>&#x8def;&#x724c;id&#x67e5;&#x8be2;</name>
  612 + <type>DBLookup</type>
  613 + <description/>
  614 + <distribute>Y</distribute>
  615 + <custom_distribution/>
  616 + <copies>1</copies>
  617 + <partitioning>
  618 + <method>none</method>
  619 + <schema_name/>
  620 + </partitioning>
  621 + <connection>bus_control_variable</connection>
  622 + <cache>Y</cache>
  623 + <cache_load_all>Y</cache_load_all>
  624 + <cache_size>0</cache_size>
  625 + <lookup>
  626 + <schema/>
  627 + <table>bsth_c_s_gbi</table>
  628 + <orderby/>
  629 + <fail_on_multiple>N</fail_on_multiple>
  630 + <eat_row_on_failure>N</eat_row_on_failure>
  631 + <key>
  632 + <name>xlid</name>
  633 + <field>xl</field>
  634 + <condition>&#x3d;</condition>
  635 + <name2/>
  636 + </key>
  637 + <key>
  638 + <name>lpname</name>
  639 + <field>lp_name</field>
  640 + <condition>&#x3d;</condition>
  641 + <name2/>
  642 + </key>
  643 + <key>
  644 + <name>isCancel</name>
  645 + <field>is_cancel</field>
  646 + <condition>&#x3d;</condition>
  647 + <name2/>
  648 + </key>
  649 + <value>
  650 + <name>id</name>
  651 + <rename>lpid</rename>
  652 + <default/>
  653 + <type>Integer</type>
  654 + </value>
  655 + </lookup>
  656 + <cluster_schema/>
  657 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  658 + <xloc>516</xloc>
  659 + <yloc>21</yloc>
  660 + <draw>Y</draw>
  661 + </GUI>
  662 + </step>
  663 +
  664 + <step>
  665 + <name>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x8def;&#x724c;id</name>
  666 + <type>GroupBy</type>
  667 + <description/>
  668 + <distribute>Y</distribute>
  669 + <custom_distribution/>
  670 + <copies>1</copies>
  671 + <partitioning>
  672 + <method>none</method>
  673 + <schema_name/>
  674 + </partitioning>
  675 + <all_rows>N</all_rows>
  676 + <ignore_aggregate>N</ignore_aggregate>
  677 + <field_ignore/>
  678 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  679 + <prefix>grp</prefix>
  680 + <add_linenr>N</add_linenr>
  681 + <linenr_fieldname/>
  682 + <give_back_row>N</give_back_row>
  683 + <group>
  684 + <field>
  685 + <name>xlid</name>
  686 + </field>
  687 + <field>
  688 + <name>cid</name>
  689 + </field>
  690 + <field>
  691 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  692 + </field>
  693 + <field>
  694 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  695 + </field>
  696 + <field>
  697 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  698 + </field>
  699 + <field>
  700 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  701 + </field>
  702 + <field>
  703 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  704 + </field>
  705 + <field>
  706 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  707 + </field>
  708 + <field>
  709 + <name>isCancel</name>
  710 + </field>
  711 + </group>
  712 + <fields>
  713 + <field>
  714 + <aggregate>lpids</aggregate>
  715 + <subject>lpid</subject>
  716 + <type>CONCAT_STRING</type>
  717 + <valuefield>,</valuefield>
  718 + </field>
  719 + </fields>
  720 + <cluster_schema/>
  721 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  722 + <xloc>653</xloc>
  723 + <yloc>119</yloc>
  724 + <draw>Y</draw>
  725 + </GUI>
  726 + </step>
  727 +
  728 + <step>
  729 + <name>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</name>
  730 + <type>SortRows</type>
  731 + <description/>
  732 + <distribute>Y</distribute>
  733 + <custom_distribution/>
  734 + <copies>1</copies>
  735 + <partitioning>
  736 + <method>none</method>
  737 + <schema_name/>
  738 + </partitioning>
  739 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  740 + <prefix>out</prefix>
  741 + <sort_size>1000000</sort_size>
  742 + <free_memory/>
  743 + <compress>N</compress>
  744 + <compress_variable/>
  745 + <unique_rows>N</unique_rows>
  746 + <fields>
  747 + <field>
  748 + <name>xlid</name>
  749 + <ascending>Y</ascending>
  750 + <case_sensitive>N</case_sensitive>
  751 + <presorted>N</presorted>
  752 + </field>
  753 + <field>
  754 + <name>cid</name>
  755 + <ascending>Y</ascending>
  756 + <case_sensitive>N</case_sensitive>
  757 + <presorted>N</presorted>
  758 + </field>
  759 + <field>
  760 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  761 + <ascending>Y</ascending>
  762 + <case_sensitive>N</case_sensitive>
  763 + <presorted>N</presorted>
  764 + </field>
  765 + <field>
  766 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  767 + <ascending>Y</ascending>
  768 + <case_sensitive>N</case_sensitive>
  769 + <presorted>N</presorted>
  770 + </field>
  771 + <field>
  772 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  773 + <ascending>Y</ascending>
  774 + <case_sensitive>N</case_sensitive>
  775 + <presorted>N</presorted>
  776 + </field>
  777 + <field>
  778 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  779 + <ascending>Y</ascending>
  780 + <case_sensitive>N</case_sensitive>
  781 + <presorted>N</presorted>
  782 + </field>
  783 + <field>
  784 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  785 + <ascending>Y</ascending>
  786 + <case_sensitive>N</case_sensitive>
  787 + <presorted>N</presorted>
  788 + </field>
  789 + <field>
  790 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  791 + <ascending>Y</ascending>
  792 + <case_sensitive>N</case_sensitive>
  793 + <presorted>N</presorted>
  794 + </field>
  795 + <field>
  796 + <name>isCancel</name>
  797 + <ascending>Y</ascending>
  798 + <case_sensitive>N</case_sensitive>
  799 + <presorted>N</presorted>
  800 + </field>
  801 + </fields>
  802 + <cluster_schema/>
  803 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  804 + <xloc>516</xloc>
  805 + <yloc>119</yloc>
  806 + <draw>Y</draw>
  807 + </GUI>
  808 + </step>
  809 +
  810 + <step>
  811 + <name>&#x62c6;&#x5206;&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  812 + <type>SplitFieldToRows3</type>
  813 + <description/>
  814 + <distribute>Y</distribute>
  815 + <custom_distribution/>
  816 + <copies>1</copies>
  817 + <partitioning>
  818 + <method>none</method>
  819 + <schema_name/>
  820 + </partitioning>
  821 + <splitfield>&#x4eba;&#x5458;&#x8303;&#x56f4;</splitfield>
  822 + <delimiter>,</delimiter>
  823 + <newfield>dbbm</newfield>
  824 + <rownum>N</rownum>
  825 + <rownum_field/>
  826 + <resetrownumber>Y</resetrownumber>
  827 + <delimiter_is_regex>N</delimiter_is_regex>
  828 + <cluster_schema/>
  829 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  830 + <xloc>777</xloc>
  831 + <yloc>22</yloc>
  832 + <draw>Y</draw>
  833 + </GUI>
  834 + </step>
  835 +
  836 + <step>
  837 + <name>&#x62c6;&#x5206;&#x5206;&#x73ed;&#x642d;&#x73ed;&#x7f16;&#x7801;&#x5b57;&#x6bb5;</name>
  838 + <type>FieldSplitter</type>
  839 + <description/>
  840 + <distribute>Y</distribute>
  841 + <custom_distribution/>
  842 + <copies>1</copies>
  843 + <partitioning>
  844 + <method>none</method>
  845 + <schema_name/>
  846 + </partitioning>
  847 + <splitfield>dbbm</splitfield>
  848 + <delimiter>-</delimiter>
  849 + <enclosure/>
  850 + <fields> <field> <name>dbbm1</name>
  851 + <id/>
  852 + <idrem>N</idrem>
  853 + <type>String</type>
  854 + <format/>
  855 + <group/>
  856 + <decimal/>
  857 + <currency/>
  858 + <length>-1</length>
  859 + <precision>-1</precision>
  860 + <nullif/>
  861 + <ifnull/>
  862 + <trimtype>none</trimtype>
  863 + </field> <field> <name>dbbm2</name>
  864 + <id/>
  865 + <idrem>N</idrem>
  866 + <type>String</type>
  867 + <format/>
  868 + <group/>
  869 + <decimal/>
  870 + <currency/>
  871 + <length>-1</length>
  872 + <precision>-1</precision>
  873 + <nullif/>
  874 + <ifnull/>
  875 + <trimtype>none</trimtype>
  876 + </field> </fields> <cluster_schema/>
  877 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  878 + <xloc>901</xloc>
  879 + <yloc>22</yloc>
  880 + <draw>Y</draw>
  881 + </GUI>
  882 + </step>
  883 +
  884 + <step>
  885 + <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</name>
  886 + <type>DBLookup</type>
  887 + <description/>
  888 + <distribute>Y</distribute>
  889 + <custom_distribution/>
  890 + <copies>1</copies>
  891 + <partitioning>
  892 + <method>none</method>
  893 + <schema_name/>
  894 + </partitioning>
  895 + <connection>bus_control_variable</connection>
  896 + <cache>Y</cache>
  897 + <cache_load_all>Y</cache_load_all>
  898 + <cache_size>0</cache_size>
  899 + <lookup>
  900 + <schema/>
  901 + <table>bsth_c_s_ecinfo</table>
  902 + <orderby/>
  903 + <fail_on_multiple>N</fail_on_multiple>
  904 + <eat_row_on_failure>N</eat_row_on_failure>
  905 + <key>
  906 + <name>xlid</name>
  907 + <field>xl</field>
  908 + <condition>&#x3d;</condition>
  909 + <name2/>
  910 + </key>
  911 + <key>
  912 + <name>dbbm1</name>
  913 + <field>dbbm</field>
  914 + <condition>&#x3d;</condition>
  915 + <name2/>
  916 + </key>
  917 + <key>
  918 + <name>isCancel</name>
  919 + <field>is_cancel</field>
  920 + <condition>&#x3d;</condition>
  921 + <name2/>
  922 + </key>
  923 + <value>
  924 + <name>id</name>
  925 + <rename>rycid1</rename>
  926 + <default/>
  927 + <type>Integer</type>
  928 + </value>
  929 + </lookup>
  930 + <cluster_schema/>
  931 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  932 + <xloc>904</xloc>
  933 + <yloc>101</yloc>
  934 + <draw>Y</draw>
  935 + </GUI>
  936 + </step>
  937 +
  938 + <step>
  939 + <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2; 2</name>
  940 + <type>DBLookup</type>
  941 + <description/>
  942 + <distribute>Y</distribute>
  943 + <custom_distribution/>
  944 + <copies>1</copies>
  945 + <partitioning>
  946 + <method>none</method>
  947 + <schema_name/>
  948 + </partitioning>
  949 + <connection>bus_control_variable</connection>
  950 + <cache>Y</cache>
  951 + <cache_load_all>Y</cache_load_all>
  952 + <cache_size>0</cache_size>
  953 + <lookup>
  954 + <schema/>
  955 + <table>bsth_c_s_ecinfo</table>
  956 + <orderby/>
  957 + <fail_on_multiple>N</fail_on_multiple>
  958 + <eat_row_on_failure>N</eat_row_on_failure>
  959 + <key>
  960 + <name>xlid</name>
  961 + <field>xl</field>
  962 + <condition>&#x3d;</condition>
  963 + <name2/>
  964 + </key>
  965 + <key>
  966 + <name>dbbm2</name>
  967 + <field>dbbm</field>
  968 + <condition>&#x3d;</condition>
  969 + <name2/>
  970 + </key>
  971 + <key>
  972 + <name>isCancel</name>
  973 + <field>is_cancel</field>
  974 + <condition>&#x3d;</condition>
  975 + <name2/>
  976 + </key>
  977 + <value>
  978 + <name>id</name>
  979 + <rename>rycid2</rename>
  980 + <default/>
  981 + <type>Integer</type>
  982 + </value>
  983 + </lookup>
  984 + <cluster_schema/>
  985 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  986 + <xloc>778</xloc>
  987 + <yloc>103</yloc>
  988 + <draw>Y</draw>
  989 + </GUI>
  990 + </step>
  991 +
  992 + <step>
  993 + <name>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</name>
  994 + <type>DBJoin</type>
  995 + <description/>
  996 + <distribute>Y</distribute>
  997 + <custom_distribution/>
  998 + <copies>1</copies>
  999 + <partitioning>
  1000 + <method>none</method>
  1001 + <schema_name/>
  1002 + </partitioning>
  1003 + <connection>bus_control_variable</connection>
  1004 + <rowlimit>0</rowlimit>
  1005 + <sql>select t1.id as cid from bsth_c_s_ccinfo t1 left join bsth_c_cars t2 on t1.cl &#x3d; t2.id&#xa;where t1.xl &#x3d; &#x3f; and t2.inside_code &#x3d; &#x3f; and t1.is_cancel &#x3d; &#x3f;</sql>
  1006 + <outer_join>N</outer_join>
  1007 + <replace_vars>N</replace_vars>
  1008 + <parameter>
  1009 + <field>
  1010 + <name>xlid</name>
  1011 + <type>Integer</type>
  1012 + </field>
  1013 + <field>
  1014 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  1015 + <type>String</type>
  1016 + </field>
  1017 + <field>
  1018 + <name>isCancel</name>
  1019 + <type>Integer</type>
  1020 + </field>
  1021 + </parameter>
  1022 + <cluster_schema/>
  1023 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1024 + <xloc>360</xloc>
  1025 + <yloc>184</yloc>
  1026 + <draw>Y</draw>
  1027 + </GUI>
  1028 + </step>
  1029 +
  1030 + <step>
  1031 + <name>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1032 + <type>FilterRows</type>
  1033 + <description/>
  1034 + <distribute>Y</distribute>
  1035 + <custom_distribution/>
  1036 + <copies>1</copies>
  1037 + <partitioning>
  1038 + <method>none</method>
  1039 + <schema_name/>
  1040 + </partitioning>
  1041 +<send_true_to>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</send_true_to>
  1042 +<send_false_to/>
  1043 + <compare>
  1044 +<condition>
  1045 + <negated>N</negated>
  1046 + <leftvalue>xlid</leftvalue>
  1047 + <function>IS NOT NULL</function>
  1048 + <rightvalue/>
  1049 + </condition>
  1050 + </compare>
  1051 + <cluster_schema/>
  1052 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1053 + <xloc>203</xloc>
  1054 + <yloc>110</yloc>
  1055 + <draw>Y</draw>
  1056 + </GUI>
  1057 + </step>
  1058 +
  1059 + <step>
  1060 + <name>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1061 + <type>FilterRows</type>
  1062 + <description/>
  1063 + <distribute>Y</distribute>
  1064 + <custom_distribution/>
  1065 + <copies>1</copies>
  1066 + <partitioning>
  1067 + <method>none</method>
  1068 + <schema_name/>
  1069 + </partitioning>
  1070 +<send_true_to>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</send_true_to>
  1071 +<send_false_to/>
  1072 + <compare>
  1073 +<condition>
  1074 + <negated>N</negated>
  1075 + <leftvalue>cid</leftvalue>
  1076 + <function>IS NOT NULL</function>
  1077 + <rightvalue/>
  1078 + </condition>
  1079 + </compare>
  1080 + <cluster_schema/>
  1081 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1082 + <xloc>208</xloc>
  1083 + <yloc>182</yloc>
  1084 + <draw>Y</draw>
  1085 + </GUI>
  1086 + </step>
  1087 +
  1088 + <step>
  1089 + <name>&#x8fc7;&#x6ee4;&#x8def;&#x724c;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1090 + <type>FilterRows</type>
  1091 + <description/>
  1092 + <distribute>Y</distribute>
  1093 + <custom_distribution/>
  1094 + <copies>1</copies>
  1095 + <partitioning>
  1096 + <method>none</method>
  1097 + <schema_name/>
  1098 + </partitioning>
  1099 +<send_true_to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</send_true_to>
  1100 +<send_false_to/>
  1101 + <compare>
  1102 +<condition>
  1103 + <negated>N</negated>
  1104 + <leftvalue>lpid</leftvalue>
  1105 + <function>IS NOT NULL</function>
  1106 + <rightvalue/>
  1107 + </condition>
  1108 + </compare>
  1109 + <cluster_schema/>
  1110 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1111 + <xloc>653</xloc>
  1112 + <yloc>23</yloc>
  1113 + <draw>Y</draw>
  1114 + </GUI>
  1115 + </step>
  1116 +
  1117 + <step>
  1118 + <name>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1119 + <type>FilterRows</type>
  1120 + <description/>
  1121 + <distribute>Y</distribute>
  1122 + <custom_distribution/>
  1123 + <copies>1</copies>
  1124 + <partitioning>
  1125 + <method>none</method>
  1126 + <schema_name/>
  1127 + </partitioning>
  1128 +<send_true_to/>
  1129 +<send_false_to/>
  1130 + <compare>
  1131 +<condition>
  1132 + <negated>N</negated>
  1133 + <conditions>
  1134 + <condition>
  1135 + <negated>N</negated>
  1136 + <leftvalue>rycid1</leftvalue>
  1137 + <function>IS NOT NULL</function>
  1138 + <rightvalue/>
  1139 + </condition>
  1140 + <condition>
  1141 + <negated>N</negated>
  1142 + <operator>OR</operator>
  1143 + <leftvalue>rycid2</leftvalue>
  1144 + <function>IS NOT NULL</function>
  1145 + <rightvalue/>
  1146 + </condition>
  1147 + </conditions>
  1148 + </condition>
  1149 + </compare>
  1150 + <cluster_schema/>
  1151 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1152 + <xloc>776</xloc>
  1153 + <yloc>204</yloc>
  1154 + <draw>Y</draw>
  1155 + </GUI>
  1156 + </step>
  1157 +
  1158 + <step>
  1159 + <name>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</name>
  1160 + <type>ScriptValueMod</type>
  1161 + <description/>
  1162 + <distribute>Y</distribute>
  1163 + <custom_distribution/>
  1164 + <copies>1</copies>
  1165 + <partitioning>
  1166 + <method>none</method>
  1167 + <schema_name/>
  1168 + </partitioning>
  1169 + <compatible>N</compatible>
  1170 + <optimizationLevel>9</optimizationLevel>
  1171 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  1172 + <jsScript_name>Script 1</jsScript_name>
  1173 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var rycid&#x3b;&#xa;&#xa;if &#x28;rycid2 &#x3d;&#x3d; null&#x29; &#x7b;&#xa; rycid &#x3d; rycid1&#x3b;&#xa;&#x7d; else &#x7b;&#xa; rycid &#x3d; rycid1 &#x2b; &#x22;-&#x22; &#x2b; rycid2&#x3b;&#xa;&#x7d;</jsScript_script>
  1174 + </jsScript> </jsScripts> <fields> <field> <name>rycid</name>
  1175 + <rename>rycid</rename>
  1176 + <type>String</type>
  1177 + <length>-1</length>
  1178 + <precision>-1</precision>
  1179 + <replace>N</replace>
  1180 + </field> </fields> <cluster_schema/>
  1181 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1182 + <xloc>917</xloc>
  1183 + <yloc>201</yloc>
  1184 + <draw>Y</draw>
  1185 + </GUI>
  1186 + </step>
  1187 +
  1188 + <step>
  1189 + <name>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</name>
  1190 + <type>SortRows</type>
  1191 + <description/>
  1192 + <distribute>Y</distribute>
  1193 + <custom_distribution/>
  1194 + <copies>1</copies>
  1195 + <partitioning>
  1196 + <method>none</method>
  1197 + <schema_name/>
  1198 + </partitioning>
  1199 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  1200 + <prefix>out</prefix>
  1201 + <sort_size>1000000</sort_size>
  1202 + <free_memory/>
  1203 + <compress>N</compress>
  1204 + <compress_variable/>
  1205 + <unique_rows>N</unique_rows>
  1206 + <fields>
  1207 + <field>
  1208 + <name>xlid</name>
  1209 + <ascending>Y</ascending>
  1210 + <case_sensitive>N</case_sensitive>
  1211 + <presorted>N</presorted>
  1212 + </field>
  1213 + <field>
  1214 + <name>cid</name>
  1215 + <ascending>Y</ascending>
  1216 + <case_sensitive>N</case_sensitive>
  1217 + <presorted>N</presorted>
  1218 + </field>
  1219 + <field>
  1220 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  1221 + <ascending>Y</ascending>
  1222 + <case_sensitive>N</case_sensitive>
  1223 + <presorted>N</presorted>
  1224 + </field>
  1225 + <field>
  1226 + <name>lpids</name>
  1227 + <ascending>Y</ascending>
  1228 + <case_sensitive>N</case_sensitive>
  1229 + <presorted>N</presorted>
  1230 + </field>
  1231 + <field>
  1232 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  1233 + <ascending>Y</ascending>
  1234 + <case_sensitive>N</case_sensitive>
  1235 + <presorted>N</presorted>
  1236 + </field>
  1237 + <field>
  1238 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  1239 + <ascending>Y</ascending>
  1240 + <case_sensitive>N</case_sensitive>
  1241 + <presorted>N</presorted>
  1242 + </field>
  1243 + <field>
  1244 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  1245 + <ascending>Y</ascending>
  1246 + <case_sensitive>N</case_sensitive>
  1247 + <presorted>N</presorted>
  1248 + </field>
  1249 + <field>
  1250 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  1251 + <ascending>Y</ascending>
  1252 + <case_sensitive>N</case_sensitive>
  1253 + <presorted>N</presorted>
  1254 + </field>
  1255 + <field>
  1256 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  1257 + <ascending>Y</ascending>
  1258 + <case_sensitive>N</case_sensitive>
  1259 + <presorted>N</presorted>
  1260 + </field>
  1261 + <field>
  1262 + <name>isCancel</name>
  1263 + <ascending>Y</ascending>
  1264 + <case_sensitive>N</case_sensitive>
  1265 + <presorted>N</presorted>
  1266 + </field>
  1267 + </fields>
  1268 + <cluster_schema/>
  1269 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1270 + <xloc>919</xloc>
  1271 + <yloc>289</yloc>
  1272 + <draw>Y</draw>
  1273 + </GUI>
  1274 + </step>
  1275 +
  1276 + <step>
  1277 + <name>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</name>
  1278 + <type>GroupBy</type>
  1279 + <description/>
  1280 + <distribute>Y</distribute>
  1281 + <custom_distribution/>
  1282 + <copies>1</copies>
  1283 + <partitioning>
  1284 + <method>none</method>
  1285 + <schema_name/>
  1286 + </partitioning>
  1287 + <all_rows>N</all_rows>
  1288 + <ignore_aggregate>N</ignore_aggregate>
  1289 + <field_ignore/>
  1290 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  1291 + <prefix>grp</prefix>
  1292 + <add_linenr>N</add_linenr>
  1293 + <linenr_fieldname/>
  1294 + <give_back_row>N</give_back_row>
  1295 + <group>
  1296 + <field>
  1297 + <name>xlid</name>
  1298 + </field>
  1299 + <field>
  1300 + <name>cid</name>
  1301 + </field>
  1302 + <field>
  1303 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  1304 + </field>
  1305 + <field>
  1306 + <name>lpids</name>
  1307 + </field>
  1308 + <field>
  1309 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  1310 + </field>
  1311 + <field>
  1312 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  1313 + </field>
  1314 + <field>
  1315 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  1316 + </field>
  1317 + <field>
  1318 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  1319 + </field>
  1320 + <field>
  1321 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  1322 + </field>
  1323 + <field>
  1324 + <name>isCancel</name>
  1325 + </field>
  1326 + </group>
  1327 + <fields>
  1328 + <field>
  1329 + <aggregate>rycids</aggregate>
  1330 + <subject>rycid</subject>
  1331 + <type>CONCAT_STRING</type>
  1332 + <valuefield>,</valuefield>
  1333 + </field>
  1334 + </fields>
  1335 + <cluster_schema/>
  1336 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1337 + <xloc>780</xloc>
  1338 + <yloc>291</yloc>
  1339 + <draw>Y</draw>
  1340 + </GUI>
  1341 + </step>
  1342 +
  1343 + <step>
  1344 + <name>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</name>
  1345 + <type>InsertUpdate</type>
  1346 + <description/>
  1347 + <distribute>Y</distribute>
  1348 + <custom_distribution/>
  1349 + <copies>1</copies>
  1350 + <partitioning>
  1351 + <method>none</method>
  1352 + <schema_name/>
  1353 + </partitioning>
  1354 + <connection>bus_control_variable</connection>
  1355 + <commit>100</commit>
  1356 + <update_bypassed>N</update_bypassed>
  1357 + <lookup>
  1358 + <schema/>
  1359 + <table>bsth_c_s_sr1_flat</table>
  1360 + <key>
  1361 + <name>xlid</name>
  1362 + <field>xl</field>
  1363 + <condition>&#x3d;</condition>
  1364 + <name2/>
  1365 + </key>
  1366 + <key>
  1367 + <name>cid</name>
  1368 + <field>car_config_info</field>
  1369 + <condition>&#x3d;</condition>
  1370 + <name2/>
  1371 + </key>
  1372 + <key>
  1373 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  1374 + <field>lp_names</field>
  1375 + <condition>&#x3d;</condition>
  1376 + <name2/>
  1377 + </key>
  1378 + <value>
  1379 + <name>xl</name>
  1380 + <rename>xlid</rename>
  1381 + <update>Y</update>
  1382 + </value>
  1383 + <value>
  1384 + <name>car_config_info</name>
  1385 + <rename>cid</rename>
  1386 + <update>Y</update>
  1387 + </value>
  1388 + <value>
  1389 + <name>lp_names</name>
  1390 + <rename>&#x8def;&#x724c;&#x8303;&#x56f4;</rename>
  1391 + <update>Y</update>
  1392 + </value>
  1393 + <value>
  1394 + <name>lp_ids</name>
  1395 + <rename>lpids</rename>
  1396 + <update>Y</update>
  1397 + </value>
  1398 + <value>
  1399 + <name>lp_start</name>
  1400 + <rename>&#x8d77;&#x59cb;&#x8def;&#x724c;</rename>
  1401 + <update>Y</update>
  1402 + </value>
  1403 + <value>
  1404 + <name>ry_start</name>
  1405 + <rename>&#x8d77;&#x59cb;&#x4eba;&#x5458;</rename>
  1406 + <update>Y</update>
  1407 + </value>
  1408 + <value>
  1409 + <name>ry_dbbms</name>
  1410 + <rename>&#x4eba;&#x5458;&#x8303;&#x56f4;</rename>
  1411 + <update>Y</update>
  1412 + </value>
  1413 + <value>
  1414 + <name>qyrq</name>
  1415 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  1416 + <update>Y</update>
  1417 + </value>
  1418 + <value>
  1419 + <name>ry_config_ids</name>
  1420 + <rename>rycids</rename>
  1421 + <update>Y</update>
  1422 + </value>
  1423 + <value>
  1424 + <name>fbgs</name>
  1425 + <rename>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</rename>
  1426 + <update>Y</update>
  1427 + </value>
  1428 + </lookup>
  1429 + <cluster_schema/>
  1430 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1431 + <xloc>532</xloc>
  1432 + <yloc>297</yloc>
  1433 + <draw>Y</draw>
  1434 + </GUI>
  1435 + </step>
  1436 +
  1437 + <step>
  1438 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
  1439 + <type>ExcelOutput</type>
  1440 + <description/>
  1441 + <distribute>Y</distribute>
  1442 + <custom_distribution/>
  1443 + <copies>1</copies>
  1444 + <partitioning>
  1445 + <method>none</method>
  1446 + <schema_name/>
  1447 + </partitioning>
  1448 + <header>Y</header>
  1449 + <footer>N</footer>
  1450 + <encoding>UTF-8</encoding>
  1451 + <append>N</append>
  1452 + <add_to_result_filenames>Y</add_to_result_filenames>
  1453 + <file>
  1454 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x6392;&#x7248;&#x89c4;&#x5219;&#x4fe1;&#x606f;&#x5bfc;&#x5165;_&#x9519;&#x8bef;</name>
  1455 + <extention>xls</extention>
  1456 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  1457 + <create_parent_folder>N</create_parent_folder>
  1458 + <split>N</split>
  1459 + <add_date>N</add_date>
  1460 + <add_time>N</add_time>
  1461 + <SpecifyFormat>N</SpecifyFormat>
  1462 + <date_time_format/>
  1463 + <sheetname>Sheet1</sheetname>
  1464 + <autosizecolums>N</autosizecolums>
  1465 + <nullisblank>N</nullisblank>
  1466 + <protect_sheet>N</protect_sheet>
  1467 + <password>Encrypted </password>
  1468 + <splitevery>0</splitevery>
  1469 + <usetempfiles>N</usetempfiles>
  1470 + <tempdirectory/>
  1471 + </file>
  1472 + <template>
  1473 + <enabled>N</enabled>
  1474 + <append>N</append>
  1475 + <filename>template.xls</filename>
  1476 + </template>
  1477 + <fields>
  1478 + <field>
  1479 + <name>xlid</name>
  1480 + <type>Integer</type>
  1481 + <format/>
  1482 + </field>
  1483 + <field>
  1484 + <name>cid</name>
  1485 + <type>Integer</type>
  1486 + <format/>
  1487 + </field>
  1488 + <field>
  1489 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  1490 + <type>String</type>
  1491 + <format/>
  1492 + </field>
  1493 + <field>
  1494 + <name>lpids</name>
  1495 + <type>String</type>
  1496 + <format/>
  1497 + </field>
  1498 + <field>
  1499 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  1500 + <type>String</type>
  1501 + <format/>
  1502 + </field>
  1503 + <field>
  1504 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  1505 + <type>String</type>
  1506 + <format/>
  1507 + </field>
  1508 + <field>
  1509 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  1510 + <type>String</type>
  1511 + <format/>
  1512 + </field>
  1513 + <field>
  1514 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  1515 + <type>String</type>
  1516 + <format/>
  1517 + </field>
  1518 + <field>
  1519 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  1520 + <type>String</type>
  1521 + <format/>
  1522 + </field>
  1523 + <field>
  1524 + <name>isCancel</name>
  1525 + <type>Integer</type>
  1526 + <format/>
  1527 + </field>
  1528 + <field>
  1529 + <name>rycids</name>
  1530 + <type>String</type>
  1531 + <format/>
  1532 + </field>
  1533 + <field>
  1534 + <name>error_count</name>
  1535 + <type>Integer</type>
  1536 + <format/>
  1537 + </field>
  1538 + <field>
  1539 + <name>error_desc</name>
  1540 + <type>String</type>
  1541 + <format/>
  1542 + </field>
  1543 + <field>
  1544 + <name>error_column1</name>
  1545 + <type>String</type>
  1546 + <format/>
  1547 + </field>
  1548 + <field>
  1549 + <name>error_column2</name>
  1550 + <type>String</type>
  1551 + <format/>
  1552 + </field>
  1553 + </fields>
  1554 + <custom>
  1555 + <header_font_name>arial</header_font_name>
  1556 + <header_font_size>10</header_font_size>
  1557 + <header_font_bold>N</header_font_bold>
  1558 + <header_font_italic>N</header_font_italic>
  1559 + <header_font_underline>no</header_font_underline>
  1560 + <header_font_orientation>horizontal</header_font_orientation>
  1561 + <header_font_color>black</header_font_color>
  1562 + <header_background_color>none</header_background_color>
  1563 + <header_row_height>255</header_row_height>
  1564 + <header_alignment>left</header_alignment>
  1565 + <header_image/>
  1566 + <row_font_name>arial</row_font_name>
  1567 + <row_font_size>10</row_font_size>
  1568 + <row_font_color>black</row_font_color>
  1569 + <row_background_color>none</row_background_color>
  1570 + </custom>
  1571 + <cluster_schema/>
  1572 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1573 + <xloc>534</xloc>
  1574 + <yloc>392</yloc>
  1575 + <draw>Y</draw>
  1576 + </GUI>
  1577 + </step>
  1578 +
  1579 + <step>
  1580 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>
  1581 + <type>SelectValues</type>
  1582 + <description/>
  1583 + <distribute>Y</distribute>
  1584 + <custom_distribution/>
  1585 + <copies>1</copies>
  1586 + <partitioning>
  1587 + <method>none</method>
  1588 + <schema_name/>
  1589 + </partitioning>
  1590 + <fields> <select_unspecified>N</select_unspecified>
  1591 + <meta> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  1592 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  1593 + <type>Timestamp</type>
  1594 + <length>-2</length>
  1595 + <precision>-2</precision>
  1596 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  1597 + <date_format_lenient>false</date_format_lenient>
  1598 + <date_format_locale/>
  1599 + <date_format_timezone/>
  1600 + <lenient_string_to_number>false</lenient_string_to_number>
  1601 + <encoding/>
  1602 + <decimal_symbol/>
  1603 + <grouping_symbol/>
  1604 + <currency_symbol/>
  1605 + <storage_type/>
  1606 + </meta> </fields> <cluster_schema/>
  1607 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1608 + <xloc>777</xloc>
  1609 + <yloc>368</yloc>
  1610 + <draw>Y</draw>
  1611 + </GUI>
  1612 + </step>
  1613 +
  1614 + <step_error_handling>
  1615 + <error>
  1616 + <source_step>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</source_step>
  1617 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
  1618 + <is_enabled>Y</is_enabled>
  1619 + <nr_valuename>error_count</nr_valuename>
  1620 + <descriptions_valuename>error_desc</descriptions_valuename>
  1621 + <fields_valuename>error_column1</fields_valuename>
  1622 + <codes_valuename>error_column2</codes_valuename>
  1623 + <max_errors/>
  1624 + <max_pct_errors/>
  1625 + <min_pct_rows/>
  1626 + </error>
  1627 + </step_error_handling>
  1628 + <slave-step-copy-partition-distribution>
  1629 +</slave-step-copy-partition-distribution>
  1630 + <slave_transformation>N</slave_transformation>
  1631 +
  1632 +</transformation>
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>&#x2f;</directory>  
11 - <parameters>  
12 - <parameter>  
13 - <name>filepath</name>  
14 - <default_value/>  
15 - <description>excel&#x6587;&#x4ef6;&#x8def;&#x5f84;</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&#x2f;01&#x2f;09 13&#x3a;35&#x3a;19.384</created_date>  
76 - <modified_user>-</modified_user>  
77 - <modified_date>2017&#x2f;01&#x2f;09 13&#x3a;35&#x3a;19.384</modified_date>  
78 - <key_for_session_key/>  
79 - <is_key_private>N</is_key_private>  
80 - </info>  
81 - <notepads>  
82 - <notepad>  
83 - <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</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>&#x24;&#x7b;v_db_ip&#x7d;</server>  
107 - <type>MYSQL</type>  
108 - <access>Native</access>  
109 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
110 - <port>3306</port>  
111 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
112 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</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_&#x516c;&#x53f8;_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_&#x672c;&#x673a;</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&#xff08;&#x672c;&#x673a;&#xff09;</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>&#x6392;&#x7248;&#x89c4;&#x5219;</from><to>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
267 - <hop> <from>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</from><to>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
268 - <hop> <from>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x67e5;&#x8be2;</from><to>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
269 - <hop> <from>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</from><to>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</to><enabled>Y</enabled> </hop>  
270 - <hop> <from>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>  
271 - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>  
272 - </order>  
273 - <step>  
274 - <name>&#x6392;&#x7248;&#x89c4;&#x5219;</name>  
275 - <type>TableInput</type>  
276 - <description/>  
277 - <distribute>Y</distribute>  
278 - <custom_distribution/>  
279 - <copies>1</copies>  
280 - <partitioning>  
281 - <method>none</method>  
282 - <schema_name/>  
283 - </partitioning>  
284 - <connection>bus_control_variable</connection>  
285 - <sql>SELECT &#x2a; FROM bsth_c_s_sr1_flat</sql>  
286 - <limit>0</limit>  
287 - <lookup/>  
288 - <execute_each_row>N</execute_each_row>  
289 - <variables_active>N</variables_active>  
290 - <lazy_conversion_active>N</lazy_conversion_active>  
291 - <cluster_schema/>  
292 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
293 - <xloc>129</xloc>  
294 - <yloc>65</yloc>  
295 - <draw>Y</draw>  
296 - </GUI>  
297 - </step>  
298 -  
299 - <step>  
300 - <name>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</name>  
301 - <type>DBLookup</type>  
302 - <description/>  
303 - <distribute>Y</distribute>  
304 - <custom_distribution/>  
305 - <copies>1</copies>  
306 - <partitioning>  
307 - <method>none</method>  
308 - <schema_name/>  
309 - </partitioning>  
310 - <connection>bus_control_variable</connection>  
311 - <cache>Y</cache>  
312 - <cache_load_all>Y</cache_load_all>  
313 - <cache_size>0</cache_size>  
314 - <lookup>  
315 - <schema/>  
316 - <table>bsth_c_line</table>  
317 - <orderby/>  
318 - <fail_on_multiple>N</fail_on_multiple>  
319 - <eat_row_on_failure>N</eat_row_on_failure>  
320 - <key>  
321 - <name>xl</name>  
322 - <field>id</field>  
323 - <condition>&#x3d;</condition>  
324 - <name2/>  
325 - </key>  
326 - <value>  
327 - <name>name</name>  
328 - <rename>xlmc</rename>  
329 - <default/>  
330 - <type>String</type>  
331 - </value>  
332 - </lookup>  
333 - <cluster_schema/>  
334 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
335 - <xloc>329</xloc>  
336 - <yloc>65</yloc>  
337 - <draw>Y</draw>  
338 - </GUI>  
339 - </step>  
340 -  
341 - <step>  
342 - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>  
343 - <type>SelectValues</type>  
344 - <description/>  
345 - <distribute>Y</distribute>  
346 - <custom_distribution/>  
347 - <copies>1</copies>  
348 - <partitioning>  
349 - <method>none</method>  
350 - <schema_name/>  
351 - </partitioning>  
352 - <fields> <field> <name>xlmc</name>  
353 - <rename>&#x7ebf;&#x8def;</rename>  
354 - <length>-2</length>  
355 - <precision>-2</precision>  
356 - </field> <field> <name>zbh</name>  
357 - <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>  
358 - <length>-2</length>  
359 - <precision>-2</precision>  
360 - </field> <field> <name>qyrq</name>  
361 - <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>  
362 - <length>-2</length>  
363 - <precision>-2</precision>  
364 - </field> <field> <name>lp_start</name>  
365 - <rename>&#x8d77;&#x59cb;&#x8def;&#x724c;</rename>  
366 - <length>-2</length>  
367 - <precision>-2</precision>  
368 - </field> <field> <name>lp_names</name>  
369 - <rename>&#x8def;&#x724c;&#x8303;&#x56f4;</rename>  
370 - <length>-2</length>  
371 - <precision>-2</precision>  
372 - </field> <field> <name>ry_start</name>  
373 - <rename>&#x8d77;&#x59cb;&#x4eba;&#x5458;</rename>  
374 - <length>-2</length>  
375 - <precision>-2</precision>  
376 - </field> <field> <name>ry_dbbms</name>  
377 - <rename>&#x4eba;&#x5458;&#x8303;&#x56f4;</rename>  
378 - <length>-2</length>  
379 - <precision>-2</precision>  
380 - </field> <field> <name>fbgs</name>  
381 - <rename>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</rename>  
382 - <length>-2</length>  
383 - <precision>-2</precision>  
384 - </field> <select_unspecified>N</select_unspecified>  
385 - </fields> <cluster_schema/>  
386 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
387 - <xloc>706</xloc>  
388 - <yloc>163</yloc>  
389 - <draw>Y</draw>  
390 - </GUI>  
391 - </step>  
392 -  
393 - <step>  
394 - <name>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x67e5;&#x8be2;</name>  
395 - <type>DBLookup</type>  
396 - <description/>  
397 - <distribute>Y</distribute>  
398 - <custom_distribution/>  
399 - <copies>1</copies>  
400 - <partitioning>  
401 - <method>none</method>  
402 - <schema_name/>  
403 - </partitioning>  
404 - <connection>bus_control_variable</connection>  
405 - <cache>N</cache>  
406 - <cache_load_all>N</cache_load_all>  
407 - <cache_size>0</cache_size>  
408 - <lookup>  
409 - <schema/>  
410 - <table>bsth_c_s_ccinfo</table>  
411 - <orderby/>  
412 - <fail_on_multiple>N</fail_on_multiple>  
413 - <eat_row_on_failure>N</eat_row_on_failure>  
414 - <key>  
415 - <name>car_config_info</name>  
416 - <field>id</field>  
417 - <condition>&#x3d;</condition>  
418 - <name2/>  
419 - </key>  
420 - <value>  
421 - <name>cl</name>  
422 - <rename>clid</rename>  
423 - <default/>  
424 - <type>Integer</type>  
425 - </value>  
426 - </lookup>  
427 - <cluster_schema/>  
428 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
429 - <xloc>471</xloc>  
430 - <yloc>64</yloc>  
431 - <draw>Y</draw>  
432 - </GUI>  
433 - </step>  
434 -  
435 - <step>  
436 - <name>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</name>  
437 - <type>DBLookup</type>  
438 - <description/>  
439 - <distribute>Y</distribute>  
440 - <custom_distribution/>  
441 - <copies>1</copies>  
442 - <partitioning>  
443 - <method>none</method>  
444 - <schema_name/>  
445 - </partitioning>  
446 - <connection>bus_control_variable</connection>  
447 - <cache>N</cache>  
448 - <cache_load_all>N</cache_load_all>  
449 - <cache_size>0</cache_size>  
450 - <lookup>  
451 - <schema/>  
452 - <table>bsth_c_cars</table>  
453 - <orderby/>  
454 - <fail_on_multiple>N</fail_on_multiple>  
455 - <eat_row_on_failure>N</eat_row_on_failure>  
456 - <key>  
457 - <name>clid</name>  
458 - <field>id</field>  
459 - <condition>&#x3d;</condition>  
460 - <name2/>  
461 - </key>  
462 - <value>  
463 - <name>inside_code</name>  
464 - <rename>zbh</rename>  
465 - <default/>  
466 - <type>String</type>  
467 - </value>  
468 - </lookup>  
469 - <cluster_schema/>  
470 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
471 - <xloc>600</xloc>  
472 - <yloc>64</yloc>  
473 - <draw>Y</draw>  
474 - </GUI>  
475 - </step>  
476 -  
477 - <step>  
478 - <name>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</name>  
479 - <type>SelectValues</type>  
480 - <description/>  
481 - <distribute>Y</distribute>  
482 - <custom_distribution/>  
483 - <copies>1</copies>  
484 - <partitioning>  
485 - <method>none</method>  
486 - <schema_name/>  
487 - </partitioning>  
488 - <fields> <select_unspecified>N</select_unspecified>  
489 - <meta> <name>qyrq</name>  
490 - <rename>qyrq</rename>  
491 - <type>String</type>  
492 - <length>-2</length>  
493 - <precision>-2</precision>  
494 - <conversion_mask>yyyy-MM-dd</conversion_mask>  
495 - <date_format_lenient>false</date_format_lenient>  
496 - <date_format_locale/>  
497 - <date_format_timezone/>  
498 - <lenient_string_to_number>false</lenient_string_to_number>  
499 - <encoding/>  
500 - <decimal_symbol/>  
501 - <grouping_symbol/>  
502 - <currency_symbol/>  
503 - <storage_type/>  
504 - </meta> <meta> <name>lp_start</name>  
505 - <rename>lp_start</rename>  
506 - <type>String</type>  
507 - <length>-2</length>  
508 - <precision>-2</precision>  
509 - <conversion_mask/>  
510 - <date_format_lenient>false</date_format_lenient>  
511 - <date_format_locale/>  
512 - <date_format_timezone/>  
513 - <lenient_string_to_number>false</lenient_string_to_number>  
514 - <encoding/>  
515 - <decimal_symbol/>  
516 - <grouping_symbol/>  
517 - <currency_symbol/>  
518 - <storage_type/>  
519 - </meta> <meta> <name>ry_start</name>  
520 - <rename>ry_start</rename>  
521 - <type>String</type>  
522 - <length>-2</length>  
523 - <precision>-2</precision>  
524 - <conversion_mask>&#x23;</conversion_mask>  
525 - <date_format_lenient>false</date_format_lenient>  
526 - <date_format_locale/>  
527 - <date_format_timezone/>  
528 - <lenient_string_to_number>false</lenient_string_to_number>  
529 - <encoding/>  
530 - <decimal_symbol/>  
531 - <grouping_symbol/>  
532 - <currency_symbol/>  
533 - <storage_type/>  
534 - </meta> </fields> <cluster_schema/>  
535 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
536 - <xloc>705</xloc>  
537 - <yloc>65</yloc>  
538 - <draw>Y</draw>  
539 - </GUI>  
540 - </step>  
541 -  
542 - <step>  
543 - <name>Excel&#x8f93;&#x51fa;</name>  
544 - <type>ExcelOutput</type>  
545 - <description/>  
546 - <distribute>Y</distribute>  
547 - <custom_distribution/>  
548 - <copies>1</copies>  
549 - <partitioning>  
550 - <method>none</method>  
551 - <schema_name/>  
552 - </partitioning>  
553 - <header>Y</header>  
554 - <footer>N</footer>  
555 - <encoding/>  
556 - <append>N</append>  
557 - <add_to_result_filenames>Y</add_to_result_filenames>  
558 - <file>  
559 - <name>&#x24;&#x7b;filepath&#x7d;</name>  
560 - <extention/>  
561 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
562 - <create_parent_folder>N</create_parent_folder>  
563 - <split>N</split>  
564 - <add_date>N</add_date>  
565 - <add_time>N</add_time>  
566 - <SpecifyFormat>N</SpecifyFormat>  
567 - <date_time_format>yyyyMMddHHmmss</date_time_format>  
568 - <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>  
569 - <autosizecolums>N</autosizecolums>  
570 - <nullisblank>N</nullisblank>  
571 - <protect_sheet>N</protect_sheet>  
572 - <password>Encrypted </password>  
573 - <splitevery>0</splitevery>  
574 - <usetempfiles>N</usetempfiles>  
575 - <tempdirectory/>  
576 - </file>  
577 - <template>  
578 - <enabled>N</enabled>  
579 - <append>N</append>  
580 - <filename>template.xls</filename>  
581 - </template>  
582 - <fields>  
583 - <field>  
584 - <name>&#x7ebf;&#x8def;</name>  
585 - <type>String</type>  
586 - <format/>  
587 - </field>  
588 - <field>  
589 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
590 - <type>String</type>  
591 - <format/>  
592 - </field>  
593 - <field>  
594 - <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
595 - <type>String</type>  
596 - <format/>  
597 - </field>  
598 - <field>  
599 - <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>  
600 - <type>String</type>  
601 - <format/>  
602 - </field>  
603 - <field>  
604 - <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>  
605 - <type>String</type>  
606 - <format/>  
607 - </field>  
608 - <field>  
609 - <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>  
610 - <type>String</type>  
611 - <format/>  
612 - </field>  
613 - <field>  
614 - <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>  
615 - <type>String</type>  
616 - <format/>  
617 - </field>  
618 - <field>  
619 - <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>  
620 - <type>String</type>  
621 - <format/>  
622 - </field>  
623 - </fields>  
624 - <custom>  
625 - <header_font_name>arial</header_font_name>  
626 - <header_font_size>10</header_font_size>  
627 - <header_font_bold>N</header_font_bold>  
628 - <header_font_italic>N</header_font_italic>  
629 - <header_font_underline>no</header_font_underline>  
630 - <header_font_orientation>horizontal</header_font_orientation>  
631 - <header_font_color>black</header_font_color>  
632 - <header_background_color>none</header_background_color>  
633 - <header_row_height>255</header_row_height>  
634 - <header_alignment>left</header_alignment>  
635 - <header_image/>  
636 - <row_font_name>arial</row_font_name>  
637 - <row_font_size>10</row_font_size>  
638 - <row_font_color>black</row_font_color>  
639 - <row_background_color>none</row_background_color>  
640 - </custom>  
641 - <cluster_schema/>  
642 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
643 - <xloc>707</xloc>  
644 - <yloc>259</yloc>  
645 - <draw>Y</draw>  
646 - </GUI>  
647 - </step>  
648 -  
649 - <step_error_handling>  
650 - </step_error_handling>  
651 - <slave-step-copy-partition-distribution>  
652 -</slave-step-copy-partition-distribution>  
653 - <slave_transformation>N</slave_transformation>  
654 -  
655 -</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>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>filepath</name>
  14 + <default_value/>
  15 + <description>excel&#x6587;&#x4ef6;&#x8def;&#x5f84;</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&#x2f;01&#x2f;09 13&#x3a;35&#x3a;19.384</created_date>
  76 + <modified_user>-</modified_user>
  77 + <modified_date>2017&#x2f;01&#x2f;09 13&#x3a;35&#x3a;19.384</modified_date>
  78 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  79 + <is_key_private>N</is_key_private>
  80 + </info>
  81 + <notepads>
  82 + <notepad>
  83 + <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</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>&#x24;&#x7b;v_db_ip&#x7d;</server>
  107 + <type>MYSQL</type>
  108 + <access>Native</access>
  109 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  110 + <port>3306</port>
  111 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  112 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</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_&#x516c;&#x53f8;_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_&#x672c;&#x673a;</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&#xff08;&#x672c;&#x673a;&#xff09;</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>&#x6392;&#x7248;&#x89c4;&#x5219;</from><to>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  267 + <hop> <from>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</from><to>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  268 + <hop> <from>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x67e5;&#x8be2;</from><to>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  269 + <hop> <from>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</from><to>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</to><enabled>Y</enabled> </hop>
  270 + <hop> <from>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  271 + <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  273 + </order>
  274 + <step>
  275 + <name>Excel&#x8f93;&#x51fa;</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>&#x24;&#x7b;filepath&#x7d;</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>&#x5de5;&#x4f5c;&#x8868;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>&#x7ebf;&#x8def;</name>
  317 + <type>String</type>
  318 + <format/>
  319 + </field>
  320 + <field>
  321 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  322 + <type>String</type>
  323 + <format/>
  324 + </field>
  325 + <field>
  326 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  327 + <type>String</type>
  328 + <format/>
  329 + </field>
  330 + <field>
  331 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  332 + <type>String</type>
  333 + <format/>
  334 + </field>
  335 + <field>
  336 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  337 + <type>String</type>
  338 + <format/>
  339 + </field>
  340 + <field>
  341 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  342 + <type>String</type>
  343 + <format/>
  344 + </field>
  345 + <field>
  346 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  347 + <type>String</type>
  348 + <format/>
  349 + </field>
  350 + <field>
  351 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</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>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</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>&#x7ebf;&#x8def;</rename>
  394 + <length>-2</length>
  395 + <precision>-2</precision>
  396 + </field> <field> <name>zbh</name>
  397 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  398 + <length>-2</length>
  399 + <precision>-2</precision>
  400 + </field> <field> <name>qyrq</name>
  401 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  402 + <length>-2</length>
  403 + <precision>-2</precision>
  404 + </field> <field> <name>lp_start</name>
  405 + <rename>&#x8d77;&#x59cb;&#x8def;&#x724c;</rename>
  406 + <length>-2</length>
  407 + <precision>-2</precision>
  408 + </field> <field> <name>lp_names</name>
  409 + <rename>&#x8def;&#x724c;&#x8303;&#x56f4;</rename>
  410 + <length>-2</length>
  411 + <precision>-2</precision>
  412 + </field> <field> <name>ry_start</name>
  413 + <rename>&#x8d77;&#x59cb;&#x4eba;&#x5458;</rename>
  414 + <length>-2</length>
  415 + <precision>-2</precision>
  416 + </field> <field> <name>ry_dbbms</name>
  417 + <rename>&#x4eba;&#x5458;&#x8303;&#x56f4;</rename>
  418 + <length>-2</length>
  419 + <precision>-2</precision>
  420 + </field> <field> <name>fbgs</name>
  421 + <rename>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</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>&#x6392;&#x7248;&#x89c4;&#x5219;</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 &#x2a; 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>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</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>&#x23;</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>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</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>&#x3d;</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>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</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>&#x3d;</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>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x67e5;&#x8be2;</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>&#x3d;</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>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</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>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</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
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleDailyQp.html
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 <div class="portlet-body" > 52 <div class="portlet-body" >
53 <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 506px;height: 400px"> 53 <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 506px;height: 400px">
54 <table class="table table-bordered table-hover table-checkable" id="forms"> 54 <table class="table table-bordered table-hover table-checkable" id="forms">
55 - <thead> 55 + <thead >
56 <tr > 56 <tr >
57 <th style="text-align:center;vertical-align:middle;" rowspan="3">路牌</th> 57 <th style="text-align:center;vertical-align:middle;" rowspan="3">路牌</th>
58 <th style="text-align:center;vertical-align:middle;" 58 <th style="text-align:center;vertical-align:middle;"
@@ -62,90 +62,126 @@ @@ -62,90 +62,126 @@
62 <th colspan="3" style="text-align:center;vertical-align:middle;">售票员</th> 62 <th colspan="3" style="text-align:center;vertical-align:middle;">售票员</th>
63 <th rowspan="3" style="text-align:center;vertical-align:middle;">路牌</th> 63 <th rowspan="3" style="text-align:center;vertical-align:middle;">路牌</th>
64 <th rowspan="4" style="text-align:center;vertical-align:middle;">记录项目</th> 64 <th rowspan="4" style="text-align:center;vertical-align:middle;">记录项目</th>
65 - <th colspan="4" style="text-align:center;vertical-align:middle;">1</th>  
66 - <th colspan="4" style="text-align:center;vertical-align:middle;">2</th>  
67 - <th colspan="4" style="text-align:center;vertical-align:middle;">3</th>  
68 - <th colspan="4" style="text-align:center;vertical-align:middle;">4</th>  
69 - <th colspan="4" style="text-align:center;vertical-align:middle;">5</th>  
70 - <th colspan="4" style="text-align:center;vertical-align:middle;">6</th>  
71 - <th colspan="4" style="text-align:center;vertical-align:middle;">7</th>  
72 - <th colspan="4" style="text-align:center;vertical-align:middle;">8</th>  
73 - <th colspan="4" style="text-align:center;vertical-align:middle;">9</th>  
74 - <th colspan="4" style="text-align:center;vertical-align:middle;">10</th>  
75 - <th colspan="4" style="text-align:center;vertical-align:middle;">11</th>  
76 - <th colspan="4" style="text-align:center;vertical-align:middle;">12</th>  
77 - <th colspan="4" style="text-align:center;vertical-align:middle;">13</th> 65 + <th colspan="3" style="text-align:center;vertical-align:middle;">1</th>
  66 + <th colspan="3" style="text-align:center;vertical-align:middle;">2</th>
  67 + <th colspan="3" style="text-align:center;vertical-align:middle;">3</th>
  68 + <th colspan="3" style="text-align:center;vertical-align:middle;">4</th>
  69 + <th colspan="3" style="text-align:center;vertical-align:middle;">5</th>
  70 + <th colspan="3" style="text-align:center;vertical-align:middle;">6</th>
  71 + <th colspan="3" style="text-align:center;vertical-align:middle;">7</th>
  72 + <th colspan="3" style="text-align:center;vertical-align:middle;">8</th>
  73 + <th colspan="3" style="text-align:center;vertical-align:middle;">9</th>
  74 + <th colspan="3" style="text-align:center;vertical-align:middle;">10</th>
  75 + <th colspan="3" style="text-align:center;vertical-align:middle;">11</th>
  76 + <th colspan="3" style="text-align:center;vertical-align:middle;">12</th>
  77 + <th colspan="3" style="text-align:center;vertical-align:middle;">13</th>
  78 + <th colspan="3" style="text-align:center;vertical-align:middle;">14</th>
  79 + <th colspan="3" style="text-align:center;vertical-align:middle;">15</th>
  80 + <th colspan="3" style="text-align:center;vertical-align:middle;">16</th>
  81 + <th colspan="3" style="text-align:center;vertical-align:middle;">17</th>
  82 + <th colspan="3" style="text-align:center;vertical-align:middle;">18</th>
  83 + <th colspan="3" style="text-align:center;vertical-align:middle;">19</th>
  84 + <th colspan="3" style="text-align:center;vertical-align:middle;">20</th>
78 85
79 </tr> 86 </tr>
80 <tr> 87 <tr>
81 88
82 - <th rowspan="2">职号</th>  
83 - <th colspan="2">接班时间</th>  
84 - <th rowspan="2">职号</th>  
85 - <th colspan="2">接班时间</th> 89 +
  90 + <th colspan="3">职号/接班时间</th>
  91 + <th colspan="3">职号/接班时间</th>
  92 + <th rowspan="2">到达</th>
  93 + <th rowspan="2">早/迟</th>
  94 + <th rowspan="2">开出</th>
  95 +
  96 + <th rowspan="2">到达</th>
  97 + <th rowspan="2">早/迟</th>
  98 + <th rowspan="2">开出</th>
  99 +
  100 + <th rowspan="2">到达</th>
  101 + <th rowspan="2">早/迟</th>
  102 + <th rowspan="2">开出</th>
  103 +
  104 + <th rowspan="2">到达</th>
  105 + <th rowspan="2">早/迟</th>
  106 + <th rowspan="2">开出</th>
  107 +
  108 + <th rowspan="2">到达</th>
  109 + <th rowspan="2">早/迟</th>
  110 + <th rowspan="2">开出</th>
  111 +
  112 + <th rowspan="2">到达</th>
  113 + <th rowspan="2">早/迟</th>
  114 + <th rowspan="2">开出</th>
  115 +
  116 + <th rowspan="2">到达</th>
  117 + <th rowspan="2">早/迟</th>
  118 + <th rowspan="2">开出</th>
  119 +
86 <th rowspan="2">到达</th> 120 <th rowspan="2">到达</th>
87 <th rowspan="2">早/迟</th> 121 <th rowspan="2">早/迟</th>
88 <th rowspan="2">开出</th> 122 <th rowspan="2">开出</th>
89 - <th rowspan="2">备注</th> 123 +
90 <th rowspan="2">到达</th> 124 <th rowspan="2">到达</th>
91 <th rowspan="2">早/迟</th> 125 <th rowspan="2">早/迟</th>
92 <th rowspan="2">开出</th> 126 <th rowspan="2">开出</th>
93 - <th rowspan="2">备注</th> 127 +
94 <th rowspan="2">到达</th> 128 <th rowspan="2">到达</th>
95 <th rowspan="2">早/迟</th> 129 <th rowspan="2">早/迟</th>
96 <th rowspan="2">开出</th> 130 <th rowspan="2">开出</th>
97 - <th rowspan="2">备注</th> 131 +
98 <th rowspan="2">到达</th> 132 <th rowspan="2">到达</th>
99 <th rowspan="2">早/迟</th> 133 <th rowspan="2">早/迟</th>
100 <th rowspan="2">开出</th> 134 <th rowspan="2">开出</th>
101 - <th rowspan="2">备注</th> 135 +
102 <th rowspan="2">到达</th> 136 <th rowspan="2">到达</th>
103 <th rowspan="2">早/迟</th> 137 <th rowspan="2">早/迟</th>
104 <th rowspan="2">开出</th> 138 <th rowspan="2">开出</th>
105 - <th rowspan="2">备注</th> 139 +
106 <th rowspan="2">到达</th> 140 <th rowspan="2">到达</th>
107 <th rowspan="2">早/迟</th> 141 <th rowspan="2">早/迟</th>
108 <th rowspan="2">开出</th> 142 <th rowspan="2">开出</th>
109 - <th rowspan="2">备注</th> 143 +
110 <th rowspan="2">到达</th> 144 <th rowspan="2">到达</th>
111 <th rowspan="2">早/迟</th> 145 <th rowspan="2">早/迟</th>
112 <th rowspan="2">开出</th> 146 <th rowspan="2">开出</th>
113 - <th rowspan="2">备注</th> 147 +
114 <th rowspan="2">到达</th> 148 <th rowspan="2">到达</th>
115 <th rowspan="2">早/迟</th> 149 <th rowspan="2">早/迟</th>
116 <th rowspan="2">开出</th> 150 <th rowspan="2">开出</th>
117 - <th rowspan="2">备注</th> 151 +
118 <th rowspan="2">到达</th> 152 <th rowspan="2">到达</th>
119 <th rowspan="2">早/迟</th> 153 <th rowspan="2">早/迟</th>
120 <th rowspan="2">开出</th> 154 <th rowspan="2">开出</th>
121 - <th rowspan="2">备注</th> 155 +
122 <th rowspan="2">到达</th> 156 <th rowspan="2">到达</th>
123 <th rowspan="2">早/迟</th> 157 <th rowspan="2">早/迟</th>
124 <th rowspan="2">开出</th> 158 <th rowspan="2">开出</th>
125 - <th rowspan="2">备注</th> 159 +
126 <th rowspan="2">到达</th> 160 <th rowspan="2">到达</th>
127 <th rowspan="2">早/迟</th> 161 <th rowspan="2">早/迟</th>
128 <th rowspan="2">开出</th> 162 <th rowspan="2">开出</th>
129 - <th rowspan="2">备注</th> 163 +
130 <th rowspan="2">到达</th> 164 <th rowspan="2">到达</th>
131 <th rowspan="2">早/迟</th> 165 <th rowspan="2">早/迟</th>
132 <th rowspan="2">开出</th> 166 <th rowspan="2">开出</th>
133 - <th rowspan="2">备注</th> 167 +
134 <th rowspan="2">到达</th> 168 <th rowspan="2">到达</th>
135 <th rowspan="2">早/迟</th> 169 <th rowspan="2">早/迟</th>
136 <th rowspan="2">开出</th> 170 <th rowspan="2">开出</th>
137 - <th rowspan="2">备注</th> 171 +
138 </tr> 172 </tr>
139 <tr> 173 <tr>
140 <th>出场</th> 174 <th>出场</th>
141 <th>调换</th> 175 <th>调换</th>
142 <th>1</th> 176 <th>1</th>
143 <th>2</th> 177 <th>2</th>
  178 + <th>3</th>
144 <th>1</th> 179 <th>1</th>
145 <th>2</th> 180 <th>2</th>
  181 + <th>3</th>
146 </tr> 182 </tr>
147 </thead> 183 </thead>
148 - <tbody> 184 + <tbody >
149 <tr > 185 <tr >
150 <td>1</td> 186 <td>1</td>
151 <td> 187 <td>
@@ -221,6 +257,14 @@ @@ -221,6 +257,14 @@
221 <td></td> 257 <td></td>
222 <td></td> 258 <td></td>
223 <td></td> 259 <td></td>
  260 + <td></td>
  261 + <td></td>
  262 + <td></td>
  263 + <td></td>
  264 + <td></td>
  265 + <td></td>
  266 + <td></td>
  267 + <td></td>
224 </tr> 268 </tr>
225 269
226 </tbody> 270 </tbody>
@@ -297,34 +341,16 @@ @@ -297,34 +341,16 @@
297 } 341 }
298 342
299 343
300 - $("#query").on("click",jsDoQuery);  
301 -  
302 - var line = $("#line").val();  
303 - var date = $("#date").val();  
304 - var company = $("#company").val();  
305 - var subCompany = $("#subCompany").val();  
306 - function jsDoQuery(pagination){  
307 - var params = {};  
308 - line = $("#line").val();  
309 - date = $("#date").val();  
310 - company = $("#company").val();  
311 - subCompany = $("#subCompany").val();  
312 - if(line == " ")  
313 - line = "";  
314 - params['line'] = line;  
315 - params['date'] = date;  
316 - params['type'] = "query";  
317 - params['company'] = company;  
318 - params['subCompany'] = subCompany;  
319 - $(".hidden").removeClass("hidden");  
320 - /* $get('/pcpc/workDaily', params, function(result){  
321 - // 把数据填充到模版中  
322 - var tbodyHtml = template('list_workDaily',{list:result});  
323 - // 把渲染好的模版html文本追加到表格中  
324 - $('#forms tbody').html(tbodyHtml);  
325 -  
326 - }); */  
327 - } 344 + //查询
  345 + $("#query").on('click',function(){
  346 + var line = $("#line").val();
  347 + var date = $("#date").val();
  348 + $get('/realSchedule/scheduleDailyQp',{line:line,date:date},function(result){
  349 + var mycars = new Array(20);
  350 + var scheduleDaily_qp = template('scheduleDaily_qp',{list:result,lists:mycars});
  351 + $('#forms tbody').html(scheduleDaily_qp);
  352 + });
  353 + });
328 354
329 $("#export").on("click",function(){ 355 $("#export").on("click",function(){
330 $get('/pcpc/workDaily',{line:line,date:date,type:'export'},function(result){ 356 $get('/pcpc/workDaily',{line:line,date:date,type:'export'},function(result){
@@ -336,27 +362,28 @@ @@ -336,27 +362,28 @@
336 }); 362 });
337 363
338 </script> 364 </script>
339 -<script type="text/html" id="list_workDaily"> 365 +<script type="text/html" id="scheduleDaily_qp">
340 {{each list as obj i}} 366 {{each list as obj i}}
341 <tr> 367 <tr>
342 - <td>{{obj.date}}</td>  
343 - <td>{{obj.line}}</td>  
344 - <td>{{obj.jhbc}}</td>  
345 - <td>{{obj.dftz}}</td>  
346 - <td>{{obj.dftzl}}</td>  
347 - <td>{{obj.ccl}}</td>  
348 - <td>{{obj.upfk}}</td>  
349 - <td>{{obj.updk}}</td>  
350 - <td>{{obj.dnfk}}</td>  
351 - <td>{{obj.dndk}}</td>  
352 - <td>{{obj.upfm}}</td>  
353 - <td>{{obj.updm}}</td>  
354 - <td>{{obj.dnfm}}</td>  
355 - <td>{{obj.dndm}}</td>  
356 - <td>{{obj.wdzs}}</td>  
357 - <td>{{obj.smbzdl}}</td>  
358 - <td>{{obj.gfbczxl}}</td>  
359 - </tr> 368 + <td>{{obj.lp}}</td>
  369 + <td>{{obj.cccl}}</td>
  370 + <td>{{obj.thclzbh}}</td>
  371 + <td>&nbsp;</td>
  372 + <td>{{obj.jjb1}}</td>
  373 + <td>{{obj.jjb2}}</td>
  374 + <td>{{obj.jjb3}}</td>
  375 + <td>{{obj.sjb1}}</td>
  376 + <td>{{obj.sjb2}}</td>
  377 + <td>{{obj.sjb3}}</td>
  378 + <td>{{obj.lp}}</td>
  379 + <td>&nbsp;</td>
  380 + {{each lists as o j}}
  381 + <td>{{obj['dd'+(j+1)]}}</td>
  382 + <td>{{obj['cz'+(j+1)]}}</td>
  383 + <td>{{obj['kc'+(j+1)]}}</td>
  384 + {{/each}}
  385 +
  386 +
360 {{/each}} 387 {{/each}}
361 {{if list.length == 0}} 388 {{if list.length == 0}}
362 <tr> 389 <tr>