Commit 4bfbe881ac19649df43649c6c08445bf6c451492

Authored by 徐烜
2 parents 49e77097 c22797cf

Update

Showing 36 changed files with 2383 additions and 1508 deletions

Too many changes to show.

To preserve performance only 36 of 88 files are displayed.

1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 2 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 3
4 <modelVersion>4.0.0</modelVersion> 4 <modelVersion>4.0.0</modelVersion>
5 <groupId>com.bsth</groupId> 5 <groupId>com.bsth</groupId>
@@ -237,27 +237,33 @@ @@ -237,27 +237,33 @@
237 <version>1.13</version> 237 <version>1.13</version>
238 </dependency> 238 </dependency>
239 239
240 - <dependency>  
241 - <groupId>org.dbunit</groupId>  
242 - <artifactId>dbunit</artifactId>  
243 - <version>2.4.9</version>  
244 - <scope>test</scope> 240 + <dependency>
  241 + <groupId>org.dbunit</groupId>
  242 + <artifactId>dbunit</artifactId>
  243 + <version>2.4.9</version>
  244 + <scope>test</scope>
245 245
246 - <exclusions>  
247 - <exclusion>  
248 - <groupId>org.slf4j</groupId>  
249 - <artifactId>slf4j-api</artifactId>  
250 - </exclusion>  
251 - </exclusions>  
252 - </dependency> 246 + <exclusions>
  247 + <exclusion>
  248 + <groupId>org.slf4j</groupId>
  249 + <artifactId>slf4j-api</artifactId>
  250 + </exclusion>
  251 + </exclusions>
  252 + </dependency>
  253 +
  254 + <dependency>
  255 + <groupId>com.h2database</groupId>
  256 + <artifactId>h2</artifactId>
  257 + <version>1.2.132</version>
  258 + <scope>test</scope>
  259 + </dependency>
253 260
254 - <dependency>  
255 - <groupId>com.h2database</groupId>  
256 - <artifactId>h2</artifactId>  
257 - <version>1.2.132</version>  
258 - <scope>test</scope>  
259 - </dependency>  
260 261
  262 + <dependency>
  263 + <groupId>ojdbc</groupId>
  264 + <artifactId>ojdbc</artifactId>
  265 + <version>14</version>
  266 + </dependency>
261 </dependencies> 267 </dependencies>
262 268
263 <dependencyManagement> 269 <dependencyManagement>
src/main/java/com/bsth/controller/forms/ExportController.java
@@ -28,6 +28,7 @@ import com.bsth.entity.mcy_forms.Vehicleloading; @@ -28,6 +28,7 @@ import com.bsth.entity.mcy_forms.Vehicleloading;
28 import com.bsth.entity.mcy_forms.Waybillday; 28 import com.bsth.entity.mcy_forms.Waybillday;
29 import com.bsth.service.forms.ExportService; 29 import com.bsth.service.forms.ExportService;
30 import com.bsth.service.forms.FormsService; 30 import com.bsth.service.forms.FormsService;
  31 +import com.bsth.util.Arith;
31 import com.bsth.util.ReportUtils; 32 import com.bsth.util.ReportUtils;
32 33
33 @RestController 34 @RestController
@@ -167,7 +168,7 @@ public class ExportController { @@ -167,7 +168,7 @@ public class ExportController {
167 } 168 }
168 169
169 // 路单数据报表 170 // 路单数据报表
170 - @RequestMapping(value = "/singledataExport", method = RequestMethod.POST) 171 + @RequestMapping(value = "/singledataExport", method = RequestMethod.GET)
171 public List<Map<String, Object>> singledataExport(@RequestParam Map<String, Object> map) { 172 public List<Map<String, Object>> singledataExport(@RequestParam Map<String, Object> map) {
172 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 173 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
173 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 174 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
@@ -213,12 +214,12 @@ public class ExportController { @@ -213,12 +214,12 @@ public class ExportController {
213 } 214 }
214 215
215 // 车辆加注 216 // 车辆加注
216 - @RequestMapping(value = "/vehicleloadingExport", method = RequestMethod.POST) 217 + @RequestMapping(value = "/vehicleloadingExport", method = RequestMethod.GET)
217 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) { 218 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) {
218 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 219 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
219 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 220 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
220 ReportUtils ee = new ReportUtils(); 221 ReportUtils ee = new ReportUtils();
221 - List<Vehicleloading> vehicleloading = formsService.vehicleloading(map.get("gsdmVehic").toString(),map.get("fgsdmVehic").toString(),map.get("line").toString(), 222 + List<Vehicleloading> vehicleloading = formsService.vehicleloading(map.get("line").toString(),
222 map.get("data").toString()); 223 map.get("data").toString());
223 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 224 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
224 int i = 1; 225 int i = 1;
@@ -252,7 +253,7 @@ public class ExportController { @@ -252,7 +253,7 @@ public class ExportController {
252 } 253 }
253 254
254 // 运营服务阶段报表 255 // 运营服务阶段报表
255 - @RequestMapping(value = "/operationserviceExport", method = RequestMethod.POST) 256 + @RequestMapping(value = "/operationserviceExport", method = RequestMethod.GET)
256 public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map) { 257 public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map) {
257 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 258 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
258 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 259 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
@@ -558,17 +559,13 @@ public class ExportController { @@ -558,17 +559,13 @@ public class ExportController {
558 List<Daily> allline = formsService.daily(map); 559 List<Daily> allline = formsService.daily(map);
559 560
560 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 561 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
561 - Float zgl=0f;  
562 - Float ks=0f;  
563 - Float yh=0f;  
564 - Float bc=0f; 562 + double zgl=0.0;
  563 + double ks=0.0;
  564 + double yh=0.0;
  565 + int bc=0;
565 Map<String, Object> m ; 566 Map<String, Object> m ;
566 for (Daily d : allline) { 567 for (Daily d : allline) {
567 m = new HashMap<String, Object>(); 568 m = new HashMap<String, Object>();
568 - zgl +=d.getZlc()==""?0f:Float.valueOf(d.getZlc());  
569 - ks +=d.getJzl1()==""?0f:Float.valueOf(d.getJzl1());  
570 - yh +=d.getYh()==""?0f:Float.valueOf(d.getYh());  
571 - bc +=d.getBc()==""?0f:Float.valueOf(d.getBc());  
572 m.put("zbh", d.getZbh()); 569 m.put("zbh", d.getZbh());
573 m.put("jgh",d.getJgh()); 570 m.put("jgh",d.getJgh());
574 m.put("jName", d.getjName()); 571 m.put("jName", d.getjName());
@@ -576,9 +573,13 @@ public class ExportController { @@ -576,9 +573,13 @@ public class ExportController {
576 m.put("jzl1", d.getJzl1()); 573 m.put("jzl1", d.getJzl1());
577 m.put("yh", d.getYh()); 574 m.put("yh", d.getYh());
578 m.put("bc", d.getBc()); 575 m.put("bc", d.getBc());
  576 + zgl =Arith.add(zgl, d.getZlc());
  577 + ks =Arith.add(ks, d.getJzl1());
  578 + yh =Arith.add(yh, d.getYh());
  579 + bc +=Integer.parseInt(d.getBc());
579 580
580 resList.add(m); 581 resList.add(m);
581 - } 582 + }
582 583
583 m=new HashMap<String,Object>(); 584 m=new HashMap<String,Object>();
584 m.put("total_zgl", zgl); 585 m.put("total_zgl", zgl);
src/main/java/com/bsth/controller/forms/MCY_FormsController.java
@@ -73,21 +73,20 @@ public class MCY_FormsController { @@ -73,21 +73,20 @@ public class MCY_FormsController {
73 } 73 }
74 74
75 // 路单数据 75 // 路单数据
76 - @RequestMapping(value = "/singledata", method = RequestMethod.POST) 76 + @RequestMapping(value = "/singledata", method = RequestMethod.GET)
77 public List<Singledata> singledata(@RequestParam Map<String, Object> map) { 77 public List<Singledata> singledata(@RequestParam Map<String, Object> map) {
78 78
79 return formsService.singledata(map); 79 return formsService.singledata(map);
80 } 80 }
81 81
82 // 车辆加注 82 // 车辆加注
83 - @RequestMapping(value = "/vehicleloading", method = RequestMethod.POST)  
84 - public List<Vehicleloading> vehicleloading(@RequestParam String gsdmVehic, @RequestParam String fgsdmVehic,  
85 - @RequestParam String line, @RequestParam String data) {  
86 - return formsService.vehicleloading(gsdmVehic, fgsdmVehic, line, data); 83 + @RequestMapping(value = "/vehicleloading", method = RequestMethod.GET)
  84 + public List<Vehicleloading> vehicleloading(@RequestParam String line, @RequestParam String data) {
  85 + return formsService.vehicleloading(line, data);
87 } 86 }
88 87
89 // 运营服务阶段报表 88 // 运营服务阶段报表
90 - @RequestMapping(value = "/operationservice", method = RequestMethod.POST) 89 + @RequestMapping(value = "/operationservice", method = RequestMethod.GET)
91 public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) { 90 public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) {
92 91
93 return formsService.operationservice(map); 92 return formsService.operationservice(map);
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -238,9 +238,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -238,9 +238,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
238 Map<String, Object> m = new HashMap<String, Object>(); 238 Map<String, Object> m = new HashMap<String, Object>();
239 m.put("rq", y.getRq()); 239 m.put("rq", y.getRq());
240 m.put("gsname",y.getGsname() ); 240 m.put("gsname",y.getGsname() );
  241 + m.put("fgsname", y.getFgsname());
241 m.put("xlname", y.getXlname()); 242 m.put("xlname", y.getXlname());
242 m.put("nbbm", y.getNbbm()); 243 m.put("nbbm", y.getNbbm());
243 m.put("jsy", y.getJsy()); 244 m.put("jsy", y.getJsy());
  245 + m.put("name", y.getName());
244 m.put("jzl", y.getJzl()); 246 m.put("jzl", y.getJzl());
245 m.put("czlc", y.getCzlc()); 247 m.put("czlc", y.getCzlc());
246 m.put("jzlc", y.getJzlc()); 248 m.put("jzlc", y.getJzlc());
src/main/java/com/bsth/controller/realcontrol/DataManagerController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol;
  2 +
  3 +import com.bsth.service.realcontrol.DataManagerService;
  4 +import org.apache.commons.lang3.StringEscapeUtils;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestParam;
  8 +import org.springframework.web.bind.annotation.RestController;
  9 +
  10 +import java.util.Map;
  11 +
  12 +/**
  13 + * 数据管理,包括从老系统的数据迁移。新系统的数据校验等
  14 + * Created by panzhao on 2017/4/17.
  15 + */
  16 +@RestController
  17 +@RequestMapping("dataManager")
  18 +public class DataManagerController {
  19 +
  20 + @Autowired
  21 + DataManagerService dataManagerService;
  22 +
  23 + @RequestMapping("cars/old_now")
  24 + public Map<String, Object> carInfos(@RequestParam Integer lineId){
  25 + return dataManagerService.carInfos(lineId);
  26 + }
  27 +
  28 + @RequestMapping("car/updateDevices")
  29 + public Map<String, Object> updateDevices(@RequestParam String jsonStr){
  30 + jsonStr = StringEscapeUtils.unescapeHtml4(jsonStr);
  31 + return dataManagerService.updateDevices(jsonStr);
  32 + }
  33 +}
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -543,4 +543,25 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -543,4 +543,25 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
543 rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR); 543 rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);
544 return rs; 544 return rs;
545 } 545 }
  546 +
  547 + /**
  548 + * 误点调整
  549 + * @param idx
  550 + * @param minute
  551 + * @return
  552 + */
  553 + @RequestMapping(value = "lateAdjust", method = RequestMethod.POST)
  554 + public Map<String, Object> lateAdjust(@RequestParam String idx,@RequestParam float minute ){
  555 + return scheduleRealInfoService.lateAdjust(idx, minute);
  556 + }
  557 +
  558 + /**
  559 + * 获取所有应发未到的班次
  560 + * @param idx
  561 + * @return
  562 + */
  563 + @RequestMapping(value = "allLate2")
  564 + public List<ScheduleRealInfo> allLate2(@RequestParam String idx){
  565 + return scheduleRealInfoService.allLate2(idx);
  566 + }
546 } 567 }
src/main/java/com/bsth/controller/report/ReportController.java
1 package com.bsth.controller.report; 1 package com.bsth.controller.report;
2 2
  3 +import java.util.ArrayList;
3 import java.util.HashMap; 4 import java.util.HashMap;
  5 +import java.util.Iterator;
4 import java.util.List; 6 import java.util.List;
5 import java.util.Map; 7 import java.util.Map;
6 8
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController; @@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
13 import com.bsth.entity.excep.ArrivalInfo; 15 import com.bsth.entity.excep.ArrivalInfo;
14 import com.bsth.entity.realcontrol.ScheduleRealInfo; 16 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 import com.bsth.service.report.ReportService; 17 import com.bsth.service.report.ReportService;
  18 +import com.bsth.util.ReportUtils;
16 19
17 @RestController 20 @RestController
18 @RequestMapping("report") 21 @RequestMapping("report")
@@ -31,12 +34,74 @@ public class ReportController { @@ -31,12 +34,74 @@ public class ReportController {
31 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){ 34 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
32 return service.queryListZdxx(line,date,clzbh,fcsj,ddsj); 35 return service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
33 } 36 }
  37 +
  38 + @RequestMapping(value="/exportQueryListZdxx" ,method = RequestMethod.GET)
  39 + public List<Map<String, Object>> exportQueryListZdxx(@RequestParam String clzbh,@RequestParam String line,
  40 + @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
  41 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  42 + ReportUtils ee = new ReportUtils();
  43 + List<ArrivalInfo> list=service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
  44 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  45 + int i=1;
  46 + for (ArrivalInfo a:list ) {
  47 + Map<String, Object> m = new HashMap<String, Object>();
  48 + m.put("i", i);
  49 + m.put("mbbm", a.getNbbm());
  50 + m.put("stopName", a.getStopName());
  51 + m.put("jzsj", a.getJzsj());
  52 + m.put("czsj", a.getCzsj());
  53 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  54 + i++;
  55 + }
  56 +
  57 + try {
  58 + Map<String, Object> map=new HashMap<String, Object>();
  59 + listI.add(resList.iterator());
  60 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  61 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  62 + path + "export/班次到离站.xls");
  63 + } catch (Exception e) {
  64 + e.printStackTrace();
  65 + }
  66 + return resList;
  67 + }
  68 +
34 @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET) 69 @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)
35 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line, 70 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,
36 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){ 71 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
37 return service.queryListClzd(line,zd,zdlx,fcsj,ddsj); 72 return service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
38 } 73 }
39 74
  75 + @RequestMapping(value="/exportQueryListClzd" ,method = RequestMethod.GET)
  76 + public List<Map<String, Object>> exportQueryListClzd(@RequestParam String zd,@RequestParam String line,
  77 + @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
  78 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  79 + ReportUtils ee = new ReportUtils();
  80 + List<ArrivalInfo> list=service.queryListClzd(line, zd, zdlx, fcsj, ddsj);
  81 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  82 + int i=1;
  83 + for (ArrivalInfo a:list ) {
  84 + Map<String, Object> m = new HashMap<String, Object>();
  85 + m.put("i", i);
  86 + m.put("nbbm", a.getNbbm());
  87 + m.put("stopName", a.getStopName());
  88 + m.put("jzsj", a.getJzsj());
  89 + m.put("czsj", a.getCzsj());
  90 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  91 + i++;
  92 + }
  93 +
  94 + try {
  95 + Map<String, Object> map=new HashMap<String, Object>();
  96 + listI.add(resList.iterator());
  97 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  98 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  99 + path + "export/班次到离站.xls");
  100 + } catch (Exception e) {
  101 + e.printStackTrace();
  102 + }
  103 + return resList;
  104 + }
40 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET) 105 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)
41 public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) { 106 public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) {
42 return service.sreachZd(line,zdlx, zd); 107 return service.sreachZd(line,zdlx, zd);
src/main/java/com/bsth/data/BasicData.java
@@ -332,7 +332,8 @@ public class BasicData implements CommandLineRunner { @@ -332,7 +332,8 @@ public class BasicData implements CommandLineRunner {
332 } 332 }
333 333
334 perTempMap.put(jobCode, p); 334 perTempMap.put(jobCode, p);
335 - allPersonMap.put(jobCode, p.getPersonnelName()); 335 +
  336 + allPersonMap.put(jobCode.substring(jobCode.indexOf("-")+1), p.getPersonnelName());
336 } 337 }
337 338
338 jsyMap = jsyTempMap; 339 jsyMap = jsyTempMap;
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
@@ -8,6 +8,7 @@ import com.bsth.data.gpsdata.arrival.utils.ScheduleSignalState; @@ -8,6 +8,7 @@ import com.bsth.data.gpsdata.arrival.utils.ScheduleSignalState;
8 import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher; 8 import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher;
9 import com.bsth.data.schedule.DayOfSchedule; 9 import com.bsth.data.schedule.DayOfSchedule;
10 import com.bsth.data.schedule.ScheduleComparator; 10 import com.bsth.data.schedule.ScheduleComparator;
  11 +import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
