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 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 4 <modelVersion>4.0.0</modelVersion>
5 5 <groupId>com.bsth</groupId>
... ... @@ -237,27 +237,33 @@
237 237 <version>1.13</version>
238 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 267 </dependencies>
262 268  
263 269 <dependencyManagement>
... ...
src/main/java/com/bsth/controller/forms/ExportController.java
... ... @@ -28,6 +28,7 @@ import com.bsth.entity.mcy_forms.Vehicleloading;
28 28 import com.bsth.entity.mcy_forms.Waybillday;
29 29 import com.bsth.service.forms.ExportService;
30 30 import com.bsth.service.forms.FormsService;
  31 +import com.bsth.util.Arith;
31 32 import com.bsth.util.ReportUtils;
32 33  
33 34 @RestController
... ... @@ -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 172 public List<Map<String, Object>> singledataExport(@RequestParam Map<String, Object> map) {
172 173 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
173 174 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
... ... @@ -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 218 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) {
218 219 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
219 220 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
220 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 223 map.get("data").toString());
223 224 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
224 225 int i = 1;
... ... @@ -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 257 public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map) {
257 258 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
258 259 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
... ... @@ -558,17 +559,13 @@ public class ExportController {
558 559 List<Daily> allline = formsService.daily(map);
559 560  
560 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 566 Map<String, Object> m ;
566 567 for (Daily d : allline) {
567 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 569 m.put("zbh", d.getZbh());
573 570 m.put("jgh",d.getJgh());
574 571 m.put("jName", d.getjName());
... ... @@ -576,9 +573,13 @@ public class ExportController {
576 573 m.put("jzl1", d.getJzl1());
577 574 m.put("yh", d.getYh());
578 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 581 resList.add(m);
581   - }
  582 + }
582 583  
583 584 m=new HashMap<String,Object>();
584 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 73 }
74 74  
75 75 // 路单数据
76   - @RequestMapping(value = "/singledata", method = RequestMethod.POST)
  76 + @RequestMapping(value = "/singledata", method = RequestMethod.GET)
77 77 public List<Singledata> singledata(@RequestParam Map<String, Object> map) {
78 78  
79 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 90 public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) {
92 91  
93 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 238 Map<String, Object> m = new HashMap<String, Object>();
239 239 m.put("rq", y.getRq());
240 240 m.put("gsname",y.getGsname() );
  241 + m.put("fgsname", y.getFgsname());
241 242 m.put("xlname", y.getXlname());
242 243 m.put("nbbm", y.getNbbm());
243 244 m.put("jsy", y.getJsy());
  245 + m.put("name", y.getName());
244 246 m.put("jzl", y.getJzl());
245 247 m.put("czlc", y.getCzlc());
246 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 543 rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);
544 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 1 package com.bsth.controller.report;
2 2  
  3 +import java.util.ArrayList;
3 4 import java.util.HashMap;
  5 +import java.util.Iterator;
4 6 import java.util.List;
5 7 import java.util.Map;
6 8  
... ... @@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
13 15 import com.bsth.entity.excep.ArrivalInfo;
14 16 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 17 import com.bsth.service.report.ReportService;
  18 +import com.bsth.util.ReportUtils;
16 19  
17 20 @RestController
18 21 @RequestMapping("report")
... ... @@ -31,12 +34,74 @@ public class ReportController {
31 34 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
32 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 69 @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)
35 70 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,
36 71 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
37 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 105 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)
41 106 public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) {
42 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 332 }
333 333  
334 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 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 8 import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher;
9 9 import com.bsth.data.schedule.DayOfSchedule;
10 10 import com.bsth.data.schedule.ScheduleComparator;
  11 +import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
11 12 import com.bsth.entity.realcontrol.LineConfig;
12 13 import com.bsth.entity.realcontrol.ScheduleRealInfo;
13 14 import com.bsth.service.directive.DirectiveService;
... ... @@ -145,6 +146,9 @@ public class InOutStationSignalHandle extends SignalHandle{
145 146 //持久化
146 147 dayOfSchedule.save(sch);
147 148  
  149 + //清理应发未发标记
  150 + LateAdjustHandle.remove(sch);
  151 +
148 152 if(sch.getBcType().equals("out")){
149 153 //出场时,切换成营运状态
150 154 directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "出场@系统");
... ... @@ -242,6 +246,10 @@ public class InOutStationSignalHandle extends SignalHandle{
242 246 long rsT = lineConfigData.applyIn(sch, gps.getTimestamp());
243 247  
244 248 sch.setZdsjActualAll(rsT);
  249 +
  250 + //通知误点停靠程序,有车辆到站
  251 + LateAdjustHandle.carArrive(gps);
  252 +
245 253 //已完成班次数
246 254 int doneSum = dayOfSchedule.doneSum(sch.getClZbh());
247 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 10 import com.bsth.data.directive.DirectivesPstThread;
11 11 import com.bsth.data.gpsdata.GpsRealData;
12 12 import com.bsth.data.gpsdata.recovery.GpsDataRecovery;
  13 +import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
13 14 import com.bsth.data.schedule.thread.*;
14 15 import com.bsth.entity.realcontrol.LineConfig;
15 16 import com.bsth.entity.realcontrol.ScheduleRealInfo;
... ... @@ -153,10 +154,10 @@ public class DayOfSchedule implements CommandLineRunner {
153 154 diff += (1000 * 60 * 60 * 24);
154 155  
155 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 163 Application.mainServices.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);
... ... @@ -386,6 +387,11 @@ public class DayOfSchedule implements CommandLineRunner {
386 387 sch.setLate(false);
387 388 }
388 389  
  390 + //售票员为空设置为""字符串
  391 + if(StringUtils.isEmpty(sch.getsGh())){
  392 + sch.setsGh("");
  393 + sch.setsName("");
  394 + }
389 395 sch.setJhlcOrig(sch.getJhlc());
390 396 //保留备注
391 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 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 4 import com.bsth.data.schedule.DayOfSchedule;
13 5 import com.bsth.data.schedule.ScheduleComparator;
14 6 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 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 22 * @date 2016年8月31日 下午3:09:02
23 23 *
24 24 */
... ... @@ -27,29 +27,39 @@ public class ScheduleLateThread extends Thread{
27 27  
28 28 @Autowired
29 29 DayOfSchedule dayOfSchedule;
30   -
  30 +
31 31 @Autowired
32 32 SendUtils sendUtils;
33   -
  33 +
34 34 private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.FCSJ();
35   -
  35 +
36 36 @Override
37 37 public void run() {
38 38 List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll());
39 39 Collections.sort(all, cpm);
40   -
  40 +
41 41 long t = System.currentTimeMillis();
42 42 int size = all.size();
43   -
  43 +
44 44 ScheduleRealInfo sch;
45 45 for(int i = 0; i < size; i ++){
46 46 sch = all.get(i);
47   - if(sch.getDfsjT() > t)
  47 + if(sch.getDfsjT() > t || sch.isLate())
48 48 break;
49   -
50   - if(sch.isLate() == false
51   - && sch.getStatus() == 0
  49 +
  50 + if(sch.getStatus() == 0
52 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 64 sch.setLate(true);
55 65 //通知客户端
... ... @@ -57,4 +67,4 @@ public class ScheduleLateThread extends Thread{
57 67 }
58 68 }
59 69 }
60   -}
  70 +}
61 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 3 public class Operationservice {
4 4  
5 5 private String xlName;//线路
6   -
  6 + private String xlBm;//线路编码
7 7 private String jzl;//加注量
8 8  
9 9 private String xhl;//消耗量
... ... @@ -81,6 +81,14 @@ public class Operationservice {
81 81 public void setSjbc(String sjbc) {
82 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 63 @Transient
64 64 private String gsname;
65 65  
  66 + @Transient
  67 + private String fgsname;
  68 +
  69 + @Transient
  70 + private String name;
66 71  
67 72 public Integer getId() {
68 73 return id;
... ... @@ -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 82 * 应急停靠
83 83 */
84 84 private boolean enableYjtk;
  85 + /** HH:mm */
85 86 private String yjtkStart;
  87 + /** HH:mm */
86 88 private String yjtkEnd;
87 89 private int upStopMinute;
88 90 private int downStopMinute;
... ...
src/main/java/com/bsth/entity/realcontrol/OilStationSociety.java
... ... @@ -21,6 +21,11 @@ public class OilStationSociety {
21 21 private String stationName;
22 22  
23 23 /**
  24 + * 加油站编码(为空则默认社会加油站)
  25 + */
  26 + private String stationCode;
  27 +
  28 + /**
24 29 * 上行进场距离
25 30 */
26 31 private Double upInMile;
... ... @@ -137,4 +142,12 @@ public class OilStationSociety {
137 142 public void setDownOutTime(int downOutTime) {
138 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 139 /** 是否是临加班次 */
140 140 private boolean sflj;
141 141  
142   - /** 是否误点*/
  142 + /** 是否误点 (应发未发)*/
143 143 @Transient
144 144 private boolean late;
145 145  
  146 + /** 是否误点 (应发未到) */
  147 + @Transient
  148 + private boolean late2;
  149 + /** 误点停靠时间 */
  150 + @Transient
  151 + private float lateMinute;
  152 +
146 153 /** 备注*/
147 154 private String remarks;
148 155  
... ... @@ -887,4 +894,20 @@ public class ScheduleRealInfo {
887 894 public void setRemark(String remark) {
888 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 151  
152 152 //按照时间段统计
153 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 155 List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2,String gsdm,String fgsdm);
156 156  
157 157 //按照时间段统计
158 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 160 List<ScheduleRealInfo> scheduleByDateAndLineTj2(String line,String date,String date2);
161 161 //月报表
162 162 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
163 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 164 List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2);
165 165  
  166 +
166 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 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 56 Object date=map.get("date");
57 57  
58 58 if(line!=null){
59   - sql +=" and line like'%"+line.toString()+"%'";
  59 + sql +=" and line like'%"+line.toString().trim()+"%'";
60 60 }
61 61  
62 62 if(nbbm!=null){
... ... @@ -131,6 +131,7 @@ public class OfflineServiceImpl implements OfflineService {
131 131 @SuppressWarnings("unchecked")
132 132 public PageObject <Offline> Pagequery(Map<String, Object> map) {
133 133 // TODO Auto-generated method stub
  134 +
134 135 String sql="select count(*) record from bsth_c_offline where 1=1 ";
135 136  
136 137 Object line=map.get("line");
... ... @@ -140,7 +141,7 @@ public class OfflineServiceImpl implements OfflineService {
140 141 Object date=map.get("date");
141 142  
142 143 if(line!=null){
143   - sql +=" and line like'%"+line.toString()+"%'";
  144 + sql +=" and line like'%"+line.toString().trim()+"%'";
144 145 }
145 146  
146 147 if(nbbm!=null){
... ... @@ -194,10 +195,9 @@ public class OfflineServiceImpl implements OfflineService {
194 195 Date datess = new Date(d1);
195 196 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess);
196 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 201 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb,
202 202 new RowMapper<ScheduleRealInfo>(){
203 203 @Override
... ... @@ -208,20 +208,15 @@ public class OfflineServiceImpl implements OfflineService {
208 208 s.setLpName(rs.getString("lp_name"));
209 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 218 PageObject<Offline> pageObject = pageHelper.getPageObject();
220   -// for (int i = 0; i < list.size(); i++) {
221   -// if(list.get(i).getLpname()!=null){
222 219 pageObject.setDataList(list);
223   -// }
224   -// }
225 220  
226 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 43 Object updown=map.get("updown");
44 44 Object date=map.get("date");
45 45 if(line!=null){
46   - sql +=" and line like'%"+line.toString()+"%'";
  46 + sql +=" and line like'%"+line.toString().trim()+"%'";
47 47 }
48 48  
49 49 if(nbbm!=null){
... ... @@ -105,7 +105,7 @@ public class OutboundServiceImpl implements OutboundService{
105 105 outbound.setTimestampDate(sdf.format(new Date(outbound.getTimestamp())));
106 106 outbound.setUpDown(Integer.valueOf(rs.getObject("up_down").toString()));
107 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 109 list.add(outbound);
110 110 }
111 111 return list;
... ... @@ -120,7 +120,7 @@ public class OutboundServiceImpl implements OutboundService{
120 120 Object updown=map.get("updown");
121 121 Object date=map.get("date");
122 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 174 Date datess = new Date(d1);
175 175 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess);
176 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 180 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb,
182 181 new RowMapper<ScheduleRealInfo>(){
183 182 @Override
... ...
src/main/java/com/bsth/service/excep/impl/SpeedingServiceImpl.java
... ... @@ -46,7 +46,7 @@ public class SpeedingServiceImpl implements SpeedingService {
46 46 Object date=map.get("date");
47 47  
48 48 if(line!=null){
49   - sql +=" and line like'%"+line.toString()+"%'";
  49 + sql +=" and line like'%"+line.toString().trim()+"%'";
50 50 }
51 51  
52 52 if(nbbm!=null){
... ... @@ -125,7 +125,7 @@ public class SpeedingServiceImpl implements SpeedingService {
125 125 Object date=map.get("date");
126 126  
127 127 if(line!=null){
128   - sql +=" and line like'%"+line.toString()+"%'";
  128 + sql +=" and line like'%"+line.toString().trim()+"%'";
129 129 }
130 130  
131 131 if(nbbm!=null){
... ... @@ -177,10 +177,9 @@ public class SpeedingServiceImpl implements SpeedingService {
177 177 Date datess = new Date(d1);
178 178 String dates=new SimpleDateFormat("yyyy-MM-dd").format(datess);
179 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 183 List<ScheduleRealInfo> pbb =jdbcTemplate.query(sqlPbb,
185 184 new RowMapper<ScheduleRealInfo>(){
186 185 @Override
... ...
src/main/java/com/bsth/service/forms/FormsService.java
... ... @@ -31,7 +31,7 @@ public interface FormsService {
31 31  
32 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 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 25 import com.bsth.entity.mcy_forms.Turnoutrate;
26 26 import com.bsth.entity.mcy_forms.Vehicleloading;
27 27 import com.bsth.entity.mcy_forms.Waybillday;
  28 +import com.bsth.entity.oil.Ylb;
28 29 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  30 +import com.bsth.repository.oil.YlbRepository;
29 31 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
30 32 import com.bsth.data.BasicData;
31 33 import com.bsth.entity.mcy_forms.Allline;
... ... @@ -55,6 +57,9 @@ public class FormsServiceImpl implements FormsService {
55 57  
56 58 @Autowired
57 59 CulateMileageService culateMileageService;
  60 +
  61 + @Autowired
  62 + YlbRepository ylbRepository;
58 63  
59 64 // 行车路单日报表
60 65 @Override
... ... @@ -219,13 +224,11 @@ public class FormsServiceImpl implements FormsService {
219 224 // if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){
220 225 // sList.add(s);
221 226 // }
222   -
223 227 if(empnames.equals("驾驶员")){
224   - if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){
  228 + if(d.getJgh().equals(s.getjGh())){
225 229 sList.add(s);
226 230 }
227 231 }else if(empnames.equals("售票员")){
228   -// shif.setjName(arg0.getString("s_name")==null ? "":arg0.getString("s_name"));
229 232 String sgh=s.getsGh()==null?"":s.getsGh();
230 233 if(d.getSgh().equals(sgh) && d.getZbh().equals(s.getClZbh())){
231 234 sList.add(s);
... ... @@ -244,16 +247,17 @@ public class FormsServiceImpl implements FormsService {
244 247 double ljgl=culateMileageService.culateLjgl(sList);
245 248 double sjgl=culateMileageService.culateSjgl(sList);
246 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 253 double cjgl=culateMileageService.culateLbgl(sList);
250 254 double zjgl=culateMileageService.culateLjgl(sList);
251 255 d.setEmptMileage(String.valueOf(zksgl));//空驶公里
252 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 258 d.setJhlc(String.valueOf(zyygl));//运营里程
255 259 d.setCjbc(String.valueOf(cjbc));//抽检班次
256   - d.setLjbc(String.valueOf(Ljbc));//增加班次
  260 + d.setLjbc(String.valueOf(ljbc));//增加班次
257 261 d.setRemMileage(String.valueOf(cjgl));//抽检里程
258 262 d.setAddMileage(String.valueOf(zjgl));//增加里程
259 263  
... ... @@ -330,22 +334,23 @@ public class FormsServiceImpl implements FormsService {
330 334 double zyygl=Arith.add(ljgl, sjgl);
331 335 double jhgl=culateMileageService.culateJhgl(sList);
332 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 341 double zjgl=culateMileageService.culateLjgl(sList);
337 342 d.setEmptMileage(String.valueOf(zksgl));//空驶公里
338 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 345 d.setJhlc(String.valueOf(jhgl));//计划里程
341 346 d.setYygl(String.valueOf(zyygl));//运营公里
342 347 d.setSjjhlc(String.valueOf(sjgl));//实际计划里程
343 348 d.setRemMileage(String.valueOf(cjgl));//抽减里程
344 349 d.setJhbc(String.valueOf(jhbc));//计划班次
345 350 d.setCjbc(String.valueOf(cjbc));//抽检班次
346   - d.setLjbc(String.valueOf(Ljbc));//增加班次
  351 + d.setLjbc(String.valueOf(ljbc));//增加班次
347 352 d.setAddMileage(String.valueOf(zjgl));//增加公里
348   - d.setSjjhbc(String.valueOf(culateMileageService.culateSjbc(sList, "")));//实际计划班次
  353 + d.setSjjhbc(String.valueOf(sjbc));//实际计划班次
349 354 }
350 355 return list;
351 356 }
... ... @@ -417,7 +422,19 @@ public class FormsServiceImpl implements FormsService {
417 422 // 路单数据
418 423 @Override
419 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 438 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
422 439 Date d = null;
423 440 Date d1 = null;
... ... @@ -429,60 +446,92 @@ public class FormsServiceImpl implements FormsService {
429 446 e.printStackTrace();
430 447 }
431 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 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 479 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
451 480 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
452 481 @Override
453 482 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
454 483 Singledata sin = new Singledata();
455   - sin.setrQ(rq);
456   - sin.setgS(arg0.getString("gs_bm"));
  484 + sin.setrQ(startDate);
457 485 sin.setxL(arg0.getString("xl_name"));
458 486 sin.setClzbh(arg0.getString("cl_zbh"));
459 487 sin.setJsy(arg0.getString("j_gh"));
460 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 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 536 return list;
488 537 }
... ... @@ -490,105 +539,174 @@ public class FormsServiceImpl implements FormsService {
490 539 // 运营服务阶段报表
491 540 @Override
492 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 638 return list;
543 639 }
544 640  
545 641  
546 642 // 车辆加注
547 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 652 List<Vehicleloading> list = jdbcTemplate.query(sql, new RowMapper<Vehicleloading>() {
567 653 @Override
568 654 public Vehicleloading mapRow(ResultSet arg0, int arg1) throws SQLException {
569 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 657 ve.setxL(arg0.getString("xl_name"));
573 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 659 ve.setJgh(arg0.getString("j_gh").toString());
578 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 710 return list;
593 711 }
594 712  
... ... @@ -816,7 +934,7 @@ public class FormsServiceImpl implements FormsService {
816 934 }
817 935  
818 936 String fgsbm="";
819   - if(map.get("fgsdmDaily").toString()!=null){
  937 + if(map.get("fgsdmDaily")!=null){
820 938 fgsbm=map.get("fgsdmDaily").toString();
821 939 }
822 940  
... ... @@ -853,6 +971,12 @@ public class FormsServiceImpl implements FormsService {
853 971 for(int i=0;i<list.size();i++){
854 972 sList =new ArrayList<ScheduleRealInfo>();
855 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 980 for (int j = 0; j < lists.size(); j++) {
857 981 ScheduleRealInfo s=lists.get(j);
858 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 161 void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type);
162 162  
163 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 3 import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.JSONArray;
5 5 import com.alibaba.fastjson.JSONObject;
  6 +import com.alibaba.fastjson.support.odps.udf.CodecCheck.A;
6 7 import com.bsth.common.Constants;
7 8 import com.bsth.common.ResponseCode;
8 9 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
... ... @@ -13,6 +14,7 @@ import com.bsth.data.LineConfigData;
13 14 import com.bsth.data.schedule.DayOfSchedule;
14 15 import com.bsth.data.schedule.SchAttrCalculator;
15 16 import com.bsth.data.schedule.ScheduleComparator;
  17 +import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
16 18 import com.bsth.entity.Cars;
17 19 import com.bsth.entity.Line;
18 20 import com.bsth.entity.Personnel;
... ... @@ -176,6 +178,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
176 178 schedule.setDfsjAll(dfsj);
177 179 schedule.addRemarks(remarks);
178 180  
  181 + //取消应发未到标记
  182 + if(schedule.isLate2()){
  183 + schedule.setLate2(false);
  184 + LateAdjustHandle.remove(schedule);
  185 + }
  186 +
179 187 List<ScheduleRealInfo> ts = new ArrayList<>();
180 188 ts.add(schedule);
181 189 //调整终点时间和下一个班次的应到时间
... ... @@ -510,7 +518,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
510 518 + " from bsth_c_s_sp_info_real s "
511 519 + " where s.xl_Bm = '" + line + "' and DATE_FORMAT(s.schedule_Date,'%Y-%m-%d') ='" + date + "' "
512 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 522 List<ScheduleRealInfo> list = jdbcTemplate.query(sqlPlan,
515 523 new RowMapper<ScheduleRealInfo>() {
516 524 @Override
... ... @@ -826,9 +834,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
826 834 sch.setFcsjActualAll(fcsjActual);
827 835 sch.addRemarks(remarks);
828 836 sch.calcStatus();
  837 + if(sch.isLate2()){
  838 + //取消应发未到标记
  839 + sch.setLate2(false);
  840 + LateAdjustHandle.remove(sch);
  841 + }
829 842  
830 843 dayOfSchedule.save(sch);
831   - //scheduleRealInfoRepository.save(sch);
832 844  
833 845 ts.add(sch);
834 846  
... ... @@ -1015,8 +1027,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1015 1027 t = fmtyyyyMMddHHmm.parseMillis(sch.getScheduleDateStr() + fcsjActual);
1016 1028  
1017 1029 //调整实发
1018   - if (!fcsjActual.equals(sch.getFcsjActual()))
  1030 + if (!fcsjActual.equals(sch.getFcsjActual())){
1019 1031 sch.setFcsjActualAll(t);
  1032 +
  1033 + //取消应发未到标记
  1034 + if(sch.isLate2()){
  1035 + sch.setLate2(false);
  1036 + LateAdjustHandle.remove(sch);
  1037 + }
  1038 + }
1020 1039 } else {
1021 1040 //撤销实发
1022 1041 if (sch.getFcsjActual() != null)
... ... @@ -1107,6 +1126,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1107 1126 //重新计算是否误点
1108 1127 schedule.reCalcLate();
1109 1128  
  1129 + //取消应发未到标记
  1130 + if(schedule.isLate2()){
  1131 + schedule.setLate2(false);
  1132 + LateAdjustHandle.remove(schedule);
  1133 + }
1110 1134 dayOfSchedule.save(schedule);
1111 1135 }
1112 1136  
... ... @@ -1403,7 +1427,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1403 1427 lists.add(s);
1404 1428 }
1405 1429 }
1406   - double ksgl=culateService.culateKsgl(lists);
  1430 + double ksgl=culateService.culateKsgl(list);
1407 1431 double sjgl=culateService.culateSjgl(lists);
1408 1432 double jccgl=culateService.culateJccgl(lists);
1409 1433 double ljgl=culateService.culateLjgl(lists);
... ... @@ -1646,9 +1670,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1646 1670 List<ScheduleRealInfo> lists = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
1647 1671 Map<String, Object> map = new HashMap<String, Object>();
1648 1672 map.put("xlName", xlName);
1649   - map.put("jhlc", culateService.culateJhgl(lists));
  1673 + double jhlc=culateService.culateJhgl(lists);
  1674 + map.put("jhlc",jhlc);
1650 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 1678 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
1653 1679 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
1654 1680 map.put("ssgl_gz", culateService.culateCJLC(lists, "故障"));
... ... @@ -1665,7 +1691,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1665 1691 double ssgl_qt=culateService.culateCJLC(lists, "其他");
1666 1692 map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by),Arith.add(ssgl_cj, ssgl_qt)));
1667 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 1696 map.put("jhbc", culateService.culateJhbc(lists,""));
1670 1697 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
1671 1698 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
... ... @@ -1685,6 +1712,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1685 1712 map.put("djg_m", 0);
1686 1713 map.put("djg_a", 0);
1687 1714 map.put("djg_time", 0);
  1715 + map.put("jls", Arith.sub(Arith.add(jhlc, ljgl), lbgl));
1688 1716 lMap.add(map);
1689 1717 return lMap;
1690 1718 }
... ... @@ -2238,8 +2266,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2238 2266 public final Map<String, Object> staticTj(List<ScheduleRealInfo> lists){
2239 2267 Map<String, Object> map = new HashMap<String, Object>();
2240 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 2286 map.put("ssgl", culateService.culateLbgl(lists));
2244 2287 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
2245 2288 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
... ... @@ -2253,7 +2296,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2253 2296 map.put("ssgl_yw", culateService.culateCJLC(lists, "援外"));
2254 2297 map.put("ssgl_other", culateService.culateCJLC(lists, "其他"));
2255 2298 map.put("ssbc", culateService.culateLbbc(lists));
2256   - map.put("ljgl", culateService.culateLjgl(lists));
  2299 + map.put("ljgl", ljgl);
2257 2300 map.put("jhbc", culateService.culateJhbc(lists,""));
2258 2301 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
2259 2302 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
... ... @@ -2316,8 +2359,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2316 2359  
2317 2360 Map<String, Object> map = new HashMap<String, Object>();
2318 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 2378 map.put("ssgl", culateService.culateLbgl(list));
2322 2379 map.put("ssgl_lz", culateService.culateCJLC(list, "路阻"));
2323 2380 map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢"));
... ... @@ -2331,7 +2388,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2331 2388 map.put("ssgl_yw", culateService.culateCJLC(list, "援外"));
2332 2389 map.put("ssgl_other", culateService.culateCJLC(list, "其他"));
2333 2390 map.put("ssbc", culateService.culateLbbc(list));
2334   - map.put("ljgl", culateService.culateLjgl(list));
  2391 + map.put("ljgl", ljgl);
2335 2392 map.put("jhbc", culateService.culateJhbc(list,""));
2336 2393 map.put("jhbc_m", culateService.culateJhbc(list, "zgf"));
2337 2394 map.put("jhbc_a", culateService.culateJhbc(list, "wgf"));
... ... @@ -2506,7 +2563,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2506 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 2567 List<ScheduleRealInfo> xList = new ArrayList<ScheduleRealInfo>();
2511 2568 List<ScheduleRealInfo> yList = new ArrayList<ScheduleRealInfo>();
2512 2569 List<ScheduleRealInfo> zList = new ArrayList<ScheduleRealInfo>();
... ... @@ -4093,4 +4150,53 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
4093 4150 }
4094 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 4203 \ No newline at end of file
... ...
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
1 1 package com.bsth.service.report.impl;
2 2  
3 3 import java.util.ArrayList;
  4 +import java.util.Collections;
4 5 import java.util.HashMap;
5 6 import java.util.Iterator;
6 7 import java.util.List;
... ... @@ -14,6 +15,7 @@ import com.bsth.entity.realcontrol.ChildTaskPlan;
14 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 16 import com.bsth.service.report.CulateMileageService;
16 17 import com.bsth.util.Arith;
  18 +import com.bsth.util.ComparableJob;
17 19  
18 20 @Service
19 21 public class CulateMileageServiceImpl implements CulateMileageService{
... ... @@ -25,6 +27,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
25 27 @Override
26 28 public List<Map<String, Object>> jobFwqk(List<ScheduleRealInfo> lists) {
27 29 // TODO Auto-generated method stub
  30 + String[] lblxs = {"配车", "保养","故障","肇事","路阻","纠纷","缺人","客稀","缺车","气候","援外","吊慢","抽减","其他" };
28 31 List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
29 32 for (int i = 0; i < lists.size(); i++) {
30 33 ScheduleRealInfo scheduleRealInfo = lists.get(i);
... ... @@ -47,7 +50,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
47 50 newMap.put("dz", scheduleRealInfo.getQdzName());
48 51 newMap.put("sj", scheduleRealInfo.getFcsj());
49 52 newMap.put("lbbc", 1);
50   - newMap.put("lblc", scheduleRealInfo.getJhlcOrig());
  53 + newMap.put("lblc", scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
51 54 newMap.put("jyqp", scheduleRealInfo.getRealMileage());
52 55 list.add(newMap);
53 56 }
... ... @@ -71,7 +74,7 @@ public class CulateMileageServiceImpl implements CulateMileageService{
71 74 newMap.put("dz", childTaskPlan.getStartStationName());
72 75 newMap.put("sj", childTaskPlan.getStartDate());
73 76 newMap.put("lbbc", 0);
74   - newMap.put("lblc", childTaskPlan.getMileage());
  77 + newMap.put("lblc", childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage());
75 78 newMap.put("jyqp", scheduleRealInfo.getRealMileage());
76 79 list.add(newMap);
77 80  
... ... @@ -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 115 @Override
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -8,6 +8,7 @@ import java.text.ParseException;
8 8 import java.text.SimpleDateFormat;
9 9 import java.util.ArrayList;
10 10 import java.util.Calendar;
  11 +import java.util.Collections;
11 12 import java.util.Date;
12 13 import java.util.HashMap;
13 14 import java.util.Iterator;
... ... @@ -38,6 +39,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
38 39 import com.bsth.service.report.CulateMileageService;
39 40 import com.bsth.service.report.ReportService;
40 41 import com.bsth.util.Arith;
  42 +import com.bsth.util.ComparableJob;
41 43 import com.bsth.util.db.DBUtils_MS;
42 44  
43 45 @Service
... ... @@ -179,10 +181,10 @@ public class ReportServiceImpl implements ReportService{
179 181 try {
180 182 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
181 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 188 List<ArrivalInfo> lists=load2(line,date1,date2,dates1,dates2,zd,zdlx);
187 189  
188 190 for(int i=0;i<lists.size();i++){
... ... @@ -1150,6 +1152,7 @@ public class ReportServiceImpl implements ReportService{
1150 1152 @Override
1151 1153 public List<Map<String, Object>> jobFwqk(Map<String, Object> map) {
1152 1154 // TODO Auto-generated method stub
  1155 + String[] lblxs = {"配车", "保养","故障","肇事","路阻","纠纷","缺人","客稀","缺车","气候","援外","吊慢","抽减","其他" };
1153 1156 String line=map.get("line").toString();
1154 1157 String date=map.get("date").toString();
1155 1158 map.put("bcType", "normal");
... ... @@ -1179,7 +1182,7 @@ public class ReportServiceImpl implements ReportService{
1179 1182 newMap.put("sj", scheduleRealInfo.getFcsj());
1180 1183 newMap.put("lbbc", 1);
1181 1184 newMap.put("lblc", scheduleRealInfo.getJhlcOrig());
1182   - newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  1185 + newMap.put("jyqp", scheduleRealInfo.getRemarks());
1183 1186 list.add(newMap);
1184 1187 }
1185 1188  
... ... @@ -1205,7 +1208,7 @@ public class ReportServiceImpl implements ReportService{
1205 1208 newMap.put("sj", childTaskPlan.getStartDate());
1206 1209 newMap.put("lbbc", 0);
1207 1210 newMap.put("lblc", childTaskPlan.getMileage());
1208   - newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  1211 + newMap.put("jyqp", childTaskPlan.getRemarks());
1209 1212 list.add(newMap);
1210 1213  
1211 1214 }
... ... @@ -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 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 7 import java.io.FileNotFoundException;
4 8 import java.io.IOException;
5 9 import java.sql.Connection;
... ... @@ -10,15 +14,8 @@ import java.util.HashMap;
10 14 import java.util.Map;
11 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 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 176 public void deviceOffline(GpsEntity gps){
177 177 Map<String, Object> map = new HashMap<>();
178 178 map.put("fn", "deviceOffline");
179   - map.put("gps", gps);;
  179 + map.put("gps", gps);
180 180 ObjectMapper mapper = new ObjectMapper();
181 181  
182 182 try {
... ... @@ -199,4 +199,26 @@ public class SendUtils{
199 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>
... ...