11 import com.bsth.entity.realcontrol.LineConfig; 12 import com.bsth.entity.realcontrol.LineConfig;
12 import com.bsth.entity.realcontrol.ScheduleRealInfo; 13 import com.bsth.entity.realcontrol.ScheduleRealInfo;
13 import com.bsth.service.directive.DirectiveService; 14 import com.bsth.service.directive.DirectiveService;
@@ -145,6 +146,9 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -145,6 +146,9 @@ public class InOutStationSignalHandle extends SignalHandle{
145 //持久化 146 //持久化
146 dayOfSchedule.save(sch); 147 dayOfSchedule.save(sch);
147 148
  149 + //清理应发未发标记
  150 + LateAdjustHandle.remove(sch);
  151 +
148 if(sch.getBcType().equals("out")){ 152 if(sch.getBcType().equals("out")){
149 //出场时,切换成营运状态 153 //出场时,切换成营运状态
150 directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "出场@系统"); 154 directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "出场@系统");
@@ -242,6 +246,10 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -242,6 +246,10 @@ public class InOutStationSignalHandle extends SignalHandle{
242 long rsT = lineConfigData.applyIn(sch, gps.getTimestamp()); 246 long rsT = lineConfigData.applyIn(sch, gps.getTimestamp());
243 247
244 sch.setZdsjActualAll(rsT); 248 sch.setZdsjActualAll(rsT);
  249 +
  250 + //通知误点停靠程序,有车辆到站
  251 + LateAdjustHandle.carArrive(gps);
  252 +
245 //已完成班次数 253 //已完成班次数
246 int doneSum = dayOfSchedule.doneSum(sch.getClZbh()); 254 int doneSum = dayOfSchedule.doneSum(sch.getClZbh());
247 ScheduleRealInfo next = dayOfSchedule.next(sch); 255 ScheduleRealInfo next = dayOfSchedule.next(sch);
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -10,6 +10,7 @@ import com.bsth.data.LineConfigData; @@ -10,6 +10,7 @@ import com.bsth.data.LineConfigData;
10 import com.bsth.data.directive.DirectivesPstThread; 10 import com.bsth.data.directive.DirectivesPstThread;
11 import com.bsth.data.gpsdata.GpsRealData; 11 import com.bsth.data.gpsdata.GpsRealData;
12 import com.bsth.data.gpsdata.recovery.GpsDataRecovery; 12 import com.bsth.data.gpsdata.recovery.GpsDataRecovery;
  13 +import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
13 import com.bsth.data.schedule.thread.*; 14 import com.bsth.data.schedule.thread.*;
14 import com.bsth.entity.realcontrol.LineConfig; 15 import com.bsth.entity.realcontrol.LineConfig;
15 import com.bsth.entity.realcontrol.ScheduleRealInfo; 16 import com.bsth.entity.realcontrol.ScheduleRealInfo;
@@ -153,10 +154,10 @@ public class DayOfSchedule implements CommandLineRunner { @@ -153,10 +154,10 @@ public class DayOfSchedule implements CommandLineRunner {
153 diff += (1000 * 60 * 60 * 24); 154 diff += (1000 * 60 * 60 * 24);
154 155
155 logger.info(diff / 1000 / 60 + "分钟之后提交到运管处"); 156 logger.info(diff / 1000 / 60 + "分钟之后提交到运管处");
156 - //Application.mainServices.scheduleWithFixedDelay(submitToTrafficManage, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 157 + //Application.mainServices.scheduleAtFixedRate(submitToTrafficManage, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
157 158
158 //计算油、公里加注 159 //计算油、公里加注
159 - Application.mainServices.scheduleWithFixedDelay(calcOilThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 160 + Application.mainServices.scheduleAtFixedRate(calcOilThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
160 161
161 //指令持久化线程 162 //指令持久化线程
162 Application.mainServices.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS); 163 Application.mainServices.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);
@@ -386,6 +387,11 @@ public class DayOfSchedule implements CommandLineRunner { @@ -386,6 +387,11 @@ public class DayOfSchedule implements CommandLineRunner {
386 sch.setLate(false); 387 sch.setLate(false);
387 } 388 }
388 389
  390 + //售票员为空设置为""字符串
  391 + if(StringUtils.isEmpty(sch.getsGh())){
  392 + sch.setsGh("");
  393 + sch.setsName("");
  394 + }
389 sch.setJhlcOrig(sch.getJhlc()); 395 sch.setJhlcOrig(sch.getJhlc());
390 //保留备注 396 //保留备注
391 if(StringUtils.isNotEmpty(sch.getRemark())) 397 if(StringUtils.isNotEmpty(sch.getRemark()))
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
1 -package com.bsth.data.schedule.late_adjust;  
2 -  
3 -/**  
4 - * 误点调整处理程序  
5 - * Created by panzhao on 2017/4/16.  
6 - */  
7 -public class LateAdjustHandle {  
8 -  
9 -} 1 +
  2 +package com.bsth.data.schedule.late_adjust;
  3 +
  4 +import com.bsth.data.LineConfigData;
  5 +import com.bsth.data.gpsdata.GpsEntity;
  6 +import com.bsth.entity.realcontrol.LineConfig;
  7 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  8 +import com.bsth.websocket.handler.SendUtils;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.beans.BeansException;
  12 +import org.springframework.context.ApplicationContext;
  13 +import org.springframework.context.ApplicationContextAware;
  14 +import org.springframework.stereotype.Component;
  15 +
  16 +import java.util.Collection;
  17 +import java.util.HashMap;
  18 +import java.util.Map;
  19 +
  20 +/**
  21 + * 误点自动调整待发 处理程序
  22 + *
  23 + * 注意 :这里的误点是指应发未到
  24 + * Created by panzhao on 2017/4/16.
  25 + */
  26 +@Component
  27 +public class LateAdjustHandle implements ApplicationContextAware{
  28 +
  29 + static LineConfigData lineConfigData;
  30 + static SendUtils sendUtils;
  31 +
  32 + static Logger logger = LoggerFactory.getLogger(LateAdjustHandle.class);
  33 +
  34 + /**
  35 + * 应发未到车辆 和 班次
  36 + */
  37 + private static Map<String, ScheduleRealInfo> lateSchMap;
  38 +
  39 +
  40 + static {
  41 + lateSchMap = new HashMap<>();
  42 + }
  43 +
  44 + /**
  45 + * 新增一个误点班次
  46 + * @param sch
  47 + */
  48 + public static void putLate(ScheduleRealInfo sch){
  49 + try {
  50 + //线路配置
  51 + LineConfig config = lineConfigData.get(sch.getXlBm());
  52 + if(sch.getLateMinute() == 0){
  53 + if(config.isEnableYjtk()){
  54 + sch.setLateMinute(sch.getXlDir().equals("0")?config.getUpStopMinute():config.getDownStopMinute());
  55 + }
  56 + else
  57 + return;
  58 + }
  59 +
  60 + if(sch.getDfsj().compareTo(config.getYjtkStart()) > 0
  61 + && sch.getDfsj().compareTo(config.getYjtkEnd()) <= 0){
  62 +
  63 + ScheduleRealInfo cancel = null;
  64 + //之前存在误点班次没有发出
  65 + ScheduleRealInfo old = lateSchMap.get(sch.getClZbh());
  66 + if(old != null && old.getDfsjT() < sch.getDfsjT()){
  67 + remove(old);
  68 + cancel = old;
  69 + logger.info("【应发未到】old 班次 " + old.getId() + " -被覆盖!");
  70 + }
  71 +
  72 + lateSchMap.put(sch.getClZbh(), sch);
  73 + //通知客户端
  74 + sch.setLate2(true);
  75 + sendUtils.sendAutoWdtz(sch, cancel);
  76 +
  77 + logger.info("【应发未到】班次 " + sch.getClZbh() + " -" + sch.getDfsj() + " -id: " + sch.getId() + " -加入误点调整!");
  78 + }
  79 + }catch (Exception e){
  80 + logger.error("", e);
  81 + }
  82 + }
  83 +
  84 +
  85 + /**
  86 + * 获取所有应发未到的班次
  87 + * @return
  88 + */
  89 + public static Collection<ScheduleRealInfo> allLateSch(){
  90 + return lateSchMap.values();
  91 + }
  92 +
  93 + public static void remove(ScheduleRealInfo sch){
  94 + try {
  95 + if(lateSchMap.get(sch.getClZbh()) == sch){
  96 + lateSchMap.remove(sch.getClZbh());
  97 + sch.setLate2(false);
  98 + sch.setLateMinute(0);
  99 + }
  100 + }catch (Exception e){
  101 + logger.error("", e);
  102 + }
  103 + }
  104 +
  105 + /**
  106 + * 车辆到站
  107 + * @param gps
  108 + */
  109 + public static void carArrive(GpsEntity gps){
  110 + try{
  111 + if(gps.getInstation() != 1)
  112 + return;
  113 +
  114 + ScheduleRealInfo sch = lateSchMap.get(gps.getNbbm());
  115 + if(sch == null)
  116 + return;
  117 +
  118 + //进的是班次起点
  119 + if(gps.getStopNo().equals(sch.getQdzCode())
  120 + && sch.getLateMinute() > 0){
  121 + //自动调整待发 到达时间 + 停靠时间
  122 + long dt = gps.getTimestamp() + (Long.parseLong(String.valueOf(sch.getLateMinute() * 60 * 1000)));
  123 + sch.setDfsjAll(dt);
  124 + sch.setDfAuto(true);
  125 +
  126 + lateSchMap.remove(sch.getClZbh());
  127 + logger.info("【应发未到】车辆到站 " + sch.getClZbh() + " -" + sch.getDfsj() + " -到站时间:" + gps.getTimestamp() + " -停靠时间:" + sch.getLateMinute() + " -自动设置的待发时间:" + dt);
  128 + }
  129 + }catch (Exception e){
  130 + logger.error("", e);
  131 + }
  132 + }
  133 +
  134 + @Override
  135 + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  136 + lineConfigData = applicationContext.getBean(LineConfigData.class);
  137 + sendUtils = applicationContext.getBean(SendUtils.class);
  138 + }
  139 +}
10 \ No newline at end of file 140 \ No newline at end of file
src/main/java/com/bsth/data/schedule/thread/ScheduleLateThread.java renamed to src/main/java/com/bsth/data/schedule/late_adjust/ScheduleLateThread.java
1 -package com.bsth.data.schedule.thread; 1 +package com.bsth.data.schedule.late_adjust;
2 2
3 3
4 -import java.util.ArrayList;  
5 -import java.util.Collections;  
6 -import java.util.Comparator;  
7 -import java.util.List;  
8 -  
9 -import org.springframework.beans.factory.annotation.Autowired;  
10 -import org.springframework.stereotype.Component;  
11 -  
12 import com.bsth.data.schedule.DayOfSchedule; 4 import com.bsth.data.schedule.DayOfSchedule;
13 import com.bsth.data.schedule.ScheduleComparator; 5 import com.bsth.data.schedule.ScheduleComparator;
14 import com.bsth.entity.realcontrol.ScheduleRealInfo; 6 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 import com.bsth.websocket.handler.SendUtils; 7 import com.bsth.websocket.handler.SendUtils;
  8 +import org.apache.commons.lang3.StringUtils;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.Collections;
  14 +import java.util.Comparator;
  15 +import java.util.List;
16 16
17 /** 17 /**
18 - *  
19 - * @ClassName: ScheduleLateThread  
20 - * @Description: TODO(班次误点扫描线程)  
21 - * @author PanZhao 18 + *
  19 + * @ClassName: ScheduleLateThread
  20 + * @Description: TODO(班次误点扫描线程)
  21 + * @author PanZhao
22 * @date 2016年8月31日 下午3:09:02 22 * @date 2016年8月31日 下午3:09:02
23 * 23 *
24 */ 24 */
@@ -27,29 +27,39 @@ public class ScheduleLateThread extends Thread{ @@ -27,29 +27,39 @@ public class ScheduleLateThread extends Thread{
27 27
28 @Autowired 28 @Autowired
29 DayOfSchedule dayOfSchedule; 29 DayOfSchedule dayOfSchedule;
30 - 30 +
31 @Autowired 31 @Autowired
32 SendUtils sendUtils; 32 SendUtils sendUtils;
33 - 33 +
34 private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.FCSJ(); 34 private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.FCSJ();
35 - 35 +
36 @Override 36 @Override
37 public void run() { 37 public void run() {
38 List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()); 38 List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll());
39 Collections.sort(all, cpm); 39 Collections.sort(all, cpm);
40 - 40 +
41 long t = System.currentTimeMillis(); 41 long t = System.currentTimeMillis();
42 int size = all.size(); 42 int size = all.size();
43 - 43 +
44 ScheduleRealInfo sch; 44 ScheduleRealInfo sch;
45 for(int i = 0; i < size; i ++){ 45 for(int i = 0; i < size; i ++){
46 sch = all.get(i); 46 sch = all.get(i);
47 - if(sch.getDfsjT() > t) 47 + if(sch.getDfsjT() > t || sch.isLate())
48 break; 48 break;
49 -  
50 - if(sch.isLate() == false  
51 - && sch.getStatus() == 0 49 +
  50 + if(sch.getStatus() == 0
52 && sch.getFcsjActual() == null){ 51 && sch.getFcsjActual() == null){
  52 +
  53 + //检查应发未到 当前班次无起点到达时间
  54 + if(StringUtils.isEmpty(sch.getQdzArrDateSJ())){
  55 + ScheduleRealInfo prev = dayOfSchedule.prev(sch);
  56 + //上一个班次也没有实际终点到达时间
  57 + if(prev != null && StringUtils.isEmpty(prev.getZdsjActual())){
  58 + //进入误点调整程序
  59 + LateAdjustHandle.putLate(sch);
  60 + }
  61 + }
  62 +
53 //应发未发 63 //应发未发
54 sch.setLate(true); 64 sch.setLate(true);
55 //通知客户端 65 //通知客户端
@@ -57,4 +67,4 @@ public class ScheduleLateThread extends Thread{ @@ -57,4 +67,4 @@ public class ScheduleLateThread extends Thread{
57 } 67 }
58 } 68 }
59 } 69 }
60 -} 70 +}
61 \ No newline at end of file 71 \ No newline at end of file
src/main/java/com/bsth/entity/mcy_forms/Operationservice.java
@@ -3,7 +3,7 @@ package com.bsth.entity.mcy_forms; @@ -3,7 +3,7 @@ package com.bsth.entity.mcy_forms;
3 public class Operationservice { 3 public class Operationservice {
4 4
5 private String xlName;//线路 5 private String xlName;//线路
6 - 6 + private String xlBm;//线路编码
7 private String jzl;//加注量 7 private String jzl;//加注量
8 8
9 private String xhl;//消耗量 9 private String xhl;//消耗量
@@ -81,6 +81,14 @@ public class Operationservice { @@ -81,6 +81,14 @@ public class Operationservice {
81 public void setSjbc(String sjbc) { 81 public void setSjbc(String sjbc) {
82 this.sjbc = sjbc; 82 this.sjbc = sjbc;
83 } 83 }
  84 +
  85 + public String getXlBm() {
  86 + return xlBm;
  87 + }
  88 +
  89 + public void setXlBm(String xlBm) {
  90 + this.xlBm = xlBm;
  91 + }
84 92
85 93
86 } 94 }
src/main/java/com/bsth/entity/oil/Ylb.java
@@ -63,6 +63,11 @@ public class Ylb { @@ -63,6 +63,11 @@ public class Ylb {
63 @Transient 63 @Transient
64 private String gsname; 64 private String gsname;
65 65
  66 + @Transient
  67 + private String fgsname;
  68 +
  69 + @Transient
  70 + private String name;
66 71
67 public Integer getId() { 72 public Integer getId() {
68 return id; 73 return id;
@@ -299,6 +304,22 @@ public class Ylb { @@ -299,6 +304,22 @@ public class Ylb {
299 } 304 }
300 305
301 306
  307 + public String getFgsname() {
  308 + return BasicData.businessFgsCodeNameMap.get(this.fgsdm+"_"+this.ssgsdm);
  309 + }
  310 +
  311 + public void setFgsname(String fgsname) {
  312 + this.fgsname = fgsname;
  313 + }
  314 +
  315 + public String getName() {
  316 + return BasicData.allPerson.get(this.jsy);
  317 + }
  318 +
  319 + public void setName(String name) {
  320 + this.name = name;
  321 + }
  322 +
302 323
303 324
304 325
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
@@ -82,7 +82,9 @@ public class LineConfig { @@ -82,7 +82,9 @@ public class LineConfig {
82 * 应急停靠 82 * 应急停靠
83 */ 83 */
84 private boolean enableYjtk; 84 private boolean enableYjtk;
  85 + /** HH:mm */
85 private String yjtkStart; 86 private String yjtkStart;
  87 + /** HH:mm */
86 private String yjtkEnd; 88 private String yjtkEnd;
87 private int upStopMinute; 89 private int upStopMinute;
88 private int downStopMinute; 90 private int downStopMinute;
src/main/java/com/bsth/entity/realcontrol/OilStationSociety.java
@@ -21,6 +21,11 @@ public class OilStationSociety { @@ -21,6 +21,11 @@ public class OilStationSociety {
21 private String stationName; 21 private String stationName;
22 22
23 /** 23 /**
  24 + * 加油站编码(为空则默认社会加油站)
  25 + */
  26 + private String stationCode;
  27 +
  28 + /**
24 * 上行进场距离 29 * 上行进场距离
25 */ 30 */
26 private Double upInMile; 31 private Double upInMile;
@@ -137,4 +142,12 @@ public class OilStationSociety { @@ -137,4 +142,12 @@ public class OilStationSociety {
137 public void setDownOutTime(int downOutTime) { 142 public void setDownOutTime(int downOutTime) {
138 this.downOutTime = downOutTime; 143 this.downOutTime = downOutTime;
139 } 144 }
  145 +
  146 + public String getStationCode() {
  147 + return stationCode;
  148 + }
  149 +
  150 + public void setStationCode(String stationCode) {
  151 + this.stationCode = stationCode;
  152 + }
140 } 153 }
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -139,10 +139,17 @@ public class ScheduleRealInfo { @@ -139,10 +139,17 @@ public class ScheduleRealInfo {
139 /** 是否是临加班次 */ 139 /** 是否是临加班次 */
140 private boolean sflj; 140 private boolean sflj;
141 141
142 - /** 是否误点*/ 142 + /** 是否误点 (应发未发)*/
143 @Transient 143 @Transient
144 private boolean late; 144 private boolean late;
145 145
  146 + /** 是否误点 (应发未到) */
  147 + @Transient
  148 + private boolean late2;
  149 + /** 误点停靠时间 */
  150 + @Transient
  151 + private float lateMinute;
  152 +
146 /** 备注*/ 153 /** 备注*/
147 private String remarks; 154 private String remarks;
148 155
@@ -887,4 +894,20 @@ public class ScheduleRealInfo { @@ -887,4 +894,20 @@ public class ScheduleRealInfo {
887 public void setRemark(String remark) { 894 public void setRemark(String remark) {
888 this.remark = remark; 895 this.remark = remark;
889 } 896 }
  897 +
  898 + public float getLateMinute() {
  899 + return lateMinute;
  900 + }
  901 +
  902 + public void setLateMinute(float lateMinute) {
  903 + this.lateMinute = lateMinute;
  904 + }
  905 +
  906 + public boolean isLate2() {
  907 + return late2;
  908 + }
  909 +
  910 + public void setLate2(boolean late2) {
  911 + this.late2 = late2;
  912 + }
890 } 913 }
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -151,18 +151,19 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -151,18 +151,19 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
151 151
152 //按照时间段统计 152 //按照时间段统计
153 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) 153 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
154 - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') and gsBm like %?4% and fgsBm like %?5% order by s.xlBm") 154 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and gsBm like %?4% and fgsBm like %?5% order by s.xlBm")
155 List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2,String gsdm,String fgsdm); 155 List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2,String gsdm,String fgsdm);
156 156
157 //按照时间段统计 157 //按照时间段统计
158 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) 158 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
159 - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') order by s.xlBm") 159 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 order by s.xlBm")
160 List<ScheduleRealInfo> scheduleByDateAndLineTj2(String line,String date,String date2); 160 List<ScheduleRealInfo> scheduleByDateAndLineTj2(String line,String date,String date2);
161 //月报表 161 //月报表
162 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) 162 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
163 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 order by s.xlBm") 163 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 order by s.xlBm")
164 List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2); 164 List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2);
165 165
  166 +
166 @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY clZbh,fcsj") 167 @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY clZbh,fcsj")
167 List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm); 168 List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm);
168 169
src/main/java/com/bsth/service/excep/impl/OfflineServiceImpl.java
@@ -56,7 +56,7 @@ public class OfflineServiceImpl implements OfflineService { @@ -56,7 +56,7 @@ public class OfflineServiceImpl implements OfflineService {
56 Object date=map.get("date"); 56 Object date=map.get("date");
57 57
58 if(line!=null){ 58 if(line!=null){
59 - sql +=" and line like'%"+line.toString()+"%'"; 59 + sql +=" and line like'%"+line.toString().trim()+"%'";
60 } 60 }
61 61
62 if(nbbm!=null){ 62 if(nbbm!=null){
@@ -131,6 +131,7 @@ public class OfflineServiceImpl implements OfflineService { @@ -131,6 +131,7 @@ public class OfflineServiceImpl implements OfflineService {
131 @SuppressWarnings("unchecked") 131 @SuppressWarnings("unchecked")
132 public PageObject <Offline> Pagequery(Map<String, Object> map) { 132 public PageObject <Offline> Pagequery(Map<String, Object> map) {
133 // TODO Auto-generated method stub 133 // TODO Auto-generated method stub
  134 +
134 String sql="select count(*) record from bsth_c_offline where 1=1 "; 135 String sql="select count(*) record from bsth_c_offline where 1=1 ";
135 136
136 Object line=map.get("line"); 137 Object line=map.get("line");
@@ -140,7 +141,7 @@ public class OfflineServiceImpl implements OfflineService { @@ -140,7 +141,7 @@ public class OfflineServiceImpl implements OfflineService {
140 Object date=map.get("date"); 141 Object date=map.get("date");
141 142
142 if(line!=null){ 143 if(line!=null){
143 - sql +=" and line like'%"+line.toString()+"%'"; 144 + sql +=" and line like'%"+line.toString().trim()+"%'";
144 } 145 }
145 146
146 if(nbbm!=null){ 147 if(nbbm!=null){
@@ -194,10 +195,9 @@ public class OfflineServiceImpl implements OfflineService { @@ -194,10 +195,9 @@ public class OfflineServiceImpl implements OfflineService {
194 Date datess = new Date(d1); 195 Date datess = new Date(d1);
195 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess); 196 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess);
196 String sk=new SimpleDateFormat("HH:mm").format(datess); 197 String sk=new SimpleDateFormat("HH:mm").format(datess);
197 - String sqlPbb="select * from bsth_c_s_sp_info_real where cl_zbh='"+nbbm2+"' and"  
198 - + " real_exec_date='"+dates+"' ";  
199 -// + "and fcsj_actual > '"+sk+"' ";  
200 -// + "and '"+sk+"' <dfsj"; 198 + String sqlPbb="SELECT * FROM ( select lp_name,cl_zbh,j_gh,j_name,MIN(fcsj) as fcsj,MAX(zdsj) as ddsj"
  199 + + " from bsth_c_s_sp_info_real where cl_zbh='"+nbbm2+"' and"
  200 + + " real_exec_date='"+dates+"' GROUP BY cl_zbh,lp_name,j_gh,j_name ) t WHERE t.fcsj<='"+sk+"' AND t.ddsj>='"+sk+"' " ;
201 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb, 201 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb,
202 new RowMapper<ScheduleRealInfo>(){ 202 new RowMapper<ScheduleRealInfo>(){
203 @Override 203 @Override
@@ -208,20 +208,15 @@ public class OfflineServiceImpl implements OfflineService { @@ -208,20 +208,15 @@ public class OfflineServiceImpl implements OfflineService {
208 s.setLpName(rs.getString("lp_name")); 208 s.setLpName(rs.getString("lp_name"));
209 return s; 209 return s;
210 } 210 }
211 - });  
212 - if(pbb.size()>0){  
213 - list.get(i).setJsy(pbb.get(0).getjGh()+"/"+pbb.get(0).getjName());  
214 - list.get(i).setLpname(pbb.get(0).getLpName());  
215 -  
216 - }  
217 - 211 + });
  212 + if(pbb.size()>0){
  213 + list.get(i).setJsy(pbb.get(0).getjGh()+"/"+pbb.get(0).getjName());
  214 + list.get(i).setLpname(pbb.get(0).getLpName());
  215 + }
218 } 216 }
  217 +
219 PageObject<Offline> pageObject = pageHelper.getPageObject(); 218 PageObject<Offline> pageObject = pageHelper.getPageObject();
220 -// for (int i = 0; i < list.size(); i++) {  
221 -// if(list.get(i).getLpname()!=null){  
222 pageObject.setDataList(list); 219 pageObject.setDataList(list);
223 -// }  
224 -// }  
225 220
226 return pageObject; 221 return pageObject;
227 } 222 }
src/main/java/com/bsth/service/excep/impl/OutboundServiceImpl.java
@@ -43,7 +43,7 @@ public class OutboundServiceImpl implements OutboundService{ @@ -43,7 +43,7 @@ public class OutboundServiceImpl implements OutboundService{
43 Object updown=map.get("updown"); 43 Object updown=map.get("updown");
44 Object date=map.get("date"); 44 Object date=map.get("date");
45 if(line!=null){ 45 if(line!=null){
46 - sql +=" and line like'%"+line.toString()+"%'"; 46 + sql +=" and line like'%"+line.toString().trim()+"%'";
47 } 47 }
48 48
49 if(nbbm!=null){ 49 if(nbbm!=null){
@@ -105,7 +105,7 @@ public class OutboundServiceImpl implements OutboundService{ @@ -105,7 +105,7 @@ public class OutboundServiceImpl implements OutboundService{
105 outbound.setTimestampDate(sdf.format(new Date(outbound.getTimestamp()))); 105 outbound.setTimestampDate(sdf.format(new Date(outbound.getTimestamp())));
106 outbound.setUpDown(Integer.valueOf(rs.getObject("up_down").toString())); 106 outbound.setUpDown(Integer.valueOf(rs.getObject("up_down").toString()));
107 outbound.setVehicle(BasicData.deviceId2NbbmMap.get(rs.getObject("vehicle").toString())); 107 outbound.setVehicle(BasicData.deviceId2NbbmMap.get(rs.getObject("vehicle").toString()));
108 - outbound.setLocation(rs.getObject("location")==null?"":rs.getObject("location").toString()); 108 +// outbound.setLocation(rs.getObject("location")==null?"":rs.getObject("location").toString());
109 list.add(outbound); 109 list.add(outbound);
110 } 110 }
111 return list; 111 return list;
@@ -120,7 +120,7 @@ public class OutboundServiceImpl implements OutboundService{ @@ -120,7 +120,7 @@ public class OutboundServiceImpl implements OutboundService{
120 Object updown=map.get("updown"); 120 Object updown=map.get("updown");
121 Object date=map.get("date"); 121 Object date=map.get("date");
122 if(line!=null){ 122 if(line!=null){
123 - sql +=" and line like '%"+line.toString()+"%'"; 123 + sql +=" and line like '%"+line.toString().trim()+"%'";
124 124
125 } 125 }
126 126
@@ -174,10 +174,9 @@ public class OutboundServiceImpl implements OutboundService{ @@ -174,10 +174,9 @@ public class OutboundServiceImpl implements OutboundService{
174 Date datess = new Date(d1); 174 Date datess = new Date(d1);
175 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess); 175 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess);
176 String sk=new SimpleDateFormat("HH:mm").format(datess); 176 String sk=new SimpleDateFormat("HH:mm").format(datess);
177 - String sqlPbb="select * from bsth_c_s_sp_info_real where cl_zbh='"+nbbm2+"' and"  
178 - + " real_exec_date='"+dates+"' ";  
179 -// + "and fcsj_actual > '"+sk+"' ";  
180 -// + "and '"+sk+"' <dfsj"; 177 + String sqlPbb="SELECT * FROM ( select lp_name,cl_zbh,j_gh,j_name,MIN(fcsj) as fcsj,MAX(zdsj) as ddsj"
  178 + + " from bsth_c_s_sp_info_real where cl_zbh='"+nbbm2+"' and"
  179 + + " real_exec_date='"+dates+"' GROUP BY cl_zbh,lp_name,j_gh,j_name ) t WHERE t.fcsj<='"+sk+"' AND t.ddsj>='"+sk+"' " ;
181 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb, 180 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb,
182 new RowMapper<ScheduleRealInfo>(){ 181 new RowMapper<ScheduleRealInfo>(){
183 @Override 182 @Override
src/main/java/com/bsth/service/excep/impl/SpeedingServiceImpl.java
@@ -46,7 +46,7 @@ public class SpeedingServiceImpl implements SpeedingService { @@ -46,7 +46,7 @@ public class SpeedingServiceImpl implements SpeedingService {
46 Object date=map.get("date"); 46 Object date=map.get("date");
47 47
48 if(line!=null){ 48 if(line!=null){
49 - sql +=" and line like'%"+line.toString()+"%'"; 49 + sql +=" and line like'%"+line.toString().trim()+"%'";
50 } 50 }
51 51
52 if(nbbm!=null){ 52 if(nbbm!=null){
@@ -125,7 +125,7 @@ public class SpeedingServiceImpl implements SpeedingService { @@ -125,7 +125,7 @@ public class SpeedingServiceImpl implements SpeedingService {
125 Object date=map.get("date"); 125 Object date=map.get("date");
126 126
127 if(line!=null){ 127 if(line!=null){
128 - sql +=" and line like'%"+line.toString()+"%'"; 128 + sql +=" and line like'%"+line.toString().trim()+"%'";
129 } 129 }
130 130
131 if(nbbm!=null){ 131 if(nbbm!=null){
@@ -177,10 +177,9 @@ public class SpeedingServiceImpl implements SpeedingService { @@ -177,10 +177,9 @@ public class SpeedingServiceImpl implements SpeedingService {
177 Date datess = new Date(d1); 177 Date datess = new Date(d1);
178 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess); 178 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess);
179 String sk=new SimpleDateFormat("HH:mm").format(datess); 179 String sk=new SimpleDateFormat("HH:mm").format(datess);
180 - String sqlPbb="select * from bsth_c_s_sp_info_real where cl_zbh='"+nbbm2+"' and"  
181 - + " real_exec_date='"+dates+"' ";  
182 -// + "and fcsj_actual > '"+sk+"' ";  
183 -// + "and '"+sk+"' <dfsj"; 180 + String sqlPbb="SELECT * FROM ( select lp_name,cl_zbh,j_gh,j_name,MIN(fcsj) as fcsj,MAX(zdsj) as ddsj"
  181 + + " from bsth_c_s_sp_info_real where cl_zbh='"+nbbm2+"' and"
  182 + + " real_exec_date='"+dates+"' GROUP BY cl_zbh,lp_name,j_gh,j_name ) t WHERE t.fcsj<='"+sk+"' AND t.ddsj>='"+sk+"' " ;
184 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb, 183 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb,
185 new RowMapper<ScheduleRealInfo>(){ 184 new RowMapper<ScheduleRealInfo>(){
186 @Override 185 @Override
src/main/java/com/bsth/service/forms/FormsService.java
@@ -31,7 +31,7 @@ public interface FormsService { @@ -31,7 +31,7 @@ public interface FormsService {
31 31
32 public List<Singledata> singledata(Map<String, Object> map); 32 public List<Singledata> singledata(Map<String, Object> map);
33 33
34 - public List<Vehicleloading> vehicleloading(String gsdmVehic,String fgsdmVehic,String line,String data); 34 + public List<Vehicleloading> vehicleloading(String line,String data);
35 35
36 public List<Operationservice> operationservice(Map<String, Object> map); 36 public List<Operationservice> operationservice(Map<String, Object> map);
37 37
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -25,7 +25,9 @@ import com.bsth.entity.mcy_forms.Singledata; @@ -25,7 +25,9 @@ import com.bsth.entity.mcy_forms.Singledata;
25 import com.bsth.entity.mcy_forms.Turnoutrate; 25 import com.bsth.entity.mcy_forms.Turnoutrate;
26 import com.bsth.entity.mcy_forms.Vehicleloading; 26 import com.bsth.entity.mcy_forms.Vehicleloading;
27 import com.bsth.entity.mcy_forms.Waybillday; 27 import com.bsth.entity.mcy_forms.Waybillday;
  28 +import com.bsth.entity.oil.Ylb;
28 import com.bsth.entity.realcontrol.ScheduleRealInfo; 29 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  30 +import com.bsth.repository.oil.YlbRepository;
29 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 31 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
30 import com.bsth.data.BasicData; 32 import com.bsth.data.BasicData;
31 import com.bsth.entity.mcy_forms.Allline; 33 import com.bsth.entity.mcy_forms.Allline;
@@ -55,6 +57,9 @@ public class FormsServiceImpl implements FormsService { @@ -55,6 +57,9 @@ public class FormsServiceImpl implements FormsService {
55 57
56 @Autowired 58 @Autowired
57 CulateMileageService culateMileageService; 59 CulateMileageService culateMileageService;
  60 +
  61 + @Autowired
  62 + YlbRepository ylbRepository;
58 63
59 // 行车路单日报表 64 // 行车路单日报表
60 @Override 65 @Override
@@ -219,13 +224,11 @@ public class FormsServiceImpl implements FormsService { @@ -219,13 +224,11 @@ public class FormsServiceImpl implements FormsService {
219 // if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){ 224 // if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){
220 // sList.add(s); 225 // sList.add(s);
221 // } 226 // }
222 -  
223 if(empnames.equals("驾驶员")){ 227 if(empnames.equals("驾驶员")){
224 - if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){ 228 + if(d.getJgh().equals(s.getjGh())){
225 sList.add(s); 229 sList.add(s);
226 } 230 }
227 }else if(empnames.equals("售票员")){ 231 }else if(empnames.equals("售票员")){
228 -// shif.setjName(arg0.getString("s_name")==null ? "":arg0.getString("s_name"));  
229 String sgh=s.getsGh()==null?"":s.getsGh(); 232 String sgh=s.getsGh()==null?"":s.getsGh();
230 if(d.getSgh().equals(sgh) && d.getZbh().equals(s.getClZbh())){ 233 if(d.getSgh().equals(sgh) && d.getZbh().equals(s.getClZbh())){
231 sList.add(s); 234 sList.add(s);
@@ -244,16 +247,17 @@ public class FormsServiceImpl implements FormsService { @@ -244,16 +247,17 @@ public class FormsServiceImpl implements FormsService {
244 double ljgl=culateMileageService.culateLjgl(sList); 247 double ljgl=culateMileageService.culateLjgl(sList);
245 double sjgl=culateMileageService.culateSjgl(sList); 248 double sjgl=culateMileageService.culateSjgl(sList);
246 double zyygl=Arith.add(ljgl, sjgl); 249 double zyygl=Arith.add(ljgl, sjgl);
247 - double cjbc=culateMileageService.culateLbbc(sList);  
248 - double Ljbc=culateMileageService.culateLjbc(sList,""); 250 + int cjbc=culateMileageService.culateLbbc(sList);
  251 + int ljbc=culateMileageService.culateLjbc(sList,"");
  252 + int sjbc=culateMileageService.culateSjbc(sList, "");
249 double cjgl=culateMileageService.culateLbgl(sList); 253 double cjgl=culateMileageService.culateLbgl(sList);
250 double zjgl=culateMileageService.culateLjgl(sList); 254 double zjgl=culateMileageService.culateLjgl(sList);
251 d.setEmptMileage(String.valueOf(zksgl));//空驶公里 255 d.setEmptMileage(String.valueOf(zksgl));//空驶公里
252 d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里 256 d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里
253 - d.setSjbc(String.valueOf(culateMileageService.culateSjbc(sList, "")+culateMileageService.culateLjbc(sList, ""))); 257 + d.setSjbc(String.valueOf(sjbc+ljbc));
254 d.setJhlc(String.valueOf(zyygl));//运营里程 258 d.setJhlc(String.valueOf(zyygl));//运营里程
255 d.setCjbc(String.valueOf(cjbc));//抽检班次 259 d.setCjbc(String.valueOf(cjbc));//抽检班次
256 - d.setLjbc(String.valueOf(Ljbc));//增加班次 260 + d.setLjbc(String.valueOf(ljbc));//增加班次
257 d.setRemMileage(String.valueOf(cjgl));//抽检里程 261 d.setRemMileage(String.valueOf(cjgl));//抽检里程
258 d.setAddMileage(String.valueOf(zjgl));//增加里程 262 d.setAddMileage(String.valueOf(zjgl));//增加里程
259 263
@@ -330,22 +334,23 @@ public class FormsServiceImpl implements FormsService { @@ -330,22 +334,23 @@ public class FormsServiceImpl implements FormsService {
330 double zyygl=Arith.add(ljgl, sjgl); 334 double zyygl=Arith.add(ljgl, sjgl);
331 double jhgl=culateMileageService.culateJhgl(sList); 335 double jhgl=culateMileageService.culateJhgl(sList);
332 double cjgl=culateMileageService.culateLbgl(sList); 336 double cjgl=culateMileageService.culateLbgl(sList);
333 - double jhbc =culateMileageService.culateJhbc(sList,"");  
334 - double cjbc=culateMileageService.culateLbbc(sList);  
335 - double Ljbc=culateMileageService.culateLjbc(sList,""); 337 + int jhbc =culateMileageService.culateJhbc(sList,"");
  338 + int cjbc=culateMileageService.culateLbbc(sList);
  339 + int ljbc=culateMileageService.culateLjbc(sList,"");
  340 + int sjbc=culateMileageService.culateSjbc(sList, "");
336 double zjgl=culateMileageService.culateLjgl(sList); 341 double zjgl=culateMileageService.culateLjgl(sList);
337 d.setEmptMileage(String.valueOf(zksgl));//空驶公里 342 d.setEmptMileage(String.valueOf(zksgl));//空驶公里
338 d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里 343 d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里
339 - d.setSjbc(String.valueOf(culateMileageService.culateSjbc(sList, "")+culateMileageService.culateLjbc(sList, ""))); 344 + d.setSjbc(String.valueOf(sjbc+ljbc));
340 d.setJhlc(String.valueOf(jhgl));//计划里程 345 d.setJhlc(String.valueOf(jhgl));//计划里程
341 d.setYygl(String.valueOf(zyygl));//运营公里 346 d.setYygl(String.valueOf(zyygl));//运营公里
342 d.setSjjhlc(String.valueOf(sjgl));//实际计划里程 347 d.setSjjhlc(String.valueOf(sjgl));//实际计划里程
343 d.setRemMileage(String.valueOf(cjgl));//抽减里程 348 d.setRemMileage(String.valueOf(cjgl));//抽减里程
344 d.setJhbc(String.valueOf(jhbc));//计划班次 349 d.setJhbc(String.valueOf(jhbc));//计划班次
345 d.setCjbc(String.valueOf(cjbc));//抽检班次 350 d.setCjbc(String.valueOf(cjbc));//抽检班次
346 - d.setLjbc(String.valueOf(Ljbc));//增加班次 351 + d.setLjbc(String.valueOf(ljbc));//增加班次
347 d.setAddMileage(String.valueOf(zjgl));//增加公里 352 d.setAddMileage(String.valueOf(zjgl));//增加公里
348 - d.setSjjhbc(String.valueOf(culateMileageService.culateSjbc(sList, "")));//实际计划班次 353 + d.setSjjhbc(String.valueOf(sjbc));//实际计划班次
349 } 354 }
350 return list; 355 return list;
351 } 356 }
@@ -417,7 +422,19 @@ public class FormsServiceImpl implements FormsService { @@ -417,7 +422,19 @@ public class FormsServiceImpl implements FormsService {
417 // 路单数据 422 // 路单数据
418 @Override 423 @Override
419 public List<Singledata> singledata(Map<String, Object> map) { 424 public List<Singledata> singledata(Map<String, Object> map) {
420 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 425 +
  426 + String gsdm="";
  427 + if(map.get("gsdmSing")!=null){
  428 + gsdm=map.get("gsdmSing").toString();
  429 + }
  430 + String fgsdm="";
  431 + if(map.get("fgsdmSing")!=null){
  432 + fgsdm=map.get("fgsdmSing").toString();
  433 + }
  434 +
  435 + String xlbm=map.get("line").toString().trim();
  436 +
  437 + /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
421 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日"); 438 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
422 Date d = null; 439 Date d = null;
423 Date d1 = null; 440 Date d1 = null;
@@ -429,60 +446,92 @@ public class FormsServiceImpl implements FormsService { @@ -429,60 +446,92 @@ public class FormsServiceImpl implements FormsService {
429 e.printStackTrace(); 446 e.printStackTrace();
430 } 447 }
431 String rq2 = sdf1.format(d); 448 String rq2 = sdf1.format(d);
432 - String rq3 = sdf1.format(d1); 449 + String rq3 = sdf1.format(d1);*/
433 450
434 - rq = rq2 + "-" + rq3; 451 +// rq = rq2 + "-" + rq3;
435 startDate = map.get("startDate").toString(); 452 startDate = map.get("startDate").toString();
436 - endDate = map.get("endDate").toString();  
437 - String sql = "select t.*,y.yh,y.jzl from ("  
438 - + " select r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm"  
439 - + " from bsth_c_s_sp_info_real r where r.schedule_date_str "  
440 - + " BETWEEN '"+startDate+"' and '"+endDate+"' and r.xl_bm='"+map.get("line").toString()+"' "  
441 - + " AND r.gs_bm is not null and r.gs_bm='"+map.get("gsdmSing").toString()+"' "  
442 - + " and r.fgs_bm='"+map.get("fgsdmSing").toString()+"' "  
443 - + " group by r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm) t "  
444 - + " LEFT JOIN (select a.nbbm,a.jsy,SUM(a.yh) as yh,SUM(a.jzl) as jzl "  
445 - + " from bsth_c_ylb a where a.rq BETWEEN '"+startDate+"' and '"+endDate+"'and "  
446 - + " a.ssgsdm='"+map.get("gsdmSing").toString()+"' and a.fgsdm='"+map.get("fgsdmSing").toString()+"' "  
447 - + "group by a.nbbm,a.jsy) y"  
448 - + " on y.nbbm=t.cl_zbh and y.jsy= t.j_gh"; 453 +// endDate = map.get("endDate").toString();
  454 +// String sql = "select t.*,y.yh,y.jzl from ("
  455 +// + " select r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm"
  456 +// + " from bsth_c_s_sp_info_real r where r.schedule_date_str "
  457 +// + " BETWEEN '"+startDate+"' and '"+endDate+"' and r.xl_bm='"+map.get("line").toString()+"' "
  458 +// + " AND r.gs_bm is not null and r.gs_bm='"+map.get("gsdmSing").toString()+"' "
  459 +// + " and r.fgs_bm='"+map.get("fgsdmSing").toString()+"' "
  460 +// + " group by r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm) t "
  461 +// + " LEFT JOIN (select a.nbbm,a.jsy,SUM(a.yh) as yh,SUM(a.jzl) as jzl "
  462 +// + " from bsth_c_ylb a where a.rq BETWEEN '"+startDate+"' and '"+endDate+"'and "
  463 +// + " a.ssgsdm='"+map.get("gsdmSing").toString()+"' and a.fgsdm='"+map.get("fgsdmSing").toString()+"' "
  464 +// + "group by a.nbbm,a.jsy) y"
  465 +// + " on y.nbbm=t.cl_zbh and y.jsy= t.j_gh";
449 466
  467 + String sql="select r.s_gh,r.s_name, "
  468 + + " r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm"
  469 + + " from bsth_c_s_sp_info_real r where r.schedule_date_str = '"+startDate+"'";
  470 + if(xlbm.equals("")){
  471 + sql +="and r.gs_bm='"+gsdm+"' "
  472 + + " and r.fgs_bm='"+fgsdm+"'";
  473 + }else{
  474 + sql += " and r.xl_bm = '"+xlbm+"'";
  475 + }
  476 + sql += " group by r.s_gh,r.s_name,"
  477 + + " r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm";
  478 +
450 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() { 479 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
451 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 480 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
452 @Override 481 @Override
453 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException { 482 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
454 Singledata sin = new Singledata(); 483 Singledata sin = new Singledata();
455 - sin.setrQ(rq);  
456 - sin.setgS(arg0.getString("gs_bm")); 484 + sin.setrQ(startDate);
457 sin.setxL(arg0.getString("xl_name")); 485 sin.setxL(arg0.getString("xl_name"));
458 sin.setClzbh(arg0.getString("cl_zbh")); 486 sin.setClzbh(arg0.getString("cl_zbh"));
459 sin.setJsy(arg0.getString("j_gh")); 487 sin.setJsy(arg0.getString("j_gh"));
460 sin.setjName(arg0.getString("j_name")); 488 sin.setjName(arg0.getString("j_name"));
461 - sin.setHyl(arg0.getString("YH"));  
462 - sin.setJzl(arg0.getString("JZL"));  
463 - // sin.setJzl(arg0.getString(""));//非营业性用油  
464 - sin.setJhjl(arg0.getString("JZL")); 489 + sin.setSgh(arg0.getString("s_gh"));
  490 + sin.setsName(arg0.getString("s_name"));
  491 + sin.setgS(BasicData.businessFgsCodeNameMap.get(arg0.getString("fgs_bm")+"_"+arg0.getString("gs_bm")));
465 492
466 return sin; 493 return sin;
467 } 494 }
468 }); 495 });
469 - DecimalFormat df = new DecimalFormat("0.00");  
470 - for(int i=0;i<list.size();i++){  
471 -  
472 - Singledata si=list.get(i);  
473 - si.setgS(BasicData.businessCodeNameMap.get(si.getgS()));  
474 - si.setJzl(df.format(Double.parseDouble(si.getJzl())));  
475 - si.setHyl(df.format(Double.parseDouble(si.getHyl())));  
476 - Map<String, Object> maps = new HashMap<>();  
477 - maps = commonService.findKMBC1(si.getjName(),si.getClzbh(), startDate,  
478 - endDate);  
479 - //sin.setjName(maps.get("j_name") == null ? "" : maps.get("j_name").toString());  
480 - si.setSgh(maps.get("s_gh") == null ? "" : maps.get("s_gh").toString());  
481 - si.setsName(maps.get("s_name") == null ? "" : maps.get("s_name").toString());  
482 - si.setJhlc(maps.get("yygl") == null ? "" : maps.get("yygl").toString());  
483 - si.setEmptMileage(maps.get("ksgl") == null ? "" : maps.get("ksgl").toString());  
484 - si.setJhjl(maps.get("jhlc") == null ? "" : maps.get("jhlc").toString());  
485 496
  497 + List<Ylb> listYlb= ylbRepository.obtainYl(startDate, gsdm, fgsdm, xlbm, "", "xlbm");
  498 + List<ScheduleRealInfo> listReal=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(xlbm, startDate);
  499 + for (int i = 0; i < list.size(); i++) {
  500 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  501 + Singledata sin=list.get(i);
  502 + String jsy=sin.getJsy();
  503 + String clzbh=sin.getClzbh();
  504 + for (int j = 0; j < listReal.size(); j++) {
  505 + ScheduleRealInfo s=listReal.get(j);
  506 + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)){
  507 + newList.add(s);
  508 + }
  509 + }
  510 +
  511 + double jhgl=culateMileageService.culateJhgl(newList);
  512 + double yygl=culateMileageService.culateSjgl(newList);
  513 + double ljgl=culateMileageService.culateLjgl(newList);
  514 + double ksgl=culateMileageService.culateKsgl(newList);
  515 + double jcgl=culateMileageService.culateJccgl(newList);
  516 + double zyygl=Arith.add(yygl, ljgl);
  517 + double zksgl=Arith.add(ksgl, jcgl);
  518 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  519 + sin.setEmptMileage(String.valueOf(zksgl));
  520 + sin.setJhjl(String.valueOf(jhgl));
  521 + double yhl=0.0;
  522 + double jzl=0.0;
  523 + double fyy=0.0;
  524 + for (int j = 0; j < listYlb.size(); j++) {
  525 + Ylb y=listYlb.get(j);
  526 + if(y.getJsy().equals(jsy) && y.getNbbm().equals(clzbh)){
  527 + yhl=Arith.add(yhl, y.getYh()==null?0:y.getYh());
  528 + jzl=Arith.add(jzl, y.getJzl()==null?0:y.getJzl());
  529 + fyy=Arith.add(fyy, y.getSh()==null?0:y.getSh());
  530 + }
  531 + }
  532 + sin.setHyl(String.valueOf(yhl));
  533 + sin.setJzl(String.valueOf(jzl));
  534 + sin.setUnyyyl(String.valueOf(fyy));
486 } 535 }
487 return list; 536 return list;
488 } 537 }
@@ -490,105 +539,174 @@ public class FormsServiceImpl implements FormsService { @@ -490,105 +539,174 @@ public class FormsServiceImpl implements FormsService {
490 // 运营服务阶段报表 539 // 运营服务阶段报表
491 @Override 540 @Override
492 public List<Operationservice> operationservice(Map<String, Object> map) { 541 public List<Operationservice> operationservice(Map<String, Object> map) {
493 -  
494 - String sql = " SELECT r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,y.JZL,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name,r.bc_type "  
495 - + " FROM bsth_c_s_sp_info_real r "  
496 - // + "LEFT JOIN bsth_c_s_sp_info_real r on r.cl_zbh=y.NBBM"  
497 - + " left join bsth_c_ylb y ON r.cl_zbh = y.nbbm "  
498 - + " where 1=1 ";  
499 - if(map.get("startDate").toString()!=""){  
500 - sql+=" and to_days(r.schedule_date_str) BETWEEN to_days('" + map.get("startDate").toString() + "') ";  
501 - }  
502 542
503 - if(map.get("endDate").toString()!=""){  
504 - sql+=" and to_days('" + map.get("endDate").toString() + "') ";  
505 - }  
506 - sql+=" and r.xl_bm='" + map.get("line").toString() + "'" ;  
507 - sql+=" and r.bc_type not in('in','out')";  
508 - if(map.get("gsdmOperat").toString()!=""){  
509 - sql+=" and r.gs_bm='"+map.get("gsdmOperat").toString()+"'";  
510 - }  
511 - if(map.get("fgsdmOperat").toString()!=""){  
512 - sql+=" and r.fgs_bm='"+map.get("fgsdmOperat").toString()+"'";  
513 - }  
514 - sql += " AND r.gs_bm is not null";  
515 - sql += " GROUP BY r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,y.JZL,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name";  
516 - startDate = map.get("startDate").toString();  
517 - endDate = map.get("endDate").toString();  
518 - List<Operationservice> list = jdbcTemplate.query(sql, new RowMapper<Operationservice>() {  
519 -  
520 - @Override  
521 - public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException {  
522 - Operationservice op = new Operationservice();  
523 - op.setXlName(arg0.getString("xl_name"));  
524 - op.setJzl(arg0.getString("JZL"));  
525 - op.setXhl(arg0.getString("YH"));  
526 - op.setClzbh(arg0.getString("cl_zbh"));  
527 - op.setJname(arg0.getString("j_name")); 543 + String xlbm=map.get("line").toString().trim();
  544 + String gsdm="";
  545 + if(map.get("gsdmOperat")!=null){
  546 + gsdm=map.get("gsdmOperat").toString();
  547 + }
  548 + String fgsdm="";
  549 + if(map.get("fgsdmOperat")!=null){
  550 + fgsdm=map.get("fgsdmOperat").toString();
  551 + }
  552 + startDate=map.get("startDate").toString();
  553 + endDate =map.get("endDate").toString();
  554 + String sql="select r.xl_bm"
  555 + + " from bsth_c_s_sp_info_real r where"
  556 + + " r.schedule_date_str BETWEEN '"+startDate+"' and '"+endDate+"'";
  557 + if(xlbm.equals("")){
  558 + sql +="and r.gs_bm='"+gsdm+"' "
  559 + + " and r.fgs_bm='"+fgsdm+"'";
  560 + }else{
  561 + sql += " and r.xl_bm = '"+xlbm+"'";
  562 + }
  563 + sql += " group by r.xl_bm";
  564 +
  565 +
  566 + List<Operationservice> list= jdbcTemplate.query(sql, new RowMapper<Operationservice>() {
  567 + @Override
  568 + public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException {
  569 + Operationservice ve = new Operationservice();
  570 + ve.setXlBm(arg0.getString("xl_bm"));
  571 + return ve;
  572 + }
  573 + });
  574 +
  575 + String ylbSql=" select * from bsth_c_ylb where rq BETWEEN '"+startDate+"' and '"+endDate+"'";
  576 + if(xlbm.equals("")){
  577 + ylbSql +="and ssgsdm='"+gsdm+"' "
  578 + + " and fgsdm='"+fgsdm+"'";
  579 + }else{
  580 + ylbSql += " and xlbm = '"+xlbm+"'";
  581 + }
  582 + List<Ylb> ylbList= jdbcTemplate.query(ylbSql, new RowMapper<Ylb>() {
  583 + @Override
  584 + public Ylb mapRow(ResultSet arg0, int arg1) throws SQLException {
  585 + Ylb y = new Ylb();
  586 + y.setXlbm(arg0.getString("xlbm"));
  587 + y.setJzl(arg0.getDouble("jzl"));
  588 + y.setYh(arg0.getDouble("yh"));
  589 + return y;
  590 + }
  591 + });
  592 + List<ScheduleRealInfo> listReal;
  593 + if(xlbm.equals("")){
  594 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineTj(xlbm, startDate, endDate, gsdm, fgsdm);
  595 + }else{
  596 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineTj2(xlbm, startDate, endDate);
  597 + }
  598 +
  599 + for (int i = 0; i < list.size(); i++) {
  600 + Operationservice o=list.get(i);
  601 + String line=o.getXlBm();
  602 + String xlname=BasicData.lineCode2NameMap.get(line);
  603 + o.setXlName(xlname);
  604 +
  605 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  606 + for (int j = 0; j < listReal.size(); j++) {
  607 + ScheduleRealInfo s=listReal.get(j);
  608 + if(s.getXlBm().equals(line)){
  609 + newList.add(s);
  610 + }
  611 + }
  612 +
  613 + int sjbc=culateMileageService.culateSjbc(newList,"");
  614 + int ljbc=culateMileageService.culateLjbc(newList,"");
  615 + double ksgl=culateMileageService.culateKsgl(newList);
  616 + double jccgl=culateMileageService.culateJccgl(newList);
  617 +
  618 + double sjgl=culateMileageService.culateSjgl(newList);
  619 + double ljgl=culateMileageService.culateLjgl(newList);
528 620
529 - return op; 621 + o.setEmptMileage(String.valueOf(Arith.add(ksgl, jccgl)));
  622 + o.setXsgl(String.valueOf(Arith.add(sjgl, ljgl)));
  623 + o.setSjbc(String.valueOf(sjbc+ljbc));
  624 +
  625 + double jzl=0.0;
  626 + double xhl=0.0;
  627 + for (int j = 0; j < ylbList.size(); j++) {
  628 + Ylb t=ylbList.get(j);
  629 + if(t.getXlbm().equals(line)){
  630 + jzl=Arith.add(jzl, t.getJzl());
  631 + xhl=Arith.add(xhl, t.getYh());
  632 + }
  633 + }
  634 +
  635 + o.setJzl(String.valueOf(jzl));
  636 + o.setXhl(String.valueOf(xhl));
530 } 637 }
531 - });  
532 -  
533 - for(int i=0;i<list.size();i++){  
534 - Operationservice o=list.get(i);  
535 - Map<String, Object> maps = new HashMap<>();  
536 - maps = commonService.findKMBC1(o.getJname(), o.getClzbh(), startDate,  
537 - endDate);  
538 - o.setXsgl(maps.get("jhlc").toString() == null ? "" : maps.get("jhlc").toString());  
539 - o.setEmptMileage(maps.get("ksgl").toString() == null ? "" : maps.get("ksgl").toString());  
540 - o.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString());  
541 - }  
542 return list; 638 return list;
543 } 639 }
544 640
545 641
546 // 车辆加注 642 // 车辆加注
547 @Override 643 @Override
548 - public List<Vehicleloading> vehicleloading(String gsdmVehic,String fgsdmVehic,String line, String date) {  
549 -  
550 - String sql = " SELECT r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_name,y.YH,y.JZL,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name,r.bc_type "  
551 - + " FROM bsth_c_s_sp_info_real r "  
552 - + " INNER join ( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH from bsth_c_ylb y "  
553 - + " where to_days(y.RQ)=to_days('" + date + "') and y.XLBM= '" + line + "' GROUP BY y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH) y "  
554 - + " on r.cl_zbh=y.nbbm "  
555 - + " where to_days(r.schedule_date_str)=to_days('" + date + "')"  
556 - + " and r.xl_bm='" + line + "' "  
557 - + " AND r.gs_bm is not null"  
558 - + " and r.bc_type not in('in','out')";  
559 - if(gsdmVehic.toString()!=""){  
560 - sql+=" and r.gs_bm='"+gsdmVehic+"'";  
561 - }  
562 - if(fgsdmVehic.toString()!=""){  
563 - sql+=" and r.fgs_bm='"+fgsdmVehic +"'";  
564 - }  
565 - sql += " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_name,y.YH,y.JZL,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "; 644 + public List<Vehicleloading> vehicleloading(String line, String date) {
  645 +
  646 + String sql="select r.s_gh,r.s_name, "
  647 + + " r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm"
  648 + + " from bsth_c_s_sp_info_real r where r.schedule_date_str = '"+date+"' "
  649 + + " and r.xl_bm = '"+line+"' group by r.s_gh,r.s_name,"
  650 + + " r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm";
  651 +
566 List<Vehicleloading> list = jdbcTemplate.query(sql, new RowMapper<Vehicleloading>() { 652 List<Vehicleloading> list = jdbcTemplate.query(sql, new RowMapper<Vehicleloading>() {
567 @Override 653 @Override
568 public Vehicleloading mapRow(ResultSet arg0, int arg1) throws SQLException { 654 public Vehicleloading mapRow(ResultSet arg0, int arg1) throws SQLException {
569 Vehicleloading ve = new Vehicleloading(); 655 Vehicleloading ve = new Vehicleloading();
570 - ve.setrQ(arg0.getString("schedule_date_str"));  
571 - ve.setgS(arg0.getString("gs_name")); 656 + ve.setgS(BasicData.businessFgsCodeNameMap.get(arg0.getString("fgs_bm")+"_"+arg0.getString("gs_bm")));
572 ve.setxL(arg0.getString("xl_name")); 657 ve.setxL(arg0.getString("xl_name"));
573 ve.setClzbh(arg0.getString("cl_zbh")); 658 ve.setClzbh(arg0.getString("cl_zbh"));
574 - ve.setJzl(arg0.getString("JZL"));  
575 - ve.setHyl(arg0.getString("YH"));  
576 - // ve.setLs(arg0.getString("").toString());//尿素  
577 ve.setJgh(arg0.getString("j_gh").toString()); 659 ve.setJgh(arg0.getString("j_gh").toString());
578 return ve; 660 return ve;
579 } 661 }
580 }); 662 });
581 663
582 - for(int i=0;i<list.size();i++){  
583 - Vehicleloading v=list.get(i);  
584 - Map<String, Object> maps = new HashMap<>();  
585 - maps = commonService.findKMBC2(v.getJgh(), v.getClzbh(),  
586 - v.getrQ());  
587 - v.setJhlc(maps.get("jhlc") == null ? "" : maps.get("jhlc").toString());  
588 - v.setJhbc(maps.get("jhbc").toString() == null ? "" : maps.get("jhbc").toString());// 计划班次  
589 - v.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString());// 实际班次  
590 - }  
591 664
  665 + List<Ylb> listYlb= ylbRepository.obtainYl(startDate, "", "", line, "", "xlbm");
  666 + List<ScheduleRealInfo> listReal=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date);
  667 + for (int i = 0; i < list.size(); i++) {
  668 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  669 + Vehicleloading sin=list.get(i);
  670 + sin.setrQ(date);
  671 + String jsy=sin.getJgh();
  672 + String clzbh=sin.getClzbh();
  673 + for (int j = 0; j < listReal.size(); j++) {
  674 + ScheduleRealInfo s=listReal.get(j);
  675 + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)){
  676 + newList.add(s);
  677 + }
  678 + }
  679 +
  680 + int jhbc=culateMileageService.culateJhbc(newList, "");
  681 + int sjbc=culateMileageService.culateSjbc(newList, "");
  682 + int ljbc=culateMileageService.culateLjbc(newList, "");
  683 + double yygl=culateMileageService.culateSjgl(newList);
  684 + double ljgl=culateMileageService.culateLjgl(newList);
  685 + double ksgl=culateMileageService.culateKsgl(newList);
  686 + double jcgl=culateMileageService.culateJccgl(newList);
  687 + double zyygl=Arith.add(yygl, ljgl);
  688 + double zksgl=Arith.add(ksgl, jcgl);
  689 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  690 + sin.setJhbc(String.valueOf(jhbc));
  691 + sin.setSjbc(String.valueOf(sjbc+ljbc));
  692 + double yhl=0.0;
  693 + double jzl=0.0;
  694 + double fyy=0.0;
  695 + double ns=0.0;
  696 + for (int j = 0; j < listYlb.size(); j++) {
  697 + Ylb y=listYlb.get(j);
  698 + if(y.getJsy().equals(jsy) && y.getNbbm().equals(clzbh)){
  699 + yhl=Arith.add(yhl, y.getYh()==null?0:y.getYh());
  700 + jzl=Arith.add(jzl, y.getJzl()==null?0:y.getJzl());
  701 + fyy=Arith.add(fyy, y.getSh()==null?0:y.getSh());
  702 + ns =Arith.add(ns, y.getNs()==null?0:y.getNs());
  703 + }
  704 + }
  705 + sin.setHyl(String.valueOf(yhl));
  706 + sin.setJzl(String.valueOf(jzl));
  707 + sin.setUnyyyl(String.valueOf(fyy));
  708 + sin.setLs(String.valueOf(ns));
  709 + }
592 return list; 710 return list;
593 } 711 }
594 712
@@ -816,7 +934,7 @@ public class FormsServiceImpl implements FormsService { @@ -816,7 +934,7 @@ public class FormsServiceImpl implements FormsService {
816 } 934 }
817 935
818 String fgsbm=""; 936 String fgsbm="";
819 - if(map.get("fgsdmDaily").toString()!=null){ 937 + if(map.get("fgsdmDaily")!=null){
820 fgsbm=map.get("fgsdmDaily").toString(); 938 fgsbm=map.get("fgsdmDaily").toString();
821 } 939 }
822 940
@@ -853,6 +971,12 @@ public class FormsServiceImpl implements FormsService { @@ -853,6 +971,12 @@ public class FormsServiceImpl implements FormsService {
853 for(int i=0;i<list.size();i++){ 971 for(int i=0;i<list.size();i++){
854 sList =new ArrayList<ScheduleRealInfo>(); 972 sList =new ArrayList<ScheduleRealInfo>();
855 Daily d=list.get(i); 973 Daily d=list.get(i);
  974 + if(d.getYh()==null){
  975 + d.setYh("0");
  976 + }else{
  977 + if(d.getYh().equals(""))
  978 + d.setYh("0");
  979 + }
856 for (int j = 0; j < lists.size(); j++) { 980 for (int j = 0; j < lists.size(); j++) {
857 ScheduleRealInfo s=lists.get(j); 981 ScheduleRealInfo s=lists.get(j);
858 if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){ 982 if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){
src/main/java/com/bsth/service/realcontrol/DataManagerService.java 0 → 100644
  1 +package com.bsth.service.realcontrol;
  2 +
  3 +import java.util.Map;
  4 +
  5 +/**
  6 + * Created by panzhao on 2017/4/18.
  7 + */
  8 +public interface DataManagerService {
  9 +
  10 + Map<String, Object> carInfos(Integer lineId);
  11 +
  12 + Map<String,Object> updateDevices(String jsonStr);
  13 +}
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -161,4 +161,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -161,4 +161,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
161 void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type); 161 void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type);
162 162
163 Map<String,Object> revokeRealArrive(Long id); 163 Map<String,Object> revokeRealArrive(Long id);
  164 +
  165 + Map<String,Object> lateAdjust(String idx, float minute);
  166 +
  167 + List<ScheduleRealInfo> allLate2(String idx);
164 } 168 }
src/main/java/com/bsth/service/realcontrol/impl/DataManagerServiceImpl.java 0 → 100644
  1 +package com.bsth.service.realcontrol.impl;
  2 +
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.bsth.common.ResponseCode;
  6 +import com.bsth.data.BasicData;
  7 +import com.bsth.entity.Cars;
  8 +import com.bsth.repository.CarsRepository;
  9 +import com.bsth.service.realcontrol.DataManagerService;
  10 +import com.bsth.util.db.DBUtils_oldSystem;
  11 +import org.slf4j.Logger;
  12 +import org.slf4j.LoggerFactory;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.jdbc.core.JdbcTemplate;
  15 +import org.springframework.stereotype.Service;
  16 +
  17 +import java.util.ArrayList;
  18 +import java.util.HashMap;
  19 +import java.util.List;
  20 +import java.util.Map;
  21 +
  22 +/**
  23 + * Created by panzhao on 2017/4/18.
  24 + */
  25 +@Service
  26 +public class DataManagerServiceImpl implements DataManagerService{
  27 +
  28 + @Autowired
  29 + CarsRepository carsRepository;
  30 +
  31 + @Autowired
  32 + JdbcTemplate controlJdbcTemp;
  33 +
  34 + @Autowired
  35 + BasicData.BasicDataLoader dataLoader;
  36 +
  37 + Logger logger = LoggerFactory.getLogger(this.getClass());
  38 +
  39 + @Override
  40 + public Map<String, Object> carInfos(Integer lineId) {
  41 +
  42 + Map<String, Object> rs = new HashMap<>();
  43 + try {
  44 + List<Map<String, String>> nowData = new ArrayList<>();
  45 + List<Map<String, String>> oldData = new ArrayList<>();
  46 + Map<String, String> map;
  47 +
  48 + //查询新系统车辆信息
  49 + List<Cars> list = carsRepository.findCarsByLineId(lineId);
  50 + for(Cars c : list){
  51 + map = new HashMap<>();
  52 + map.put("nbbm", c.getInsideCode());
  53 + map.put("device", c.getEquipmentCode());
  54 + nowData.add(map);
  55 + }
  56 +
  57 + //获取老系统数据
  58 + JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_oldSystem.getDataSource());
  59 + List<Map<String, Object>> oyList = jdbcTemplate.queryForList("select NBBM,SBBH from JJWGPS_T_CLXXB t where xlbm=?", BasicData.lineId2CodeMap.get(lineId));
  60 + for(Map<String, Object> tempMap : oyList){
  61 + map = new HashMap<>();
  62 + map.put("nbbm", tempMap.get("NBBM").toString());
  63 + map.put("device", tempMap.get("SBBH").toString());
  64 + oldData.add(map);
  65 + }
  66 +
  67 + rs.put("status", ResponseCode.SUCCESS);
  68 + rs.put("nows", nowData);
  69 + rs.put("olds", oldData);
  70 + }catch (Exception e){
  71 + logger.error("", e);
  72 + rs.put("status", ResponseCode.ERROR);
  73 + rs.put("msg", e.getMessage());
  74 + }
  75 +
  76 + return rs;
  77 + }
  78 +
  79 + /**
  80 + * 更新设备号
  81 + * @param jsonStr
  82 + * @return
  83 + */
  84 + @Override
  85 + public Map<String, Object> updateDevices(String jsonStr) {
  86 + Map<String, Object> rs = new HashMap<>();
  87 + try {
  88 + int count=0;
  89 + JSONArray array = JSONArray.parseArray(jsonStr);
  90 + JSONObject jObj;
  91 + for(int i = 0; i < array.size(); i ++){
  92 + jObj = array.getJSONObject(i);
  93 + count += controlJdbcTemp.update("update bsth_c_cars set equipment_code=? where inside_code=?"
  94 + , jObj.getString("device"), jObj.getString("nbbm"));
  95 + }
  96 +
  97 + //刷新缓存
  98 + dataLoader.loadDeviceInfo();
  99 + rs.put("status", ResponseCode.SUCCESS);
  100 + rs.put("count", count);
  101 + }catch (Exception e){
  102 + logger.error("", e);
  103 + rs.put("status", ResponseCode.ERROR);
  104 + rs.put("msg", e.getMessage());
  105 + }
  106 + return rs;
  107 + }
  108 +}
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -3,6 +3,7 @@ package com.bsth.service.realcontrol.impl; @@ -3,6 +3,7 @@ package com.bsth.service.realcontrol.impl;
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.alibaba.fastjson.JSONArray; 4 import com.alibaba.fastjson.JSONArray;
5 import com.alibaba.fastjson.JSONObject; 5 import com.alibaba.fastjson.JSONObject;
  6 +import com.alibaba.fastjson.support.odps.udf.CodecCheck.A;
6 import com.bsth.common.Constants; 7 import com.bsth.common.Constants;
7 import com.bsth.common.ResponseCode; 8 import com.bsth.common.ResponseCode;
8 import com.bsth.controller.realcontrol.dto.ChangePersonCar; 9 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
@@ -13,6 +14,7 @@ import com.bsth.data.LineConfigData; @@ -13,6 +14,7 @@ import com.bsth.data.LineConfigData;
13 import com.bsth.data.schedule.DayOfSchedule; 14 import com.bsth.data.schedule.DayOfSchedule;
14 import com.bsth.data.schedule.SchAttrCalculator; 15 import com.bsth.data.schedule.SchAttrCalculator;
15 import com.bsth.data.schedule.ScheduleComparator; 16 import com.bsth.data.schedule.ScheduleComparator;
  17 +import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
16 import com.bsth.entity.Cars; 18 import com.bsth.entity.Cars;
17 import com.bsth.entity.Line; 19 import com.bsth.entity.Line;
18 import com.bsth.entity.Personnel; 20 import com.bsth.entity.Personnel;
@@ -176,6 +178,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -176,6 +178,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
176 schedule.setDfsjAll(dfsj); 178 schedule.setDfsjAll(dfsj);
177 schedule.addRemarks(remarks); 179 schedule.addRemarks(remarks);
178 180
  181 + //取消应发未到标记
  182 + if(schedule.isLate2()){
  183 + schedule.setLate2(false);
  184 + LateAdjustHandle.remove(schedule);
  185 + }
  186 +
179 List<ScheduleRealInfo> ts = new ArrayList<>(); 187 List<ScheduleRealInfo> ts = new ArrayList<>();
180 ts.add(schedule); 188 ts.add(schedule);
181 //调整终点时间和下一个班次的应到时间 189 //调整终点时间和下一个班次的应到时间
@@ -510,7 +518,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -510,7 +518,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
510 + " from bsth_c_s_sp_info_real s " 518 + " from bsth_c_s_sp_info_real s "
511 + " where s.xl_Bm = '" + line + "' and DATE_FORMAT(s.schedule_Date,'%Y-%m-%d') ='" + date + "' " 519 + " where s.xl_Bm = '" + line + "' and DATE_FORMAT(s.schedule_Date,'%Y-%m-%d') ='" + date + "' "
512 + " GROUP BY s.j_Gh,s.cl_Zbh,s.lp_Name ,s.j_Name" 520 + " GROUP BY s.j_Gh,s.cl_Zbh,s.lp_Name ,s.j_Name"
513 - + " order by (" + state + "),schedule_date_str,fcsj " + type; 521 + + " order by (" + state + "),dateStr,fcsj " + type;
514 List<ScheduleRealInfo> list = jdbcTemplate.query(sqlPlan, 522 List<ScheduleRealInfo> list = jdbcTemplate.query(sqlPlan,
515 new RowMapper<ScheduleRealInfo>() { 523 new RowMapper<ScheduleRealInfo>() {
516 @Override 524 @Override
@@ -826,9 +834,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -826,9 +834,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
826 sch.setFcsjActualAll(fcsjActual); 834 sch.setFcsjActualAll(fcsjActual);
827 sch.addRemarks(remarks); 835 sch.addRemarks(remarks);
828 sch.calcStatus(); 836 sch.calcStatus();
  837 + if(sch.isLate2()){
  838 + //取消应发未到标记
  839 + sch.setLate2(false);
  840 + LateAdjustHandle.remove(sch);
  841 + }
829 842
830 dayOfSchedule.save(sch); 843 dayOfSchedule.save(sch);
831 - //scheduleRealInfoRepository.save(sch);  
832 844
833 ts.add(sch); 845 ts.add(sch);
834 846
@@ -1015,8 +1027,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1015,8 +1027,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1015 t = fmtyyyyMMddHHmm.parseMillis(sch.getScheduleDateStr() + fcsjActual); 1027 t = fmtyyyyMMddHHmm.parseMillis(sch.getScheduleDateStr() + fcsjActual);
1016 1028
1017 //调整实发 1029 //调整实发
1018 - if (!fcsjActual.equals(sch.getFcsjActual())) 1030 + if (!fcsjActual.equals(sch.getFcsjActual())){
1019 sch.setFcsjActualAll(t); 1031 sch.setFcsjActualAll(t);
  1032 +
  1033 + //取消应发未到标记
  1034 + if(sch.isLate2()){
  1035 + sch.setLate2(false);
  1036 + LateAdjustHandle.remove(sch);
  1037 + }
  1038 + }
1020 } else { 1039 } else {
1021 //撤销实发 1040 //撤销实发
1022 if (sch.getFcsjActual() != null) 1041 if (sch.getFcsjActual() != null)
@@ -1107,6 +1126,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1107,6 +1126,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1107 //重新计算是否误点 1126 //重新计算是否误点
1108 schedule.reCalcLate(); 1127 schedule.reCalcLate();
1109 1128
  1129 + //取消应发未到标记
  1130 + if(schedule.isLate2()){
  1131 + schedule.setLate2(false);
  1132 + LateAdjustHandle.remove(schedule);
  1133 + }
1110 dayOfSchedule.save(schedule); 1134 dayOfSchedule.save(schedule);
1111 } 1135 }
1112 1136
@@ -1403,7 +1427,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1403,7 +1427,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1403 lists.add(s); 1427 lists.add(s);
1404 } 1428 }
1405 } 1429 }
1406 - double ksgl=culateService.culateKsgl(lists); 1430 + double ksgl=culateService.culateKsgl(list);
1407 double sjgl=culateService.culateSjgl(lists); 1431 double sjgl=culateService.culateSjgl(lists);
1408 double jccgl=culateService.culateJccgl(lists); 1432 double jccgl=culateService.culateJccgl(lists);
1409 double ljgl=culateService.culateLjgl(lists); 1433 double ljgl=culateService.culateLjgl(lists);
@@ -1646,9 +1670,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1646,9 +1670,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1646 List<ScheduleRealInfo> lists = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date); 1670 List<ScheduleRealInfo> lists = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
1647 Map<String, Object> map = new HashMap<String, Object>(); 1671 Map<String, Object> map = new HashMap<String, Object>();
1648 map.put("xlName", xlName); 1672 map.put("xlName", xlName);
1649 - map.put("jhlc", culateService.culateJhgl(lists)); 1673 + double jhlc=culateService.culateJhgl(lists);
  1674 + map.put("jhlc",jhlc);
1650 map.put("sjgl", Arith.add(culateService.culateSjgl(lists),culateService.culateLjgl(lists))); 1675 map.put("sjgl", Arith.add(culateService.culateSjgl(lists),culateService.culateLjgl(lists)));
1651 - map.put("ssgl", culateService.culateLbgl(lists)); 1676 + double lbgl=culateService.culateLbgl(lists);
  1677 + map.put("ssgl", lbgl);
1652 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻")); 1678 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
1653 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢")); 1679 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
1654 map.put("ssgl_gz", culateService.culateCJLC(lists, "故障")); 1680 map.put("ssgl_gz", culateService.culateCJLC(lists, "故障"));
@@ -1665,7 +1691,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1665,7 +1691,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1665 double ssgl_qt=culateService.culateCJLC(lists, "其他"); 1691 double ssgl_qt=culateService.culateCJLC(lists, "其他");
1666 map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by),Arith.add(ssgl_cj, ssgl_qt))); 1692 map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by),Arith.add(ssgl_cj, ssgl_qt)));
1667 map.put("ssbc", culateService.culateLbbc(lists)); 1693 map.put("ssbc", culateService.culateLbbc(lists));
1668 - map.put("ljgl", culateService.culateLjgl(lists)); 1694 + double ljgl=culateService.culateLjgl(lists);
  1695 + map.put("ljgl", ljgl);
1669 map.put("jhbc", culateService.culateJhbc(lists,"")); 1696 map.put("jhbc", culateService.culateJhbc(lists,""));
1670 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf")); 1697 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
1671 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf")); 1698 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
@@ -1685,6 +1712,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1685,6 +1712,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1685 map.put("djg_m", 0); 1712 map.put("djg_m", 0);
1686 map.put("djg_a", 0); 1713 map.put("djg_a", 0);
1687 map.put("djg_time", 0); 1714 map.put("djg_time", 0);
  1715 + map.put("jls", Arith.sub(Arith.add(jhlc, ljgl), lbgl));
1688 lMap.add(map); 1716 lMap.add(map);
1689 return lMap; 1717 return lMap;
1690 } 1718 }
@@ -2238,8 +2266,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2238,8 +2266,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2238 public final Map<String, Object> staticTj(List<ScheduleRealInfo> lists){ 2266 public final Map<String, Object> staticTj(List<ScheduleRealInfo> lists){
2239 Map<String, Object> map = new HashMap<String, Object>(); 2267 Map<String, Object> map = new HashMap<String, Object>();
2240 map.put("xlName", lists.get(0).getXlName()); 2268 map.put("xlName", lists.get(0).getXlName());
2241 - map.put("jhlc", culateService.culateJhgl(lists));  
2242 - map.put("sjgl", Arith.add(culateService.culateSjgl(lists),culateService.culateLjgl(lists))); 2269 + double jhyygl=culateService.culateJhgl(lists);//计划营运公里
  2270 + double jhjcclc= culateService.culateJhJccgl(lists);//计划进出场公里(计划空驶公里)
  2271 + map.put("jhlc", jhyygl);
  2272 + map.put("jcclc", jhjcclc);
  2273 + map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  2274 +
  2275 + double ljgl= culateService.culateLjgl(lists);
  2276 + double sjyygl= culateService.culateSjgl(lists);
  2277 + double zyygl= Arith.add(sjyygl,ljgl);
  2278 +
  2279 + double sjjccgl=culateService.culateJccgl(lists);
  2280 + double sjksgl=culateService.culateKsgl(lists);
  2281 + double zksgl=Arith.add(sjjccgl, sjksgl);
  2282 + map.put("sjzgl", Arith.add(zyygl, zksgl));
  2283 + map.put("sjgl",zyygl);
  2284 + map.put("sjksgl", zksgl);
  2285 +
2243 map.put("ssgl", culateService.culateLbgl(lists)); 2286 map.put("ssgl", culateService.culateLbgl(lists));
2244 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻")); 2287 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
2245 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢")); 2288 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
@@ -2253,7 +2296,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2253,7 +2296,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2253 map.put("ssgl_yw", culateService.culateCJLC(lists, "援外")); 2296 map.put("ssgl_yw", culateService.culateCJLC(lists, "援外"));
2254 map.put("ssgl_other", culateService.culateCJLC(lists, "其他")); 2297 map.put("ssgl_other", culateService.culateCJLC(lists, "其他"));
2255 map.put("ssbc", culateService.culateLbbc(lists)); 2298 map.put("ssbc", culateService.culateLbbc(lists));
2256 - map.put("ljgl", culateService.culateLjgl(lists)); 2299 + map.put("ljgl", ljgl);
2257 map.put("jhbc", culateService.culateJhbc(lists,"")); 2300 map.put("jhbc", culateService.culateJhbc(lists,""));
2258 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf")); 2301 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
2259 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf")); 2302 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
@@ -2316,8 +2359,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2316,8 +2359,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2316 2359
2317 Map<String, Object> map = new HashMap<String, Object>(); 2360 Map<String, Object> map = new HashMap<String, Object>();
2318 map.put("xlName", "合计"); 2361 map.put("xlName", "合计");
2319 - map.put("jhlc", culateService.culateJhgl(list));  
2320 - map.put("sjgl", Arith.add(culateService.culateSjgl(list),culateService.culateLjgl(list))); 2362 + double jhyygl=culateService.culateJhgl(list);//计划营运公里
  2363 + double jhjcclc= culateService.culateJhJccgl(list);//计划进出场公里(计划空驶公里)
  2364 + map.put("jhlc", jhyygl);
  2365 + map.put("jcclc", jhjcclc);
  2366 + map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  2367 +
  2368 + double ljgl= culateService.culateLjgl(list);
  2369 + double sjyygl= culateService.culateSjgl(list);
  2370 + double zyygl= Arith.add(sjyygl,ljgl);
  2371 +
  2372 + double sjjccgl=culateService.culateJccgl(list);
  2373 + double sjksgl=culateService.culateKsgl(list);
  2374 + double zksgl=Arith.add(sjjccgl, sjksgl);
  2375 + map.put("sjzgl", Arith.add(zyygl, zksgl));
  2376 + map.put("sjgl",zyygl);
  2377 + map.put("sjksgl", zksgl);
2321 map.put("ssgl", culateService.culateLbgl(list)); 2378 map.put("ssgl", culateService.culateLbgl(list));
2322 map.put("ssgl_lz", culateService.culateCJLC(list, "路阻")); 2379 map.put("ssgl_lz", culateService.culateCJLC(list, "路阻"));
2323 map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢")); 2380 map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢"));
@@ -2331,7 +2388,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2331,7 +2388,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2331 map.put("ssgl_yw", culateService.culateCJLC(list, "援外")); 2388 map.put("ssgl_yw", culateService.culateCJLC(list, "援外"));
2332 map.put("ssgl_other", culateService.culateCJLC(list, "其他")); 2389 map.put("ssgl_other", culateService.culateCJLC(list, "其他"));
2333 map.put("ssbc", culateService.culateLbbc(list)); 2390 map.put("ssbc", culateService.culateLbbc(list));
2334 - map.put("ljgl", culateService.culateLjgl(list)); 2391 + map.put("ljgl", ljgl);
2335 map.put("jhbc", culateService.culateJhbc(list,"")); 2392 map.put("jhbc", culateService.culateJhbc(list,""));
2336 map.put("jhbc_m", culateService.culateJhbc(list, "zgf")); 2393 map.put("jhbc_m", culateService.culateJhbc(list, "zgf"));
2337 map.put("jhbc_a", culateService.culateJhbc(list, "wgf")); 2394 map.put("jhbc_a", culateService.culateJhbc(list, "wgf"));
@@ -2506,7 +2563,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2506,7 +2563,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2506 list.add(t); 2563 list.add(t);
2507 } 2564 }
2508 2565
2509 - List<ScheduleRealInfo> listInfo2 = scheduleRealInfoRepository.scheduleByDateAndLine(line, date); 2566 + List<ScheduleRealInfo> listInfo2 = scheduleRealInfoRepository.scheduleByDateAndLineQp(line, date);
2510 List<ScheduleRealInfo> xList = new ArrayList<ScheduleRealInfo>(); 2567 List<ScheduleRealInfo> xList = new ArrayList<ScheduleRealInfo>();
2511 List<ScheduleRealInfo> yList = new ArrayList<ScheduleRealInfo>(); 2568 List<ScheduleRealInfo> yList = new ArrayList<ScheduleRealInfo>();
2512 List<ScheduleRealInfo> zList = new ArrayList<ScheduleRealInfo>(); 2569 List<ScheduleRealInfo> zList = new ArrayList<ScheduleRealInfo>();
@@ -4093,4 +4150,53 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -4093,4 +4150,53 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
4093 } 4150 }
4094 return rs; 4151 return rs;
4095 } 4152 }
  4153 +
  4154 + @Override
  4155 + public Map<String, Object> lateAdjust(String idx, float minute) {
  4156 + Map<String, Object> rs = new HashMap<>();
  4157 + try {
  4158 + int count = 0;
  4159 + List<ScheduleRealInfo> list = new ArrayList<>();
  4160 + List<String> ids = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(idx);
  4161 +
  4162 + ScheduleRealInfo sch;
  4163 + for(String id : ids){
  4164 + sch = dayOfSchedule.get(Long.parseLong(id));
  4165 + if(sch != null && sch.getStatus() == 0){
  4166 + if(minute > 0){
  4167 + sch.setLateMinute(minute);
  4168 + }
  4169 + else if(minute == 0){
  4170 + LateAdjustHandle.remove(sch);
  4171 + }
  4172 + count ++;
  4173 + list.add(sch);
  4174 + }
  4175 + }
  4176 +
  4177 + rs.put("status", ResponseCode.SUCCESS);
  4178 + rs.put("count", count);
  4179 + rs.put("ts", list);
  4180 + }catch (Exception e){
  4181 + logger.error("", e);
  4182 + rs.put("status", ResponseCode.ERROR);
  4183 + rs.put("msg", e.getMessage());
  4184 + }
  4185 +
  4186 + return rs;
  4187 + }
  4188 +
  4189 + @Override
  4190 + public List<ScheduleRealInfo> allLate2(String idx) {
  4191 + List<ScheduleRealInfo> rs = new ArrayList<>();
  4192 + List<String> ids = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(idx);
  4193 +
  4194 + Collection<ScheduleRealInfo> all = LateAdjustHandle.allLateSch();
  4195 + for(ScheduleRealInfo sch : all){
  4196 + if(ids.indexOf(sch.getXlBm()) != -1){
  4197 + rs.add(sch);
  4198 + }
  4199 + }
  4200 + return rs;
  4201 + }
4096 } 4202 }
4097 \ No newline at end of file 4203 \ No newline at end of file
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
1 package com.bsth.service.report.impl; 1 package com.bsth.service.report.impl;
2 2
3 import java.util.ArrayList; 3 import java.util.ArrayList;
  4 +import java.util.Collections;
4 import java.util.HashMap; 5 import java.util.HashMap;
5 import java.util.Iterator; 6 import java.util.Iterator;
6 import java.util.List; 7 import java.util.List;
@@ -14,6 +15,7 @@ import com.bsth.entity.realcontrol.ChildTaskPlan; @@ -14,6 +15,7 @@ import com.bsth.entity.realcontrol.ChildTaskPlan;
14 import com.bsth.entity.realcontrol.ScheduleRealInfo; 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 import com.bsth.service.report.CulateMileageService; 16 import com.bsth.service.report.CulateMileageService;
16 import com.bsth.util.Arith; 17 import com.bsth.util.Arith;
  18 +import com.bsth.util.ComparableJob;
17 19
18 @Service 20 @Service
19 public class CulateMileageServiceImpl implements CulateMileageService{ 21 public class CulateMileageServiceImpl implements CulateMileageService{
@@ -25,6 +27,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -25,6 +27,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
25 @Override 27 @Override
26 public List<Map<String, Object>> jobFwqk(List<ScheduleRealInfo> lists) { 28 public List<Map<String, Object>> jobFwqk(List<ScheduleRealInfo> lists) {
27 // TODO Auto-generated method stub 29 // TODO Auto-generated method stub
  30 + String[] lblxs = {"配车", "保养","故障","肇事","路阻","纠纷","缺人","客稀","缺车","气候","援外","吊慢","抽减","其他" };
28 List<Map<String, Object>> list=new ArrayList<Map<String,Object>>(); 31 List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
29 for (int i = 0; i < lists.size(); i++) { 32 for (int i = 0; i < lists.size(); i++) {
30 ScheduleRealInfo scheduleRealInfo = lists.get(i); 33 ScheduleRealInfo scheduleRealInfo = lists.get(i);
@@ -47,7 +50,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -47,7 +50,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
47 newMap.put("dz", scheduleRealInfo.getQdzName()); 50 newMap.put("dz", scheduleRealInfo.getQdzName());
48 newMap.put("sj", scheduleRealInfo.getFcsj()); 51 newMap.put("sj", scheduleRealInfo.getFcsj());
49 newMap.put("lbbc", 1); 52 newMap.put("lbbc", 1);
50 - newMap.put("lblc", scheduleRealInfo.getJhlcOrig()); 53 + newMap.put("lblc", scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
51 newMap.put("jyqp", scheduleRealInfo.getRealMileage()); 54 newMap.put("jyqp", scheduleRealInfo.getRealMileage());
52 list.add(newMap); 55 list.add(newMap);
53 } 56 }
@@ -71,7 +74,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -71,7 +74,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
71 newMap.put("dz", childTaskPlan.getStartStationName()); 74 newMap.put("dz", childTaskPlan.getStartStationName());
72 newMap.put("sj", childTaskPlan.getStartDate()); 75 newMap.put("sj", childTaskPlan.getStartDate());
73 newMap.put("lbbc", 0); 76 newMap.put("lbbc", 0);
74 - newMap.put("lblc", childTaskPlan.getMileage()); 77 + newMap.put("lblc", childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage());
75 newMap.put("jyqp", scheduleRealInfo.getRealMileage()); 78 newMap.put("jyqp", scheduleRealInfo.getRealMileage());
76 list.add(newMap); 79 list.add(newMap);
77 80
@@ -80,7 +83,33 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -80,7 +83,33 @@ public class CulateMileageServiceImpl implements CulateMileageService{
80 } 83 }
81 } 84 }
82 } 85 }
83 - return list; 86 + List<Map<String, Object>> listNew=new ArrayList<Map<String,Object>>();
  87 + for (int i = 0; i < lblxs.length; i++) {
  88 + String lx=lblxs[i];
  89 + double lblc=0.0;
  90 + int lbbc=0;
  91 + for (int j = 0; j < list.size(); j++) {
  92 + Map<String, Object> m1=list.get(j);
  93 + m1.put("lx", 0);
  94 + listNew.add(m1);
  95 + if(lx.equals(m1.get("nr").toString())){
  96 + lblc =Arith.add(lblc,Double.parseDouble(m1.get("lblc").toString()));
  97 + lbbc += Integer.parseInt(m1.get("lbbc").toString());
  98 + }
  99 + }
  100 + Map<String, Object> newMap = new HashMap<String, Object>();
  101 + newMap.put("lx", 1);
  102 + newMap.put("nr", lx);
  103 + newMap.put("lp", "小计");
  104 + newMap.put("nbbm", "少驶公里");
  105 + newMap.put("dz", lbbc);
  106 + newMap.put("sj", "少驶公里");
  107 + newMap.put("lblc", lblc);
  108 + listNew.add(newMap);
  109 +
  110 + }
  111 + Collections.sort(listNew, new ComparableJob());
  112 + return listNew;
84 } 113 }
85 114
86 @Override 115 @Override
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
@@ -8,6 +8,7 @@ import java.text.ParseException; @@ -8,6 +8,7 @@ import java.text.ParseException;
8 import java.text.SimpleDateFormat; 8 import java.text.SimpleDateFormat;
9 import java.util.ArrayList; 9 import java.util.ArrayList;
10 import java.util.Calendar; 10 import java.util.Calendar;
  11 +import java.util.Collections;
11 import java.util.Date; 12 import java.util.Date;
12 import java.util.HashMap; 13 import java.util.HashMap;
13 import java.util.Iterator; 14 import java.util.Iterator;
@@ -38,6 +39,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; @@ -38,6 +39,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
38 import com.bsth.service.report.CulateMileageService; 39 import com.bsth.service.report.CulateMileageService;
39 import com.bsth.service.report.ReportService; 40 import com.bsth.service.report.ReportService;
40 import com.bsth.util.Arith; 41 import com.bsth.util.Arith;
  42 +import com.bsth.util.ComparableJob;
41 import com.bsth.util.db.DBUtils_MS; 43 import com.bsth.util.db.DBUtils_MS;
42 44
43 @Service 45 @Service
@@ -179,10 +181,10 @@ public class ReportServiceImpl implements ReportService{ @@ -179,10 +181,10 @@ public class ReportServiceImpl implements ReportService{
179 try { 181 try {
180 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 182 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
181 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 183 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
182 - Long date1=simpleDateFormat.parse(fcsj+" 00:00:00").getTime();  
183 - Long date2=simpleDateFormat.parse(ddsj+" 23:59:59").getTime();  
184 - Date dates1=simpleDateFormat.parse(fcsj+" 00:00:00");  
185 - Date dates2=simpleDateFormat.parse(ddsj+" 00:00:00"); 184 + Long date1=simpleDateFormat.parse(fcsj+":00").getTime();
  185 + Long date2=simpleDateFormat.parse(ddsj+":00").getTime();
  186 + Date dates1=simpleDateFormat.parse(fcsj+":00");
  187 + Date dates2=simpleDateFormat.parse(ddsj+":00");
186 List<ArrivalInfo> lists=load2(line,date1,date2,dates1,dates2,zd,zdlx); 188 List<ArrivalInfo> lists=load2(line,date1,date2,dates1,dates2,zd,zdlx);
187 189
188 for(int i=0;i<lists.size();i++){ 190 for(int i=0;i<lists.size();i++){
@@ -1150,6 +1152,7 @@ public class ReportServiceImpl implements ReportService{ @@ -1150,6 +1152,7 @@ public class ReportServiceImpl implements ReportService{
1150 @Override 1152 @Override
1151 public List<Map<String, Object>> jobFwqk(Map<String, Object> map) { 1153 public List<Map<String, Object>> jobFwqk(Map<String, Object> map) {
1152 // TODO Auto-generated method stub 1154 // TODO Auto-generated method stub
  1155 + String[] lblxs = {"配车", "保养","故障","肇事","路阻","纠纷","缺人","客稀","缺车","气候","援外","吊慢","抽减","其他" };
1153 String line=map.get("line").toString(); 1156 String line=map.get("line").toString();
1154 String date=map.get("date").toString(); 1157 String date=map.get("date").toString();
1155 map.put("bcType", "normal"); 1158 map.put("bcType", "normal");
@@ -1179,7 +1182,7 @@ public class ReportServiceImpl implements ReportService{ @@ -1179,7 +1182,7 @@ public class ReportServiceImpl implements ReportService{
1179 newMap.put("sj", scheduleRealInfo.getFcsj()); 1182 newMap.put("sj", scheduleRealInfo.getFcsj());
1180 newMap.put("lbbc", 1); 1183 newMap.put("lbbc", 1);
1181 newMap.put("lblc", scheduleRealInfo.getJhlcOrig()); 1184 newMap.put("lblc", scheduleRealInfo.getJhlcOrig());
1182 - newMap.put("jyqp", scheduleRealInfo.getRealMileage()); 1185 + newMap.put("jyqp", scheduleRealInfo.getRemarks());
1183 list.add(newMap); 1186 list.add(newMap);
1184 } 1187 }
1185 1188
@@ -1205,7 +1208,7 @@ public class ReportServiceImpl implements ReportService{ @@ -1205,7 +1208,7 @@ public class ReportServiceImpl implements ReportService{
1205 newMap.put("sj", childTaskPlan.getStartDate()); 1208 newMap.put("sj", childTaskPlan.getStartDate());
1206 newMap.put("lbbc", 0); 1209 newMap.put("lbbc", 0);
1207 newMap.put("lblc", childTaskPlan.getMileage()); 1210 newMap.put("lblc", childTaskPlan.getMileage());
1208 - newMap.put("jyqp", scheduleRealInfo.getRealMileage()); 1211 + newMap.put("jyqp", childTaskPlan.getRemarks());
1209 list.add(newMap); 1212 list.add(newMap);
1210 1213
1211 } 1214 }
@@ -1213,7 +1216,36 @@ public class ReportServiceImpl implements ReportService{ @@ -1213,7 +1216,36 @@ public class ReportServiceImpl implements ReportService{
1213 } 1216 }
1214 } 1217 }
1215 } 1218 }
1216 - return list; 1219 + List<Map<String, Object>> listNew=new ArrayList<Map<String,Object>>();
  1220 + for (int i = 0; i < lblxs.length; i++) {
  1221 + String lx=lblxs[i];
  1222 + double lblc=0.0;
  1223 + int lbbc=0;
  1224 + for (int j = 0; j < list.size(); j++) {
  1225 + Map<String, Object> m1=list.get(j);
  1226 + if(lx.equals(m1.get("nr").toString())){
  1227 + m1.put("lx", 0);
  1228 + listNew.add(m1);
  1229 + lblc =Arith.add(lblc,Double.parseDouble(m1.get("lblc").toString()));
  1230 + lbbc += Integer.parseInt(m1.get("lbbc").toString());
  1231 + }
  1232 + }
  1233 + if(lblc>0){
  1234 + Map<String, Object> newMap = new HashMap<String, Object>();
  1235 + newMap.put("lx", 1);
  1236 + newMap.put("nr", lx);
  1237 + newMap.put("lp", "小计");
  1238 + newMap.put("nbbm", "少驶班次");
  1239 + newMap.put("jgh", lbbc);
  1240 + newMap.put("sj", "少驶公里");
  1241 + newMap.put("lblc", lblc);
  1242 + listNew.add(newMap);
  1243 + }
  1244 +
  1245 +
  1246 + }
  1247 + Collections.sort(listNew, new ComparableJob());
  1248 + return listNew;
1217 } 1249 }
1218 1250
1219 //统计临加班次详细信息 1251 //统计临加班次详细信息
src/main/java/com/bsth/util/ComparableJob.java 0 → 100644
  1 +package com.bsth.util;
  2 +
  3 +import java.util.Comparator;
  4 +import java.util.Map;
  5 +
  6 +
  7 +public class ComparableJob implements Comparator<Map<String, Object>>{
  8 +
  9 + @Override
  10 + public int compare(Map<String, Object> o1, Map<String, Object> o2) {
  11 + // TODO Auto-generated method stub
  12 + return o1.get("nr").toString().compareTo(o2.get("nr").toString());
  13 + }
  14 +
  15 +}
src/main/java/com/bsth/util/db/BaseDao_MS.java deleted 100644 → 0
1 -package com.bsth.util.db;  
2 -  
3 -  
4 -import org.apache.commons.lang3.CharUtils;  
5 -import org.apache.commons.lang3.StringUtils;  
6 -import org.slf4j.Logger;  
7 -import org.slf4j.LoggerFactory;  
8 -  
9 -  
10 -/**  
11 - *  
12 - * @ClassName: BaseDao  
13 - * @author PanZhao  
14 - * @param <T>  
15 - * @date 2016年6月27日 上午10:33:12  
16 - *  
17 - */  
18 -public class BaseDao_MS {  
19 -  
20 - static Logger logger = LoggerFactory.getLogger(BaseDao_MS.class);  
21 -  
22 - /**  
23 - *  
24 - * @Title: propertyToField  
25 - * @Description: TODO(java转数据库字段名)  
26 - * @param @param property  
27 - * @throws  
28 - */  
29 - public static String propertyToField(String property) {  
30 - if (null == property) {  
31 - return "";  
32 - }  
33 - char[] chars = property.toCharArray();  
34 - StringBuffer sb = new StringBuffer();  
35 - for (char c : chars) {  
36 - if (CharUtils.isAsciiAlphaUpper(c)) {  
37 - sb.append("_" + StringUtils.lowerCase(CharUtils.toString(c)));  
38 - } else {  
39 - sb.append(c);  
40 - }  
41 - }  
42 - return sb.toString();  
43 - }  
44 -}  
src/main/java/com/bsth/util/db/DBUtils_MS.java
1 package com.bsth.util.db; 1 package com.bsth.util.db;
2 2
  3 +import com.mchange.v2.c3p0.DataSources;
  4 +import org.apache.log4j.Logger;
  5 +
  6 +import javax.sql.DataSource;
3 import java.io.FileNotFoundException; 7 import java.io.FileNotFoundException;
4 import java.io.IOException; 8 import java.io.IOException;
5 import java.sql.Connection; 9 import java.sql.Connection;
@@ -10,15 +14,8 @@ import java.util.HashMap; @@ -10,15 +14,8 @@ import java.util.HashMap;
10 import java.util.Map; 14 import java.util.Map;
11 import java.util.Properties; 15 import java.util.Properties;
12 16
13 -import javax.sql.DataSource;  
14 -  
15 -import org.apache.log4j.Logger;  
16 -import org.springframework.stereotype.Component;  
17 -  
18 -import com.mchange.v2.c3p0.DataSources;  
19 -  
20 /** 17 /**
21 - * 808GPS SQL Server数据库连接工具类 18 + * 网关ms库连接池
22 * @author PanZhao 19 * @author PanZhao
23 * 20 *
24 */ 21 */
src/main/java/com/bsth/util/db/DBUtils_oldSystem.java 0 → 100644
  1 +package com.bsth.util.db;
  2 +
  3 +import com.mchange.v2.c3p0.DataSources;
  4 +import org.apache.log4j.Logger;
  5 +
  6 +import javax.sql.DataSource;
  7 +import java.sql.Connection;
  8 +import java.sql.ResultSet;
  9 +import java.sql.SQLException;
  10 +import java.sql.Statement;
  11 +import java.util.HashMap;
  12 +import java.util.Map;
  13 +
  14 +/**
  15 + * 老系统数据库连接池(保持少量的连接,不会对老系统有什么影响)
  16 + * @author PanZhao
  17 + *
  18 + */
  19 +//@Component
  20 +public class DBUtils_oldSystem {
  21 +
  22 + private static String url = null;
  23 +
  24 + private static String username = null;
  25 +
  26 + private static String pwd = null;
  27 +
  28 + private static DataSource ds_pooled;
  29 +
  30 + static Logger logger = Logger.getLogger(DBUtils_oldSystem.class);
  31 +
  32 + static {
  33 +
  34 + try {
  35 + // 1. 加载驱动类
  36 + Class.forName("oracle.jdbc.driver.OracleDriver");
  37 +
  38 + url = "jdbc:oracle:thin:@10.10.200.225:1521:orcl";
  39 + username = "jjwgps";
  40 + pwd = "jjwgps";
  41 +
  42 + // 设置连接数据库的配置信息
  43 + DataSource ds_unpooled = DataSources.unpooledDataSource(url,
  44 + username, pwd);
  45 +
  46 + Map<String, Object> pool_conf = new HashMap<String, Object>();
  47 + // 设置最大连接数
  48 + pool_conf.put("maxPoolSize", 5);
  49 +
  50 + pool_conf.put("testConnectionOnCheckout", false);
  51 + //异步检测连接的有效性
  52 + pool_conf.put("testConnectionOnCheckin", true);
  53 + //10分钟检测一次
  54 + pool_conf.put("idleConnectionTestPeriod", 60 * 10);
  55 + ds_pooled = DataSources.pooledDataSource(ds_unpooled, pool_conf);
  56 + } catch (ClassNotFoundException e) {
  57 + logger.error(e.toString());
  58 + e.printStackTrace();
  59 + } catch (SQLException e) {
  60 + logger.error("初始化老系统连接池失败,非正式环境请忽略这个问题!");
  61 + logger.error(e.toString());
  62 + e.printStackTrace();
  63 + }
  64 + }
  65 +
  66 + /**
  67 + * 获取连接对象
  68 + */
  69 + public static Connection getConnection() throws SQLException {
  70 + return ds_pooled.getConnection();
  71 + }
  72 +
  73 + /**
  74 + * 释放连接池资源
  75 + */
  76 + public static void clearup() {
  77 + if (ds_pooled != null) {
  78 + try {
  79 + DataSources.destroy(ds_pooled);
  80 + } catch (SQLException e) {
  81 + logger.error(e.toString());
  82 + e.printStackTrace();
  83 + }
  84 + }
  85 + }
  86 +
  87 + /**
  88 + * 资源关闭
  89 + *
  90 + * @param rs
  91 + * @param stmt
  92 + * @param conn
  93 + */
  94 + public static void close(ResultSet rs, Statement stmt, Connection conn) {
  95 + if (rs != null) {
  96 + try {
  97 + rs.close();
  98 + } catch (SQLException e) {
  99 + logger.error(e.toString());
  100 + e.printStackTrace();
  101 + }
  102 + }
  103 +
  104 + if (stmt != null) {
  105 + try {
  106 + stmt.close();
  107 + } catch (SQLException e) {
  108 + logger.error(e.toString());
  109 + e.printStackTrace();
  110 + }
  111 + }
  112 +
  113 + if (conn != null) {
  114 + try {
  115 + conn.close();
  116 + } catch (SQLException e) {
  117 + logger.error(e.toString());
  118 + e.printStackTrace();
  119 + }
  120 + }
  121 + }
  122 +
  123 + public static DataSource getDataSource(){
  124 + return ds_pooled;
  125 + }
  126 +}
src/main/java/com/bsth/websocket/handler/SendUtils.java
@@ -176,7 +176,7 @@ public class SendUtils{ @@ -176,7 +176,7 @@ public class SendUtils{
176 public void deviceOffline(GpsEntity gps){ 176 public void deviceOffline(GpsEntity gps){
177 Map<String, Object> map = new HashMap<>(); 177 Map<String, Object> map = new HashMap<>();
178 map.put("fn", "deviceOffline"); 178 map.put("fn", "deviceOffline");
179 - map.put("gps", gps);; 179 + map.put("gps", gps);
180 ObjectMapper mapper = new ObjectMapper(); 180 ObjectMapper mapper = new ObjectMapper();
181 181
182 try { 182 try {
@@ -199,4 +199,26 @@ public class SendUtils{ @@ -199,4 +199,26 @@ public class SendUtils{
199 logger.error("", e); 199 logger.error("", e);
200 } 200 }
201 } 201 }
  202 +
  203 + /**
  204 + * 通知客户端,开始进行误点调整
  205 + * @param sch
  206 + */
  207 + public void sendAutoWdtz(ScheduleRealInfo sch, ScheduleRealInfo cancel){
  208 + Map<String, Object> map = new HashMap<>();
  209 + map.put("fn", "auto_wdtz");
  210 + map.put("id", sch.getId());
  211 + if(cancel != null)
  212 + map.put("cancelId", cancel.getId());
  213 + map.put("lineCode", sch.getXlBm());
  214 + map.put("minute", sch.getLateMinute());
  215 + ObjectMapper mapper = new ObjectMapper();
  216 +
  217 + try {
  218 + socketHandler.sendMessageToLine(sch.getXlBm() ,mapper.writeValueAsString(map));
  219 +
  220 + } catch (JsonProcessingException e) {
  221 + logger.error("", e);
  222 + }
  223 + }
202 } 224 }
src/main/resources/datatools/ktrs/carsDataInput.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>  
5 - <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>  
6 - <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</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/>  
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/>  
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>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</created_date>  
81 - <modified_user>-</modified_user>  
82 - <modified_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</modified_date>  
83 - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>  
84 - <is_key_private>N</is_key_private>  
85 - </info>  
86 - <notepads>  
87 - </notepads>  
88 - <connection>  
89 - <name>192.168.168.1_jwgl_dw</name>  
90 - <server>192.168.168.1</server>  
91 - <type>ORACLE</type>  
92 - <access>Native</access>  
93 - <database>orcl</database>  
94 - <port>1521</port>  
95 - <username>jwgl_dw</username>  
96 - <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>  
97 - <servername/>  
98 - <data_tablespace/>  
99 - <index_tablespace/>  
100 - <attributes>  
101 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
102 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
103 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
104 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
105 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
106 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
107 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
108 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
109 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
110 - </attributes>  
111 - </connection>  
112 - <connection>  
113 - <name>bus_control_variable</name>  
114 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
115 - <type>MYSQL</type>  
116 - <access>Native</access>  
117 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
118 - <port>3306</port>  
119 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
120 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
121 - <servername/>  
122 - <data_tablespace/>  
123 - <index_tablespace/>  
124 - <attributes>  
125 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
126 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
127 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
128 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
129 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
130 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
131 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
132 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
133 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
134 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
135 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
136 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
137 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
138 - </attributes>  
139 - </connection>  
140 - <connection>  
141 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
142 - <server>localhost</server>  
143 - <type>MYSQL</type>  
144 - <access>Native</access>  
145 - <database>control</database>  
146 - <port>3306</port>  
147 - <username>root</username>  
148 - <password>Encrypted </password>  
149 - <servername/>  
150 - <data_tablespace/>  
151 - <index_tablespace/>  
152 - <attributes>  
153 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
154 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
155 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
156 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
157 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
158 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
159 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
160 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
161 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
162 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
163 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
164 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
165 - </attributes>  
166 - </connection>  
167 - <connection>  
168 - <name>bus_control_&#x672c;&#x673a;</name>  
169 - <server>localhost</server>  
170 - <type>MYSQL</type>  
171 - <access>Native</access>  
172 - <database>control</database>  
173 - <port>3306</port>  
174 - <username>root</username>  
175 - <password>Encrypted </password>  
176 - <servername/>  
177 - <data_tablespace/>  
178 - <index_tablespace/>  
179 - <attributes>  
180 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
181 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
182 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
183 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
184 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
185 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
186 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
187 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
188 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
189 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
190 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
191 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
192 - </attributes>  
193 - </connection>  
194 - <connection>  
195 - <name>xlab_mysql_youle</name>  
196 - <server>101.231.124.8</server>  
197 - <type>MYSQL</type>  
198 - <access>Native</access>  
199 - <database>xlab_youle</database>  
200 - <port>45687</port>  
201 - <username>xlab-youle</username>  
202 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
203 - <servername/>  
204 - <data_tablespace/>  
205 - <index_tablespace/>  
206 - <attributes>  
207 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
208 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
209 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
210 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
211 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
212 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
213 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
214 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
215 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
216 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
217 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
218 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
219 - </attributes>  
220 - </connection>  
221 - <connection>  
222 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
223 - <server>localhost</server>  
224 - <type>MYSQL</type>  
225 - <access>Native</access>  
226 - <database>xlab_youle</database>  
227 - <port>3306</port>  
228 - <username>root</username>  
229 - <password>Encrypted </password>  
230 - <servername/>  
231 - <data_tablespace/>  
232 - <index_tablespace/>  
233 - <attributes>  
234 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
235 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
236 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
237 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
238 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
239 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
240 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
241 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
242 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
243 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
244 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
245 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
246 - </attributes>  
247 - </connection>  
248 - <connection>  
249 - <name>xlab_youle</name>  
250 - <server/>  
251 - <type>MYSQL</type>  
252 - <access>JNDI</access>  
253 - <database>xlab_youle</database>  
254 - <port>1521</port>  
255 - <username/>  
256 - <password>Encrypted </password>  
257 - <servername/>  
258 - <data_tablespace/>  
259 - <index_tablespace/>  
260 - <attributes>  
261 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
262 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
263 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
264 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
265 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
266 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
267 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
268 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
269 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
270 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
271 - </attributes>  
272 - </connection>  
273 - <order>  
274 - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>  
275 - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>  
276 - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>  
277 - </order>  
278 - <step>  
279 - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>  
280 - <type>ExcelInput</type>  
281 - <description/>  
282 - <distribute>Y</distribute>  
283 - <custom_distribution/>  
284 - <copies>1</copies>  
285 - <partitioning>  
286 - <method>none</method>  
287 - <schema_name/>  
288 - </partitioning>  
289 - <header>Y</header>  
290 - <noempty>Y</noempty>  
291 - <stoponempty>N</stoponempty>  
292 - <filefield/>  
293 - <sheetfield/>  
294 - <sheetrownumfield/>  
295 - <rownumfield/>  
296 - <sheetfield/>  
297 - <filefield/>  
298 - <limit>0</limit>  
299 - <encoding/>  
300 - <add_to_result_filenames>Y</add_to_result_filenames>  
301 - <accept_filenames>Y</accept_filenames>  
302 - <accept_field>filepath_</accept_field>  
303 - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>  
304 - <file>  
305 - <name/>  
306 - <filemask/>  
307 - <exclude_filemask/>  
308 - <file_required>N</file_required>  
309 - <include_subfolders>N</include_subfolders>  
310 - </file>  
311 - <fields>  
312 - <field>  
313 - <name>&#x8f66;&#x724c;&#x53f7;</name>  
314 - <type>String</type>  
315 - <length>-1</length>  
316 - <precision>-1</precision>  
317 - <trim_type>none</trim_type>  
318 - <repeat>N</repeat>  
319 - <format/>  
320 - <currency/>  
321 - <decimal/>  
322 - <group/>  
323 - </field>  
324 - <field>  
325 - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>  
326 - <type>String</type>  
327 - <length>-1</length>  
328 - <precision>-1</precision>  
329 - <trim_type>none</trim_type>  
330 - <repeat>N</repeat>  
331 - <format/>  
332 - <currency/>  
333 - <decimal/>  
334 - <group/>  
335 - </field>  
336 - <field>  
337 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
338 - <type>String</type>  
339 - <length>-1</length>  
340 - <precision>-1</precision>  
341 - <trim_type>none</trim_type>  
342 - <repeat>N</repeat>  
343 - <format/>  
344 - <currency/>  
345 - <decimal/>  
346 - <group/>  
347 - </field>  
348 - <field>  
349 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>  
350 - <type>String</type>  
351 - <length>-1</length>  
352 - <precision>-1</precision>  
353 - <trim_type>none</trim_type>  
354 - <repeat>N</repeat>  
355 - <format/>  
356 - <currency/>  
357 - <decimal/>  
358 - <group/>  
359 - </field>  
360 - <field>  
361 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>  
362 - <type>String</type>  
363 - <length>-1</length>  
364 - <precision>-1</precision>  
365 - <trim_type>none</trim_type>  
366 - <repeat>N</repeat>  
367 - <format/>  
368 - <currency/>  
369 - <decimal/>  
370 - <group/>  
371 - </field>  
372 - <field>  
373 - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>  
374 - <type>String</type>  
375 - <length>-1</length>  
376 - <precision>-1</precision>  
377 - <trim_type>none</trim_type>  
378 - <repeat>N</repeat>  
379 - <format/>  
380 - <currency/>  
381 - <decimal/>  
382 - <group/>  
383 - </field>  
384 - <field>  
385 - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>  
386 - <type>String</type>  
387 - <length>-1</length>  
388 - <precision>-1</precision>  
389 - <trim_type>none</trim_type>  
390 - <repeat>N</repeat>  
391 - <format/>  
392 - <currency/>  
393 - <decimal/>  
394 - <group/>  
395 - </field>  
396 - <field>  
397 - <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>  
398 - <type>String</type>  
399 - <length>-1</length>  
400 - <precision>-1</precision>  
401 - <trim_type>none</trim_type>  
402 - <repeat>N</repeat>  
403 - <format/>  
404 - <currency/>  
405 - <decimal/>  
406 - <group/>  
407 - </field>  
408 - <field>  
409 - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>  
410 - <type>String</type>  
411 - <length>-1</length>  
412 - <precision>-1</precision>  
413 - <trim_type>none</trim_type>  
414 - <repeat>N</repeat>  
415 - <format/>  
416 - <currency/>  
417 - <decimal/>  
418 - <group/>  
419 - </field>  
420 - </fields>  
421 - <sheets>  
422 - <sheet>  
423 - <name>&#x5de5;&#x4f5c;&#x8868;1</name>  
424 - <startrow>0</startrow>  
425 - <startcol>0</startcol>  
426 - </sheet>  
427 - </sheets>  
428 - <strict_types>N</strict_types>  
429 - <error_ignored>N</error_ignored>  
430 - <error_line_skipped>N</error_line_skipped>  
431 - <bad_line_files_destination_directory/>  
432 - <bad_line_files_extension>warning</bad_line_files_extension>  
433 - <error_line_files_destination_directory/>  
434 - <error_line_files_extension>error</error_line_files_extension>  
435 - <line_number_files_destination_directory/>  
436 - <line_number_files_extension>line</line_number_files_extension>  
437 - <shortFileFieldName/>  
438 - <pathFieldName/>  
439 - <hiddenFieldName/>  
440 - <lastModificationTimeFieldName/>  
441 - <uriNameFieldName/>  
442 - <rootUriNameFieldName/>  
443 - <extensionFieldName/>  
444 - <sizeFieldName/>  
445 - <spreadsheet_type>JXL</spreadsheet_type>  
446 - <cluster_schema/>  
447 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
448 - <xloc>131</xloc>  
449 - <yloc>58</yloc>  
450 - <draw>Y</draw>  
451 - </GUI>  
452 - </step>  
453 -  
454 - <step>  
455 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>  
456 - <type>InsertUpdate</type>  
457 - <description/>  
458 - <distribute>Y</distribute>  
459 - <custom_distribution/>  
460 - <copies>1</copies>  
461 - <partitioning>  
462 - <method>none</method>  
463 - <schema_name/>  
464 - </partitioning>  
465 - <connection>bus_control_variable</connection>  
466 - <commit>1000</commit>  
467 - <update_bypassed>N</update_bypassed>  
468 - <lookup>  
469 - <schema/>  
470 - <table>bsth_c_cars</table>  
471 - <key>  
472 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
473 - <field>inside_code</field>  
474 - <condition>&#x3d;</condition>  
475 - <name2/>  
476 - </key>  
477 - <value>  
478 - <name>car_gride</name>  
479 - <rename>&#x8f66;&#x724c;&#x53f7;</rename>  
480 - <update>Y</update>  
481 - </value>  
482 - <value>  
483 - <name>car_code</name>  
484 - <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>  
485 - <update>Y</update>  
486 - </value>  
487 - <value>  
488 - <name>inside_code</name>  
489 - <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>  
490 - <update>Y</update>  
491 - </value>  
492 - <value>  
493 - <name>company</name>  
494 - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>  
495 - <update>Y</update>  
496 - </value>  
497 - <value>  
498 - <name>business_code</name>  
499 - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>  
500 - <update>Y</update>  
501 - </value>  
502 - <value>  
503 - <name>branche_company</name>  
504 - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>  
505 - <update>Y</update>  
506 - </value>  
507 - <value>  
508 - <name>branche_company_code</name>  
509 - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>  
510 - <update>Y</update>  
511 - </value>  
512 - <value>  
513 - <name>supplier_name</name>  
514 - <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>  
515 - <update>Y</update>  
516 - </value>  
517 - <value>  
518 - <name>equipment_code</name>  
519 - <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>  
520 - <update>Y</update>  
521 - </value>  
522 - </lookup>  
523 - <cluster_schema/>  
524 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
525 - <xloc>516</xloc>  
526 - <yloc>138</yloc>  
527 - <draw>Y</draw>  
528 - </GUI>  
529 - </step>  
530 -  
531 - <step>  
532 - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>  
533 - <type>GetVariable</type>  
534 - <description/>  
535 - <distribute>Y</distribute>  
536 - <custom_distribution/>  
537 - <copies>1</copies>  
538 - <partitioning>  
539 - <method>none</method>  
540 - <schema_name/>  
541 - </partitioning>  
542 - <fields>  
543 - <field>  
544 - <name>filepath_</name>  
545 - <variable>&#x24;&#x7b;filepath&#x7d;</variable>  
546 - <type>String</type>  
547 - <format/>  
548 - <currency/>  
549 - <decimal/>  
550 - <group/>  
551 - <length>-1</length>  
552 - <precision>-1</precision>  
553 - <trim_type>none</trim_type>  
554 - </field>  
555 - <field>  
556 - <name>erroroutputdir_</name>  
557 - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>  
558 - <type>String</type>  
559 - <format/>  
560 - <currency/>  
561 - <decimal/>  
562 - <group/>  
563 - <length>-1</length>  
564 - <precision>-1</precision>  
565 - <trim_type>none</trim_type>  
566 - </field>  
567 - </fields>  
568 - <cluster_schema/>  
569 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
570 - <xloc>134</xloc>  
571 - <yloc>183</yloc>  
572 - <draw>Y</draw>  
573 - </GUI>  
574 - </step>  
575 -  
576 - <step>  
577 - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>  
578 - <type>ExcelOutput</type>  
579 - <description/>  
580 - <distribute>Y</distribute>  
581 - <custom_distribution/>  
582 - <copies>1</copies>  
583 - <partitioning>  
584 - <method>none</method>  
585 - <schema_name/>  
586 - </partitioning>  
587 - <header>Y</header>  
588 - <footer>N</footer>  
589 - <encoding/>  
590 - <append>N</append>  
591 - <add_to_result_filenames>Y</add_to_result_filenames>  
592 - <file>  
593 - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>  
594 - <extention>xls</extention>  
595 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
596 - <create_parent_folder>N</create_parent_folder>  
597 - <split>N</split>  
598 - <add_date>N</add_date>  
599 - <add_time>N</add_time>  
600 - <SpecifyFormat>N</SpecifyFormat>  
601 - <date_time_format/>  
602 - <sheetname>Sheet1</sheetname>  
603 - <autosizecolums>N</autosizecolums>  
604 - <nullisblank>N</nullisblank>  
605 - <protect_sheet>N</protect_sheet>  
606 - <password>Encrypted </password>  
607 - <splitevery>0</splitevery>  
608 - <usetempfiles>N</usetempfiles>  
609 - <tempdirectory/>  
610 - </file>  
611 - <template>  
612 - <enabled>N</enabled>  
613 - <append>N</append>  
614 - <filename>template.xls</filename>  
615 - </template>  
616 - <fields>  
617 - <field>  
618 - <name>&#x8f66;&#x724c;&#x53f7;</name>  
619 - <type>String</type>  
620 - <format/>  
621 - </field>  
622 - <field>  
623 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
624 - <type>String</type>  
625 - <format/>  
626 - </field>  
627 - <field>  
628 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>  
629 - <type>String</type>  
630 - <format/>  
631 - </field>  
632 - <field>  
633 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>  
634 - <type>String</type>  
635 - <format/>  
636 - </field>  
637 - <field>  
638 - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>  
639 - <type>String</type>  
640 - <format/>  
641 - </field>  
642 - <field>  
643 - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>  
644 - <type>String</type>  
645 - <format/>  
646 - </field>  
647 - <field>  
648 - <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>  
649 - <type>String</type>  
650 - <format/>  
651 - </field>  
652 - <field>  
653 - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>  
654 - <type>String</type>  
655 - <format/>  
656 - </field>  
657 - <field>  
658 - <name>error_count</name>  
659 - <type>Integer</type>  
660 - <format/>  
661 - </field>  
662 - <field>  
663 - <name>error_desc</name>  
664 - <type>String</type>  
665 - <format/>  
666 - </field>  
667 - <field>  
668 - <name>error_column1</name>  
669 - <type>String</type>  
670 - <format/>  
671 - </field>  
672 - <field>  
673 - <name>error_column2</name>  
674 - <type>String</type>  
675 - <format/>  
676 - </field>  
677 - </fields>  
678 - <custom>  
679 - <header_font_name>arial</header_font_name>  
680 - <header_font_size>10</header_font_size>  
681 - <header_font_bold>N</header_font_bold>  
682 - <header_font_italic>N</header_font_italic>  
683 - <header_font_underline>no</header_font_underline>  
684 - <header_font_orientation>horizontal</header_font_orientation>  
685 - <header_font_color>black</header_font_color>  
686 - <header_background_color>none</header_background_color>  
687 - <header_row_height>255</header_row_height>  
688 - <header_alignment>left</header_alignment>  
689 - <header_image/>  
690 - <row_font_name>arial</row_font_name>  
691 - <row_font_size>10</row_font_size>  
692 - <row_font_color>black</row_font_color>  
693 - <row_background_color>none</row_background_color>  
694 - </custom>  
695 - <cluster_schema/>  
696 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
697 - <xloc>328</xloc>  
698 - <yloc>140</yloc>  
699 - <draw>Y</draw>  
700 - </GUI>  
701 - </step>  
702 -  
703 - <step_error_handling>  
704 - <error>  
705 - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</source_step>  
706 - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>  
707 - <is_enabled>Y</is_enabled>  
708 - <nr_valuename>error_count</nr_valuename>  
709 - <descriptions_valuename>error_desc</descriptions_valuename>  
710 - <fields_valuename>error_column1</fields_valuename>  
711 - <codes_valuename>error_column2</codes_valuename>  
712 - <max_errors/>  
713 - <max_pct_errors/>  
714 - <min_pct_rows/>  
715 - </error>  
716 - </step_error_handling>  
717 - <slave-step-copy-partition-distribution>  
718 -</slave-step-copy-partition-distribution>  
719 - <slave_transformation>N</slave_transformation>  
720 -  
721 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
  5 + <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</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/>
  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/>
  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>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</modified_date>
  83 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  84 + <is_key_private>N</is_key_private>
  85 + </info>
  86 + <notepads>
  87 + </notepads>
  88 + <connection>
  89 + <name>192.168.168.1_jwgl_dw</name>
  90 + <server>192.168.168.1</server>
  91 + <type>ORACLE</type>
  92 + <access>Native</access>
  93 + <database>orcl</database>
  94 + <port>1521</port>
  95 + <username>jwgl_dw</username>
  96 + <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
  97 + <servername/>
  98 + <data_tablespace/>
  99 + <index_tablespace/>
  100 + <attributes>
  101 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  102 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  103 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  104 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  105 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  106 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  107 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  108 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  109 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  110 + </attributes>
  111 + </connection>
  112 + <connection>
  113 + <name>bus_control_variable</name>
  114 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  115 + <type>MYSQL</type>
  116 + <access>Native</access>
  117 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  118 + <port>3306</port>
  119 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  120 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  121 + <servername/>
  122 + <data_tablespace/>
  123 + <index_tablespace/>
  124 + <attributes>
  125 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  126 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  127 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  128 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  129 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  130 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  131 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  132 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  133 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  134 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  135 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  136 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  137 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  138 + </attributes>
  139 + </connection>
  140 + <connection>
  141 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  142 + <server>localhost</server>
  143 + <type>MYSQL</type>
  144 + <access>Native</access>
  145 + <database>control</database>
  146 + <port>3306</port>
  147 + <username>root</username>
  148 + <password>Encrypted </password>
  149 + <servername/>
  150 + <data_tablespace/>
  151 + <index_tablespace/>
  152 + <attributes>
  153 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  154 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  155 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  156 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  157 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  158 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  159 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  160 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  161 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  162 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  163 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  164 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  165 + </attributes>
  166 + </connection>
  167 + <connection>
  168 + <name>bus_control_&#x672c;&#x673a;</name>
  169 + <server>localhost</server>
  170 + <type>MYSQL</type>
  171 + <access>Native</access>
  172 + <database>control</database>
  173 + <port>3306</port>
  174 + <username>root</username>
  175 + <password>Encrypted </password>
  176 + <servername/>
  177 + <data_tablespace/>
  178 + <index_tablespace/>
  179 + <attributes>
  180 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  181 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  182 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  183 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  184 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  185 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  186 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  187 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  188 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  189 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  190 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  191 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  192 + </attributes>
  193 + </connection>
  194 + <connection>
  195 + <name>xlab_mysql_youle</name>
  196 + <server>101.231.124.8</server>
  197 + <type>MYSQL</type>
  198 + <access>Native</access>
  199 + <database>xlab_youle</database>
  200 + <port>45687</port>
  201 + <username>xlab-youle</username>
  202 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  203 + <servername/>
  204 + <data_tablespace/>
  205 + <index_tablespace/>
  206 + <attributes>
  207 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  208 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  209 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  210 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  211 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  212 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  213 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  215 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  216 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  217 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  218 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  219 + </attributes>
  220 + </connection>
  221 + <connection>
  222 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  223 + <server>localhost</server>
  224 + <type>MYSQL</type>
  225 + <access>Native</access>
  226 + <database>xlab_youle</database>
  227 + <port>3306</port>
  228 + <username>root</username>
  229 + <password>Encrypted </password>
  230 + <servername/>
  231 + <data_tablespace/>
  232 + <index_tablespace/>
  233 + <attributes>
  234 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  235 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  236 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  237 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  238 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  239 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  240 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  242 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  243 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  244 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  245 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  246 + </attributes>
  247 + </connection>
  248 + <connection>
  249 + <name>xlab_youle</name>
  250 + <server/>
  251 + <type>MYSQL</type>
  252 + <access>JNDI</access>
  253 + <database>xlab_youle</database>
  254 + <port>1521</port>
  255 + <username/>
  256 + <password>Encrypted </password>
  257 + <servername/>
  258 + <data_tablespace/>
  259 + <index_tablespace/>
  260 + <attributes>
  261 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  262 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  263 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  264 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  265 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  266 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  267 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  268 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  269 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  270 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  271 + </attributes>
  272 + </connection>
  273 + <order>
  274 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>
  277 + </order>
  278 + <step>
  279 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  280 + <type>ExcelInput</type>
  281 + <description/>
  282 + <distribute>Y</distribute>
  283 + <custom_distribution/>
  284 + <copies>1</copies>
  285 + <partitioning>
  286 + <method>none</method>
  287 + <schema_name/>
  288 + </partitioning>
  289 + <header>Y</header>
  290 + <noempty>Y</noempty>
  291 + <stoponempty>N</stoponempty>
  292 + <filefield/>
  293 + <sheetfield/>
  294 + <sheetrownumfield/>
  295 + <rownumfield/>
  296 + <sheetfield/>
  297 + <filefield/>
  298 + <limit>0</limit>
  299 + <encoding/>
  300 + <add_to_result_filenames>Y</add_to_result_filenames>
  301 + <accept_filenames>Y</accept_filenames>
  302 + <accept_field>filepath_</accept_field>
  303 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  304 + <file>
  305 + <name/>
  306 + <filemask/>
  307 + <exclude_filemask/>
  308 + <file_required>N</file_required>
  309 + <include_subfolders>N</include_subfolders>
  310 + </file>
  311 + <fields>
  312 + <field>
  313 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  314 + <type>String</type>
  315 + <length>-1</length>
  316 + <precision>-1</precision>
  317 + <trim_type>none</trim_type>
  318 + <repeat>N</repeat>
  319 + <format/>
  320 + <currency/>
  321 + <decimal/>
  322 + <group/>
  323 + </field>
  324 + <field>
  325 + <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
  326 + <type>String</type>
  327 + <length>-1</length>
  328 + <precision>-1</precision>
  329 + <trim_type>none</trim_type>
  330 + <repeat>N</repeat>
  331 + <format/>
  332 + <currency/>
  333 + <decimal/>
  334 + <group/>
  335 + </field>
  336 + <field>
  337 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  338 + <type>String</type>
  339 + <length>-1</length>
  340 + <precision>-1</precision>
  341 + <trim_type>none</trim_type>
  342 + <repeat>N</repeat>
  343 + <format/>
  344 + <currency/>
  345 + <decimal/>
  346 + <group/>
  347 + </field>
  348 + <field>
  349 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  350 + <type>String</type>
  351 + <length>-1</length>
  352 + <precision>-1</precision>
  353 + <trim_type>none</trim_type>
  354 + <repeat>N</repeat>
  355 + <format/>
  356 + <currency/>
  357 + <decimal/>
  358 + <group/>
  359 + </field>
  360 + <field>
  361 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  362 + <type>String</type>
  363 + <length>-1</length>
  364 + <precision>-1</precision>
  365 + <trim_type>none</trim_type>
  366 + <repeat>N</repeat>
  367 + <format/>
  368 + <currency/>
  369 + <decimal/>
  370 + <group/>
  371 + </field>
  372 + <field>
  373 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  374 + <type>String</type>
  375 + <length>-1</length>
  376 + <precision>-1</precision>
  377 + <trim_type>none</trim_type>
  378 + <repeat>N</repeat>
  379 + <format/>
  380 + <currency/>
  381 + <decimal/>
  382 + <group/>
  383 + </field>
  384 + <field>
  385 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  386 + <type>String</type>
  387 + <length>-1</length>
  388 + <precision>-1</precision>
  389 + <trim_type>none</trim_type>
  390 + <repeat>N</repeat>
  391 + <format/>
  392 + <currency/>
  393 + <decimal/>
  394 + <group/>
  395 + </field>
  396 + <field>
  397 + <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
  398 + <type>String</type>
  399 + <length>-1</length>
  400 + <precision>-1</precision>
  401 + <trim_type>none</trim_type>
  402 + <repeat>N</repeat>
  403 + <format/>
  404 + <currency/>
  405 + <decimal/>
  406 + <group/>
  407 + </field>
  408 + <field>
  409 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  410 + <type>String</type>
  411 + <length>-1</length>
  412 + <precision>-1</precision>
  413 + <trim_type>none</trim_type>
  414 + <repeat>N</repeat>
  415 + <format/>
  416 + <currency/>
  417 + <decimal/>
  418 + <group/>
  419 + </field>
  420 + </fields>
  421 + <sheets>
  422 + <sheet>
  423 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  424 + <startrow>0</startrow>
  425 + <startcol>0</startcol>
  426 + </sheet>
  427 + </sheets>
  428 + <strict_types>N</strict_types>
  429 + <error_ignored>N</error_ignored>
  430 + <error_line_skipped>N</error_line_skipped>
  431 + <bad_line_files_destination_directory/>
  432 + <bad_line_files_extension>warning</bad_line_files_extension>
  433 + <error_line_files_destination_directory/>
  434 + <error_line_files_extension>error</error_line_files_extension>
  435 + <line_number_files_destination_directory/>
  436 + <line_number_files_extension>line</line_number_files_extension>
  437 + <shortFileFieldName/>
  438 + <pathFieldName/>
  439 + <hiddenFieldName/>
  440 + <lastModificationTimeFieldName/>
  441 + <uriNameFieldName/>
  442 + <rootUriNameFieldName/>
  443 + <extensionFieldName/>
  444 + <sizeFieldName/>
  445 + <spreadsheet_type>JXL</spreadsheet_type>
  446 + <cluster_schema/>
  447 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  448 + <xloc>131</xloc>
  449 + <yloc>58</yloc>
  450 + <draw>Y</draw>
  451 + </GUI>
  452 + </step>
  453 +
  454 + <step>
  455 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>
  456 + <type>InsertUpdate</type>
  457 + <description/>
  458 + <distribute>Y</distribute>
  459 + <custom_distribution/>
  460 + <copies>1</copies>
  461 + <partitioning>
  462 + <method>none</method>
  463 + <schema_name/>
  464 + </partitioning>
  465 + <connection>bus_control_variable</connection>
  466 + <commit>1000</commit>
  467 + <update_bypassed>N</update_bypassed>
  468 + <lookup>
  469 + <schema/>
  470 + <table>bsth_c_cars</table>
  471 + <key>
  472 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  473 + <field>inside_code</field>
  474 + <condition>&#x3d;</condition>
  475 + <name2/>
  476 + </key>
  477 + <value>
  478 + <name>car_gride</name>
  479 + <rename>&#x8f66;&#x724c;&#x53f7;</rename>
  480 + <update>Y</update>
  481 + </value>
  482 + <value>
  483 + <name>car_code</name>
  484 + <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>
  485 + <update>Y</update>
  486 + </value>
  487 + <value>
  488 + <name>inside_code</name>
  489 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  490 + <update>Y</update>
  491 + </value>
  492 + <value>
  493 + <name>company</name>
  494 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
  495 + <update>Y</update>
  496 + </value>
  497 + <value>
  498 + <name>business_code</name>
  499 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  500 + <update>Y</update>
  501 + </value>
  502 + <value>
  503 + <name>branche_company</name>
  504 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
  505 + <update>Y</update>
  506 + </value>
  507 + <value>
  508 + <name>branche_company_code</name>
  509 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  510 + <update>Y</update>
  511 + </value>
  512 + <value>
  513 + <name>supplier_name</name>
  514 + <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>
  515 + <update>Y</update>
  516 + </value>
  517 + <value>
  518 + <name>equipment_code</name>
  519 + <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
  520 + <update>Y</update>
  521 + </value>
  522 + </lookup>
  523 + <cluster_schema/>
  524 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  525 + <xloc>516</xloc>
  526 + <yloc>138</yloc>
  527 + <draw>Y</draw>
  528 + </GUI>
  529 + </step>
  530 +
  531 + <step>
  532 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  533 + <type>GetVariable</type>
  534 + <description/>
  535 + <distribute>Y</distribute>
  536 + <custom_distribution/>
  537 + <copies>1</copies>
  538 + <partitioning>
  539 + <method>none</method>
  540 + <schema_name/>
  541 + </partitioning>
  542 + <fields>
  543 + <field>
  544 + <name>filepath_</name>
  545 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  546 + <type>String</type>
  547 + <format/>
  548 + <currency/>
  549 + <decimal/>
  550 + <group/>
  551 + <length>-1</length>
  552 + <precision>-1</precision>
  553 + <trim_type>none</trim_type>
  554 + </field>
  555 + <field>
  556 + <name>erroroutputdir_</name>
  557 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  558 + <type>String</type>
  559 + <format/>
  560 + <currency/>
  561 + <decimal/>
  562 + <group/>
  563 + <length>-1</length>
  564 + <precision>-1</precision>
  565 + <trim_type>none</trim_type>
  566 + </field>
  567 + </fields>
  568 + <cluster_schema/>
  569 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  570 + <xloc>134</xloc>
  571 + <yloc>183</yloc>
  572 + <draw>Y</draw>
  573 + </GUI>
  574 + </step>
  575 +
  576 + <step>
  577 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
  578 + <type>ExcelOutput</type>
  579 + <description/>
  580 + <distribute>Y</distribute>
  581 + <custom_distribution/>
  582 + <copies>1</copies>
  583 + <partitioning>
  584 + <method>none</method>
  585 + <schema_name/>
  586 + </partitioning>
  587 + <header>Y</header>
  588 + <footer>N</footer>
  589 + <encoding/>
  590 + <append>N</append>
  591 + <add_to_result_filenames>Y</add_to_result_filenames>
  592 + <file>
  593 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>
  594 + <extention>xls</extention>
  595 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  596 + <create_parent_folder>N</create_parent_folder>
  597 + <split>N</split>
  598 + <add_date>N</add_date>
  599 + <add_time>N</add_time>
  600 + <SpecifyFormat>N</SpecifyFormat>
  601 + <date_time_format/>
  602 + <sheetname>Sheet1</sheetname>
  603 + <autosizecolums>N</autosizecolums>
  604 + <nullisblank>N</nullisblank>
  605 + <protect_sheet>N</protect_sheet>
  606 + <password>Encrypted </password>
  607 + <splitevery>0</splitevery>
  608 + <usetempfiles>N</usetempfiles>
  609 + <tempdirectory/>
  610 + </file>
  611 + <template>
  612 + <enabled>N</enabled>
  613 + <append>N</append>
  614 + <filename>template.xls</filename>
  615 + </template>
  616 + <fields>
  617 + <field>
  618 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  619 + <type>String</type>
  620 + <format/>
  621 + </field>
  622 + <field>
  623 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  624 + <type>String</type>
  625 + <format/>
  626 + </field>
  627 + <field>
  628 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  629 + <type>String</type>
  630 + <format/>
  631 + </field>
  632 + <field>
  633 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  634 + <type>String</type>
  635 + <format/>
  636 + </field>
  637 + <field>
  638 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  639 + <type>String</type>
  640 + <format/>
  641 + </field>
  642 + <field>
  643 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  644 + <type>String</type>
  645 + <format/>
  646 + </field>
  647 + <field>
  648 + <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>
  649 + <type>String</type>
  650 + <format/>
  651 + </field>
  652 + <field>
  653 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  654 + <type>String</type>
  655 + <format/>
  656 + </field>
  657 + <field>
  658 + <name>error_count</name>
  659 + <type>Integer</type>
  660 + <format/>
  661 + </field>
  662 + <field>
  663 + <name>error_desc</name>
  664 + <type>String</type>
  665 + <format/>
  666 + </field>
  667 + <field>
  668 + <name>error_column1</name>
  669 + <type>String</type>
  670 + <format/>
  671 + </field>
  672 + <field>
  673 + <name>error_column2</name>
  674 + <type>String</type>
  675 + <format/>
  676 + </field>
  677 + </fields>
  678 + <custom>
  679 + <header_font_name>arial</header_font_name>
  680 + <header_font_size>10</header_font_size>
  681 + <header_font_bold>N</header_font_bold>
  682 + <header_font_italic>N</header_font_italic>
  683 + <header_font_underline>no</header_font_underline>
  684 + <header_font_orientation>horizontal</header_font_orientation>
  685 + <header_font_color>black</header_font_color>
  686 + <header_background_color>none</header_background_color>
  687 + <header_row_height>255</header_row_height>
  688 + <header_alignment>left</header_alignment>
  689 + <header_image/>
  690 + <row_font_name>arial</row_font_name>
  691 + <row_font_size>10</row_font_size>
  692 + <row_font_color>black</row_font_color>
  693 + <row_background_color>none</row_background_color>
  694 + </custom>
  695 + <cluster_schema/>
  696 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  697 + <xloc>328</xloc>
  698 + <yloc>140</yloc>
  699 + <draw>Y</draw>
  700 + </GUI>
  701 + </step>
  702 +
  703 + <step_error_handling>
  704 + <error>
  705 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</source_step>
  706 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
  707 + <is_enabled>Y</is_enabled>
  708 + <nr_valuename>error_count</nr_valuename>
  709 + <descriptions_valuename>error_desc</descriptions_valuename>
  710 + <fields_valuename>error_column1</fields_valuename>
  711 + <codes_valuename>error_column2</codes_valuename>
  712 + <max_errors/>
  713 + <max_pct_errors/>
  714 + <min_pct_rows/>
  715 + </error>
  716 + </step_error_handling>
  717 + <slave-step-copy-partition-distribution>
  718 +</slave-step-copy-partition-distribution>
  719 + <slave_transformation>N</slave_transformation>
  720 +
  721 +</transformation>
src/main/resources/datatools/ktrs/carsDataOutput.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x51fa;</name>  
5 - <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x51fa;</description>  
6 - <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</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>2016&#x2f;08&#x2f;05 16&#x3a;42&#x3a;22.753</created_date>  
76 - <modified_user>-</modified_user>  
77 - <modified_date>2016&#x2f;08&#x2f;05 16&#x3a;42&#x3a;22.753</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 - </notepads>  
83 - <connection>  
84 - <name>192.168.168.1_jwgl_dw</name>  
85 - <server>192.168.168.1</server>  
86 - <type>ORACLE</type>  
87 - <access>Native</access>  
88 - <database>orcl</database>  
89 - <port>1521</port>  
90 - <username>jwgl_dw</username>  
91 - <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>  
92 - <servername/>  
93 - <data_tablespace/>  
94 - <index_tablespace/>  
95 - <attributes>  
96 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
97 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
98 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
99 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
100 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
101 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
102 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
103 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
104 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
105 - </attributes>  
106 - </connection>  
107 - <connection>  
108 - <name>bus_control_variable</name>  
109 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
110 - <type>MYSQL</type>  
111 - <access>Native</access>  
112 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
113 - <port>3306</port>  
114 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
115 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
116 - <servername/>  
117 - <data_tablespace/>  
118 - <index_tablespace/>  
119 - <attributes>  
120 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
121 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
122 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
123 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
124 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
125 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
126 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
127 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
128 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
129 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
130 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
131 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
132 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
133 - </attributes>  
134 - </connection>  
135 - <connection>  
136 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
137 - <server>localhost</server>  
138 - <type>MYSQL</type>  
139 - <access>Native</access>  
140 - <database>control</database>  
141 - <port>3306</port>  
142 - <username>root</username>  
143 - <password>Encrypted </password>  
144 - <servername/>  
145 - <data_tablespace/>  
146 - <index_tablespace/>  
147 - <attributes>  
148 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
149 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
150 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
151 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
152 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
153 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
154 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
155 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
156 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
157 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
158 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
159 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
160 - </attributes>  
161 - </connection>  
162 - <connection>  
163 - <name>bus_control_&#x672c;&#x673a;</name>  
164 - <server>localhost</server>  
165 - <type>MYSQL</type>  
166 - <access>Native</access>  
167 - <database>control</database>  
168 - <port>3306</port>  
169 - <username>root</username>  
170 - <password>Encrypted </password>  
171 - <servername/>  
172 - <data_tablespace/>  
173 - <index_tablespace/>  
174 - <attributes>  
175 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
176 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
177 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
178 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
179 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
180 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
181 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
182 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
183 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
184 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
185 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
186 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
187 - </attributes>  
188 - </connection>  
189 - <connection>  
190 - <name>xlab_mysql_youle</name>  
191 - <server>101.231.124.8</server>  
192 - <type>MYSQL</type>  
193 - <access>Native</access>  
194 - <database>xlab_youle</database>  
195 - <port>45687</port>  
196 - <username>xlab-youle</username>  
197 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
198 - <servername/>  
199 - <data_tablespace/>  
200 - <index_tablespace/>  
201 - <attributes>  
202 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
203 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
204 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
205 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
206 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
207 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
208 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
209 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
210 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
211 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
212 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
213 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
214 - </attributes>  
215 - </connection>  
216 - <connection>  
217 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
218 - <server>localhost</server>  
219 - <type>MYSQL</type>  
220 - <access>Native</access>  
221 - <database>xlab_youle</database>  
222 - <port>3306</port>  
223 - <username>root</username>  
224 - <password>Encrypted </password>  
225 - <servername/>  
226 - <data_tablespace/>  
227 - <index_tablespace/>  
228 - <attributes>  
229 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
230 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
231 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
232 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
233 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
234 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
235 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
236 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
237 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
238 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
239 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
240 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
241 - </attributes>  
242 - </connection>  
243 - <connection>  
244 - <name>xlab_youle</name>  
245 - <server/>  
246 - <type>MYSQL</type>  
247 - <access>JNDI</access>  
248 - <database>xlab_youle</database>  
249 - <port>1521</port>  
250 - <username/>  
251 - <password>Encrypted </password>  
252 - <servername/>  
253 - <data_tablespace/>  
254 - <index_tablespace/>  
255 - <attributes>  
256 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
257 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
258 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
259 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
260 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
261 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
262 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
263 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
264 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
265 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
266 - </attributes>  
267 - </connection>  
268 - <order>  
269 - <hop> <from>&#x8868;&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>  
270 - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>  
271 - </order>  
272 - <step>  
273 - <name>Excel&#x8f93;&#x51fa;</name>  
274 - <type>ExcelOutput</type>  
275 - <description/>  
276 - <distribute>Y</distribute>  
277 - <custom_distribution/>  
278 - <copies>1</copies>  
279 - <partitioning>  
280 - <method>none</method>  
281 - <schema_name/>  
282 - </partitioning>  
283 - <header>Y</header>  
284 - <footer>N</footer>  
285 - <encoding/>  
286 - <append>N</append>  
287 - <add_to_result_filenames>Y</add_to_result_filenames>  
288 - <file>  
289 - <name>&#x24;&#x7b;filepath&#x7d;</name>  
290 - <extention/>  
291 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
292 - <create_parent_folder>N</create_parent_folder>  
293 - <split>N</split>  
294 - <add_date>N</add_date>  
295 - <add_time>N</add_time>  
296 - <SpecifyFormat>N</SpecifyFormat>  
297 - <date_time_format>yyyyMMddHHmmss</date_time_format>  
298 - <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>  
299 - <autosizecolums>N</autosizecolums>  
300 - <nullisblank>N</nullisblank>  
301 - <protect_sheet>N</protect_sheet>  
302 - <password>Encrypted </password>  
303 - <splitevery>0</splitevery>  
304 - <usetempfiles>N</usetempfiles>  
305 - <tempdirectory/>  
306 - </file>  
307 - <template>  
308 - <enabled>N</enabled>  
309 - <append>N</append>  
310 - <filename>template.xls</filename>  
311 - </template>  
312 - <fields>  
313 - <field>  
314 - <name>&#x8f66;&#x724c;&#x53f7;</name>  
315 - <type>String</type>  
316 - <format/>  
317 - </field>  
318 - <field>  
319 - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>  
320 - <type>String</type>  
321 - <format/>  
322 - </field>  
323 - <field>  
324 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
325 - <type>String</type>  
326 - <format/>  
327 - </field>  
328 - <field>  
329 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>  
330 - <type>String</type>  
331 - <format/>  
332 - </field>  
333 - <field>  
334 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>  
335 - <type>String</type>  
336 - <format/>  
337 - </field>  
338 - <field>  
339 - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>  
340 - <type>String</type>  
341 - <format/>  
342 - </field>  
343 - <field>  
344 - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>  
345 - <type>String</type>  
346 - <format/>  
347 - </field>  
348 - <field>  
349 - <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>  
350 - <type>String</type>  
351 - <format/>  
352 - </field>  
353 - <field>  
354 - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>  
355 - <type>String</type>  
356 - <format/>  
357 - </field>  
358 - </fields>  
359 - <custom>  
360 - <header_font_name>arial</header_font_name>  
361 - <header_font_size>10</header_font_size>  
362 - <header_font_bold>N</header_font_bold>  
363 - <header_font_italic>N</header_font_italic>  
364 - <header_font_underline>no</header_font_underline>  
365 - <header_font_orientation>horizontal</header_font_orientation>  
366 - <header_font_color>black</header_font_color>  
367 - <header_background_color>none</header_background_color>  
368 - <header_row_height>255</header_row_height>  
369 - <header_alignment>left</header_alignment>  
370 - <header_image/>  
371 - <row_font_name>arial</row_font_name>  
372 - <row_font_size>10</row_font_size>  
373 - <row_font_color>black</row_font_color>  
374 - <row_background_color>none</row_background_color>  
375 - </custom>  
376 - <cluster_schema/>  
377 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
378 - <xloc>282</xloc>  
379 - <yloc>169</yloc>  
380 - <draw>Y</draw>  
381 - </GUI>  
382 - </step>  
383 -  
384 - <step>  
385 - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>  
386 - <type>SelectValues</type>  
387 - <description/>  
388 - <distribute>Y</distribute>  
389 - <custom_distribution/>  
390 - <copies>1</copies>  
391 - <partitioning>  
392 - <method>none</method>  
393 - <schema_name/>  
394 - </partitioning>  
395 - <fields> <field> <name>car_plate</name>  
396 - <rename>&#x8f66;&#x724c;&#x53f7;</rename>  
397 - <length>-2</length>  
398 - <precision>-2</precision>  
399 - </field> <field> <name>car_code</name>  
400 - <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>  
401 - <length>-2</length>  
402 - <precision>-2</precision>  
403 - </field> <field> <name>inside_code</name>  
404 - <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>  
405 - <length>-2</length>  
406 - <precision>-2</precision>  
407 - </field> <field> <name>company</name>  
408 - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>  
409 - <length>-2</length>  
410 - <precision>-2</precision>  
411 - </field> <field> <name>business_code</name>  
412 - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>  
413 - <length>-2</length>  
414 - <precision>-2</precision>  
415 - </field> <field> <name>branche_company</name>  
416 - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>  
417 - <length>-2</length>  
418 - <precision>-2</precision>  
419 - </field> <field> <name>branche_company_code</name>  
420 - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>  
421 - <length>-2</length>  
422 - <precision>-2</precision>  
423 - </field> <field> <name>supplier_name</name>  
424 - <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>  
425 - <length>-2</length>  
426 - <precision>-2</precision>  
427 - </field> <field> <name>equipment_code</name>  
428 - <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>  
429 - <length>-2</length>  
430 - <precision>-2</precision>  
431 - </field> <select_unspecified>N</select_unspecified>  
432 - </fields> <cluster_schema/>  
433 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
434 - <xloc>280</xloc>  
435 - <yloc>67</yloc>  
436 - <draw>Y</draw>  
437 - </GUI>  
438 - </step>  
439 -  
440 - <step>  
441 - <name>&#x8868;&#x8f93;&#x5165;</name>  
442 - <type>TableInput</type>  
443 - <description/>  
444 - <distribute>Y</distribute>  
445 - <custom_distribution/>  
446 - <copies>1</copies>  
447 - <partitioning>  
448 - <method>none</method>  
449 - <schema_name/>  
450 - </partitioning>  
451 - <connection>bus_control_variable</connection>  
452 - <sql>SELECT &#x2a; FROM bsth_c_cars&#x3b;</sql>  
453 - <limit>0</limit>  
454 - <lookup/>  
455 - <execute_each_row>N</execute_each_row>  
456 - <variables_active>N</variables_active>  
457 - <lazy_conversion_active>N</lazy_conversion_active>  
458 - <cluster_schema/>  
459 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
460 - <xloc>105</xloc>  
461 - <yloc>67</yloc>  
462 - <draw>Y</draw>  
463 - </GUI>  
464 - </step>  
465 -  
466 - <step_error_handling>  
467 - </step_error_handling>  
468 - <slave-step-copy-partition-distribution>  
469 -</slave-step-copy-partition-distribution>  
470 - <slave_transformation>N</slave_transformation>  
471 -  
472 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x51fa;</name>
  5 + <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x51fa;</description>
  6 + <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</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>2016&#x2f;08&#x2f;05 16&#x3a;42&#x3a;22.753</created_date>
  76 + <modified_user>-</modified_user>
  77 + <modified_date>2016&#x2f;08&#x2f;05 16&#x3a;42&#x3a;22.753</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 + </notepads>
  83 + <connection>
  84 + <name>192.168.168.1_jwgl_dw</name>
  85 + <server>192.168.168.1</server>
  86 + <type>ORACLE</type>
  87 + <access>Native</access>
  88 + <database>orcl</database>
  89 + <port>1521</port>
  90 + <username>jwgl_dw</username>
  91 + <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
  92 + <servername/>
  93 + <data_tablespace/>
  94 + <index_tablespace/>
  95 + <attributes>
  96 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  97 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  98 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  99 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  100 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  101 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  102 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  103 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  104 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  105 + </attributes>
  106 + </connection>
  107 + <connection>
  108 + <name>bus_control_variable</name>
  109 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  110 + <type>MYSQL</type>
  111 + <access>Native</access>
  112 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  113 + <port>3306</port>
  114 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  115 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  116 + <servername/>
  117 + <data_tablespace/>
  118 + <index_tablespace/>
  119 + <attributes>
  120 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  121 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  122 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  123 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  124 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  125 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  126 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  127 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  128 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  129 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  130 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  131 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  132 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  133 + </attributes>
  134 + </connection>
  135 + <connection>
  136 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  137 + <server>localhost</server>
  138 + <type>MYSQL</type>
  139 + <access>Native</access>
  140 + <database>control</database>
  141 + <port>3306</port>
  142 + <username>root</username>
  143 + <password>Encrypted </password>
  144 + <servername/>
  145 + <data_tablespace/>
  146 + <index_tablespace/>
  147 + <attributes>
  148 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  149 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  150 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  151 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  152 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  153 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  154 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  155 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  156 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  157 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  158 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  159 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  160 + </attributes>
  161 + </connection>
  162 + <connection>
  163 + <name>bus_control_&#x672c;&#x673a;</name>
  164 + <server>localhost</server>
  165 + <type>MYSQL</type>
  166 + <access>Native</access>
  167 + <database>control</database>
  168 + <port>3306</port>
  169 + <username>root</username>
  170 + <password>Encrypted </password>
  171 + <servername/>
  172 + <data_tablespace/>
  173 + <index_tablespace/>
  174 + <attributes>
  175 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  176 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  177 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  178 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  179 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  180 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  181 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  182 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  183 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  184 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  185 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  186 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  187 + </attributes>
  188 + </connection>
  189 + <connection>
  190 + <name>xlab_mysql_youle</name>
  191 + <server>101.231.124.8</server>
  192 + <type>MYSQL</type>
  193 + <access>Native</access>
  194 + <database>xlab_youle</database>
  195 + <port>45687</port>
  196 + <username>xlab-youle</username>
  197 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  198 + <servername/>
  199 + <data_tablespace/>
  200 + <index_tablespace/>
  201 + <attributes>
  202 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  203 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  204 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  205 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  206 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  207 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  208 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  209 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  210 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  211 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  212 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  213 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  214 + </attributes>
  215 + </connection>
  216 + <connection>
  217 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  218 + <server>localhost</server>
  219 + <type>MYSQL</type>
  220 + <access>Native</access>
  221 + <database>xlab_youle</database>
  222 + <port>3306</port>
  223 + <username>root</username>
  224 + <password>Encrypted </password>
  225 + <servername/>
  226 + <data_tablespace/>
  227 + <index_tablespace/>
  228 + <attributes>
  229 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  230 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  231 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  232 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  233 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  234 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  235 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  236 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  237 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  238 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  239 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  240 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  241 + </attributes>
  242 + </connection>
  243 + <connection>
  244 + <name>xlab_youle</name>
  245 + <server/>
  246 + <type>MYSQL</type>
  247 + <access>JNDI</access>
  248 + <database>xlab_youle</database>
  249 + <port>1521</port>
  250 + <username/>
  251 + <password>Encrypted </password>
  252 + <servername/>
  253 + <data_tablespace/>
  254 + <index_tablespace/>
  255 + <attributes>
  256 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  257 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  258 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  259 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  260 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  261 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  262 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  263 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  264 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  265 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  266 + </attributes>
  267 + </connection>
  268 + <order>
  269 + <hop> <from>&#x8868;&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
  270 + <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  271 + </order>
  272 + <step>
  273 + <name>Excel&#x8f93;&#x51fa;</name>
  274 + <type>ExcelOutput</type>
  275 + <description/>
  276 + <distribute>Y</distribute>
  277 + <custom_distribution/>
  278 + <copies>1</copies>
  279 + <partitioning>
  280 + <method>none</method>
  281 + <schema_name/>
  282 + </partitioning>
  283 + <header>Y</header>
  284 + <footer>N</footer>
  285 + <encoding/>
  286 + <append>N</append>
  287 + <add_to_result_filenames>Y</add_to_result_filenames>
  288 + <file>
  289 + <name>&#x24;&#x7b;filepath&#x7d;</name>
  290 + <extention/>
  291 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  292 + <create_parent_folder>N</create_parent_folder>
  293 + <split>N</split>
  294 + <add_date>N</add_date>
  295 + <add_time>N</add_time>
  296 + <SpecifyFormat>N</SpecifyFormat>
  297 + <date_time_format>yyyyMMddHHmmss</date_time_format>
  298 + <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>
  299 + <autosizecolums>N</autosizecolums>
  300 + <nullisblank>N</nullisblank>
  301 + <protect_sheet>N</protect_sheet>
  302 + <password>Encrypted </password>
  303 + <splitevery>0</splitevery>
  304 + <usetempfiles>N</usetempfiles>
  305 + <tempdirectory/>
  306 + </file>
  307 + <template>
  308 + <enabled>N</enabled>
  309 + <append>N</append>
  310 + <filename>template.xls</filename>
  311 + </template>
  312 + <fields>
  313 + <field>
  314 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  315 + <type>String</type>
  316 + <format/>
  317 + </field>
  318 + <field>
  319 + <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
  320 + <type>String</type>
  321 + <format/>
  322 + </field>
  323 + <field>
  324 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  325 + <type>String</type>
  326 + <format/>
  327 + </field>
  328 + <field>
  329 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  330 + <type>String</type>
  331 + <format/>
  332 + </field>
  333 + <field>
  334 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  335 + <type>String</type>
  336 + <format/>
  337 + </field>
  338 + <field>
  339 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  340 + <type>String</type>
  341 + <format/>
  342 + </field>
  343 + <field>
  344 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  345 + <type>String</type>
  346 + <format/>
  347 + </field>
  348 + <field>
  349 + <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
  350 + <type>String</type>
  351 + <format/>
  352 + </field>
  353 + <field>
  354 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  355 + <type>String</type>
  356 + <format/>
  357 + </field>
  358 + </fields>
  359 + <custom>
  360 + <header_font_name>arial</header_font_name>
  361 + <header_font_size>10</header_font_size>
  362 + <header_font_bold>N</header_font_bold>
  363 + <header_font_italic>N</header_font_italic>
  364 + <header_font_underline>no</header_font_underline>
  365 + <header_font_orientation>horizontal</header_font_orientation>
  366 + <header_font_color>black</header_font_color>
  367 + <header_background_color>none</header_background_color>
  368 + <header_row_height>255</header_row_height>
  369 + <header_alignment>left</header_alignment>
  370 + <header_image/>
  371 + <row_font_name>arial</row_font_name>
  372 + <row_font_size>10</row_font_size>
  373 + <row_font_color>black</row_font_color>
  374 + <row_background_color>none</row_background_color>
  375 + </custom>
  376 + <cluster_schema/>
  377 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  378 + <xloc>282</xloc>
  379 + <yloc>169</yloc>
  380 + <draw>Y</draw>
  381 + </GUI>
  382 + </step>
  383 +
  384 + <step>
  385 + <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
  386 + <type>SelectValues</type>
  387 + <description/>
  388 + <distribute>Y</distribute>
  389 + <custom_distribution/>
  390 + <copies>1</copies>
  391 + <partitioning>
  392 + <method>none</method>
  393 + <schema_name/>
  394 + </partitioning>
  395 + <fields> <field> <name>car_plate</name>
  396 + <rename>&#x8f66;&#x724c;&#x53f7;</rename>
  397 + <length>-2</length>
  398 + <precision>-2</precision>
  399 + </field> <field> <name>car_code</name>
  400 + <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>
  401 + <length>-2</length>
  402 + <precision>-2</precision>
  403 + </field> <field> <name>inside_code</name>
  404 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  405 + <length>-2</length>
  406 + <precision>-2</precision>
  407 + </field> <field> <name>company</name>
  408 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
  409 + <length>-2</length>
  410 + <precision>-2</precision>
  411 + </field> <field> <name>business_code</name>
  412 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  413 + <length>-2</length>
  414 + <precision>-2</precision>
  415 + </field> <field> <name>branche_company</name>
  416 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
  417 + <length>-2</length>
  418 + <precision>-2</precision>
  419 + </field> <field> <name>branche_company_code</name>
  420 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  421 + <length>-2</length>
  422 + <precision>-2</precision>
  423 + </field> <field> <name>supplier_name</name>
  424 + <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>
  425 + <length>-2</length>
  426 + <precision>-2</precision>
  427 + </field> <field> <name>equipment_code</name>
  428 + <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
  429 + <length>-2</length>
  430 + <precision>-2</precision>
  431 + </field> <select_unspecified>N</select_unspecified>
  432 + </fields> <cluster_schema/>
  433 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  434 + <xloc>280</xloc>
  435 + <yloc>67</yloc>
  436 + <draw>Y</draw>
  437 + </GUI>
  438 + </step>
  439 +
  440 + <step>
  441 + <name>&#x8868;&#x8f93;&#x5165;</name>
  442 + <type>TableInput</type>
  443 + <description/>
  444 + <distribute>Y</distribute>
  445 + <custom_distribution/>
  446 + <copies>1</copies>
  447 + <partitioning>
  448 + <method>none</method>
  449 + <schema_name/>
  450 + </partitioning>
  451 + <connection>bus_control_variable</connection>
  452 + <sql>SELECT &#x2a; FROM bsth_c_cars&#x3b;</sql>
  453 + <limit>0</limit>
  454 + <lookup/>
  455 + <execute_each_row>N</execute_each_row>
  456 + <variables_active>N</variables_active>
  457 + <lazy_conversion_active>N</lazy_conversion_active>
  458 + <cluster_schema/>
  459 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  460 + <xloc>105</xloc>
  461 + <yloc>67</yloc>
  462 + <draw>Y</draw>
  463 + </GUI>
  464 + </step>
  465 +
  466 + <step_error_handling>
  467 + </step_error_handling>
  468 + <slave-step-copy-partition-distribution>
  469 +</slave-step-copy-partition-distribution>
  470 + <slave_transformation>N</slave_transformation>
  471 +
  472 +</transformation>